MDL-43827 filepicker: Multiple actions not accessible using keyboard
authorMihail Geshoski <mihail@moodle.com>
Thu, 21 Dec 2017 06:06:25 +0000 (14:06 +0800)
committerMihail Geshoski <mihail@moodle.com>
Thu, 21 Dec 2017 06:06:25 +0000 (14:06 +0800)
lib/form/filemanager.js

index 3ab1ddd..7a9a620 100644 (file)
@@ -788,6 +788,7 @@ M.form_filemanager.init = function(Y, options) {
         },
         setup_select_file: function() {
             var selectnode = this.selectnode;
+            var scope = this;
             // bind labels with corresponding inputs
             selectnode.all('.fp-saveas,.fp-path,.fp-author,.fp-license').each(function (node) {
                 node.all('label').set('for', node.one('input,select').generateID());
@@ -798,12 +799,10 @@ M.form_filemanager.init = function(Y, options) {
                 e.preventDefault();
                 this.update_file();
             }, this);
-            selectnode.all('form').on('keydown', function(e) {
-                if (e.keyCode == 13) {
-                    e.preventDefault();
-                    this.update_file();
-                }
-            }, this);
+            selectnode.all('form input').on('key', function(e) {
+                e.preventDefault();
+                scope.update_file();
+            }, 'enter');
             selectnode.one('.fp-file-download').on('click', function(e) {
                 e.preventDefault();
                 if (this.selectui.fileinfo.type != 'folder') {
@@ -922,6 +921,11 @@ M.form_filemanager.init = function(Y, options) {
                 // TODO if changed asked to confirm, the same with close button
                 this.selectui.hide();
             }, this);
+            selectnode.all('.fp-file-update, .fp-file-download, .fp-file-delete, .fp-file-zip, .fp-file-unzip, ' +
+                '.fp-file-setmain, .fp-file-cancel').on('key', function(e) {
+                    e.preventDefault();
+                    this.simulate('click');
+            }, 'enter');
         },
         get_parent_folder_name: function(node) {
             if (node.type != 'folder' || node.filepath.length < node.fullname.length+1) {