Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3206)

Unified Diff: chrome/browser/resources/md_bookmarks/command_manager.js

Issue 2912893002: MD Bookmarks: Support policies for disabling bookmark editing (Closed)
Patch Set: canEdit -> globalCanEdit Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/md_bookmarks/command_manager.js
diff --git a/chrome/browser/resources/md_bookmarks/command_manager.js b/chrome/browser/resources/md_bookmarks/command_manager.js
index 8960d0a9b94056ae399aadab5c46c0e670e4f1a5..41a677fc0fc3523cab293d7241328172c78cf0bb 100644
--- a/chrome/browser/resources/md_bookmarks/command_manager.js
+++ b/chrome/browser/resources/md_bookmarks/command_manager.js
@@ -32,14 +32,22 @@ cr.define('bookmarks', function() {
},
},
- /** @type {Set<string>} */
+ /** @private {Set<string>} */
menuIds_: Object,
+
+ /** @private */
+ globalCanEdit_: Boolean,
},
attached: function() {
assert(CommandManager.instance_ == null);
CommandManager.instance_ = this;
+ this.watch('globalCanEdit_', function(state) {
+ return state.prefs.canEdit;
+ });
+ this.updateFromStore();
+
/** @private {function(!Event)} */
this.boundOnOpenItemMenu_ = this.onOpenItemMenu_.bind(this);
document.addEventListener('open-item-menu', this.boundOnOpenItemMenu_);
@@ -120,7 +128,7 @@ cr.define('bookmarks', function() {
return itemIds.size > 0;
case Command.UNDO:
case Command.REDO:
- return true;
+ return this.globalCanEdit_;
default:
return this.isCommandVisible_(command, itemIds) &&
this.isCommandEnabled_(command, itemIds);
@@ -136,13 +144,11 @@ cr.define('bookmarks', function() {
isCommandVisible_: function(command, itemIds) {
switch (command) {
case Command.EDIT:
- return itemIds.size == 1;
+ return itemIds.size == 1 && this.globalCanEdit_;
case Command.COPY:
- return itemIds.size == 1 &&
- this.containsMatchingNode_(itemIds, function(node) {
- return !!node.url;
- });
+ return this.isSingleBookmark_(itemIds);
case Command.DELETE:
+ return itemIds.size > 0 && this.globalCanEdit_;
case Command.OPEN_NEW_TAB:
case Command.OPEN_NEW_WINDOW:
case Command.OPEN_INCOGNITO:
@@ -160,6 +166,12 @@ cr.define('bookmarks', function() {
*/
isCommandEnabled_: function(command, itemIds) {
switch (command) {
+ case Command.EDIT:
+ case Command.DELETE:
+ var state = this.getState();
+ return !this.containsMatchingNode_(itemIds, function(node) {
+ return !bookmarks.util.canEditNode(state, node.id);
+ });
case Command.OPEN_NEW_TAB:
case Command.OPEN_NEW_WINDOW:
return this.expandUrls_(itemIds).length > 0;
@@ -357,6 +369,18 @@ cr.define('bookmarks', function() {
});
},
+ /**
+ * @param {!Set<string>} itemIds
+ * @return {boolean} True if |itemIds| is a single bookmark (non-folder)
+ * node.
+ */
+ isSingleBookmark_: function(itemIds) {
+ return itemIds.size == 1 &&
+ this.containsMatchingNode_(itemIds, function(node) {
+ return !!node.url;
+ });
+ },
+
/**
* @param {Event} e
* @private
@@ -447,8 +471,9 @@ cr.define('bookmarks', function() {
* @return {boolean}
* @private
*/
- showDividerAfter_: function(command) {
- return command == Command.DELETE;
+ showDividerAfter_: function(command, itemIds) {
+ return command == Command.DELETE &&
+ (this.globalCanEdit_ || this.isSingleBookmark_(itemIds));
},
});
« no previous file with comments | « chrome/browser/resources/md_bookmarks/command_manager.html ('k') | chrome/browser/resources/md_bookmarks/dnd_manager.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698