From de1ac14073acc2a38d98a69fe15fd11581b8e7b2 Mon Sep 17 00:00:00 2001 From: SergeyEzhin Date: Tue, 13 Jul 2021 17:09:20 +0300 Subject: [PATCH] [DE mobile] Added encoding options --- .../src/controller/settings/Download.jsx | 68 ++----------------- .../src/controller/settings/Encoding.jsx | 20 ++++-- .../mobile/src/view/settings/Encoding.jsx | 13 ++-- 3 files changed, 25 insertions(+), 76 deletions(-) diff --git a/apps/documenteditor/mobile/src/controller/settings/Download.jsx b/apps/documenteditor/mobile/src/controller/settings/Download.jsx index 2b1cfb2d1..06b13bb85 100644 --- a/apps/documenteditor/mobile/src/controller/settings/Download.jsx +++ b/apps/documenteditor/mobile/src/controller/settings/Download.jsx @@ -31,11 +31,12 @@ class DownloadController extends Component { _t.notcriticalErrorTitle, () => { if (format == Asc.c_oAscFileType.TXT) { - const isDocReady = this.props.storeAppOptions.isDocReady; const advOptions = api.asc_getAdvancedOptions(); this.props.storeEncoding.initOptions({type: Asc.c_oAscAdvancedOptionsID.TXT, advOptions, formatOptions: new Asc.asc_CDownloadOptions(format)}); - onAdvancedOptions(Asc.c_oAscAdvancedOptionsID.TXT, api.asc_getAdvancedOptions(), 2, new Asc.asc_CDownloadOptions(format), _t, isDocReady); + this.props.storeEncoding.initPages(); + this.props.storeEncoding.changeEncoding(advOptions.asc_getRecommendedSettings().asc_getCodePage()); + f7.views.current.router.navigate('/encoding/'); } else { this.closeModal(); @@ -68,67 +69,8 @@ const onAdvancedOptions = (type, advOptions, mode, formatOptions, _t, isDocReady if ($$('.dlg-adv-options.modal-in').length > 0) return; const api = Common.EditorApi.get(); - if (type == Asc.c_oAscAdvancedOptionsID.TXT) { - f7.views.current.router.navigate('/encoding/'); - // let picker; - // const pages = []; - // const pagesName = []; - // for (let page of advOptions.asc_getCodePages()) { - // pages.push(page.asc_getCodePage()); - // pagesName.push(page.asc_getCodePageName()); - // } - // Common.Notifications.trigger('preloader:close'); - // Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], -256, true); - // const buttons = []; - // if (mode === 2) { - // buttons.push({ - // text: _t.textCancel - // }); - // } - // buttons.push({ - // text: 'OK', - // bold: true, - // onClick: function() { - // const encoding = picker.value; - // if (mode==2) { - // formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(encoding)); - // api.asc_DownloadAs(formatOptions); - // } else { - // api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(encoding)); - // } - // if (!isDocReady) { - // Common.Notifications.trigger('preloader:beginAction', Asc.c_oAscAsyncActionType['BlockInteraction'], -256); - // } - // } - // }); - // const dialog = f7.dialog.create({ - // title: _t.advTxtOptions, - // text: '', - // content: - // '
' + - // '
' + - // '
' + _t.textEncoding + '
' + - // '
' + - // '
' + - // '
', - // buttons: buttons, - // cssClass: 'dlg-adv-options' - // }).open(); - // dialog.on('opened', () => { - // picker = f7.picker.create({ - // containerEl: document.getElementById('txt-encoding'), - // cols: [ - // { - // values: pages, - // displayValues: pagesName - // } - // ], - // toolbar: false, - // rotateEffect: true, - // value: [advOptions.asc_getRecommendedSettings().asc_getCodePage()], - // }); - // }); - } else if (type == Asc.c_oAscAdvancedOptionsID.DRM) { + + if (type == Asc.c_oAscAdvancedOptionsID.DRM) { Common.Notifications.trigger('preloader:close'); Common.Notifications.trigger('preloader:endAction', Asc.c_oAscAsyncActionType['BlockInteraction'], -256, true); const buttons = [{ diff --git a/apps/documenteditor/mobile/src/controller/settings/Encoding.jsx b/apps/documenteditor/mobile/src/controller/settings/Encoding.jsx index f594149bf..2a272aa64 100644 --- a/apps/documenteditor/mobile/src/controller/settings/Encoding.jsx +++ b/apps/documenteditor/mobile/src/controller/settings/Encoding.jsx @@ -1,18 +1,28 @@ import React, { Component } from 'react'; import { Device } from '../../../../../common/mobile/utils/device'; -import { f7, Page, Navbar, List, ListItem, BlockTitle, ListButton, Popover, Popup } from "framework7-react"; -import { withTranslation } from 'react-i18next'; -import { observer, inject } from "mobx-react"; +import { f7 } from "framework7-react"; import { Encoding } from "../../view/settings/Encoding"; class EncodingController extends Component { constructor(props) { super(props); + this.onSaveFormat = this.onSaveFormat.bind(this); } - onSaveFormat(type, value) { + closeModal() { + if (Device.phone) { + f7.sheet.close('.settings-popup', true); + } else { + f7.popover.close('#settings-popover'); + } + } + + onSaveFormat(formatOptions, value) { const api = Common.EditorApi.get(); - api.asc_setAdvancedOptions(type, new Asc.asc_CTextOptions(value)); + + this.closeModal(); + formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(value)); + api.asc_DownloadAs(formatOptions); } render() { diff --git a/apps/documenteditor/mobile/src/view/settings/Encoding.jsx b/apps/documenteditor/mobile/src/view/settings/Encoding.jsx index 7fc6330fc..f4acd2bd4 100644 --- a/apps/documenteditor/mobile/src/view/settings/Encoding.jsx +++ b/apps/documenteditor/mobile/src/view/settings/Encoding.jsx @@ -7,11 +7,9 @@ const PageEncoding = props => { const { t } = useTranslation(); const _t = t("Settings", { returnObjects: true }); const storeEncoding = props.storeEncoding; + const valueEncoding= storeEncoding.valueEncoding; const nameEncoding = storeEncoding.nameEncoding; - const type = storeEncoding.type; - storeEncoding.initPages(); - const advOptions = storeEncoding.advOptions; - const pagesName = storeEncoding.pagesName; + const formatOptions = storeEncoding.formatOptions; return ( @@ -21,7 +19,7 @@ const PageEncoding = props => { - props.onSaveFormat(type, storeEncoding.valueEncoding)}> + props.onSaveFormat(formatOptions, valueEncoding)}> ) @@ -31,8 +29,7 @@ const PageEncodingList = props => { const { t } = useTranslation(); const _t = t("Settings", { returnObjects: true }); const storeEncoding = props.storeEncoding; - const encoding = storeEncoding.encoding; - // const advOptions = storeEncoding.advOptions; + const valueEncoding = storeEncoding.valueEncoding; const pages = storeEncoding.pages; const pagesName = storeEncoding.pagesName; @@ -43,7 +40,7 @@ const PageEncodingList = props => { {pagesName.map((name, index) => { return ( - { + { storeEncoding.changeEncoding(pages[index]); f7.views.current.router.back(); }}>