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

Side by Side Diff: chrome/browser/resources/options/password_manager_list.js

Issue 7274015: Keep the original index of password list items when filtering, so the right password can be deleted. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 cr.define('options.passwordManager', function() { 5 cr.define('options.passwordManager', function() {
6 const ArrayDataModel = cr.ui.ArrayDataModel; 6 const ArrayDataModel = cr.ui.ArrayDataModel;
7 const DeletableItemList = options.DeletableItemList; 7 const DeletableItemList = options.DeletableItemList;
8 const DeletableItem = options.DeletableItem; 8 const DeletableItem = options.DeletableItem;
9 const List = cr.ui.List; 9 const List = cr.ui.List;
10 10
11 /** 11 /**
12 * Creates a new passwords list item. 12 * Creates a new passwords list item.
13 * @param {Array} entry An array of the form [url, username, password]. 13 * @param {Array} entry An array of the form [url, username, password]. When
14 * the list has been filtered, a fourth element [index] may be present.
14 * @constructor 15 * @constructor
15 * @extends {cr.ui.ListItem} 16 * @extends {cr.ui.ListItem}
16 */ 17 */
17 function PasswordListItem(entry, showPasswords) { 18 function PasswordListItem(entry, showPasswords) {
18 var el = cr.doc.createElement('div'); 19 var el = cr.doc.createElement('div');
19 el.dataItem = entry; 20 el.dataItem = entry;
20 el.__proto__ = PasswordListItem.prototype; 21 el.__proto__ = PasswordListItem.prototype;
21 el.decorate(showPasswords); 22 el.decorate(showPasswords);
22 23
23 return el; 24 return el;
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 this.redraw(); 223 this.redraw();
223 }, 224 },
224 225
225 /** @inheritDoc */ 226 /** @inheritDoc */
226 createItem: function(entry) { 227 createItem: function(entry) {
227 return new PasswordListItem(entry, this.showPasswords_); 228 return new PasswordListItem(entry, this.showPasswords_);
228 }, 229 },
229 230
230 /** @inheritDoc */ 231 /** @inheritDoc */
231 deleteItemAtIndex: function(index) { 232 deleteItemAtIndex: function(index) {
233 var item = this.dataModel.item(index);
234 if (item && item.length > 3) {
235 // The fourth element, if present, is the original index to delete.
236 index = item[3];
237 }
232 PasswordManager.removeSavedPassword(index); 238 PasswordManager.removeSavedPassword(index);
233 }, 239 },
234 240
235 /** 241 /**
236 * The length of the list. 242 * The length of the list.
237 */ 243 */
238 get length() { 244 get length() {
239 return this.dataModel.length; 245 return this.dataModel.length;
240 }, 246 },
241 }; 247 };
(...skipping 26 matching lines...) Expand all
268 }, 274 },
269 }; 275 };
270 276
271 return { 277 return {
272 PasswordListItem: PasswordListItem, 278 PasswordListItem: PasswordListItem,
273 PasswordExceptionsListItem: PasswordExceptionsListItem, 279 PasswordExceptionsListItem: PasswordExceptionsListItem,
274 PasswordsList: PasswordsList, 280 PasswordsList: PasswordsList,
275 PasswordExceptionsList: PasswordExceptionsList, 281 PasswordExceptionsList: PasswordExceptionsList,
276 }; 282 };
277 }); 283 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698