diff --git a/apps/common/mobile/resources/less/common.less b/apps/common/mobile/resources/less/common.less index 1ccb1fc63..fa988e672 100644 --- a/apps/common/mobile/resources/less/common.less +++ b/apps/common/mobile/resources/less/common.less @@ -878,7 +878,7 @@ input[type="number"]::-webkit-inner-spin-button { } .functions-list { - height: 175px; + max-height: 175px; width: 360px; overflow-y: auto; overflow-x: hidden; diff --git a/apps/documenteditor/mobile/locale/en.json b/apps/documenteditor/mobile/locale/en.json index b561fedfe..832014405 100644 --- a/apps/documenteditor/mobile/locale/en.json +++ b/apps/documenteditor/mobile/locale/en.json @@ -581,7 +581,12 @@ "txtScheme6": "Concourse", "txtScheme7": "Equity", "txtScheme8": "Flow", - "txtScheme9": "Foundry" + "txtScheme9": "Foundry", + "textPages": "Pages", + "textParagraphs": "Paragraphs", + "textWords": "Words", + "textSymbols": "Symbols", + "textSpaces": "Spaces" }, "Toolbar": { "dlgLeaveMsgText": "You have unsaved changes. Click 'Stay on this Page' to wait for autosave. Click 'Leave this Page' to discard all the unsaved changes.", diff --git a/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx b/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx index a8d9b1993..21f4fb3f0 100644 --- a/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx +++ b/apps/documenteditor/mobile/src/view/settings/DocumentInfo.jsx @@ -57,11 +57,11 @@ const PageDocumentInfo = (props) => { ) : null} {_t.textStatistic} - - - - - + + + + + {props.title ? ( diff --git a/apps/spreadsheeteditor/mobile/locale/en.json b/apps/spreadsheeteditor/mobile/locale/en.json index e29907491..aa0f2a74f 100644 --- a/apps/spreadsheeteditor/mobile/locale/en.json +++ b/apps/spreadsheeteditor/mobile/locale/en.json @@ -224,7 +224,8 @@ "unknownErrorText": "Unknown error.", "uploadImageExtMessage": "Unknown image format.", "uploadImageFileCountMessage": "No images uploaded.", - "uploadImageSizeMessage": "The image is too big. The maximum size is 25 MB." + "uploadImageSizeMessage": "The image is too big. The maximum size is 25 MB.", + "errorChangeOnProtectedSheet": "The cell or chart you are trying to change is on a protected sheet. To make a change, unprotect the sheet. You might be requested to enter a password." }, "LongActions": { "applyChangesTextText": "Loading data...", diff --git a/apps/spreadsheeteditor/mobile/src/controller/Error.jsx b/apps/spreadsheeteditor/mobile/src/controller/Error.jsx index 7447d436a..c372fbb96 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/Error.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/Error.jsx @@ -304,7 +304,7 @@ const ErrorController = inject('storeAppOptions')(({storeAppOptions, LoadingDocu break; case Asc.c_oAscError.ID.ChangeOnProtectedSheet: - config.msg = _t.errorChangeOnProtectedSheet; + config.msg = t('Error.errorChangeOnProtectedSheet'); break; case Asc.c_oAscError.ID.LoadingFontError: diff --git a/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx b/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx index 51d75b610..9455ee9e0 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/Statusbar.jsx @@ -19,6 +19,9 @@ const StatusbarController = inject('sheets', 'storeFocusObjects', 'users')(obser sheets.setWorksheetLocked(index, locked); storeFocusObjects.setIsLocked(api.asc_getCellInfo()); }); + api.asc_registerCallback('asc_onChangeProtectWorkbook', () => { + sheets.setProtectedWorkbook(api.asc_isProtectedWorkbook()); + }); api.asc_registerCallback('asc_onSheetsChanged', onApiSheetsChanged); api.asc_registerCallback('asc_onActiveSheetChanged', onApiActiveSheetChanged); api.asc_registerCallback('asc_onHidePopMenu', onApiHideTabContextMenu); @@ -123,6 +126,7 @@ const Statusbar = inject('sheets', 'storeAppOptions', 'users')(observer(props => const _t = t('Statusbar', {returnObjects: true}); const isEdit = storeAppOptions.isEdit; const isDisconnected = users.isDisconnected; + const isProtectedWorkbook = sheets.isProtectedWorkbook; useEffect(() => { const on_main_view_click = e => { @@ -180,7 +184,7 @@ const Statusbar = inject('sheets', 'storeAppOptions', 'users')(observer(props => if (index == api.asc_getActiveWorksheetIndex()) { if (!opened) { - if (isEdit && !isDisconnected && !model.locked) { + if (isEdit && !isDisconnected && !model.locked && !isProtectedWorkbook) { api.asc_closeCellEditor(); f7.popover.open('#idx-tab-context-menu-popover', target); } @@ -229,7 +233,7 @@ const Statusbar = inject('sheets', 'storeAppOptions', 'users')(observer(props => let current = api.asc_getWorksheetName(api.asc_getActiveWorksheetIndex()); f7.dialog.create({ - title: _t.textRenameSheet, + title: _t.textSheetName, content: Device.ios ? '
' : '
', diff --git a/apps/spreadsheeteditor/mobile/src/store/sheets.js b/apps/spreadsheeteditor/mobile/src/store/sheets.js index 54e04a34b..3a9f98ac9 100644 --- a/apps/spreadsheeteditor/mobile/src/store/sheets.js +++ b/apps/spreadsheeteditor/mobile/src/store/sheets.js @@ -33,7 +33,10 @@ export class storeWorksheets { setWorkbookLocked: action, isWorksheetLocked: observable, - setWorksheetLocked: action + setWorksheetLocked: action, + + isProtectedWorkbook: observable, + setProtectedWorkbook: action }); this.sheets = []; } @@ -89,4 +92,9 @@ export class storeWorksheets { model.locked = locked; this.isWorkbookLocked = locked; } + + isProtectedWorkbook = false; + setProtectedWorkbook(value) { + this.isProtectedWorkbook = value; + } } diff --git a/apps/spreadsheeteditor/mobile/src/view/Statusbar.jsx b/apps/spreadsheeteditor/mobile/src/view/Statusbar.jsx index 6ae773384..f31277e63 100644 --- a/apps/spreadsheeteditor/mobile/src/view/Statusbar.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/Statusbar.jsx @@ -16,15 +16,16 @@ const StatusbarView = inject('storeAppOptions', 'sheets', 'users')(observer(prop const {sheets, storeAppOptions, users} = props; const allSheets = sheets.sheets; const hiddenSheets = sheets.hiddenWorksheets(); - // const isWorkbookLocked = sheets.isWorkbookLocked; + const isWorkbookLocked = sheets.isWorkbookLocked; + const isProtectedWorkbook = sheets.isProtectedWorkbook; const isEdit = storeAppOptions.isEdit; const isDisconnected = users.isDisconnected; return ( -
- +
+
diff --git a/apps/spreadsheeteditor/mobile/src/view/settings/ApplicationSettings.jsx b/apps/spreadsheeteditor/mobile/src/view/settings/ApplicationSettings.jsx index 56a34f4c1..1059f894f 100644 --- a/apps/spreadsheeteditor/mobile/src/view/settings/ApplicationSettings.jsx +++ b/apps/spreadsheeteditor/mobile/src/view/settings/ApplicationSettings.jsx @@ -47,7 +47,7 @@ const PageApplicationSettings = props => { {_t.textFormulaLanguage} - @@ -147,7 +147,7 @@ const PageFormulaLanguage = props => { {dataLang.map((elem, index) => { return ( - { storeApplicationSettings.changeFormulaLang(elem.value); props.onFormulaLangChange(elem.value);