aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuka Trovic <luka@nextcloud.com>2022-11-29 06:37:32 +0100
committerLuka Trovic <luka@nextcloud.com>2023-01-30 20:27:16 +0100
commitcacffecba5f54b6c218a22f3450afd3f15e4126f (patch)
treefb16dd603cedd178f750540e7131ca61dae654fd
parent3bfc5a4d959faebd8a76470d2832390598c7981e (diff)
downloadnextcloud-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.js23
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