summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authoryawano <yawano@chromium.org>2015-02-16 01:15:21 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-16 09:16:08 +0000
commit541151d9673721c7c55682bad0366e01d6546909 (patch)
tree6e6f4119fa79e874b87678cf86cffd4cff00fbe1 /ui
parenta928f942c335761534e69e8816ee85a7b5339e0f (diff)
downloadchromium_src-541151d9673721c7c55682bad0366e01d6546909.zip
chromium_src-541151d9673721c7c55682bad0366e01d6546909.tar.gz
chromium_src-541151d9673721c7c55682bad0366e01d6546909.tar.bz2
Fix more actions button to show its menu.
This CL also changes button label from more actions to open with. BUG=455995 TEST=Manually tested as described in the issue. Review URL: https://codereview.chromium.org/927003002 Cr-Commit-Position: refs/heads/master@{#316443}
Diffstat (limited to 'ui')
-rw-r--r--ui/file_manager/file_manager/foreground/js/file_tasks.js15
-rw-r--r--ui/file_manager/file_manager/foreground/js/task_controller.js55
-rw-r--r--ui/file_manager/integration_tests/file_manager/tasks.js4
3 files changed, 48 insertions, 26 deletions
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks.js b/ui/file_manager/file_manager/foreground/js/file_tasks.js
index 3229421..5b405aa 100644
--- a/ui/file_manager/file_manager/foreground/js/file_tasks.js
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks.js
@@ -69,6 +69,16 @@ FileTasks.VIDEO_PLAYER_ID = 'jcgeabjmjgoblfofpppfkcoakmfobdko';
FileTasks.ZIP_UNPACKER_TASK_ID = 'oedeeodfidgoollimchfdnbmhcpnklnd|app|zip';
/**
+ * Available actions in task menu button.
+ * @enum {string}
+ */
+FileTasks.TaskMenuButtonActions = {
+ ShowMenu: 'ShowMenu',
+ RunTask: 'RunTask',
+ ChangeDefaultAction: 'ChangeDefaultAction'
+};
+
+/**
* Returns URL of the Chrome Web Store which show apps supporting the given
* file-extension and mime-type.
*
@@ -651,7 +661,8 @@ FileTasks.prototype.display_ = function(combobutton) {
str('ACTION_OPEN'));
} else {
combobutton.defaultItem = {
- label: loadTimeData.getString('MORE_ACTIONS')
+ action: FileTasks.TaskMenuButtonActions.ShowMenu,
+ label: str('OPEN_WITH_BUTTON_LABEL')
};
}
@@ -670,6 +681,7 @@ FileTasks.prototype.display_ = function(combobutton) {
if (this.defaultTask_) {
combobutton.addSeparator();
var changeDefaultMenuItem = combobutton.addDropDownItem({
+ action: FileTasks.TaskMenuButtonActions.ChangeDefaultAction,
label: loadTimeData.getString('CHANGE_DEFAULT_MENU_ITEM')
});
changeDefaultMenuItem.classList.add('change-default');
@@ -732,6 +744,7 @@ FileTasks.prototype.createCombobuttonItem_ = function(task, opt_title,
opt_bold,
opt_isDefault) {
return {
+ action: FileTasks.TaskMenuButtonActions.RunTask,
label: opt_title || task.title,
iconUrl: task.iconUrl,
iconType: task.iconType,
diff --git a/ui/file_manager/file_manager/foreground/js/task_controller.js b/ui/file_manager/file_manager/foreground/js/task_controller.js
index 055684b..90da380 100644
--- a/ui/file_manager/file_manager/foreground/js/task_controller.js
+++ b/ui/file_manager/file_manager/foreground/js/task_controller.js
@@ -134,35 +134,42 @@ TaskController.prototype.onTaskItemClicked_ = function(event) {
if (!selection.tasks)
return;
- if (event.item.task) {
- // Task field doesn't exist on change-default dropdown item.
- selection.tasks.execute(event.item.task.taskId);
- } else {
- var extensions = [];
-
- for (var i = 0; i < selection.entries.length; i++) {
- var match = /\.(\w+)$/g.exec(selection.entries[i].toURL());
- if (match) {
- var ext = match[1].toUpperCase();
- if (extensions.indexOf(ext) == -1) {
- extensions.push(ext);
+ switch (event.item.action) {
+ case FileTasks.TaskMenuButtonActions.ShowMenu:
+ this.ui_.taskMenuButton.showMenu(false);
+ break;
+ case FileTasks.TaskMenuButtonActions.RunTask:
+ selection.tasks.execute(event.item.task.taskId);
+ break;
+ case FileTasks.TaskMenuButtonActions.ChangeDefaultAction:
+ var extensions = [];
+
+ for (var i = 0; i < selection.entries.length; i++) {
+ var match = /\.(\w+)$/g.exec(selection.entries[i].toURL());
+ if (match) {
+ var ext = match[1].toUpperCase();
+ if (extensions.indexOf(ext) == -1) {
+ extensions.push(ext);
+ }
}
}
- }
- var format = '';
+ var format = '';
- if (extensions.length == 1) {
- format = extensions[0];
- }
+ if (extensions.length == 1) {
+ format = extensions[0];
+ }
- // Change default was clicked. We should open "change default" dialog.
- selection.tasks.showTaskPicker(
- this.ui_.defaultTaskPicker,
- loadTimeData.getString('CHANGE_DEFAULT_MENU_ITEM'),
- strf('CHANGE_DEFAULT_CAPTION', format),
- this.changeDefaultTask_.bind(this, selection),
- true);
+ // Change default was clicked. We should open "change default" dialog.
+ selection.tasks.showTaskPicker(
+ this.ui_.defaultTaskPicker,
+ loadTimeData.getString('CHANGE_DEFAULT_MENU_ITEM'),
+ strf('CHANGE_DEFAULT_CAPTION', format),
+ this.changeDefaultTask_.bind(this, selection),
+ true);
+ break;
+ default:
+ assertNotReached('Unknown action.');
}
};
diff --git a/ui/file_manager/integration_tests/file_manager/tasks.js b/ui/file_manager/integration_tests/file_manager/tasks.js
index 4e081ed..742717f0 100644
--- a/ui/file_manager/integration_tests/file_manager/tasks.js
+++ b/ui/file_manager/integration_tests/file_manager/tasks.js
@@ -121,7 +121,9 @@ function defaultActionDialog(expectedTaskId, windowId) {
}).
then(function() {
return remoteCall.callRemoteTestUtil(
- 'fakeEvent', windowId, ['#tasks', 'select', {item: {}}]);
+ 'fakeEvent', windowId, ['#tasks', 'select', {
+ item: { action: 'ChangeDefaultAction' }
+ }]);
}).
then(function(result) {
chrome.test.assertTrue(result);