diff --git a/apps/spreadsheeteditor/main/app/controller/PivotTable.js b/apps/spreadsheeteditor/main/app/controller/PivotTable.js index b59919c80..88d0a0341 100644 --- a/apps/spreadsheeteditor/main/app/controller/PivotTable.js +++ b/apps/spreadsheeteditor/main/app/controller/PivotTable.js @@ -386,6 +386,7 @@ define([ var pivotInfo = info.asc_getPivotTableInfo(); Common.Utils.lockControls(SSE.enumLock.noPivot, !pivotInfo, {array: this.view.lockedControls}); + Common.Utils.lockControls(SSE.enumLock.pivotLock, pivotInfo && (info.asc_getLockedPivotTable()===true), {array: this.view.lockedControls}); Common.Utils.lockControls(SSE.enumLock.editPivot, !!pivotInfo, {array: [this.view.btnAddPivot]}); if (pivotInfo) diff --git a/apps/spreadsheeteditor/main/app/view/CellRangeDialog.js b/apps/spreadsheeteditor/main/app/view/CellRangeDialog.js index de07e7116..8bc2fa066 100644 --- a/apps/spreadsheeteditor/main/app/view/CellRangeDialog.js +++ b/apps/spreadsheeteditor/main/app/view/CellRangeDialog.js @@ -111,10 +111,12 @@ define([ if (settings.api) { me.api = settings.api; + me.wrapEvents = { + onApiRangeChanged: _.bind(me.onApiRangeChanged, me) + }; me.api.asc_setSelectionDialogMode(settings.type, settings.range ? settings.range : ''); - me.api.asc_unregisterCallback('asc_onSelectionRangeChanged', _.bind(me.onApiRangeChanged, me)); - me.api.asc_registerCallback('asc_onSelectionRangeChanged', _.bind(me.onApiRangeChanged, me)); + me.api.asc_registerCallback('asc_onSelectionRangeChanged', me.wrapEvents.onApiRangeChanged); Common.NotificationCenter.trigger('cells:range', settings.type); } @@ -177,8 +179,10 @@ define([ }, onClose: function(event) { - if (this.api) + if (this.api) { this.api.asc_setSelectionDialogMode(Asc.c_oAscSelectionDialogType.None); + this.api.asc_unregisterCallback('asc_onSelectionRangeChanged', this.wrapEvents.onApiRangeChanged); + } Common.NotificationCenter.trigger('cells:range', Asc.c_oAscSelectionDialogType.None); SSE.getController('RightMenu').SetDisabled(false); diff --git a/apps/spreadsheeteditor/main/app/view/PivotTable.js b/apps/spreadsheeteditor/main/app/view/PivotTable.js index 50dd0d641..b274d5da8 100644 --- a/apps/spreadsheeteditor/main/app/view/PivotTable.js +++ b/apps/spreadsheeteditor/main/app/view/PivotTable.js @@ -156,25 +156,25 @@ define([ this.chRowHeader = new Common.UI.CheckBox({ labelText: this.textRowHeader, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit] + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock] }); this.lockedControls.push(this.chRowHeader); this.chColHeader = new Common.UI.CheckBox({ labelText: this.textColHeader, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit] + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock] }); this.lockedControls.push(this.chColHeader); this.chRowBanded = new Common.UI.CheckBox({ labelText: this.textRowBanded, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit] + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock] }); this.lockedControls.push(this.chRowBanded); this.chColBanded = new Common.UI.CheckBox({ labelText: this.textColBanded, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit] + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock] }); this.lockedControls.push(this.chColBanded); @@ -191,7 +191,7 @@ define([ iconCls : 'toolbar__icon btn-pivot-layout', caption : this.capLayout, disabled : true, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit], + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock], menu : true }); this.lockedControls.push(this.btnPivotLayout); @@ -201,7 +201,7 @@ define([ iconCls : 'toolbar__icon btn-blank-rows', caption : this.capBlankRows, disabled : true, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit], + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock], menu : true }); this.lockedControls.push(this.btnPivotBlankRows); @@ -211,7 +211,7 @@ define([ iconCls : 'toolbar__icon btn-subtotals', caption : this.capSubtotals, disabled : true, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit], + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock], menu : true }); this.lockedControls.push(this.btnPivotSubtotals); @@ -221,7 +221,7 @@ define([ iconCls : 'toolbar__icon btn-grand-totals', caption : this.capGrandTotals, disabled : true, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit], + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock], menu : true }); this.lockedControls.push(this.btnPivotGrandTotals); @@ -231,7 +231,7 @@ define([ iconCls: 'toolbar__icon btn-update', caption: this.txtRefresh, disabled : true, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit] + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock] }); this.lockedControls.push(this.btnRefreshPivot); @@ -249,7 +249,7 @@ define([ itemWidth : 61, itemHeight : 49, menuMaxHeight : 300, - lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit], + lock : [_set.lostConnect, _set.coAuth, _set.noPivot, _set.selRangeEdit, _set.pivotLock], beforeOpenHandler: function(e) { var cmp = this, menu = cmp.openButton.menu; diff --git a/apps/spreadsheeteditor/main/app/view/TableOptionsDialog.js b/apps/spreadsheeteditor/main/app/view/TableOptionsDialog.js index 7bd19eb9f..72090c8b6 100644 --- a/apps/spreadsheeteditor/main/app/view/TableOptionsDialog.js +++ b/apps/spreadsheeteditor/main/app/view/TableOptionsDialog.js @@ -133,8 +133,10 @@ define([ if (settings.selectionType) me.selectionType = settings.selectionType; - me.api.asc_unregisterCallback('asc_onSelectionRangeChanged', _.bind(me.onApiRangeChanged, me)); - me.api.asc_registerCallback('asc_onSelectionRangeChanged', _.bind(me.onApiRangeChanged, me)); + me.wrapEvents = { + onApiRangeChanged: _.bind(me.onApiRangeChanged, me) + }; + me.api.asc_registerCallback('asc_onSelectionRangeChanged', me.wrapEvents.onApiRangeChanged); Common.NotificationCenter.trigger('cells:range', Asc.c_oAscSelectionDialogType.FormatTable); } @@ -190,8 +192,10 @@ define([ }, onClose: function(event) { - if (this.api) + if (this.api) { this.api.asc_setSelectionDialogMode(Asc.c_oAscSelectionDialogType.None); + this.api.asc_unregisterCallback('asc_onSelectionRangeChanged', this.wrapEvents.onApiRangeChanged); + } Common.NotificationCenter.trigger('cells:range', Asc.c_oAscSelectionDialogType.None); Common.NotificationCenter.trigger('edit:complete', this); diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 2263ef1ab..dd30b9bfe 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -95,7 +95,8 @@ define([ noSubitems: 'no-subitems', noSlicerSource: 'no-slicer-source', selSlicer: 'sel-slicer', - cantSort: 'cant-sort' + cantSort: 'cant-sort', + pivotLock: 'pivot-lock' }; SSE.Views.Toolbar = Common.UI.Mixtbar.extend(_.extend({