diff --git a/www/code/inner.js b/www/code/inner.js index 080062c8f..b556b3f4c 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -154,17 +154,8 @@ define([ var $codeMirrorContainer = $('#cp-app-code-container'); var helpMenu = framework._.sfCommon.createHelpMenu(['text', 'code']); $codeMirrorContainer.prepend(helpMenu.menu); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); + + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); framework._.toolbar.$drawer.append($helpMenuButton); }; diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index f1101a0ee..5896e9301 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -576,16 +576,19 @@ define([ }); }; - UIElements.getEntryFromButton = function ($button) { - // If the button contains an icon, clone it and re-use it + UIElements.getEntryFromButton = function ($button, id = undefined) { let $icon = $button.find('> i'); - let icon = $icon.length ? $icon.clone() : undefined; - + let attributes = { + 'class': $button.attr('class') + }; + if (id !== undefined) { + attributes['id'] = id; + } return UIElements.createDropdownEntry({ tag: 'a', - attributes: {'class': $button.attr('class')}, + attributes: attributes, content: [ - icon, + h('i',{ 'class': $icon.attr('class') }), h('span', $button.text()) ], action: function () { @@ -594,7 +597,8 @@ define([ } }); }; - + + UIElements.createButton = function (common, type, rightside, data, callback) { var AppConfig = common.getAppConfig(); var button; diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 96d14a0ca..213b5d151 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -2751,18 +2751,7 @@ Uncaught TypeError: Cannot read property 'calculatedType' of null History.create(common, histConfig); }); - var $historyDropdown = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': $historyButton.attr('class') }, - content: [ - h('i', { 'class': $historyButton.children('i').attr('class') }), - h('span', $historyButton.text()) - ], - - action: function () { - $historyButton.click(); - } - }); + var $historyDropdown = UIElements.getEntryFromButton($historyButton); $historyDropdown.appendTo(toolbar.$drawer); // Snapshots @@ -2883,17 +2872,7 @@ Uncaught TypeError: Cannot read property 'calculatedType' of null var helpMenu = APP.helpMenu = common.createHelpMenu(['beta', 'oo']); $('#cp-app-oo-editor').prepend(common.getBurnAfterReadingWarning()); $('#cp-app-oo-editor').prepend(helpMenu.menu); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); toolbar.$drawer.append($helpMenuButton); } diff --git a/www/form/inner.js b/www/form/inner.js index 044ef4ade..3428d98b6 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -4645,17 +4645,7 @@ define([ var $toolbarContainer = $('#cp-toolbar'); var helpMenu = framework._.sfCommon.createHelpMenu(['text', 'pad']); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); $toolbarContainer.after(helpMenu.menu); framework._.toolbar.$drawer.append($helpMenuButton); if (!APP.isEditor && !priv.form_auditorKey) { diff --git a/www/kanban/inner.js b/www/kanban/inner.js index b94d394cb..e3579e952 100644 --- a/www/kanban/inner.js +++ b/www/kanban/inner.js @@ -1119,18 +1119,7 @@ define([ var helpMenu = framework._.sfCommon.createHelpMenu(['kanban']); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); - + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); $toolbarContainer.prepend(helpMenu.menu); framework._.toolbar.$drawer.append($helpMenuButton); }; diff --git a/www/pad/inner.js b/www/pad/inner.js index 16907bea9..2bc815c19 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -345,18 +345,8 @@ define([ }, function () { UI.alert(getSettings()); }); - var $settings = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': $settingsButton.attr('class') }, - content: [ - h('i', { 'class': $settingsButton.children('i').attr('class') }), - h('span', $settingsButton.text()) - ], - action: function () { - UI.alert(getSettings()); - } - }); + var $settings = UIElements.getEntryFromButton($settingsButton); framework._.toolbar.$drawer.append($settings); }; @@ -364,17 +354,7 @@ define([ var mkHelpMenu = function(framework) { var $toolbarContainer = $('.cke_toolbox_main'); var helpMenu = framework._.sfCommon.createHelpMenu(['text', 'pad']); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); $toolbarContainer.before(helpMenu.menu); framework._.toolbar.$drawer.append($helpMenuButton); diff --git a/www/slide/inner.js b/www/slide/inner.js index e25440be2..8932e474b 100644 --- a/www/slide/inner.js +++ b/www/slide/inner.js @@ -332,19 +332,7 @@ define([ text: Messages.slideOptionsText, name: 'options' }); - var $options = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': $optionsButton.attr('class') }, - content: [ - h('i', { 'class': $optionsButton.children('i').attr('class') }), - h('span', $optionsButton.text()) - ], - action: function () { - $options.click(function () { - $('body').append(createPrintDialog()); - }); - } - }); + var $options = UIElements.getEntryFromButton($optionsButton); framework._.toolbar.$theme.append($options); metadataMgr.onChange(function () { @@ -400,17 +388,7 @@ define([ $backgroundPicker.val(backColor); $backgroundPicker.click(); }); - var $backButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': $back.attr('class'), 'id': SLIDE_BACKCOLOR_ID }, - content: [ - h('i', { 'class': $back.children('i').attr('class')}), - h('span', $back.text()) - ], - action: function () { - $back.click(); - } - }); + var $backButton = UIElements.getEntryFromButton($back, SLIDE_BACKCOLOR_ID); var $foregroundPicker = $('', { type: 'color', value: textColor }) .css({ display: 'none', }) @@ -427,17 +405,7 @@ define([ $foregroundPicker.click(); }); - var $textButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': $text.attr('class'),'id': SLIDE_COLOR_ID }, - content: [ - h('i', { 'class': $text.children('i').attr('class') }), - h('span', $text.text()) - ], - action: function () { - $text.click(); - } - }); + var $textButton = UIElements.getEntryFromButton($text, SLIDE_COLOR_ID); var $testColor = $('', { type: 'color', value: '!' }); if ($testColor.attr('type') !== "color" || $testColor.val() === '!') { return; } @@ -474,17 +442,7 @@ define([ var mkHelpMenu = function (framework) { var $codeMirrorContainer = $('#cp-app-slide-editor-container'); var helpMenu = framework._.sfCommon.createHelpMenu(['text', 'slide']); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); $codeMirrorContainer.prepend(helpMenu.menu); framework._.toolbar.$drawer.append($helpMenuButton); }; diff --git a/www/whiteboard/inner.js b/www/whiteboard/inner.js index 8b0d29b83..27c0df606 100644 --- a/www/whiteboard/inner.js +++ b/www/whiteboard/inner.js @@ -297,17 +297,8 @@ define([ var mkHelpMenu = function (framework) { var $appContainer = $('#cp-app-whiteboard-container'); var helpMenu = framework._.sfCommon.createHelpMenu(['whiteboard']); - var $helpMenuButton = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': helpMenu.button.attr('class') }, - content: [ - h('i', { 'class': helpMenu.button.children('i').attr('class') }), - h('span', helpMenu.button.text()) - ], - action: function () { - helpMenu.button.click(); - } - }); + + var $helpMenuButton = UIElements.getEntryFromButton(helpMenu.button); $appContainer.prepend(helpMenu.menu); framework._.toolbar.$drawer.append($helpMenuButton); }; @@ -445,21 +436,7 @@ define([ // Export to drive as PNG var $saveToDriveButton = framework._.sfCommon.createButton('savetodrive', true, {}); - var $saveToDrive = UIElements.createDropdownEntry({ - tag: 'a', - attributes: { 'class': $saveToDriveButton.attr('class') }, - content: [ - h('i', { 'class': $saveToDriveButton.children('i').attr('class') }), - h('span', $saveToDriveButton.text()) - ], - action: function () { - var defaultName = framework._.title.getTitle(); - UI.prompt(Messages.exportPrompt, defaultName + '.png', function (name) { - if (name === null || !name.trim()) { return; } - APP.upload(name); - }); - } - }); + var $saveToDrive = UIElements.getEntryFromButton($saveToDriveButton); $saveToDrive.appendTo($drawer); } else {