[SSE] Added modifyFilter permission to config: when = false, disable add/remove filters,sort, change formatted table style.

This commit is contained in:
Julia Radzhabova 2017-10-19 13:14:12 +03:00
parent ce5bd464ed
commit de0b44f5dc
7 changed files with 33 additions and 18 deletions

View file

@ -43,7 +43,8 @@
print: <can print>, // default = true print: <can print>, // default = true
rename: <can rename>, // default = false rename: <can rename>, // default = false
changeHistory: <can change history>, // default = false changeHistory: <can change history>, // default = false
comment: <can comment in view mode> // default = edit comment: <can comment in view mode> // default = edit,
modifyFilter: <can add, remove and save filter in the spreadsheet> // default = true
} }
}, },
editorConfig: { editorConfig: {

View file

@ -1425,8 +1425,9 @@ define([
documentHolder.setMenuItemCommentCaptionMode(documentHolder.pmiAddComment, cellinfo.asc_getComments().length < 1, this.permissions.canEditComments); documentHolder.setMenuItemCommentCaptionMode(documentHolder.pmiAddComment, cellinfo.asc_getComments().length < 1, this.permissions.canEditComments);
commentsController && commentsController.blockPopover(true); commentsController && commentsController.blockPopover(true);
documentHolder.pmiClear.menu.items[0].setDisabled(!this.permissions.canModifyFilter);
documentHolder.pmiClear.menu.items[1].setDisabled(iscelledit); documentHolder.pmiClear.menu.items[1].setDisabled(iscelledit);
documentHolder.pmiClear.menu.items[2].setDisabled(iscelledit); documentHolder.pmiClear.menu.items[2].setDisabled(iscelledit || !this.permissions.canModifyFilter);
documentHolder.pmiClear.menu.items[3].setDisabled(iscelledit); documentHolder.pmiClear.menu.items[3].setDisabled(iscelledit);
documentHolder.pmiClear.menu.items[4].setDisabled(iscelledit); documentHolder.pmiClear.menu.items[4].setDisabled(iscelledit);
@ -1455,8 +1456,8 @@ define([
documentHolder.pmiDeleteEntire.setDisabled(isCellLocked || isTableLocked); documentHolder.pmiDeleteEntire.setDisabled(isCellLocked || isTableLocked);
documentHolder.pmiDeleteCells.setDisabled(isCellLocked || isTableLocked); documentHolder.pmiDeleteCells.setDisabled(isCellLocked || isTableLocked);
documentHolder.pmiDeleteTable.setDisabled(isCellLocked || isTableLocked); documentHolder.pmiDeleteTable.setDisabled(isCellLocked || isTableLocked);
documentHolder.pmiFilterCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot); documentHolder.pmiFilterCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot || !filterInfo && !this.permissions.canModifyFilter);
documentHolder.pmiSortCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot); documentHolder.pmiSortCells.setDisabled(isCellLocked || isTableLocked|| (filterInfo==null) || inPivot || !this.permissions.canModifyFilter);
documentHolder.pmiReapply.setDisabled(isCellLocked || isTableLocked|| (isApplyAutoFilter!==true)); documentHolder.pmiReapply.setDisabled(isCellLocked || isTableLocked|| (isApplyAutoFilter!==true));
documentHolder.menuHyperlink.setDisabled(isCellLocked || inPivot); documentHolder.menuHyperlink.setDisabled(isCellLocked || inPivot);
documentHolder.menuAddHyperlink.setDisabled(isCellLocked || inPivot); documentHolder.menuAddHyperlink.setDisabled(isCellLocked || inPivot);

View file

@ -819,6 +819,7 @@ define([
this.appOptions.canRename = !!this.permissions.rename; this.appOptions.canRename = !!this.permissions.rename;
this.appOptions.isTrial = params.asc_getTrial(); this.appOptions.isTrial = params.asc_getTrial();
this.appOptions.canProtect = this.appOptions.isDesktopApp && this.api.asc_isSignaturesSupport(); this.appOptions.canProtect = this.appOptions.isDesktopApp && this.api.asc_isSignaturesSupport();
this.appOptions.canModifyFilter = (this.permissions.modifyFilter!==false);
this.appOptions.canBranding = (licType === Asc.c_oLicenseResult.Success) && (typeof this.editorConfig.customization == 'object'); this.appOptions.canBranding = (licType === Asc.c_oLicenseResult.Success) && (typeof this.editorConfig.customization == 'object');
if (this.appOptions.canBranding) if (this.appOptions.canBranding)
@ -829,7 +830,8 @@ define([
this.updatePlugins(this.plugins, true); this.updatePlugins(this.plugins, true);
this.appOptions.canRename && this.headerView.setCanRename(true); this.appOptions.canRename && this.headerView.setCanRename(true);
} } else
this.appOptions.canModifyFilter = true;
this.appOptions.canRequestEditRights = this.editorConfig.canRequestEditRights; this.appOptions.canRequestEditRights = this.editorConfig.canRequestEditRights;
this.appOptions.canEdit = this.permissions.edit !== false && // can edit this.appOptions.canEdit = this.permissions.edit !== false && // can edit
@ -972,6 +974,8 @@ define([
if (me.appOptions.isEditDiagram) if (me.appOptions.isEditDiagram)
me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onSelectionChanged, me)); me.api.asc_registerCallback('asc_onSelectionChanged', _.bind(me.onSelectionChanged, me));
me.api.asc_setFilteringMode(me.appOptions.canModifyFilter);
if (me.stackLongActions.exist({id: ApplyEditRights, type: Asc.c_oAscAsyncActionType['BlockInteraction']})) { if (me.stackLongActions.exist({id: ApplyEditRights, type: Asc.c_oAscAsyncActionType['BlockInteraction']})) {
me.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], ApplyEditRights); me.onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], ApplyEditRights);
} else if (!this._isDocReady) { } else if (!this._isDocReady) {

View file

@ -130,7 +130,7 @@ define([
} }
var need_disable = info.asc_getLocked(), var need_disable = info.asc_getLocked(),
need_disable_table = (info.asc_getLockedTable()===true), need_disable_table = (info.asc_getLockedTable()===true || !this.rightmenu.mode.canModifyFilter),
need_disable_spark = (info.asc_getLockedSparkline()===true); need_disable_spark = (info.asc_getLockedSparkline()===true);
this.onFocusObject(SelectedObjects, formatTableInfo, sparkLineInfo, pivotInfo, need_disable, need_disable_table, need_disable_spark); this.onFocusObject(SelectedObjects, formatTableInfo, sparkLineInfo, pivotInfo, need_disable, need_disable_table, need_disable_spark);

View file

@ -1392,7 +1392,7 @@ define([
Common.util.Shortcuts.delegateShortcuts({ Common.util.Shortcuts.delegateShortcuts({
shortcuts: { shortcuts: {
'command+l,ctrl+l': function(e) { 'command+l,ctrl+l': function(e) {
if ( me.editMode && !me._state.multiselect ) { if ( me.editMode && !me._state.multiselect && me.appConfig.canModifyFilter) {
var cellinfo = me.api.asc_getCellInfo(), var cellinfo = me.api.asc_getCellInfo(),
filterinfo = cellinfo.asc_getAutoFilterInfo(), filterinfo = cellinfo.asc_getAutoFilterInfo(),
formattableinfo = cellinfo.asc_getFormatTableInfo(); formattableinfo = cellinfo.asc_getFormatTableInfo();
@ -1408,9 +1408,10 @@ define([
return false; return false;
}, },
'command+shift+l,ctrl+shift+l': function(e) { 'command+shift+l,ctrl+shift+l': function(e) {
var state = me._state.filter; if (me.editMode && me.api && !me._state.multiselect && me.appConfig.canModifyFilter) {
me._state.filter = undefined; var state = me._state.filter;
if (me.editMode && me.api && !me._state.multiselect) { me._state.filter = undefined;
if (me._state.tablename || state) if (me._state.tablename || state)
me.api.asc_changeAutoFilter(me._state.tablename, Asc.c_oAscChangeFilterOptions.filter, !state); me.api.asc_changeAutoFilter(me._state.tablename, Asc.c_oAscChangeFilterOptions.filter, !state);
else else
@ -2046,6 +2047,11 @@ define([
need_disable = !!info.asc_getPivotTableInfo(); need_disable = !!info.asc_getPivotTableInfo();
toolbar.lockToolbar(SSE.enumLock.editPivot, need_disable, { array: [toolbar.btnMerge, toolbar.btnInsertHyperlink, toolbar.btnSetAutofilter, toolbar.btnClearAutofilter, toolbar.btnSortDown, toolbar.btnSortUp, toolbar.btnAutofilter]}); toolbar.lockToolbar(SSE.enumLock.editPivot, need_disable, { array: [toolbar.btnMerge, toolbar.btnInsertHyperlink, toolbar.btnSetAutofilter, toolbar.btnClearAutofilter, toolbar.btnSortDown, toolbar.btnSortUp, toolbar.btnAutofilter]});
need_disable = !this.appConfig.canModifyFilter;
toolbar.lockToolbar(SSE.enumLock.cantModifyFilter, need_disable, { array: [toolbar.btnSortDown, toolbar.btnSortUp, toolbar.mnuitemSortAZ, toolbar.mnuitemSortZA, toolbar.btnSetAutofilter,
toolbar.btnAutofilter, toolbar.btnTableTemplate, toolbar.btnClearStyle.menu.items[0], toolbar.btnClearStyle.menu.items[2] ]});
} }
val = info.asc_getNumFormatInfo(); val = info.asc_getNumFormatInfo();

View file

@ -223,6 +223,7 @@ define([
}, },
setMode: function(mode) { setMode: function(mode) {
this.mode = mode;
return this; return this;
}, },

View file

@ -78,7 +78,8 @@ define([
cantPrint: 'cant-print', cantPrint: 'cant-print',
multiselect: 'is-multiselect', multiselect: 'is-multiselect',
cantHyperlink: 'cant-hyperlink', cantHyperlink: 'cant-hyperlink',
commentLock: 'can-comment' commentLock: 'can-comment',
cantModifyFilter: 'cant-filter'
}; };
SSE.Views.Toolbar = Common.UI.Mixtbar.extend(_.extend({ SSE.Views.Toolbar = Common.UI.Mixtbar.extend(_.extend({
@ -684,21 +685,21 @@ define([
id : 'id-toolbar-btn-sort-down', id : 'id-toolbar-btn-sort-down',
cls : 'btn-toolbar', cls : 'btn-toolbar',
iconCls : 'btn-sort-down', iconCls : 'btn-sort-down',
lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot] lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot, _set.cantModifyFilter]
}); });
me.btnSortUp = new Common.UI.Button({ me.btnSortUp = new Common.UI.Button({
id : 'id-toolbar-btn-sort-up', id : 'id-toolbar-btn-sort-up',
cls : 'btn-toolbar', cls : 'btn-toolbar',
iconCls : 'btn-sort-up', iconCls : 'btn-sort-up',
lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot] lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot, _set.cantModifyFilter]
}); });
me.btnSetAutofilter = new Common.UI.Button({ me.btnSetAutofilter = new Common.UI.Button({
id : 'id-toolbar-btn-setautofilter', id : 'id-toolbar-btn-setautofilter',
cls : 'btn-toolbar', cls : 'btn-toolbar',
iconCls : 'btn-autofilter', iconCls : 'btn-autofilter',
lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot], lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.editPivot, _set.cantModifyFilter],
enableToggle: true enableToggle: true
}); });
@ -713,7 +714,7 @@ define([
id : 'id-toolbar-btn-ttempl', id : 'id-toolbar-btn-ttempl',
cls : 'btn-toolbar', cls : 'btn-toolbar',
iconCls : 'btn-ttempl', iconCls : 'btn-ttempl',
lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.multiselect], lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter, _set.multiselect, _set.cantModifyFilter],
menu : new Common.UI.Menu({ menu : new Common.UI.Menu({
items: [ items: [
{ template: _.template('<div id="id-toolbar-menu-table-templates" style="width: 288px; height: 300px; margin: 0px 4px;"></div>') } { template: _.template('<div id="id-toolbar-menu-table-templates" style="width: 288px; height: 300px; margin: 0px 4px;"></div>') }
@ -894,6 +895,7 @@ define([
items : [ items : [
{ {
caption : me.txtClearAll, caption : me.txtClearAll,
lock : [ _set.cantModifyFilter],
value : Asc.c_oAscCleanOptions.All value : Asc.c_oAscCleanOptions.All
}, },
{ {
@ -903,7 +905,7 @@ define([
}, },
{ {
caption : me.txtClearFormat, caption : me.txtClearFormat,
lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth], lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.cantModifyFilter],
value : Asc.c_oAscCleanOptions.Format value : Asc.c_oAscCleanOptions.Format
}, },
{ {
@ -1139,13 +1141,13 @@ define([
me.mnuitemSortAZ = new Common.UI.MenuItem({ me.mnuitemSortAZ = new Common.UI.MenuItem({
caption : me.txtSortAZ, caption : me.txtSortAZ,
iconCls : 'mnu-sort-asc', iconCls : 'mnu-sort-asc',
lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter], lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter, _set.cantModifyFilter],
value : Asc.c_oAscSortOptions.Ascending value : Asc.c_oAscSortOptions.Ascending
}), }),
me.mnuitemSortZA = new Common.UI.MenuItem({ me.mnuitemSortZA = new Common.UI.MenuItem({
caption : me.txtSortZA, caption : me.txtSortZA,
iconCls : 'mnu-sort-desc', iconCls : 'mnu-sort-desc',
lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter], lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter, _set.cantModifyFilter],
value : Asc.c_oAscSortOptions.Descending value : Asc.c_oAscSortOptions.Descending
}), }),
me.mnuitemAutoFilter = new Common.UI.MenuItem({ me.mnuitemAutoFilter = new Common.UI.MenuItem({