From 050c03096243448b040fc676cd350c090a1a8c59 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Fri, 9 Jul 2021 12:51:50 +0300 Subject: [PATCH 1/3] [SSE mobile] Fix bug 51160 --- apps/spreadsheeteditor/mobile/src/store/focusObjects.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/src/store/focusObjects.js b/apps/spreadsheeteditor/mobile/src/store/focusObjects.js index 936293cb0..e675536f0 100644 --- a/apps/spreadsheeteditor/mobile/src/store/focusObjects.js +++ b/apps/spreadsheeteditor/mobile/src/store/focusObjects.js @@ -4,6 +4,7 @@ export class storeFocusObjects { constructor() { makeObservable(this, { focusOn: observable, + changeFocus: action, _focusObjects: observable, _cellInfo: observable, resetFocusObjects: action, @@ -17,10 +18,14 @@ export class storeFocusObjects { } focusOn = undefined; + + changeFocus(isObj) { + this.focusOn = isObj ? 'obj' : 'cell'; + } + _focusObjects = []; resetFocusObjects(objects) { - this.focusOn = 'obj'; this._focusObjects = objects; } @@ -56,7 +61,6 @@ export class storeFocusObjects { _cellInfo; resetCellInfo (cellInfo) { - this.focusOn = 'cell'; this._cellInfo = cellInfo; } From f54d007f31200d261d1fa2614ef480ec8c61f504 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Fri, 9 Jul 2021 14:44:11 +0300 Subject: [PATCH 2/3] [mobile] Fix bug 51161 --- apps/common/mobile/resources/less/common-material.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/common/mobile/resources/less/common-material.less b/apps/common/mobile/resources/less/common-material.less index 604e5bcbf..f299fe9ba 100644 --- a/apps/common/mobile/resources/less/common-material.less +++ b/apps/common/mobile/resources/less/common-material.less @@ -29,7 +29,6 @@ --f7-range-knob-size: 16px; --f7-link-highlight-color: transparent; - --f7-touch-ripple-color: @touchColor; --f7-link-touch-ripple-color: @touchColor; .button { @@ -42,6 +41,7 @@ --f7-dialog-button-text-color: @themeColor; .navbar { + --f7-touch-ripple-color: @touchColor; .sheet-close { width: 56px; height: 56px; From a24120bbb478c9159b00f2d5fc0a3444ff83d725 Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Fri, 9 Jul 2021 16:17:28 +0300 Subject: [PATCH 3/3] [SSE mobile] Fix bug 51184 --- .../mobile/src/controller/Toolbar.jsx | 42 ++++--------------- .../mobile/src/store/focusObjects.js | 28 ++++++++++++- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx b/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx index 8db15a70a..c778040af 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx @@ -4,12 +4,13 @@ import { f7 } from 'framework7-react'; import { useTranslation } from 'react-i18next'; import ToolbarView from "../view/Toolbar"; -const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetInfo')(observer(props => { +const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetInfo', 'storeFocusObjects')(observer(props => { const {t} = useTranslation(); const _t = t("Toolbar", { returnObjects: true }); const appOptions = props.storeAppOptions; const isDisconnected = props.users.isDisconnected; + const isObjectLocked = props.storeFocusObjects.isLocked; const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments; const docTitle = props.storeSpreadsheetInfo.dataDoc ? props.storeSpreadsheetInfo.dataDoc.title : ''; @@ -20,9 +21,8 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn const api = Common.EditorApi.get(); api.asc_registerCallback('asc_onCanUndoChanged', onApiCanUndo); api.asc_registerCallback('asc_onCanRedoChanged', onApiCanRedo); - api.asc_registerCallback('asc_onSelectionChanged', onApiSelectionChanged); - api.asc_registerCallback('asc_onWorkbookLocked', onApiSelectionChanged); - api.asc_registerCallback('asc_onWorksheetLocked', onApiSelectionChanged); + api.asc_registerCallback('asc_onWorkbookLocked', onApiLocked); + api.asc_registerCallback('asc_onWorksheetLocked', onApiLocked); api.asc_registerCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged); Common.Notifications.on('toolbar:activatecontrols', activateControls); @@ -53,9 +53,8 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn const api = Common.EditorApi.get(); api.asc_unregisterCallback('asc_onCanUndoChanged', onApiCanUndo); api.asc_unregisterCallback('asc_onCanRedoChanged', onApiCanRedo); - //api.asc_unregisterCallback('asc_onSelectionChanged', onApiSelectionChanged); TO DO - api.asc_unregisterCallback('asc_onWorkbookLocked', onApiSelectionChanged); - api.asc_unregisterCallback('asc_onWorksheetLocked', onApiSelectionChanged); + api.asc_unregisterCallback('asc_onWorkbookLocked', onApiLocked); + api.asc_unregisterCallback('asc_onWorksheetLocked', onApiLocked); api.asc_unregisterCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged); } }); @@ -133,32 +132,9 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn } const [disabledEditControls, setDisabledEditControls] = useState(false); - const onApiSelectionChanged = (cellInfo) => { + const onApiLocked = () => { if (isDisconnected) return; - - const api = Common.EditorApi.get(); - const info = !!cellInfo ? cellInfo : api.asc_getCellInfo(); - let islocked = false; - - switch (info.asc_getSelectionType()) { - case Asc.c_oAscSelectionType.RangeChart: - case Asc.c_oAscSelectionType.RangeImage: - case Asc.c_oAscSelectionType.RangeShape: - case Asc.c_oAscSelectionType.RangeChartText: - case Asc.c_oAscSelectionType.RangeShapeText: - const objects = api.asc_getGraphicObjectProps(); - for ( let i in objects ) { - if ( objects[i].asc_getObjectType() == Asc.c_oAscTypeSelectElement.Image ) { - if ((islocked = objects[i].asc_getObjectValue().asc_getLocked())) - break; - } - } - break; - default: - islocked = info.asc_getLocked(); - } - - setDisabledEditControls(islocked); + props.storeFocusObjects.setIsLocked(Common.EditorApi.get().asc_getCellInfo()); }; const onApiActiveSheetChanged = (index) => { @@ -196,7 +172,7 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn onUndo={onUndo} onRedo={onRedo} disabledControls={disabledControls} - disabledEditControls={disabledEditControls} + disabledEditControls={disabledEditControls || isObjectLocked} disabledSettings={disabledSettings} displayCollaboration={displayCollaboration} showEditDocument={showEditDocument} diff --git a/apps/spreadsheeteditor/mobile/src/store/focusObjects.js b/apps/spreadsheeteditor/mobile/src/store/focusObjects.js index e675536f0..6cb3db2d9 100644 --- a/apps/spreadsheeteditor/mobile/src/store/focusObjects.js +++ b/apps/spreadsheeteditor/mobile/src/store/focusObjects.js @@ -13,7 +13,9 @@ export class storeFocusObjects { selections: computed, shapeObject: computed, imageObject: computed, - chartObject: computed + chartObject: computed, + isLocked: observable, + setIsLocked: action }); } @@ -80,4 +82,28 @@ export class storeFocusObjects { return !!this.intf ? this.intf.getChartObject() : null; } + isLocked = false; + + setIsLocked(info) { + let islocked = false; + switch (info.asc_getSelectionType()) { + case Asc.c_oAscSelectionType.RangeChart: + case Asc.c_oAscSelectionType.RangeImage: + case Asc.c_oAscSelectionType.RangeShape: + case Asc.c_oAscSelectionType.RangeChartText: + case Asc.c_oAscSelectionType.RangeShapeText: + const objects = Common.EditorApi.get().asc_getGraphicObjectProps(); + for ( let i in objects ) { + if ( objects[i].asc_getObjectType() == Asc.c_oAscTypeSelectElement.Image ) { + if ((islocked = objects[i].asc_getObjectValue().asc_getLocked())) + break; + } + } + break; + default: + islocked = info.asc_getLocked(); + } + this.isLocked = islocked; + } + } \ No newline at end of file