diff --git a/apps/common/main/lib/component/MenuItem.js b/apps/common/main/lib/component/MenuItem.js
index e60fff8d29..224a1f6fab 100644
--- a/apps/common/main/lib/component/MenuItem.js
+++ b/apps/common/main/lib/component/MenuItem.js
@@ -106,20 +106,22 @@ define([
dataHintDirection: '',
dataHintOffset: '',
dataHintTitle: '',
- scaling: true
+ scaling: true,
+ header : ''
},
tagName : 'li',
template: _.template([
- ''
+ '',
+ '<% } %>'
].join('')),
initialize : function(options) {
@@ -144,6 +146,7 @@ define([
this.iconImg = me.options.iconImg;
this.hint = me.options.hint;
this.rendered = false;
+ this.header = me.options.header;
if (this.menu !== null && !(this.menu instanceof Common.UI.Menu) && !(this.menu instanceof Common.UI.MenuSimple)) {
this.menu = new Common.UI.Menu(_.extend({}, me.options.menu));
@@ -173,7 +176,8 @@ define([
iconCls : me.iconCls,
iconImg : me.iconImg,
style : me.style,
- options : me.options
+ options : me.options,
+ header : me.header
}));
if (me.menu) {
diff --git a/apps/common/main/resources/less/toolbar.less b/apps/common/main/resources/less/toolbar.less
index ece052d16c..5f3397c3ce 100644
--- a/apps/common/main/resources/less/toolbar.less
+++ b/apps/common/main/resources/less/toolbar.less
@@ -1146,6 +1146,11 @@ section .field-styles {
align-items: center;
}
}
+ .menu-header {
+ font-weight: bold;
+ cursor: default;
+ padding: 5px 20px;
+ }
}
.background-plugins {
diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolderExt.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolderExt.js
index 5883f4ed73..dd3ec2097a 100644
--- a/apps/spreadsheeteditor/main/app/controller/DocumentHolderExt.js
+++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolderExt.js
@@ -3308,12 +3308,12 @@ define([], function () {
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.formulaWithoutBorders] = [me.txtPasteBorders, 0];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.formulaColumnWidth] = [me.txtPasteColWidths, 0];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.mergeConditionalFormating] = [me.txtPasteMerge, 0];
- me._arrSpecialPaste[Asc.c_oSpecialPasteProps.transpose] = [me.txtPasteTranspose, 0];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.pasteOnlyValues] = [me.txtPasteValues, 1];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.valueNumberFormat] = [me.txtPasteValNumFormat, 1];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.valueAllFormating] = [me.txtPasteValFormat, 1];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.pasteOnlyFormating] = [me.txtPasteFormat, 2];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.link] = [me.txtPasteLink, 2];
+ me._arrSpecialPaste[Asc.c_oSpecialPasteProps.transpose] = [me.txtPasteTranspose, 2];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.picture] = [me.txtPastePicture, 2];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.linkedPicture] = [me.txtPasteLinkPicture, 2];
me._arrSpecialPaste[Asc.c_oSpecialPasteProps.sourceformatting] = [me.txtPasteSourceFormat, 2];
@@ -3345,37 +3345,48 @@ define([], function () {
groups[i] = [];
}
- var importText;
+ var importText, pasteItem;
+
_.each(pasteItems, function(menuItem, index) {
- if (menuItem == Asc.c_oSpecialPasteProps.useTextImport) {
- importText = new Common.UI.MenuItem({
- caption: me._arrSpecialPaste[menuItem][0] + (me.hkSpecPaste[menuItem] ? ' (' + me.hkSpecPaste[menuItem] + ')' : ''),
- value: menuItem,
- checkable: true,
- toggleGroup : 'specialPasteGroup'
- }).on('click', _.bind(me.onSpecialPasteItemClick, me));
- me._arrSpecialPaste[menuItem][2] = importText;
- } else if (me._arrSpecialPaste[menuItem]) {
+ if (me._arrSpecialPaste[menuItem]) {
var mnu = new Common.UI.MenuItem({
caption: me._arrSpecialPaste[menuItem][0] + (me.hkSpecPaste[menuItem] ? ' (' + me.hkSpecPaste[menuItem] + ')' : ''),
value: menuItem,
checkable: true,
- toggleGroup : 'specialPasteGroup'
+ toggleGroup: 'specialPasteGroup'
}).on('click', _.bind(me.onSpecialPasteItemClick, me));
- groups[me._arrSpecialPaste[menuItem][1]].push(mnu);
+
+ if (menuItem == Asc.c_oSpecialPasteProps.paste) {
+ pasteItem = mnu;
+ } else if (menuItem == Asc.c_oSpecialPasteProps.useTextImport) {
+ importText = mnu;
+ } else {
+ groups[me._arrSpecialPaste[menuItem][1]].push(mnu);
+ }
+
me._arrSpecialPaste[menuItem][2] = mnu;
}
});
- var newgroup = false;
+ var groupTitles = [me.txtFormula, me.txtValue, me.txtOther];
+
+ if (pasteItem) {
+ menu.addItem(pasteItem);
+ }
+
for (var i = 0; i < 3; i++) {
- if (newgroup && groups[i].length>0) {
- menu.addItem(new Common.UI.MenuItem({ caption: '--' }));
- newgroup = false;
+ if (groups[i].length > 0) {
+ if (menu.items.length > 0) {
+ menu.addItem(new Common.UI.MenuItem({ caption: '--' }));
+ }
+ menu.addItem(new Common.UI.MenuItem({
+ header: groupTitles[i],
+ disabled: true,
+ cls: 'menu-header'
+ }));
+ _.each(groups[i], function (menuItem, index) {
+ menu.addItem(menuItem);
+ });
}
- _.each(groups[i], function(menuItem, index) {
- menu.addItem(menuItem);
- newgroup = true;
- });
}
(menu.items.length>0) && menu.items[0].setChecked(true, true);
me._state.lastSpecPasteChecked = (menu.items.length>0) ? menu.items[0] : null;
diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json
index d264b054e2..27f76cc93a 100644
--- a/apps/spreadsheeteditor/main/locale/en.json
+++ b/apps/spreadsheeteditor/main/locale/en.json
@@ -962,6 +962,9 @@
"SSE.Controllers.DocumentHolder.txtWarnUrl": "Clicking this link can be harmful to your device and data.
Are you sure you want to continue?",
"SSE.Controllers.DocumentHolder.txtWidth": "Width",
"SSE.Controllers.DocumentHolder.warnFilterError": "You need at least one field in the Values area in order to apply a value filter.",
+ "SSE.Controllers.DocumentHolder.txtFormula": "Formula",
+ "SSE.Controllers.DocumentHolder.txtValue": "Value",
+ "SSE.Controllers.DocumentHolder.txtOther": "Other",
"SSE.Controllers.FormulaDialog.sCategoryAll": "All",
"SSE.Controllers.FormulaDialog.sCategoryCube": "Cube",
"SSE.Controllers.FormulaDialog.sCategoryCustom": "Custom",