OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 Polymer({ | 5 Polymer({ |
6 is: 'bookmarks-toolbar', | 6 is: 'bookmarks-toolbar', |
7 | 7 |
8 behaviors: [ | 8 behaviors: [ |
9 bookmarks.StoreClient, | 9 bookmarks.StoreClient, |
10 ], | 10 ], |
(...skipping 26 matching lines...) Expand all Loading... |
37 /** @private {!Set<string>} */ | 37 /** @private {!Set<string>} */ |
38 selectedItems_: Object, | 38 selectedItems_: Object, |
39 | 39 |
40 /** @private */ | 40 /** @private */ |
41 globalCanEdit_: Boolean, | 41 globalCanEdit_: Boolean, |
42 | 42 |
43 /** @private */ | 43 /** @private */ |
44 selectedFolder_: String, | 44 selectedFolder_: String, |
45 | 45 |
46 /** @private */ | 46 /** @private */ |
| 47 canSortFolder_: { |
| 48 type: Boolean, |
| 49 computed: 'computeCanSortFolder_(canChangeList_, selectedFolder_)', |
| 50 }, |
| 51 |
| 52 /** @private */ |
47 canChangeList_: { | 53 canChangeList_: { |
48 type: Boolean, | 54 type: Boolean, |
49 computed: | 55 computed: |
50 'computeCanChangeList_(selectedFolder_, searchTerm_, globalCanEdit_)', | 56 'computeCanChangeList_(selectedFolder_, searchTerm_, globalCanEdit_)', |
51 } | 57 } |
52 }, | 58 }, |
53 | 59 |
54 attached: function() { | 60 attached: function() { |
55 this.watch('searchTerm_', function(state) { | 61 this.watch('searchTerm_', function(state) { |
56 return state.search.term; | 62 return state.search.term; |
(...skipping 20 matching lines...) Expand all Loading... |
77 * @param {Event} e | 83 * @param {Event} e |
78 * @private | 84 * @private |
79 */ | 85 */ |
80 onMenuButtonOpenTap_: function(e) { | 86 onMenuButtonOpenTap_: function(e) { |
81 var menu = /** @type {!CrActionMenuElement} */ (this.$.dropdown.get()); | 87 var menu = /** @type {!CrActionMenuElement} */ (this.$.dropdown.get()); |
82 menu.showAt(/** @type {!Element} */ (e.target)); | 88 menu.showAt(/** @type {!Element} */ (e.target)); |
83 }, | 89 }, |
84 | 90 |
85 /** @private */ | 91 /** @private */ |
86 onSortTap_: function() { | 92 onSortTap_: function() { |
87 chrome.bookmarkManagerPrivate.sortChildren( | 93 chrome.bookmarkManagerPrivate.sortChildren(assert(this.selectedFolder_)); |
88 assert(this.getState().selectedFolder)); | |
89 bookmarks.ToastManager.getInstance().show( | 94 bookmarks.ToastManager.getInstance().show( |
90 loadTimeData.getString('toastFolderSorted'), true); | 95 loadTimeData.getString('toastFolderSorted'), true); |
91 this.closeDropdownMenu_(); | 96 this.closeDropdownMenu_(); |
92 }, | 97 }, |
93 | 98 |
94 /** @private */ | 99 /** @private */ |
95 onAddBookmarkTap_: function() { | 100 onAddBookmarkTap_: function() { |
96 var dialog = | 101 var dialog = |
97 /** @type {BookmarksEditDialogElement} */ (this.$.addDialog.get()); | 102 /** @type {BookmarksEditDialogElement} */ (this.$.addDialog.get()); |
98 dialog.showAddDialog(false, assert(this.getState().selectedFolder)); | 103 dialog.showAddDialog(false, assert(this.selectedFolder_)); |
99 this.closeDropdownMenu_(); | 104 this.closeDropdownMenu_(); |
100 }, | 105 }, |
101 | 106 |
102 /** @private */ | 107 /** @private */ |
103 onAddFolderTap_: function() { | 108 onAddFolderTap_: function() { |
104 var dialog = | 109 var dialog = |
105 /** @type {BookmarksEditDialogElement} */ (this.$.addDialog.get()); | 110 /** @type {BookmarksEditDialogElement} */ (this.$.addDialog.get()); |
106 dialog.showAddDialog(true, assert(this.getState().selectedFolder)); | 111 dialog.showAddDialog(true, assert(this.selectedFolder_)); |
107 this.closeDropdownMenu_(); | 112 this.closeDropdownMenu_(); |
108 }, | 113 }, |
109 | 114 |
110 /** @private */ | 115 /** @private */ |
111 onImportTap_: function() { | 116 onImportTap_: function() { |
112 chrome.bookmarks.import(); | 117 chrome.bookmarks.import(); |
113 this.closeDropdownMenu_(); | 118 this.closeDropdownMenu_(); |
114 }, | 119 }, |
115 | 120 |
116 /** @private */ | 121 /** @private */ |
117 onExportTap_: function() { | 122 onExportTap_: function() { |
118 chrome.bookmarks.export(); | 123 chrome.bookmarks.export(); |
119 this.closeDropdownMenu_(); | 124 this.closeDropdownMenu_(); |
120 }, | 125 }, |
121 | 126 |
122 /** @private */ | 127 /** @private */ |
123 onDeleteSelectionTap_: function() { | 128 onDeleteSelectionTap_: function() { |
124 var selection = this.getState().selection.items; | 129 var selection = this.selectedItems_; |
125 var commandManager = bookmarks.CommandManager.getInstance(); | 130 var commandManager = bookmarks.CommandManager.getInstance(); |
126 assert(commandManager.canExecute(Command.DELETE, selection)); | 131 assert(commandManager.canExecute(Command.DELETE, selection)); |
127 commandManager.handle(Command.DELETE, selection); | 132 commandManager.handle(Command.DELETE, selection); |
128 }, | 133 }, |
129 | 134 |
130 /** @private */ | 135 /** @private */ |
131 onClearSelectionTap_: function() { | 136 onClearSelectionTap_: function() { |
132 this.dispatch(bookmarks.actions.deselectItems()); | 137 this.dispatch(bookmarks.actions.deselectItems()); |
133 }, | 138 }, |
134 | 139 |
(...skipping 19 matching lines...) Expand all Loading... |
154 }, | 159 }, |
155 | 160 |
156 /** @private */ | 161 /** @private */ |
157 onSearchTermChanged_: function() { | 162 onSearchTermChanged_: function() { |
158 this.searchField.setValue(this.searchTerm_ || ''); | 163 this.searchField.setValue(this.searchTerm_ || ''); |
159 }, | 164 }, |
160 | 165 |
161 /** | 166 /** |
162 * @return {boolean} | 167 * @return {boolean} |
163 * @private | 168 * @private |
| 169 */ |
| 170 computeCanSortFolder_: function() { |
| 171 return this.canChangeList_ && |
| 172 this.getState().nodes[this.selectedFolder_].children.length > 0; |
| 173 }, |
| 174 |
| 175 /** |
| 176 * @return {boolean} |
| 177 * @private |
164 */ | 178 */ |
165 computeCanChangeList_: function() { | 179 computeCanChangeList_: function() { |
166 return !this.searchTerm_ && | 180 return !this.searchTerm_ && |
167 bookmarks.util.canReorderChildren( | 181 bookmarks.util.canReorderChildren( |
168 this.getState(), this.selectedFolder_); | 182 this.getState(), this.selectedFolder_); |
169 }, | 183 }, |
170 | 184 |
171 /** | 185 /** |
172 * @return {boolean} | 186 * @return {boolean} |
173 * @private | 187 * @private |
174 */ | 188 */ |
175 shouldShowSelectionOverlay_: function() { | 189 shouldShowSelectionOverlay_: function() { |
176 return this.selectedItems_.size > 1 && this.globalCanEdit_; | 190 return this.selectedItems_.size > 1 && this.globalCanEdit_; |
177 }, | 191 }, |
178 | 192 |
179 canDeleteSelection_: function() { | 193 canDeleteSelection_: function() { |
180 return bookmarks.CommandManager.getInstance().canExecute( | 194 return bookmarks.CommandManager.getInstance().canExecute( |
181 Command.DELETE, this.selectedItems_); | 195 Command.DELETE, this.selectedItems_); |
182 }, | 196 }, |
183 | 197 |
184 /** | 198 /** |
185 * @return {string} | 199 * @return {string} |
186 * @private | 200 * @private |
187 */ | 201 */ |
188 getItemsSelectedString_: function() { | 202 getItemsSelectedString_: function() { |
189 return loadTimeData.getStringF('itemsSelected', this.selectedItems_.size); | 203 return loadTimeData.getStringF('itemsSelected', this.selectedItems_.size); |
190 }, | 204 }, |
191 }); | 205 }); |
OLD | NEW |