diff --git a/apps/spreadsheeteditor/main/app/controller/FormulaDialog.js b/apps/spreadsheeteditor/main/app/controller/FormulaDialog.js
index 5093269b19..45a977803b 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 fae46d2d51..ffd9e89f09 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 21e3523f71..af51c513b1 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', [{name: 'calculate', type: Asc.c_oAscCalculateType.All}]);
+ });
+ me.btnCalculate.menu.on('item:click', function (menu, item, e) {
+ me.fireEvent('function:calculate', [{name: item.caption, 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.txtCalculate,
+ split: true,
+ menu: true,
+ disabled: true,
+ lock: [_set.editCell, _set.editText, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _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, me.tipCalculate]);
+ var _menu = new Common.UI.Menu({
+ items: [
+ {caption: me.textEntireWorkbook, value: Asc.c_oAscCalculateType.All},
+ {caption: me.textCurrentSheet, value: Asc.c_oAscCalculateType.ActiveSheet},
+ {caption: '--'},
+ {caption: me.textAutomatic, value: '', toggleGroup: 'menuCoauthMode', checkable: true, checked: true},
+ {caption: me.textManual, value: '', toggleGroup: 'menuCoauthMode', 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',
+ txtCalculate: 'Calculate',
+ tipCalculate: 'Calculate',
+ textEntireWorkbook: 'Entire Workbook',
+ textCurrentSheet: 'Current Sheet',
+ textAutomatic: 'Automatic',
+ textManual: 'Manual',
+ tipCalculateTheEntireWorkbook: 'Calculate the entire workbook'
}
}()), SSE.Views.FormulaTab || {}));
});