[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 storeEncoding = this.props.storeEncoding;
await this.closeModal();
if(mode === 2) {
this.closeModal();
const formatOptions = storeEncoding.formatOptions;
formatOptions && formatOptions.asc_setAdvancedOptions(new Asc.asc_CTextOptions(valueEncoding, valueDelimeter));
api.asc_DownloadAs(formatOptions);
@ -36,7 +37,7 @@ class EncodingController extends Component {
render() {
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 { Toolbar } from "../controller/Toolbar";
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 {
constructor(props) {
@ -121,7 +134,8 @@ class MainPage extends Component {
}
{
!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 />

View file

@ -4,21 +4,6 @@ import { f7, Page, Navbar, List, ListItem, BlockTitle, ListButton, Popover, Popu
import { useTranslation } from "react-i18next";
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 { t } = useTranslation();
const _t = t("View.Settings", { returnObjects: true });
@ -28,9 +13,10 @@ const PageEncoding = inject("storeEncoding")(observer(props => {
const valueDelimeter = storeEncoding.valueDelimeter;
const nameEncoding = storeEncoding.nameEncoding;
const mode = storeEncoding.mode;
const routes = props.routes;
return (
<View routes={routes} url="/encoding/">
<View routes={routes}>
<Page>
<Navbar title={_t.textChooseCsvOptions} />
<BlockTitle>{_t.textDelimeter}</BlockTitle>
@ -42,6 +28,9 @@ const PageEncoding = inject("storeEncoding")(observer(props => {
<ListItem title={nameEncoding} link="/encoding-list/"></ListItem>
</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>
</List>
</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 {
constructor(props) {
super(props);
@ -121,10 +106,12 @@ class EncodingView extends Component {
return (
show_popover ?
<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> :
<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>
)
}
@ -146,8 +133,7 @@ const Encoding = props => {
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}