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 {