Index: chrome/browser/resources/bookmark_manager/js/main.js |
diff --git a/chrome/browser/resources/bookmark_manager/js/main.js b/chrome/browser/resources/bookmark_manager/js/main.js |
index f6f2eb32370d16bff44d2a61a19cf584273eae3c..b59f5e34677d3257496fa7ac9e146b917f51eda9 100644 |
--- a/chrome/browser/resources/bookmark_manager/js/main.js |
+++ b/chrome/browser/resources/bookmark_manager/js/main.js |
@@ -455,7 +455,8 @@ function handleCanExecuteForDocument(e) { |
break; |
case 'sort-command': |
e.canExecute = !list.isSearch() && |
- list.dataModel && list.dataModel.length > 1; |
+ list.dataModel && list.dataModel.length > 1 && |
+ !bmm.isManaged(tree.getBookmarkNodeById(list.parentId)); |
break; |
case 'undo-command': |
// The global undo command has no visible UI, so always enable it, and |
@@ -485,7 +486,9 @@ function canExecuteShared(e, isSearch) { |
case 'add-new-bookmark-command': |
case 'new-folder-command': |
- e.canExecute = !isSearch && canEdit; |
+ var parentId = computeParentFolderForNewItem(); |
+ var isManaged = bmm.isManaged(tree.getBookmarkNodeById(parentId)); |
+ e.canExecute = !isSearch && canEdit && !isManaged; |
break; |
case 'open-in-new-tab-command': |
@@ -551,7 +554,7 @@ function canExecuteForList(e) { |
command.hidden = true; |
} else { |
var isFolder = bmm.isFolder(items[0]); |
- e.canExecute = isFolder && canEdit; |
+ e.canExecute = isFolder && canEdit && !hasManaged(items); |
arv (Not doing code reviews)
2014/06/03 14:31:39
Can't this just check if the list is managed since
Joao da Silva
2014/06/05 20:28:38
The isManaged check needs a BookmarkTreeNode, I'm
|
command.hidden = !isFolder; |
} |
break; |
@@ -564,7 +567,7 @@ function canExecuteForList(e) { |
command.hidden = false; |
} else { |
var isFolder = bmm.isFolder(items[0]); |
- e.canExecute = !isFolder && canEdit; |
+ e.canExecute = !isFolder && canEdit && !hasManaged(items); |
command.hidden = isFolder; |
} |
break; |
@@ -575,7 +578,8 @@ function canExecuteForList(e) { |
case 'delete-command': |
case 'cut-command': |
- e.canExecute = canCopyItems() && canEdit; |
+ e.canExecute = canCopyItems() && canEdit && |
+ !hasManaged(list.selectedItems); |
break; |
case 'copy-command': |
@@ -620,7 +624,8 @@ function handleCanExecuteForTree(e) { |
switch (commandId) { |
case 'rename-folder-command': |
command.hidden = false; |
- e.canExecute = hasSelected() && !isTopLevelItem() && canEdit; |
+ e.canExecute = hasSelected() && !isTopLevelItem() && canEdit && |
+ !hasManaged(tree.selectedFolders); |
break; |
case 'edit-command': |
@@ -630,7 +635,8 @@ function handleCanExecuteForTree(e) { |
case 'delete-command': |
case 'cut-command': |
- e.canExecute = hasSelected() && !isTopLevelItem() && canEdit; |
+ e.canExecute = hasSelected() && !isTopLevelItem() && canEdit && |
+ !hasManaged(tree.selectedFolders); |
break; |
case 'copy-command': |
@@ -790,6 +796,14 @@ function getSelectedBookmarkIds() { |
} |
/** |
+ * @param {BookmarkList} A list of BookmarkNodes. |
+ * @return {boolean} Whether any of the nodes is managed. |
+ */ |
+function hasManaged(nodes) { |
+ return nodes.some(bmm.isManaged); |
+} |
+ |
+/** |
* Opens the selected bookmarks. |
* @param {LinkKind} kind The kind of link we want to open. |
* @param {HTMLElement} opt_eventTarget The target of the user initiated event. |