diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 83e9375fc..12e77708b 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -2300,7 +2300,7 @@ define([ // Title //$creation.append(h('h2.cp-creation-title', Messages.newButtonTitle)); - var newPadH3Title = Messages['button_new' + type]; // Messages.button_newform + var newPadH3Title = Messages._getKey('creation_new',[Messages.type[type]]); var title = h('div.cp-creation-title', [ UI.getFileIcon({type: type})[0], diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 3a664fcd4..170c43d76 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -330,26 +330,41 @@ define([ return $(".cp-app-drive-element-selected"); }; + var getNewPadTypes = function () { + var arr = []; + AppConfig.availablePadTypes.forEach(function (type) { + if (AppConfig.hiddenTypes.indexOf(type) !== -1) { return; } + if (!APP.loggedIn && AppConfig.registeredOnlyTypes && + AppConfig.registeredOnlyTypes.indexOf(type) !== -1) { + return; + } + arr.push(type); + }); + return arr; + }; // delete fc_openInCode // XXX var createContextMenu = function (common) { // XXX PREMIUM // XXX "Edit in Document" and "New Document" (and presentation) - var premiumP = common.checkRestrictedApp('presentation'); - var premiumD = common.checkRestrictedApp('doc'); var getOpenIn = function (app) { var icon = AppConfig.applicationsIcon[app]; var cls = icon.indexOf('cptools') === 0 ? 'cptools '+icon : 'fa '+icon; var html = '' + Messages.type[app]; return Messages._getKey('fc_openIn', [html]); }; + var restricted = {}; + var enabled = []; var isAppEnabled = function (app) { - if (!Array.isArray(AppConfig.availablePadTypes)) { return true; } - var registered = common.isLoggedIn() || !(AppConfig.registeredOnlyTypes || []).includes(app); - var restricted = common.checkRestrictedApp(app) < 0; - if (restricted === 0) { return 0; } - return AppConfig.availablePadTypes.includes(app) && registered && !restricted; + return enabled.includes(app); }; + getNewPadTypes().forEach(function (app) { + if (!Array.isArray(AppConfig.availablePadTypes)) { return void enabled.push(app); } + var registered = common.isLoggedIn() || !(AppConfig.registeredOnlyTypes || []).includes(app); + restricted[app] = common.checkRestrictedApp(app); + var e = AppConfig.availablePadTypes.includes(app) && registered && restricted[app] >= 0; + if (e) { enabled.push(app); } + }); var menu = h('div.cp-contextmenu.dropdown.cp-unselectable', [ h('ul.dropdown-menu', { 'role': 'menu', @@ -377,11 +392,11 @@ define([ 'tabindex': '-1', 'data-icon': 'fa-arrows', }), getOpenIn('sheet'))) : undefined, - isAppEnabled('doc') ? h('li', UI.setHTML(h('a.cp-app-drive-context-openindoc.dropdown-item' + (premiumD === 0 ? '.cp-app-disabled' : ''), { + isAppEnabled('doc') ? h('li', UI.setHTML(h('a.cp-app-drive-context-openindoc.dropdown-item' + (restricted.doc === 0 ? '.cp-app-disabled' : ''), { 'tabindex': '-1', 'data-icon': 'fa-arrows', }), getOpenIn('doc'))) : undefined, - isAppEnabled('presentation') ? h('li', UI.setHTML(h('a.cp-app-drive-context-openinpresentation.dropdown-item' + (premiumP === 0 ? '.cp-app-disabled' : ''), { + isAppEnabled('presentation') ? h('li', UI.setHTML(h('a.cp-app-drive-context-openinpresentation.dropdown-item' + (restricted.presentation === 0 ? '.cp-app-disabled' : ''), { 'tabindex': '-1', 'data-icon': 'fa-arrows', }), getOpenIn('presentation'))) : undefined, @@ -431,63 +446,23 @@ define([ 'data-icon': faUploadFolder, }, Messages.uploadFolderButton)), $separator.clone()[0], - isAppEnabled('pad') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.pad, - 'data-type': 'pad' - }, Messages.button_newpad)) : undefined, - isAppEnabled('code') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { + h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.code, - 'data-type': 'code' - }, Messages.button_newcode)) : undefined, - isAppEnabled('sheet') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.sheet, - 'data-type': 'sheet' - }, Messages.button_newsheet)) : undefined, + 'data-icon': AppConfig.applicationsIcon.link, + 'data-type': 'link' + }, Messages.fm_link_new)), h('li.dropdown-submenu', [ h('a.cp-app-drive-context-newdocmenu.dropdown-item', { 'tabindex': '-1', 'data-icon': "fa-plus", - }, Messages.fm_morePads), - h("ul.dropdown-menu", [ - isAppEnabled('doc') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable' + (premiumD === 0 ? '.cp-app-disabled' : ''), { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.doc, - 'data-type': 'doc' - }, Messages.button_newdoc)) : undefined, - isAppEnabled('presentation') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable' + (premiumP === 0 ? '.cp-app-disabled' : ''), { + }, Messages.fm_newFile), + h("ul.dropdown-menu", getNewPadTypes().map(function (app) { + return isAppEnabled(app) ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable' + (restricted[app] === 0 ? '.cp-app-disabled' : ''), { 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.presentation, - 'data-type': 'presentation' - }, Messages.button_newpresentation)) : undefined, - isAppEnabled('whiteboard') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.whiteboard, - 'data-type': 'whiteboard' - }, Messages.button_newwhiteboard)) : undefined, - isAppEnabled('kanban') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.kanban, - 'data-type': 'kanban' - }, Messages.button_newkanban)) : undefined, - isAppEnabled('form') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.form, - 'data-type': 'form' - }, Messages.button_newform)) : undefined, - isAppEnabled('slide') ? h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.slide, - 'data-type': 'slide' - }, Messages.button_newslide)) : undefined, - h('li', h('a.cp-app-drive-context-newdoc.dropdown-item.cp-app-drive-context-editable', { - 'tabindex': '-1', - 'data-icon': AppConfig.applicationsIcon.link, - 'data-type': 'link' - }, Messages.fm_link_new)), - ]), + 'data-icon': AppConfig.applicationsIcon[app], + 'data-type': app + }, Messages.type[app])) : undefined; + })), ]), $separator.clone()[0], h('li', h('a.cp-app-drive-context-empty.dropdown-item.cp-app-drive-context-editable', { @@ -1270,7 +1245,7 @@ define([ if (className === 'uploadfiles') { return; } if (className === 'uploadfolder') { return !APP.allowFolderUpload; } if (className === 'newdoc') { - return AppConfig.availablePadTypes.indexOf($el.attr('data-type')) === -1; + return; } }; } else { @@ -2680,18 +2655,6 @@ define([ }); }; - var getNewPadTypes = function () { - var arr = []; - AppConfig.availablePadTypes.forEach(function (type) { - if (AppConfig.hiddenTypes.indexOf(type) !== -1) { return; } - if (!APP.loggedIn && AppConfig.registeredOnlyTypes && - AppConfig.registeredOnlyTypes.indexOf(type) !== -1) { - return; - } - arr.push(type); - }); - return arr; - }; var showUploadFilesModal = function () { var $input = $('', { 'type': 'file',