| Index: ui/file_manager/file_manager/foreground/js/file_manager.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/file_manager.js b/ui/file_manager/file_manager/foreground/js/file_manager.js
|
| index 43e2a243e791b368a32d1c277acb5b02b6331e24..3497bd4d3655f0263fda9eb408ebdddc6d897164 100644
|
| --- a/ui/file_manager/file_manager/foreground/js/file_manager.js
|
| +++ b/ui/file_manager/file_manager/foreground/js/file_manager.js
|
| @@ -111,14 +111,14 @@ function FileManager() {
|
|
|
| /**
|
| * List of acceptable file types for open dialog.
|
| - * @type {Array.<Object>}
|
| + * @type {!Array.<Object>}
|
| * @private
|
| */
|
| this.fileTypes_ = [];
|
|
|
| /**
|
| * Startup parameters for this application.
|
| - * @type {Object}
|
| + * @type {?{includeAllFiles:boolean, action:string}}
|
| * @private
|
| */
|
| this.params_ = null;
|
| @@ -303,13 +303,6 @@ function FileManager() {
|
| this.renameInput_ = null;
|
|
|
| /**
|
| - * The input element to specify file name.
|
| - * @type {HTMLInputElement}
|
| - * @private
|
| - */
|
| - this.filenameInput_ = null;
|
| -
|
| - /**
|
| * The file table.
|
| * @type {FileTable}
|
| * @private
|
| @@ -562,27 +555,51 @@ function FileManager() {
|
|
|
| FileManager.prototype = {
|
| __proto__: cr.EventTarget.prototype,
|
| + /**
|
| + * @return {DirectoryModel}
|
| + */
|
| get directoryModel() {
|
| return this.directoryModel_;
|
| },
|
| + /**
|
| + * @return {DirectoryTree}
|
| + */
|
| get directoryTree() {
|
| return this.directoryTree_;
|
| },
|
| + /**
|
| + * @return {HTMLDocument}
|
| + */
|
| get document() {
|
| return this.document_;
|
| },
|
| + /**
|
| + * @return {FileTransferController}
|
| + */
|
| get fileTransferController() {
|
| return this.fileTransferController_;
|
| },
|
| + /**
|
| + * @return {FileOperationManager}
|
| + */
|
| get fileOperationManager() {
|
| return this.fileOperationManager_;
|
| },
|
| + /**
|
| + * @return {BackgroundWindow}
|
| + */
|
| get backgroundPage() {
|
| return this.backgroundPage_;
|
| },
|
| + /**
|
| + * @return {VolumeManagerWrapper}
|
| + */
|
| get volumeManager() {
|
| return this.volumeManager_;
|
| },
|
| + /**
|
| + * @return {FileManagerUI}
|
| + */
|
| get ui() {
|
| return this.ui_;
|
| }
|
| @@ -1277,9 +1294,6 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| // Cache nodes we'll be manipulating.
|
| var dom = this.dialogDom_;
|
|
|
| - var filenameInput = queryRequiredElement(dom, '#filename-input-box input');
|
| - this.filenameInput_ = /** @type {HTMLInputElement} */ (filenameInput);
|
| -
|
| var taskItems = queryRequiredElement(dom, '#tasks');
|
| this.taskItems_ = /** @type {HTMLButtonElement} */ (taskItems);
|
|
|
| @@ -1335,11 +1349,11 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| 'blur', this.onRenameInputBlur_.bind(this));
|
|
|
| // TODO(hirono): Rename the handler after creating the DialogFooter class.
|
| - this.filenameInput_.addEventListener(
|
| + this.ui_.dialogFooter.filenameInput.addEventListener(
|
| 'input', this.onFilenameInputInput_.bind(this));
|
| - this.filenameInput_.addEventListener(
|
| + this.ui_.dialogFooter.filenameInput.addEventListener(
|
| 'keydown', this.onFilenameInputKeyDown_.bind(this));
|
| - this.filenameInput_.addEventListener(
|
| + this.ui_.dialogFooter.filenameInput.addEventListener(
|
| 'focus', this.onFilenameInputFocus_.bind(this));
|
|
|
| this.listContainer_ = /** @type {!HTMLDivElement} */
|
| @@ -1393,7 +1407,10 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| this.defaultActionMenuItem_.addEventListener('activate',
|
| this.dispatchSelectionAction_.bind(this));
|
|
|
| - this.initFileTypeFilter_();
|
| + this.ui_.dialogFooter.initFileTypeFilter(
|
| + this.fileTypes_, this.params_.includeAllFiles);
|
| + this.ui_.dialogFooter.fileTypeSelector.addEventListener(
|
| + 'change', this.updateFileTypeFilter_.bind(this));
|
|
|
| util.addIsFocusedMethod();
|
|
|
| @@ -1604,7 +1621,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| FileManager.prototype.refocus = function() {
|
| var targetElement;
|
| if (this.dialogType == DialogType.SELECT_SAVEAS_FILE)
|
| - targetElement = this.filenameInput_;
|
| + targetElement = this.ui_.dialogFooter.filenameInput;
|
| else
|
| targetElement = this.currentList_;
|
|
|
| @@ -1757,63 +1774,6 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| };
|
|
|
| /**
|
| - * Fills the file type list or hides it.
|
| - * @private
|
| - */
|
| - FileManager.prototype.initFileTypeFilter_ = function() {
|
| - if (this.params_.includeAllFiles) {
|
| - var option = this.document_.createElement('option');
|
| - option.innerText = str('ALL_FILES_FILTER');
|
| - this.ui_.dialogFooter.fileTypeSelector.appendChild(option);
|
| - option.value = 0;
|
| - }
|
| -
|
| - for (var i = 0; i !== this.fileTypes_.length; i++) {
|
| - var fileType = this.fileTypes_[i];
|
| - var option = this.document_.createElement('option');
|
| - var description = fileType.description;
|
| - if (!description) {
|
| - // See if all the extensions in the group have the same description.
|
| - for (var j = 0; j !== fileType.extensions.length; j++) {
|
| - var currentDescription = FileType.typeToString(
|
| - FileType.getTypeForName('.' + fileType.extensions[j]));
|
| - if (!description) // Set the first time.
|
| - description = currentDescription;
|
| - else if (description != currentDescription) {
|
| - // No single description, fall through to the extension list.
|
| - description = null;
|
| - break;
|
| - }
|
| - }
|
| -
|
| - if (!description)
|
| - // Convert ['jpg', 'png'] to '*.jpg, *.png'.
|
| - description = fileType.extensions.map(function(s) {
|
| - return '*.' + s;
|
| - }).join(', ');
|
| - }
|
| - option.innerText = description;
|
| -
|
| - option.value = i + 1;
|
| -
|
| - if (fileType.selected)
|
| - option.selected = true;
|
| -
|
| - this.ui_.dialogFooter.fileTypeSelector.appendChild(option);
|
| - }
|
| -
|
| - var options = this.ui_.dialogFooter.fileTypeSelector.querySelectorAll(
|
| - 'option');
|
| - if (options.length >= 2) {
|
| - // There is in fact no choice, show the selector.
|
| - this.ui_.dialogFooter.fileTypeSelector.hidden = false;
|
| -
|
| - this.ui_.dialogFooter.fileTypeSelector.addEventListener('change',
|
| - this.updateFileTypeFilter_.bind(this));
|
| - }
|
| - };
|
| -
|
| - /**
|
| * Filters file according to the selected file type.
|
| * @private
|
| */
|
| @@ -1830,12 +1790,13 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
|
|
| // In save dialog, update the destination name extension.
|
| if (this.dialogType === DialogType.SELECT_SAVEAS_FILE) {
|
| - var current = this.filenameInput_.value;
|
| + var current = this.ui_.dialogFooter.filenameInput.value;
|
| var newExt = this.fileTypes_[selectedIndex - 1].extensions[0];
|
| if (newExt && !regexp.test(current)) {
|
| var i = current.lastIndexOf('.');
|
| if (i >= 0) {
|
| - this.filenameInput_.value = current.substr(0, i) + '.' + newExt;
|
| + this.ui_.dialogFooter.filenameInput.value =
|
| + current.substr(0, i) + '.' + newExt;
|
| this.selectTargetNameInFilenameInput_();
|
| }
|
| }
|
| @@ -2145,7 +2106,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| this.directoryModel_.addEventListener('scan-completed', listener);
|
| }
|
| } else if (this.dialogType === DialogType.SELECT_SAVEAS_FILE) {
|
| - this.filenameInput_.value = opt_suggestedName || '';
|
| + this.ui_.dialogFooter.filenameInput.value = opt_suggestedName || '';
|
| this.selectTargetNameInFilenameInput_();
|
| }
|
| };
|
| @@ -2510,7 +2471,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| * @private
|
| */
|
| FileManager.prototype.selectTargetNameInFilenameInput_ = function() {
|
| - var input = this.filenameInput_;
|
| + var input = this.ui_.dialogFooter.filenameInput;
|
| input.focus();
|
| var selectionEnd = input.value.lastIndexOf('.');
|
| if (selectionEnd == -1) {
|
| @@ -3044,7 +3005,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| * @private
|
| */
|
| FileManager.prototype.onFilenameInputFocus_ = function(event) {
|
| - var input = this.filenameInput_;
|
| + var input = this.ui_.dialogFooter.filenameInput;
|
|
|
| // On focus we want to select everything but the extension, but
|
| // Chrome will select-all after the focus event completes. We
|
| @@ -3629,7 +3590,7 @@ var BOTTOM_MARGIN_FOR_PREVIEW_PANEL_PX = 52;
|
| if (this.dialogType == DialogType.SELECT_SAVEAS_FILE) {
|
| // Save-as doesn't require a valid selection from the list, since
|
| // we're going to take the filename from the text input.
|
| - var filename = this.filenameInput_.value;
|
| + var filename = this.ui_.dialogFooter.filenameInput.value;
|
| if (!filename)
|
| throw new Error('Missing filename!');
|
|
|
|
|