category dropdown menu

This commit is contained in:
Athou
2013-04-10 22:02:18 +02:00
parent ae42170090
commit b3edfb955f
3 changed files with 57 additions and 7 deletions

View File

@@ -1,10 +1,25 @@
<li>
<span class="icon-fldr" ng-class="{'icon-fldr-closed': !node.expanded, 'icon-fldr-open': node.expanded}" ng-click="toggleCategory(node)"></span>
<span ng-click="categoryClick({id: node.id})" class="pointer">
<span class="icon-fldr icon-fldr-folder"></span>
<span ng-class="{selected: (node.id == selectedId && selectedType == 'category'), unread: unreadCount({category:node})}">{{formatCategoryName({category:node})}}
<div ng-mouseenter="hovered=node" ng-mouseleave="hovered=null" class="pointer">
<div class="dropdown pull-right">
<a dropdown-toggle class="pull-right">
<i ng-show="hovered==node" class="icon icon-chevron-down"></i>
</a>
<ul class="dropdown-menu">
<li>
<a ng-click="renameCategory(node)">Rename</a>
</li>
<li>
<a ng-click="deleteCategory(node)">Delete</a>
</li>
</ul>
</div>
<span class="icon-fldr" ng-class="{'icon-fldr-closed': !node.expanded, 'icon-fldr-open': node.expanded}" ng-click="toggleCategory(node)"></span>
<span ng-click="categoryClick({id: node.id})">
<span class="icon-fldr icon-fldr-folder"></span>
<span ng-class="{selected: (node.id == selectedId && selectedType == 'category'), unread: unreadCount({category:node})}">{{formatCategoryName({category:node})}}
</span>
</span>
</span>
</div>
<ul ng-show="node.expanded" class="indent">
<recursive>
<category ng-repeat="child in node.children"
@@ -25,7 +40,7 @@
</a>
<ul class="dropdown-menu">
<li>
<a ng-click="rename(feed)">Rename</a>
<a ng-click="renameFeed(feed)">Rename</a>
</li>
<li>
<a ng-click="unsubscribe(feed)">Unsubscribe</a>

View File

@@ -108,7 +108,7 @@ module.directive('category', function($compile) {
});
};
$scope.rename = function(feed) {
$scope.renameFeed = function(feed) {
var name = window.prompt('Rename feed : ', feed.name);
if (name && name != feed.name) {
feed.name = name;
@@ -120,6 +120,40 @@ module.directive('category', function($compile) {
}
};
$scope.renameCategory = function(category) {
var name = window.prompt('Rename category: ', category.name);
if (name && name != category.name) {
category.name = name;
SubscriptionService.rename({
type : 'category',
id : category.id,
name : name
});
}
};
$scope.deleteCategory = function(category) {
var title = 'Delete category';
var msg = 'Delete category ' + category.name + ' ?';
var btns = [ {
result : 'cancel',
label : 'Cancel'
}, {
result : 'ok',
label : 'OK',
cssClass : 'btn-primary'
} ];
$dialog.messageBox(title, msg, btns).open().then(
function(result) {
if (result == 'ok') {
SubscriptionService.deleteCategory({
id : category.id
});
}
});
};
$scope.toggleCategory = function(category) {
category.expanded = !category.expanded;
SubscriptionService.collapse({

View File

@@ -129,6 +129,7 @@ module.factory('SubscriptionService', function($resource, $http) {
callback(data);
});
};
s.deleteCategory = res.deleteCategory;
s.collapse = res.collapse;
s.init();
return s;