Commit 93934756 authored by oleg@chromium.org's avatar oleg@chromium.org

Change butter bar message depending on the type of operation and the number of files.

BUG=134601


Review URL: https://chromiumcodereview.appspot.com/10828153

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149865 0039d316-1c4b-4281-b951-d872f2087c98
parent 7701bcdb
......@@ -11130,21 +11130,57 @@ Some features may be unavailable. Please check that the profile exists and you
Cut
</message>
<message name="IDS_FILE_BROWSER_PASTE_ITEMS_REMAINING" desc="File Manager status message. 'Item' is used here as a generic term for file or directory.">
Transferring $1 items
<message name="IDS_FILE_BROWSER_TRANSFER_ITEMS_REMAINING" desc="File Manager status message. 'Item' is used here as a generic term for file or directory. 'Transferring' is used in the sense 'copying or moving files'.">
Transferring $1 items.
</message>
<message name="IDS_FILE_BROWSER_PASTE_CANCELLED" desc="File Manager status message.">
<message name="IDS_FILE_BROWSER_TRANSFER_CANCELLED" desc="File Manager status message. 'Transferring' is used in the sense 'copying or moving files'.">
Transfer cancelled.
</message>
<message name="IDS_FILE_BROWSER_PASTE_TARGET_EXISTS_ERROR" desc="File Manager error message. 'Item' is used here as a generic term for file or directory.">
<message name="IDS_FILE_BROWSER_TRANSFER_TARGET_EXISTS_ERROR" desc="File Manager error message. 'Item' is used here as a generic term for file or directory. 'Transferring' is used in the sense 'copying or moving files'.">
Transfer failed, item exists: "$1"
</message>
<message name="IDS_FILE_BROWSER_PASTE_FILESYSTEM_ERROR" desc="File Manager error message.">
<message name="IDS_FILE_BROWSER_TRANSFER_FILESYSTEM_ERROR" desc="File Manager error message. 'Transferring' is used in the sense 'copying or moving files'.">
Transfer failed. <ph name="ERROR_MESSAGE">$1<ex>An error occurred (code: ABORT)</ex></ph>
</message>
<message name="IDS_FILE_BROWSER_PASTE_UNEXPECTED_ERROR" desc="File Manager error message.">
<message name="IDS_FILE_BROWSER_TRANSFER_UNEXPECTED_ERROR" desc="File Manager error message. 'Transferring' is used in the sense 'copying or moving files'.">
Transfer failed, unexpected error: $1
</message>
<message name="IDS_FILE_BROWSER_COPY_FILE_NAME" desc="File Manager status message.">
Copying <ph name="FILE_NAME">$1<ex>movie.avi</ex></ph>
</message>
<message name="IDS_FILE_BROWSER_COPY_ITEMS_REMAINING" desc="File Manager status message. 'Item' is used here as a generic term for file or directory.">
Copying $1 items.
</message>
<message name="IDS_FILE_BROWSER_COPY_CANCELLED" desc="File Manager status message.">
Copy operation cancelled.
</message>
<message name="IDS_FILE_BROWSER_COPY_TARGET_EXISTS_ERROR" desc="File Manager error message. 'Item' is used here as a generic term for file or directory.">
Copy operation failed, item exists: "$1"
</message>
<message name="IDS_FILE_BROWSER_COPY_FILESYSTEM_ERROR" desc="File Manager error message.">
Copy operation failed. <ph name="ERROR_MESSAGE">$1<ex>An error occurred (code: ABORT)</ex></ph>
</message>
<message name="IDS_FILE_BROWSER_COPY_UNEXPECTED_ERROR" desc="File Manager error message.">
Copy operation failed, unexpected error: $1
</message>
<message name="IDS_FILE_BROWSER_MOVE_FILE_NAME" desc="File Manager status message.">
Moving <ph name="FILE_NAME">$1<ex>movie.avi</ex></ph>
</message>
<message name="IDS_FILE_BROWSER_MOVE_ITEMS_REMAINING" desc="File Manager status message. 'Item' is used here as a generic term for file or directory.">
Moving $1 items.
</message>
<message name="IDS_FILE_BROWSER_MOVE_CANCELLED" desc="File Manager status message.">
Move cancelled.
</message>
<message name="IDS_FILE_BROWSER_MOVE_TARGET_EXISTS_ERROR" desc="File Manager error message. 'Item' is used here as a generic term for file or directory.">
Move failed, item exists: "$1"
</message>
<message name="IDS_FILE_BROWSER_MOVE_FILESYSTEM_ERROR" desc="File Manager error message.">
Move failed. <ph name="ERROR_MESSAGE">$1<ex>An error occurred (code: ABORT)</ex></ph>
</message>
<message name="IDS_FILE_BROWSER_MOVE_UNEXPECTED_ERROR" desc="File Manager error message.">
Move failed, unexpected error: $1
</message>
<message name="IDS_FILE_BROWSER_CANCEL_LABEL" desc="Cancel label.">
Cancel
......
......@@ -1574,11 +1574,23 @@ bool FileDialogStringsFunction::RunImpl() {
SET_STRING(IDS_FILE_BROWSER, COPY_BUTTON_LABEL);
SET_STRING(IDS_FILE_BROWSER, CUT_BUTTON_LABEL);
SET_STRING(IDS_FILE_BROWSER, PASTE_ITEMS_REMAINING);
SET_STRING(IDS_FILE_BROWSER, PASTE_CANCELLED);
SET_STRING(IDS_FILE_BROWSER, PASTE_TARGET_EXISTS_ERROR);
SET_STRING(IDS_FILE_BROWSER, PASTE_FILESYSTEM_ERROR);
SET_STRING(IDS_FILE_BROWSER, PASTE_UNEXPECTED_ERROR);
SET_STRING(IDS_FILE_BROWSER, TRANSFER_ITEMS_REMAINING);
SET_STRING(IDS_FILE_BROWSER, TRANSFER_CANCELLED);
SET_STRING(IDS_FILE_BROWSER, TRANSFER_TARGET_EXISTS_ERROR);
SET_STRING(IDS_FILE_BROWSER, TRANSFER_FILESYSTEM_ERROR);
SET_STRING(IDS_FILE_BROWSER, TRANSFER_UNEXPECTED_ERROR);
SET_STRING(IDS_FILE_BROWSER, COPY_FILE_NAME);
SET_STRING(IDS_FILE_BROWSER, COPY_ITEMS_REMAINING);
SET_STRING(IDS_FILE_BROWSER, COPY_CANCELLED);
SET_STRING(IDS_FILE_BROWSER, COPY_TARGET_EXISTS_ERROR);
SET_STRING(IDS_FILE_BROWSER, COPY_FILESYSTEM_ERROR);
SET_STRING(IDS_FILE_BROWSER, COPY_UNEXPECTED_ERROR);
SET_STRING(IDS_FILE_BROWSER, MOVE_FILE_NAME);
SET_STRING(IDS_FILE_BROWSER, MOVE_ITEMS_REMAINING);
SET_STRING(IDS_FILE_BROWSER, MOVE_CANCELLED);
SET_STRING(IDS_FILE_BROWSER, MOVE_TARGET_EXISTS_ERROR);
SET_STRING(IDS_FILE_BROWSER, MOVE_FILESYSTEM_ERROR);
SET_STRING(IDS_FILE_BROWSER, MOVE_UNEXPECTED_ERROR);
SET_STRING(IDS_FILE_BROWSER, CANCEL_LABEL);
SET_STRING(IDS_FILE_BROWSER, OPEN_LABEL);
......
......@@ -185,16 +185,45 @@ ButterBar.prototype.clearHideTimeout_ = function() {
}
};
/**
* @private
* @return {string?} The type of operation.
*/
ButterBar.prototype.transferType_ = function() {
var progress = this.progress_;
if (!progress ||
progress.pendingMoves === 0 && progress.pendingCopies === 0)
return 'TRANSFER';
if (progress.pendingMoves > 0) {
if (progress.pendingCopies > 0)
return 'TRANSFER';
return 'MOVE';
}
return 'COPY';
};
/**
* Set up butter bar for showing copy progress.
* @private
*/
ButterBar.prototype.showProgress_ = function() {
var progress = this.copyManager_.getProgress();
var options = {progress: progress.percentage, actions: {}, timeout: 0};
this.progress_ = this.copyManager_.getStatus();
var options = {progress: this.progress_.percentage, actions: {}, timeout: 0};
var type = this.transferType_();
var progressString = (this.progress_.pendingItems === 1) ?
strf(type + '_FILE_NAME', this.progress_.filename) :
strf(type + '_ITEMS_REMAINING', this.progress_.pendingItems);
if (this.isVisible_()) {
this.update_(progressString, options);
} else {
options.actions[str('CANCEL_LABEL')] =
this.copyManager_.requestCancel.bind(this.copyManager_);
this.show(strf('PASTE_ITEMS_REMAINING', progress.pendingItems), options);
this.show(progressString, options);
}
};
/**
......@@ -203,8 +232,6 @@ ButterBar.prototype.showProgress_ = function() {
* @param {cr.Event} event A 'copy-progress' event from FileCopyManager.
*/
ButterBar.prototype.onCopyProgress_ = function(event) {
var progress = this.copyManager_.getProgress();
if (event.reason != 'PROGRESS')
this.clearShowTimeout_();
......@@ -217,11 +244,7 @@ ButterBar.prototype.onCopyProgress_ = function(event) {
break;
case 'PROGRESS':
if (this.isVisible_()) {
var options = {'progress': progress.percentage, timeout: 0};
this.update_(strf('PASTE_ITEMS_REMAINING', progress.pendingItems),
options);
}
this.showProgress_();
break;
case 'SUCCESS':
......@@ -229,7 +252,7 @@ ButterBar.prototype.onCopyProgress_ = function(event) {
break;
case 'CANCELLED':
this.show(str('PASTE_CANCELLED'), {timeout: 1000});
this.show(str(this.transferType_() + '_CANCELLED'), {timeout: 1000});
break;
case 'ERROR':
......@@ -237,18 +260,20 @@ ButterBar.prototype.onCopyProgress_ = function(event) {
var name = event.error.data.name;
if (event.error.data.isDirectory)
name += '/';
this.showError_(strf('PASTE_TARGET_EXISTS_ERROR', name));
this.showError_(strf(this.transferType_() +
'_TARGET_EXISTS_ERROR', name));
} else if (event.error.reason === 'FILESYSTEM_ERROR') {
if (event.error.data.toGDrive &&
event.error.data.code === FileError.QUOTA_EXCEEDED_ERR) {
// The alert will be shown in FileManager.onCopyProgress_.
this.hide_();
} else {
this.showError_(strf('PASTE_FILESYSTEM_ERROR',
this.showError_(strf(this.transferType_() + '_FILESYSTEM_ERROR',
getFileErrorString(event.error.data.code)));
}
} else {
this.showError_(strf('PASTE_UNEXPECTED_ERROR', event.error));
this.showError_(strf(this.transferType_() + '_UNEXPECTED_ERROR',
event.error));
}
break;
......
......@@ -208,17 +208,39 @@ FileCopyManager.prototype.getStatus = function() {
completedFiles: 0,
completedDirectories: 0,
completedBytes: 0,
percentage: NaN,
pendingCopies: 0,
pendingMoves: 0,
filename: '' // In case pendingItems == 1
};
var pendingFile = null;
for (var i = 0; i < this.copyTasks_.length; i++) {
var task = this.copyTasks_[i];
rv.pendingFiles += task.pendingFiles.length;
rv.pendingDirectories += task.pendingDirectories.length;
var pendingFiles = task.pendingFiles.length;
var pendingDirectories = task.pendingDirectories.length;
rv.pendingFiles += pendingFiles;
rv.pendingDirectories += pendingDirectories;
rv.pendingBytes += task.pendingBytes;
rv.completedFiles += task.completedFiles.length;
rv.completedDirectories += task.completedDirectories.length;
rv.completedBytes += task.completedBytes;
if (task.move || task.deleteAfterCopy) {
rv.pendingMoves += pendingFiles + pendingDirectories;
} else {
rv.pendingCopies += pendingFiles + pendingDirectories;
}
if (task.pendingFiles.length === 1)
pendingFile = task.pendingFiles[0];
if (task.pendingDirectories.length === 1)
pendingFile = task.pendingDirectories[0];
}
rv.pendingItems = rv.pendingFiles + rv.pendingDirectories;
rv.completedItems = rv.completedFiles + rv.completedDirectories;
......@@ -228,24 +250,11 @@ FileCopyManager.prototype.getStatus = function() {
rv.totalItems = rv.pendingItems + rv.completedItems;
rv.totalBytes = rv.pendingBytes + rv.completedBytes;
return rv;
};
/**
* Get the overall progress data of all queued copy tasks.
* @return {Object} An object containing the following parameters:
* percentage - The percentage (0-1) of finished items.
* pendingItems - The number of pending/unfinished items.
*/
FileCopyManager.prototype.getProgress = function() {
var status = this.getStatus();
var percentage = status.completedBytes / status.totalBytes;
rv.percentage = rv.completedBytes / rv.totalBytes;
if (rv.pendingItems === 1)
rv.filename = pendingFile.name;
return {
percentage: percentage,
pendingItems: status.pendingItems
};
return rv;
};
/**
......
......@@ -69,20 +69,6 @@ FileCopyManagerWrapper.prototype.onEvent = function(eventName, eventArgs) {
this.dispatchEvent(event);
};
/**
* Get the overall progress data of all queued copy tasks.
* @return {Object} An object containing the following parameters:
* percentage - The percentage (0-1) of finished items.
* pendingItems - The number of pending/unfinished items.
*/
FileCopyManagerWrapper.prototype.getProgress = function() {
var cm = this.getCopyManagerSync_();
if (cm)
return cm.getProgress();
return {percentage: NaN, pendingItems: 0};
};
/**
* @return {Object} Status object.
*/
......@@ -105,7 +91,12 @@ FileCopyManagerWrapper.prototype.getStatus = function() {
totalItems: 0,
totalFiles: 0,
totalDirectories: 0,
totalBytes: 0
totalBytes: 0,
percentage: NaN,
pendingCopies: 0,
pendingMoves: 0,
filename: '' // In case pendingItems == 1
};
};
......
......@@ -586,11 +586,23 @@ chrome.fileBrowserPrivate = {
GSHEET_DOCUMENT_FILE_TYPE: 'Google spreadsheet',
GSLIDES_DOCUMENT_FILE_TYPE: 'Google presentation',
PASTE_ITEMS_REMAINING: 'Transferring $1 items',
PASTE_CANCELLED: 'Transfer cancelled.',
PASTE_TARGET_EXISTS_ERROR: 'Transfer failed, item exists: "$1"',
PASTE_FILESYSTEM_ERROR: 'Transfer failed. $1',
PASTE_UNEXPECTED_ERROR: 'Transfer failed, unexpected error: $1',
TRANSFER_ITEMS_REMAINING: 'Transferring $1 items',
TRANSFER_CANCELLED: 'Transfer cancelled.',
TRANSFER_TARGET_EXISTS_ERROR: 'Transfer failed, item exists: "$1"',
TRANSFER_FILESYSTEM_ERROR: 'Transfer failed. $1',
TRANSFER_UNEXPECTED_ERROR: 'Transfer failed, unexpected error: $1',
COPY_FILE_NAME: 'Copying $1',
COPY_ITEMS_REMAINING: 'Copying $1 items.',
COPY_CANCELLED: 'Copy operation cancelled.',
COPY_TARGET_EXISTS_ERROR: 'Copy operation failed, item exists: "$1"',
COPY_FILESYSTEM_ERROR: 'Copy operation failed. $1',
COPY_UNEXPECTED_ERROR: 'Copy operation failed, unexpected error: $1',
MOVE_FILE_NAME: 'Moving $1',
MOVE_ITEMS_REMAINING: 'Moving $1 items.',
MOVE_CANCELLED: 'Move cancelled.',
MOVE_TARGET_EXISTS_ERROR: 'Move failed, item exists: "$1"',
MOVE_FILESYSTEM_ERROR: 'Move failed. $1',
MOVE_UNEXPECTED_ERROR: 'Move failed, unexpected error: $1',
CANCEL_LABEL: 'Cancel',
OPEN_LABEL: 'Open',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment