diff --git a/apps/spreadsheeteditor/main/app/controller/FormulaDialog.js b/apps/spreadsheeteditor/main/app/controller/FormulaDialog.js index 5093269b1..45a977803 100644 --- a/apps/spreadsheeteditor/main/app/controller/FormulaDialog.js +++ b/apps/spreadsheeteditor/main/app/controller/FormulaDialog.js @@ -80,7 +80,8 @@ define([ } }, 'FormulaTab': { - 'function:apply': this.applyFunction + 'function:apply': this.applyFunction, + 'function:calculate': this.onCalculate }, 'Toolbar': { 'function:apply': this.applyFunction, @@ -353,6 +354,13 @@ define([ } }, + onCalculate: function(calc) { + var type = calc.type; + if (type === Asc.c_oAscCalculateType.All || type === Asc.c_oAscCalculateType.ActiveSheet) { + this.api && this.api.asc_calculate(type); + } + }, + sCategoryAll: 'All', sCategoryLast10: '10 last used', sCategoryLogical: 'Logical', diff --git a/apps/spreadsheeteditor/main/app/template/Toolbar.template b/apps/spreadsheeteditor/main/app/template/Toolbar.template index fae46d2d5..ffd9e89f0 100644 --- a/apps/spreadsheeteditor/main/app/template/Toolbar.template +++ b/apps/spreadsheeteditor/main/app/template/Toolbar.template @@ -172,6 +172,10 @@ +
+
+ +
diff --git a/apps/spreadsheeteditor/main/app/view/FormulaTab.js b/apps/spreadsheeteditor/main/app/view/FormulaTab.js index 21e3523f7..7b89d3870 100644 --- a/apps/spreadsheeteditor/main/app/view/FormulaTab.js +++ b/apps/spreadsheeteditor/main/app/view/FormulaTab.js @@ -57,6 +57,12 @@ define([ me.btnFormula.on('click', function(){ me.fireEvent('function:apply', [{name: 'more', origin: 'more'}]); }); + me.btnCalculate.on('click', function () { + me.fireEvent('function:calculate', [{type: Asc.c_oAscCalculateType.All}]); + }); + me.btnCalculate.menu.on('item:click', function (menu, item, e) { + me.fireEvent('function:calculate', [{type: item.value}]); + }); } return { options: {}, @@ -214,6 +220,18 @@ define([ Common.Utils.injectComponent($host.find('#slot-btn-more'), this.btnMore); this.lockedControls.push(this.btnMore); + this.btnCalculate = new Common.UI.Button({ + cls: 'btn-toolbar x-huge icon-top', + iconCls: 'btn-cell-group', + caption: this.txtCalculation, + split: true, + menu: true, + disabled: true, + lock: [_set.editCell, _set.selRangeEdit, _set.lostConnect, _set.coAuth] + }); + Common.Utils.injectComponent($host.find('#slot-btn-calculate'), this.btnCalculate); + this.lockedControls.push(this.btnCalculate); + Common.NotificationCenter.on('app:ready', this.onAppReady.bind(this)); }, @@ -226,6 +244,17 @@ define([ (new Promise(function (accept, reject) { accept(); })).then(function(){ + me.btnCalculate.updateHint([me.tipCalculateTheEntireWorkbook + Common.Utils.String.platformKey('F9'), me.tipCalculate]); + var _menu = new Common.UI.Menu({ + items: [ + {caption: me.textCalculateWorkbook, value: Asc.c_oAscCalculateType.All}, + {caption: me.textCalculateCurrentSheet, value: Asc.c_oAscCalculateType.ActiveSheet}, + //{caption: '--'}, + //{caption: me.textAutomatic, value: '', toggleGroup: 'menuCalcMode', checkable: true, checked: true}, + //{caption: me.textManual, value: '', toggleGroup: 'menuCalcMode', checkable: true, checked: false} + ] + }); + me.btnCalculate.setMenu(_menu); setEvents.call(me); }); }, @@ -480,7 +509,14 @@ define([ txtAdditional: 'Additional', txtFormula: 'Function', txtFormulaTip: 'Insert function', - txtMore: 'More functions' + txtMore: 'More functions', + txtCalculation: 'Calculation', + tipCalculate: 'Calculate', + textCalculateWorkbook: 'Calculate workbook', + textCalculateCurrentSheet: 'Calculate current sheet', + textAutomatic: 'Automatic', + textManual: 'Manual', + tipCalculateTheEntireWorkbook: 'Calculate the entire workbook' } }()), SSE.Views.FormulaTab || {})); }); diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index b644c07c0..894f3aa36 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -1633,6 +1633,13 @@ "SSE.Views.FormulaTab.txtFormulaTip": "Insert function", "SSE.Views.FormulaTab.txtMore": "More functions", "SSE.Views.FormulaTab.txtRecent": "Recently used", + "SSE.Views.FormulaTab.txtCalculation": "Calculation", + "SSE.Views.FormulaTab.tipCalculate": "Calculate", + "SSE.Views.FormulaTab.textCalculateWorkbook": "Calculate workbook", + "SSE.Views.FormulaTab.textCalculateCurrentSheet": "Calculate current sheet", + "SSE.Views.FormulaTab.textAutomatic": "Automatic", + "SSE.Views.FormulaTab.textManual": "Manual", + "SSE.Views.FormulaTab.tipCalculateTheEntireWorkbook": "Calculate the entire workbook", "SSE.Views.GroupDialog.cancelButtonText": "Cancel", "SSE.Views.GroupDialog.okButtonText": "OK", "SSE.Views.GroupDialog.textColumns": "Columns",