diff options
author | Luka Trovic <luka@nextcloud.com> | 2022-11-29 06:37:32 +0100 |
---|---|---|
committer | Luka Trovic <luka@nextcloud.com> | 2023-01-30 20:27:16 +0100 |
commit | cacffecba5f54b6c218a22f3450afd3f15e4126f (patch) | |
tree | fb16dd603cedd178f750540e7131ca61dae654fd | |
parent | 3bfc5a4d959faebd8a76470d2832390598c7981e (diff) | |
download | nextcloud-server-cacffecba5f54b6c218a22f3450afd3f15e4126f.tar.gz nextcloud-server-cacffecba5f54b6c218a22f3450afd3f15e4126f.zip |
feat: update newfilemenu.js for rich-workspace
Signed-off-by: Luka Trovic <luka@nextcloud.com>
-rw-r--r-- | apps/files/js/newfilemenu.js | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/apps/files/js/newfilemenu.js b/apps/files/js/newfilemenu.js index 5e6eb110e20..a101eccef29 100644 --- a/apps/files/js/newfilemenu.js +++ b/apps/files/js/newfilemenu.js @@ -81,10 +81,18 @@ if (action === 'upload') { OC.hideMenus(); } else { - event.preventDefault(); - this.$el.find('.menuitem.active').removeClass('active'); - $target.addClass('active'); - this._promptFileName($target); + var actionItem = _.filter(this._menuItems, function(item) { + return item.id === action + }).pop(); + if (typeof actionItem.useInput === 'undefined' || actionItem.useInput === true) { + event.preventDefault(); + this.$el.find('.menuitem.active').removeClass('active'); + $target.addClass('active'); + this._promptFileName($target); + } else { + actionItem.actionHandler(); + OC.hideMenus(); + } } }, @@ -198,8 +206,10 @@ templateName: actionSpec.templateName, iconClass: actionSpec.iconClass, fileType: actionSpec.fileType, + useInput: actionSpec.useInput, actionHandler: actionSpec.actionHandler, - checkFilename: actionSpec.checkFilename + checkFilename: actionSpec.checkFilename, + shouldShow: actionSpec.shouldShow, }); }, @@ -220,10 +230,11 @@ * Renders the menu with the currently set items */ render: function() { + const menuItems = this._menuItems.filter(item => !item.shouldShow || (item.shouldShow instanceof Function && item.shouldShow() === true)) this.$el.html(this.template({ uploadMaxHumanFileSize: 'TODO', uploadLabel: t('files', 'Upload file'), - items: this._menuItems + items: menuItems })); // Trigger upload action also with keyboard navigation on enter |