diff --git a/src/extensionsIntegrated/MigrateAssist/migrator.js b/src/extensionsIntegrated/MigrateAssist/migrator.js index 565fc33fab..6555386e79 100644 --- a/src/extensionsIntegrated/MigrateAssist/migrator.js +++ b/src/extensionsIntegrated/MigrateAssist/migrator.js @@ -42,6 +42,7 @@ define(function (require, exports, module) { TaskManager = require("features/TaskManager"), PreferencesManager = require("preferences/PreferencesManager"), CommandManager = require("command/CommandManager"), + FileUtils = require("file/FileUtils"), Commands = require("command/Commands"), Constants = require("./constants"); @@ -195,6 +196,16 @@ define(function (require, exports, module) { Strings.MIGRATE_PROGRESS_TITLE, StringUtils.format(Strings.MIGRATE_PROGRESS_STATUS, 0, totalFiles), ``); + + // Open the task list rather than leaving the copy behind a click. Nothing else announces the + // migration now that there is no dialog up front, so without this a user who happens to be + // looking elsewhere never learns why the app is busy. + // Guarded because show() toggles the dropdown: firing it while one is already open would + // close that instead. TaskManager closes this itself once the last task finishes. + if (!$(".dropdown-menu:visible").length) { + task.show(); + } + return { update: function (done) { task.setProgressPercent(Math.round((done / totalFiles) * 100)); @@ -219,9 +230,8 @@ define(function (require, exports, module) { * it finished would undo the point of moving progress out of a dialog in the first place. */ /** - * Errors are the one thing that earns an interruption here. Everything else rides on the status - * bar task: if that is already telling the user what is happening, a dialog repeating it is just - * another click for them. + * Nothing interrupts while the transfer is running: the status bar task carries that. Dialogs + * are reserved for the two moments the user has to act on, finishing and failing. */ function _errorDialog(title, message) { Dialogs.showModalDialog(DefaultDialogs.DIALOG_ID_ERROR, title, message); @@ -246,23 +256,76 @@ define(function (require, exports, module) { + StringUtils.format(Strings.CMD_MIGRATE_DATA, Constants.getLegacyDomainName()); } - function _showCompletion(migratedFiles, failed) { - const $actions = $("
").addClass("migrate-assist-toast-actions"); - const $reload = $("