[SSE mobile] Change Encoding v.2

This commit is contained in:
SergeyEzhin 2021-07-22 02:06:46 +03:00
parent b7d44ced9f
commit 850359ca6d
3 changed files with 29 additions and 28 deletions

View file

@ -18,12 +18,13 @@ class EncodingController extends Component {
} }
} }
onSaveFormat(mode, valueEncoding, valueDelimeter) { async onSaveFormat(mode, valueEncoding, valueDelimeter) {
const api = Common.EditorApi.get(); const api = Common.EditorApi.get();
const storeEncoding = this.props.storeEncoding; const storeEncoding = this.props.storeEncoding;
await this.closeModal();
if(mode === 2) { if(mode === 2) {
this.closeModal();
const formatOptions = storeEncoding.formatOptions; const formatOptions = storeEncoding.formatOptions;
formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(valueEncoding, valueDelimeter)); formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(valueEncoding, valueDelimeter));
api.asc_DownloadAs(formatOptions); api.asc_DownloadAs(formatOptions);
@ -36,7 +37,7 @@ class EncodingController extends Component {
render() { render() {
return ( return (
<Encoding onSaveFormat={this.onSaveFormat} /> <Encoding routes={this.props.routes} onSaveFormat={this.onSaveFormat} />
); );
} }
} }

View file

@ -17,6 +17,19 @@ import {FunctionGroups} from "../controller/add/AddFunction";
import ContextMenu from '../controller/ContextMenu'; import ContextMenu from '../controller/ContextMenu';
import { Toolbar } from "../controller/Toolbar"; import { Toolbar } from "../controller/Toolbar";
import EncodingController from "../controller/Encoding"; import EncodingController from "../controller/Encoding";
import {PageEncodingList, PageDelimeterList} from '../view/Encoding';
const routes = [
{
path: '/encoding-list/',
component: PageEncodingList
},
{
path: '/delimeter-list/',
component: PageDelimeterList
}
];
class MainPage extends Component { class MainPage extends Component {
constructor(props) { constructor(props) {
@ -121,7 +134,8 @@ class MainPage extends Component {
} }
{ {
!this.state.encodingVisible && this.props.storeEncoding.mode ? null : !this.state.encodingVisible && this.props.storeEncoding.mode ? null :
<EncodingController openOptions={this.handleClickToOpenOeptions} onclosed={this.handleOptionsViewClosed.bind(this, 'encoding')} /> <EncodingController routes={routes} openOptions={this.handleClickToOpenOeptions}
onclosed={this.handleOptionsViewClosed.bind(this, 'encoding')} />
} }
<FilterOptionsController /> <FilterOptionsController />

View file

@ -4,21 +4,6 @@ import { f7, Page, Navbar, List, ListItem, BlockTitle, ListButton, Popover, Popu
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { Device } from '../../../../common/mobile/utils/device'; import { Device } from '../../../../common/mobile/utils/device';
const routes = [
{
path: '/encoding/',
component: PageEncoding
},
{
path: '/encoding-list/',
component: PageEncodingList
},
{
path: '/delimeter-list/',
component: PageDelimeterList
}
];
const PageEncoding = inject("storeEncoding")(observer(props => { const PageEncoding = inject("storeEncoding")(observer(props => {
const { t } = useTranslation(); const { t } = useTranslation();
const _t = t("View.Settings", { returnObjects: true }); const _t = t("View.Settings", { returnObjects: true });
@ -28,9 +13,10 @@ const PageEncoding = inject("storeEncoding")(observer(props => {
const valueDelimeter = storeEncoding.valueDelimeter; const valueDelimeter = storeEncoding.valueDelimeter;
const nameEncoding = storeEncoding.nameEncoding; const nameEncoding = storeEncoding.nameEncoding;
const mode = storeEncoding.mode; const mode = storeEncoding.mode;
const routes = props.routes;
return ( return (
<View routes={routes} url="/encoding/"> <View routes={routes}>
<Page> <Page>
<Navbar title={_t.textChooseCsvOptions} /> <Navbar title={_t.textChooseCsvOptions} />
<BlockTitle>{_t.textDelimeter}</BlockTitle> <BlockTitle>{_t.textDelimeter}</BlockTitle>
@ -42,6 +28,9 @@ const PageEncoding = inject("storeEncoding")(observer(props => {
<ListItem title={nameEncoding} link="/encoding-list/"></ListItem> <ListItem title={nameEncoding} link="/encoding-list/"></ListItem>
</List> </List>
<List className="buttons-list"> <List className="buttons-list">
{mode === 2 ?
<ListButton className='button-fill button-raised' title={_t.textCancel}></ListButton>
: null}
<ListButton className='button-fill button-raised' title={mode === 2 ?_t.textDownload : _t.txtOk} onClick={() => props.onSaveFormat(mode, valueEncoding, valueDelimeter)}></ListButton> <ListButton className='button-fill button-raised' title={mode === 2 ?_t.textDownload : _t.txtOk} onClick={() => props.onSaveFormat(mode, valueEncoding, valueDelimeter)}></ListButton>
</List> </List>
</Page> </Page>
@ -102,10 +91,6 @@ const PageDelimeterList = inject("storeEncoding")(observer(props => {
) )
})); }));
// const Encoding = inject("storeEncoding")(observer(PageEncoding));
// const EncodingList = inject("storeEncoding")(observer(PageEncodingList));
// const DelimeterList = inject("storeEncoding")(observer(PageDelimeterList));
class EncodingView extends Component { class EncodingView extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
@ -121,10 +106,12 @@ class EncodingView extends Component {
return ( return (
show_popover ? show_popover ?
<Popover id="encoding-popover" className="popover__titled" onPopoverClosed={() => this.props.onclosed()}> <Popover id="encoding-popover" className="popover__titled" onPopoverClosed={() => this.props.onclosed()}>
<PageEncoding inPopover={true} openOptions={this.props.openOptions} onOptionClick={this.onoptionclick} onSaveFormat={this.props.onSaveFormat} /> <PageEncoding inPopover={true} openOptions={this.props.openOptions} onOptionClick={this.onoptionclick} routes={this.props.routes}
onSaveFormat={this.props.onSaveFormat} />
</Popover> : </Popover> :
<Popup className="encoding-popup" onPopupClosed={() => this.props.onclosed()}> <Popup className="encoding-popup" onPopupClosed={() => this.props.onclosed()}>
<PageEncoding onOptionClick={this.onoptionclick} openOptions={this.props.openOptions} /> <PageEncoding onOptionClick={this.onoptionclick} openOptions={this.props.openOptions} routes={this.props.routes}
onSaveFormat={this.props.onSaveFormat} />
</Popup> </Popup>
) )
} }
@ -146,8 +133,7 @@ const Encoding = props => {
props.onclosed(); props.onclosed();
}; };
return <EncodingView usePopover={!Device.phone} onclosed={onviewclosed} openOptions={props.openOptions} onSaveFormat={props.onSaveFormat} /> return <EncodingView usePopover={!Device.phone} onclosed={onviewclosed} openOptions={props.openOptions} onSaveFormat={props.onSaveFormat} routes={props.routes} />
}; };
// export {EncodingList, Encoding, DelimeterList}
export {Encoding, PageEncodingList, PageDelimeterList} export {Encoding, PageEncodingList, PageDelimeterList}