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",