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

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

Issue 8273026: [Multi Profile] Double-clicking an item in the user list should edit that profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add dblclick to list, remove from autofill Created 9 years, 2 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
« no previous file with comments | « no previous file | chrome/browser/resources/options/personal_options_profile_list.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.autofillOptions', function() { 5 cr.define('options.autofillOptions', function() {
6 const DeletableItem = options.DeletableItem; 6 const DeletableItem = options.DeletableItem;
7 const DeletableItemList = options.DeletableItemList; 7 const DeletableItemList = options.DeletableItemList;
8 const InlineEditableItem = options.InlineEditableItem; 8 const InlineEditableItem = options.InlineEditableItem;
9 const InlineEditableItemList = options.InlineEditableItemList; 9 const InlineEditableItemList = options.InlineEditableItemList;
10 10
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 */ 311 */
312 var AutofillProfileList = cr.ui.define('list'); 312 var AutofillProfileList = cr.ui.define('list');
313 313
314 AutofillProfileList.prototype = { 314 AutofillProfileList.prototype = {
315 __proto__: DeletableItemList.prototype, 315 __proto__: DeletableItemList.prototype,
316 316
317 decorate: function() { 317 decorate: function() {
318 DeletableItemList.prototype.decorate.call(this); 318 DeletableItemList.prototype.decorate.call(this);
319 319
320 this.addEventListener('blur', this.onBlur_); 320 this.addEventListener('blur', this.onBlur_);
321 this.addEventListener('dblclick', this.onDoubleClick_);
322 }, 321 },
323 322
324 /** 323 /**
325 * When the list loses focus, unselect all items in the list. 324 * When the list loses focus, unselect all items in the list.
326 * @private 325 * @private
327 */ 326 */
328 onBlur_: function() { 327 onBlur_: function() {
329 this.selectionModel.unselectAll(); 328 this.selectionModel.unselectAll();
330 }, 329 },
331
332 /**
333 * When a list item is double clicked, open the corresponding profile for
334 * editing.
335 * @param {Event} event The double-click event.
336 * @private
337 */
338 onDoubleClick_: function(event) {
339 if (this.disabled)
340 return;
341
342 var target = this.getListItemAncestor(event.target);
343 if (target)
344 this.activateItemAtIndex_(this.getIndexOfListItem(target));
345 },
346
347 /**
348 * Opens the item at |index| for editing. Subclasses should override.
349 * @param {Number} index The item index.
350 */
351 activateItemAtIndex_: function(index) {
352 },
353 }; 330 };
354 331
355 /** 332 /**
356 * Create a new address list. 333 * Create a new address list.
357 * @constructor 334 * @constructor
358 * @extends {options.AutofillProfileList} 335 * @extends {options.AutofillProfileList}
359 */ 336 */
360 var AutofillAddressList = cr.ui.define('list'); 337 var AutofillAddressList = cr.ui.define('list');
361 338
362 AutofillAddressList.prototype = { 339 AutofillAddressList.prototype = {
363 __proto__: AutofillProfileList.prototype, 340 __proto__: AutofillProfileList.prototype,
364 341
365 decorate: function() { 342 decorate: function() {
366 AutofillProfileList.prototype.decorate.call(this); 343 AutofillProfileList.prototype.decorate.call(this);
367 }, 344 },
368 345
369 /** @inheritDoc */ 346 /** @inheritDoc */
370 activateItemAtIndex_: function(index) { 347 activateItemAtIndex: function(index) {
371 AutofillOptions.loadAddressEditor(this.dataModel.item(index)[0]); 348 AutofillOptions.loadAddressEditor(this.dataModel.item(index)[0]);
372 }, 349 },
373 350
374 /** @inheritDoc */ 351 /** @inheritDoc */
375 createItem: function(entry) { 352 createItem: function(entry) {
376 return new AddressListItem(entry); 353 return new AddressListItem(entry);
377 }, 354 },
378 355
379 /** @inheritDoc */ 356 /** @inheritDoc */
380 deleteItemAtIndex: function(index) { 357 deleteItemAtIndex: function(index) {
381 AutofillOptions.removeAddress(this.dataModel.item(index)[0]); 358 AutofillOptions.removeAddress(this.dataModel.item(index)[0]);
382 }, 359 },
383 }; 360 };
384 361
385 /** 362 /**
386 * Create a new credit card list. 363 * Create a new credit card list.
387 * @constructor 364 * @constructor
388 * @extends {options.DeletableItemList} 365 * @extends {options.DeletableItemList}
389 */ 366 */
390 var AutofillCreditCardList = cr.ui.define('list'); 367 var AutofillCreditCardList = cr.ui.define('list');
391 368
392 AutofillCreditCardList.prototype = { 369 AutofillCreditCardList.prototype = {
393 __proto__: AutofillProfileList.prototype, 370 __proto__: AutofillProfileList.prototype,
394 371
395 decorate: function() { 372 decorate: function() {
396 AutofillProfileList.prototype.decorate.call(this); 373 AutofillProfileList.prototype.decorate.call(this);
397 }, 374 },
398 375
399 /** @inheritDoc */ 376 /** @inheritDoc */
400 activateItemAtIndex_: function(index) { 377 activateItemAtIndex: function(index) {
401 AutofillOptions.loadCreditCardEditor(this.dataModel.item(index)[0]); 378 AutofillOptions.loadCreditCardEditor(this.dataModel.item(index)[0]);
402 }, 379 },
403 380
404 /** @inheritDoc */ 381 /** @inheritDoc */
405 createItem: function(entry) { 382 createItem: function(entry) {
406 return new CreditCardListItem(entry); 383 return new CreditCardListItem(entry);
407 }, 384 },
408 385
409 /** @inheritDoc */ 386 /** @inheritDoc */
410 deleteItemAtIndex: function(index) { 387 deleteItemAtIndex: function(index) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 CreditCardListItem: CreditCardListItem, 497 CreditCardListItem: CreditCardListItem,
521 ValuesListItem: ValuesListItem, 498 ValuesListItem: ValuesListItem,
522 NameListItem: NameListItem, 499 NameListItem: NameListItem,
523 AutofillAddressList: AutofillAddressList, 500 AutofillAddressList: AutofillAddressList,
524 AutofillCreditCardList: AutofillCreditCardList, 501 AutofillCreditCardList: AutofillCreditCardList,
525 AutofillValuesList: AutofillValuesList, 502 AutofillValuesList: AutofillValuesList,
526 AutofillNameValuesList: AutofillNameValuesList, 503 AutofillNameValuesList: AutofillNameValuesList,
527 AutofillPhoneValuesList: AutofillPhoneValuesList, 504 AutofillPhoneValuesList: AutofillPhoneValuesList,
528 }; 505 };
529 }); 506 });
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/options/personal_options_profile_list.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698