Index: chrome/browser/resources/file_manager/js/photo/select_album_dialog.js |
diff --git a/chrome/browser/resources/file_manager/js/photo/select_album_dialog.js b/chrome/browser/resources/file_manager/js/photo/select_album_dialog.js |
deleted file mode 100644 |
index 402fd6e18773a29a8818324c387174cf270fac7c..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/file_manager/js/photo/select_album_dialog.js |
+++ /dev/null |
@@ -1,233 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-'use strict'; |
- |
- |
-/** |
- * SelectAlbumDialog contains a message, a list box, an ok button, and a |
- * cancel button. |
- * Operates on a list of objects representing albums: { name, url, create }. |
- * If user chooses to create a new album, result will be a fake album with |
- * |create == true|. |
- * |
- * @param {HTMLElement} parentNode Node to be parent for this dialog. |
- * @constructor |
- */ |
-function SelectAlbumDialog(parentNode) { |
- this.parentNode_ = parentNode; |
- this.document_ = parentNode.ownerDocument; |
- |
- this.container_ = this.document_.createElement('div'); |
- this.container_.className = 'select-album-dialog-container'; |
- this.container_.addEventListener('keydown', |
- this.onContainerKeyDown_.bind(this)); |
- |
- this.shield_ = this.document_.createElement('div'); |
- this.shield_.className = 'select-album-dialog-shield'; |
- this.container_.appendChild(this.shield_); |
- |
- this.frame_ = this.document_.createElement('div'); |
- this.frame_.className = 'select-album-dialog-frame'; |
- this.container_.appendChild(this.frame_); |
- |
- this.caption_ = this.document_.createElement('div'); |
- this.caption_.className = 'select-album-dialog-caption'; |
- this.frame_.appendChild(this.caption_); |
- |
- this.list_ = new cr.ui.List(); |
- this.list_.classList.add('select-album-list'); |
- this.frame_.appendChild(this.list_); |
- |
- this.dataModel_ = this.list_.dataModel = new cr.ui.ArrayDataModel([]); |
- this.selectionModel_ = this.list_.selectionModel = |
- new cr.ui.ListSingleSelectionModel(); |
- this.selectionModel_.addEventListener('change', |
- this.onSelectionChanged_.bind(this)); |
- |
- // TODO(dgozman): add shades at top and bottom of the list. |
- // List has max-height defined at css, so that list grows automatically, |
- // but doesn't exceed predefined size. |
- this.list_.autoExpands = true; |
- this.list_.activateItemAtIndex = this.activateItemAtIndex_.bind(this); |
- // Binding stuff doesn't work with constructors, so we have to create |
- // closure here. |
- var self = this; |
- this.list_.itemConstructor = function(item) { |
- return self.renderItem(item); |
- }; |
- |
- var buttons = this.document_.createElement('div'); |
- buttons.className = 'select-album-dialog-buttons'; |
- this.frame_.appendChild(buttons); |
- |
- this.okButton_ = this.document_.createElement('button'); |
- this.okButton_.className = 'no-icon'; |
- this.okButton_.addEventListener('click', this.onOkClick_.bind(this)); |
- buttons.appendChild(this.okButton_); |
- |
- this.cancelButton_ = this.document_.createElement('button'); |
- this.cancelButton_.className = 'no-icon'; |
- this.cancelButton_.textContent = |
- loadTimeData.getString('PHOTO_IMPORT_CANCEL_BUTTON'); |
- this.cancelButton_.addEventListener('click', this.onCancelClick_.bind(this)); |
- buttons.appendChild(this.cancelButton_); |
- |
- this.nameEdit_ = this.document_.createElement('input'); |
- this.nameEdit_.setAttribute('type', 'text'); |
- this.nameEdit_.className = 'name'; |
- this.nameEdit_.addEventListener('input', |
- this.updateOkButtonEnabled_.bind(this)); |
-} |
- |
-SelectAlbumDialog.prototype = { |
- __proto__: cr.ui.dialogs.BaseDialog.prototype |
-}; |
- |
-/** |
- * Renders item for list. |
- * @param {Object} item Item to render. |
- * @return {HTMLLIElement} Rendered item. |
- */ |
-SelectAlbumDialog.prototype.renderItem = function(item) { |
- var result = this.document_.createElement('li'); |
- |
- var frame = this.document_.createElement('div'); |
- frame.className = 'img-frame'; |
- result.appendChild(frame); |
- |
- var box = this.document_.createElement('div'); |
- box.className = 'img-container'; |
- frame.appendChild(box); |
- |
- if (item.create) { |
- result.appendChild(this.nameEdit_); |
- this.nameEdit_.value = item.name; |
- } else { |
- var name = this.document_.createElement('div'); |
- name.className = 'name'; |
- name.textContent = item.name; |
- result.appendChild(name); |
- } |
- |
- cr.defineProperty(result, 'lead', cr.PropertyKind.BOOL_ATTR); |
- cr.defineProperty(result, 'selected', cr.PropertyKind.BOOL_ATTR); |
- |
- new ThumbnailLoader(item.url).load(box, ThumbnailLoader.FillMode.FILL); |
- |
- return result; |
-}; |
- |
-/** |
- * Shows dialog. |
- * |
- * @param {string} message Message in dialog caption. |
- * @param {Array} items Albums to render in list. |
- * @param {string} defaultNewName Default name of the new album. |
- * @param {string} okCaption Text on the ok button. |
- * @param {function} onOk Callback function. |
- */ |
-SelectAlbumDialog.prototype.show = function( |
- message, items, defaultNewName, okCaption, onOk) { |
- |
- this.onOk_ = onOk; |
- this.okButton_.textContent = okCaption; |
- this.caption_.textContent = message; |
- |
- // Fake item to create new album. |
- var newAlbum = { |
- create: true, |
- name: defaultNewName, |
- url: chrome.extension.getURL('../../images/photo/new_album.png') |
- }; |
- |
- this.list_.startBatchUpdates(); |
- this.dataModel_.splice(0, this.dataModel_.length); |
- this.dataModel_.push(newAlbum); |
- for (var i = 0; i < items.length; i++) { |
- this.dataModel_.push(items[i]); |
- } |
- this.selectionModel_.selectedIndex = 0; |
- this.list_.endBatchUpdates(); |
- |
- this.parentNode_.appendChild(this.container_); |
-}; |
- |
-/** |
- * Hides dialog. |
- */ |
-SelectAlbumDialog.prototype.hide = function() { |
- this.parentNode_.removeChild(this.container_); |
-}; |
- |
-/** |
- * List activation handler. Closes dialog and calls 'ok' callback. |
- * |
- * @param {number} index Activated index. |
- * @private |
- */ |
-SelectAlbumDialog.prototype.activateItemAtIndex_ = function(index) { |
- if (this.okButton_.disabled) return; |
- this.hide(); |
- var album = this.dataModel_.item(index); |
- if (index == 0) |
- album.name = this.nameEdit_.value; |
- this.onOk_(album); |
-}; |
- |
-/** |
- * Closes dialog and invokes callback with currently-selected item. |
- * @private |
- */ |
-SelectAlbumDialog.prototype.onOkClick_ = function() { |
- this.activateItemAtIndex_(this.selectionModel_.selectedIndex); |
-}; |
- |
-/** |
- * Closes dialog. |
- * @private |
- */ |
-SelectAlbumDialog.prototype.onCancelClick_ = function() { |
- this.hide(); |
-}; |
- |
-/** |
- * Event handler for keydown event. |
- * @param {Event} event The event. |
- * @private |
- */ |
-SelectAlbumDialog.prototype.onContainerKeyDown_ = function(event) { |
- // Handle Escape. |
- if (event.keyCode == 27) { |
- this.onCancelClick_(event); |
- event.preventDefault(); |
- } else if (event.keyCode == 13) { |
- this.onOkClick_(); |
- event.preventDefault(); |
- } |
-}; |
- |
-/** |
- * Event handler for selection change. |
- * @param {Event} event The event. |
- * @private |
- */ |
-SelectAlbumDialog.prototype.onSelectionChanged_ = function(event) { |
- if (this.selectionModel_.selectedIndex == 0) { |
- setTimeout(this.nameEdit_.focus.bind(this.nameEdit_), 0); |
- } else { |
- this.nameEdit_.blur(); |
- this.list_.focus(); |
- } |
- this.updateOkButtonEnabled_(); |
-}; |
- |
-/** |
- * Updates ok button. |
- * @private |
- */ |
-SelectAlbumDialog.prototype.updateOkButtonEnabled_ = function() { |
- this.okButton_.disabled = this.selectionModel_.selectedIndex == 0 && |
- this.nameEdit_.value == ''; |
-}; |