Bladeren bron

Merge pull request #35474 from nextcloud/feature/rich-workspace-visibility

Update rich-workspace visibility
Julius Härtl 1 jaar geleden
bovenliggende
commit
9f2495cc09
1 gewijzigde bestanden met toevoegingen van 17 en 6 verwijderingen
  1. 17 6
      apps/files/js/newfilemenu.js

+ 17 - 6
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