Merge pull request #971 from ONLYOFFICE/fix/fix-bugs-on-mobiles
Fix/fix bugs on mobiles
This commit is contained in:
commit
e244b8ff86
|
@ -29,7 +29,6 @@
|
||||||
--f7-range-knob-size: 16px;
|
--f7-range-knob-size: 16px;
|
||||||
|
|
||||||
--f7-link-highlight-color: transparent;
|
--f7-link-highlight-color: transparent;
|
||||||
--f7-touch-ripple-color: @touchColor;
|
|
||||||
--f7-link-touch-ripple-color: @touchColor;
|
--f7-link-touch-ripple-color: @touchColor;
|
||||||
|
|
||||||
.button {
|
.button {
|
||||||
|
@ -42,6 +41,7 @@
|
||||||
--f7-dialog-button-text-color: @themeColor;
|
--f7-dialog-button-text-color: @themeColor;
|
||||||
|
|
||||||
.navbar {
|
.navbar {
|
||||||
|
--f7-touch-ripple-color: @touchColor;
|
||||||
.sheet-close {
|
.sheet-close {
|
||||||
width: 56px;
|
width: 56px;
|
||||||
height: 56px;
|
height: 56px;
|
||||||
|
|
|
@ -4,12 +4,13 @@ import { f7 } from 'framework7-react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import ToolbarView from "../view/Toolbar";
|
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} = useTranslation();
|
||||||
const _t = t("Toolbar", { returnObjects: true });
|
const _t = t("Toolbar", { returnObjects: true });
|
||||||
|
|
||||||
const appOptions = props.storeAppOptions;
|
const appOptions = props.storeAppOptions;
|
||||||
const isDisconnected = props.users.isDisconnected;
|
const isDisconnected = props.users.isDisconnected;
|
||||||
|
const isObjectLocked = props.storeFocusObjects.isLocked;
|
||||||
const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments;
|
const displayCollaboration = props.users.hasEditUsers || appOptions.canViewComments;
|
||||||
const docTitle = props.storeSpreadsheetInfo.dataDoc ? props.storeSpreadsheetInfo.dataDoc.title : '';
|
const docTitle = props.storeSpreadsheetInfo.dataDoc ? props.storeSpreadsheetInfo.dataDoc.title : '';
|
||||||
|
|
||||||
|
@ -20,9 +21,8 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn
|
||||||
const api = Common.EditorApi.get();
|
const api = Common.EditorApi.get();
|
||||||
api.asc_registerCallback('asc_onCanUndoChanged', onApiCanUndo);
|
api.asc_registerCallback('asc_onCanUndoChanged', onApiCanUndo);
|
||||||
api.asc_registerCallback('asc_onCanRedoChanged', onApiCanRedo);
|
api.asc_registerCallback('asc_onCanRedoChanged', onApiCanRedo);
|
||||||
api.asc_registerCallback('asc_onSelectionChanged', onApiSelectionChanged);
|
api.asc_registerCallback('asc_onWorkbookLocked', onApiLocked);
|
||||||
api.asc_registerCallback('asc_onWorkbookLocked', onApiSelectionChanged);
|
api.asc_registerCallback('asc_onWorksheetLocked', onApiLocked);
|
||||||
api.asc_registerCallback('asc_onWorksheetLocked', onApiSelectionChanged);
|
|
||||||
api.asc_registerCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged);
|
api.asc_registerCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged);
|
||||||
|
|
||||||
Common.Notifications.on('toolbar:activatecontrols', activateControls);
|
Common.Notifications.on('toolbar:activatecontrols', activateControls);
|
||||||
|
@ -53,9 +53,8 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn
|
||||||
const api = Common.EditorApi.get();
|
const api = Common.EditorApi.get();
|
||||||
api.asc_unregisterCallback('asc_onCanUndoChanged', onApiCanUndo);
|
api.asc_unregisterCallback('asc_onCanUndoChanged', onApiCanUndo);
|
||||||
api.asc_unregisterCallback('asc_onCanRedoChanged', onApiCanRedo);
|
api.asc_unregisterCallback('asc_onCanRedoChanged', onApiCanRedo);
|
||||||
//api.asc_unregisterCallback('asc_onSelectionChanged', onApiSelectionChanged); TO DO
|
api.asc_unregisterCallback('asc_onWorkbookLocked', onApiLocked);
|
||||||
api.asc_unregisterCallback('asc_onWorkbookLocked', onApiSelectionChanged);
|
api.asc_unregisterCallback('asc_onWorksheetLocked', onApiLocked);
|
||||||
api.asc_unregisterCallback('asc_onWorksheetLocked', onApiSelectionChanged);
|
|
||||||
api.asc_unregisterCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged);
|
api.asc_unregisterCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -133,32 +132,9 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn
|
||||||
}
|
}
|
||||||
|
|
||||||
const [disabledEditControls, setDisabledEditControls] = useState(false);
|
const [disabledEditControls, setDisabledEditControls] = useState(false);
|
||||||
const onApiSelectionChanged = (cellInfo) => {
|
const onApiLocked = () => {
|
||||||
if (isDisconnected) return;
|
if (isDisconnected) return;
|
||||||
|
props.storeFocusObjects.setIsLocked(Common.EditorApi.get().asc_getCellInfo());
|
||||||
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);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const onApiActiveSheetChanged = (index) => {
|
const onApiActiveSheetChanged = (index) => {
|
||||||
|
@ -196,7 +172,7 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn
|
||||||
onUndo={onUndo}
|
onUndo={onUndo}
|
||||||
onRedo={onRedo}
|
onRedo={onRedo}
|
||||||
disabledControls={disabledControls}
|
disabledControls={disabledControls}
|
||||||
disabledEditControls={disabledEditControls}
|
disabledEditControls={disabledEditControls || isObjectLocked}
|
||||||
disabledSettings={disabledSettings}
|
disabledSettings={disabledSettings}
|
||||||
displayCollaboration={displayCollaboration}
|
displayCollaboration={displayCollaboration}
|
||||||
showEditDocument={showEditDocument}
|
showEditDocument={showEditDocument}
|
||||||
|
|
|
@ -4,6 +4,7 @@ export class storeFocusObjects {
|
||||||
constructor() {
|
constructor() {
|
||||||
makeObservable(this, {
|
makeObservable(this, {
|
||||||
focusOn: observable,
|
focusOn: observable,
|
||||||
|
changeFocus: action,
|
||||||
_focusObjects: observable,
|
_focusObjects: observable,
|
||||||
_cellInfo: observable,
|
_cellInfo: observable,
|
||||||
resetFocusObjects: action,
|
resetFocusObjects: action,
|
||||||
|
@ -12,15 +13,21 @@ export class storeFocusObjects {
|
||||||
selections: computed,
|
selections: computed,
|
||||||
shapeObject: computed,
|
shapeObject: computed,
|
||||||
imageObject: computed,
|
imageObject: computed,
|
||||||
chartObject: computed
|
chartObject: computed,
|
||||||
|
isLocked: observable,
|
||||||
|
setIsLocked: action
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
focusOn = undefined;
|
focusOn = undefined;
|
||||||
|
|
||||||
|
changeFocus(isObj) {
|
||||||
|
this.focusOn = isObj ? 'obj' : 'cell';
|
||||||
|
}
|
||||||
|
|
||||||
_focusObjects = [];
|
_focusObjects = [];
|
||||||
|
|
||||||
resetFocusObjects(objects) {
|
resetFocusObjects(objects) {
|
||||||
this.focusOn = 'obj';
|
|
||||||
this._focusObjects = objects;
|
this._focusObjects = objects;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +63,6 @@ export class storeFocusObjects {
|
||||||
_cellInfo;
|
_cellInfo;
|
||||||
|
|
||||||
resetCellInfo (cellInfo) {
|
resetCellInfo (cellInfo) {
|
||||||
this.focusOn = 'cell';
|
|
||||||
this._cellInfo = cellInfo;
|
this._cellInfo = cellInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,4 +82,28 @@ export class storeFocusObjects {
|
||||||
return !!this.intf ? this.intf.getChartObject() : null;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue