mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
remember expanded state
This commit is contained in:
@@ -30,6 +30,8 @@ public class FeedCategory extends AbstractModel {
|
||||
@OneToMany(mappedBy = "category")
|
||||
private Set<FeedSubscription> subscriptions;
|
||||
|
||||
private boolean collapsed;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
@@ -73,4 +75,12 @@ public class FeedCategory extends AbstractModel {
|
||||
this.children = children;
|
||||
}
|
||||
|
||||
public boolean isCollapsed() {
|
||||
return collapsed;
|
||||
}
|
||||
|
||||
public void setCollapsed(boolean collapsed) {
|
||||
this.collapsed = collapsed;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,11 +7,12 @@ import com.google.common.collect.Lists;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class Category implements Serializable {
|
||||
|
||||
|
||||
private String id;
|
||||
private String name;
|
||||
private List<Category> children = Lists.newArrayList();
|
||||
private List<Subscription> feeds = Lists.newArrayList();
|
||||
private boolean expanded;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
@@ -45,4 +46,11 @@ public class Category implements Serializable {
|
||||
this.feeds = feeds;
|
||||
}
|
||||
|
||||
public boolean isExpanded() {
|
||||
return expanded;
|
||||
}
|
||||
|
||||
public void setExpanded(boolean expanded) {
|
||||
this.expanded = expanded;
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,20 @@ public class SubscriptionsREST extends AbstractREST {
|
||||
return Response.ok(Status.OK).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("collapse")
|
||||
public Response collapse(@QueryParam("id") String id,
|
||||
@QueryParam("collapse") boolean collapse) {
|
||||
Preconditions.checkNotNull(id);
|
||||
if (!"all".equals(id)) {
|
||||
FeedCategory category = feedCategoryService.findById(getUser(),
|
||||
Long.valueOf(id));
|
||||
category.setCollapsed(collapse);
|
||||
feedCategoryService.update(category);
|
||||
}
|
||||
return Response.ok(Status.OK).build();
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("import")
|
||||
@Consumes(MediaType.MULTIPART_FORM_DATA)
|
||||
@@ -100,6 +114,7 @@ public class SubscriptionsREST extends AbstractREST {
|
||||
List<FeedSubscription> subscriptions) {
|
||||
Category category = new Category();
|
||||
category.setId(String.valueOf(id));
|
||||
category.setExpanded(true);
|
||||
|
||||
for (FeedCategory c : categories) {
|
||||
if ((id == null && c.getParent() == null)
|
||||
@@ -109,6 +124,7 @@ public class SubscriptionsREST extends AbstractREST {
|
||||
subscriptions);
|
||||
child.setId(String.valueOf(c.getId()));
|
||||
child.setName(c.getName());
|
||||
child.setExpanded(!c.isCollapsed());
|
||||
category.getChildren().add(child);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<li> <input type="checkbox" checked="checked" />
|
||||
<li> <input type="checkbox" ng-model="node.expanded" ng-click="toggleCategory(node)" />
|
||||
<label ng-click="categoryClick({id: node.id})"
|
||||
ng-class="{selected: (node.id == selectedId && selectedType == 'category')}">{{formatCategoryName({category:node})}}
|
||||
</label>
|
||||
|
||||
@@ -90,7 +90,15 @@ module.directive('category', function($compile) {
|
||||
.unsubscribe(subscription.id);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.toggleCategory = function(category) {
|
||||
console.log(category.expanded)
|
||||
SubscriptionService.collapse({
|
||||
id : category.id,
|
||||
collapse : !category.expanded
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
@@ -38,6 +38,12 @@ module.factory('SubscriptionService', [
|
||||
params : {
|
||||
_method : 'unsubscribe'
|
||||
}
|
||||
},
|
||||
collapse : {
|
||||
method : 'GET',
|
||||
params : {
|
||||
_method : 'collapse'
|
||||
}
|
||||
}
|
||||
};
|
||||
var s = {};
|
||||
@@ -84,6 +90,7 @@ module.factory('SubscriptionService', [
|
||||
id : id
|
||||
});
|
||||
};
|
||||
s.collapse = res.collapse;
|
||||
s.init();
|
||||
return s;
|
||||
} ]);
|
||||
|
||||
Reference in New Issue
Block a user