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

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

Issue 2675503002: [MD Bookmarks] Remove Multiple Selected Items. (Closed)
Patch Set: add test Created 3 years, 11 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
« no previous file with comments | « chrome/browser/resources/md_bookmarks/list.js ('k') | chrome/test/data/webui/md_bookmarks/store_test.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/md_bookmarks/store.js
diff --git a/chrome/browser/resources/md_bookmarks/store.js b/chrome/browser/resources/md_bookmarks/store.js
index 79e52fe9a9f68c6763da63ec6ee004d997f5a67f..4ab4c17dcbf5caa07a854ca98c5abec048311a01 100644
--- a/chrome/browser/resources/md_bookmarks/store.js
+++ b/chrome/browser/resources/md_bookmarks/store.js
@@ -45,6 +45,9 @@ var BookmarksStore = Polymer({
/** @type {Set<string>} */
searchResultSet_: Object,
+
+ /** @type {Set<string>} */
+ selectedItemSet_: Object,
},
/** @private {Object} */
@@ -54,6 +57,7 @@ var BookmarksStore = Polymer({
attached: function() {
this.documentListeners_ = {
'folder-open-changed': this.onFolderOpenChanged_.bind(this),
+ 'remove-item': this.onItemRemoved_.bind(this),
'search-term-changed': this.onSearchTermChanged_.bind(this),
'select-item': this.onItemSelected_.bind(this),
'selected-folder-changed': this.onSelectedFolderChanged_.bind(this),
@@ -92,6 +96,7 @@ var BookmarksStore = Polymer({
this.rootNode = rootNode;
this.idToNodeMap_ = {};
this.rootNode.path = 'rootNode';
+ this.selectedItemSet_ = new Set();
BookmarksStore.generatePaths(rootNode, 0);
BookmarksStore.initNodes(this.rootNode, this.idToNodeMap_);
@@ -187,6 +192,8 @@ var BookmarksStore = Polymer({
if (!this.displayedList)
return;
+ this.selectedItemSet_.clear();
+
for (var i = 0; i < this.displayedList.length; i++) {
if (!this.displayedList[i].isSelectedItem)
continue;
@@ -252,6 +259,7 @@ var BookmarksStore = Polymer({
}
for (var i = startIndex; i <= endIndex; i++) {
this.set('displayedList.#' + i + '.isSelectedItem', true);
+ this.selectedItemSet_.add(this.displayedList[i]);
}
},
@@ -263,6 +271,23 @@ var BookmarksStore = Polymer({
selectItem_: function(item) {
this.anchorIndex_ = this.getIndexInList_(item);
this.set('displayedList.#' + this.anchorIndex_ + '.isSelectedItem', true);
+ this.selectedItemSet_.add(this.displayedList[this.anchorIndex_]);
+ },
+
+ /**
+ * @param {BookmarkTreeNode} item
+ * @private
+ */
+ removeSingleItem_: function(item) {
+ if (item.url) {
+ chrome.bookmarks.remove(item.id, function() {
+ // TODO(jiaxi): Add toast later.
+ }.bind(this));
+ } else {
+ chrome.bookmarks.removeTree(item.id, function() {
+ // TODO(jiaxi): Add toast later.
+ }.bind(this));
+ }
},
//////////////////////////////////////////////////////////////////////////////
@@ -402,6 +427,20 @@ var BookmarksStore = Polymer({
else
this.selectItem_(e.detail.item);
},
+
+ /**
+ * @param {CustomEvent} e
+ * @private
+ */
+ onItemRemoved_: function(e) {
+ var item = /** BookmarkTreeNode */ (e.detail);
+ if (this.selectedItemSet_.size == 1 || !item.isSelectedItem) {
+ this.removeSingleItem_(item);
+ } else {
+ for (let item of this.selectedItemSet_)
+ this.removeSingleItem_(item);
+ }
+ },
});
////////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « chrome/browser/resources/md_bookmarks/list.js ('k') | chrome/test/data/webui/md_bookmarks/store_test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698