[DE] added 'DocumentSettings' controller
This commit is contained in:
		
							parent
							
								
									37b297ca7e
								
							
						
					
					
						commit
						9ab2f40f19
					
				| 
						 | 
				
			
			@ -9,7 +9,8 @@ class DocumentSettingsController extends Component {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    onPageOrientation(value){
 | 
			
		||||
        console.log(`changed page orientation: ${value}`);
 | 
			
		||||
        const api = Common.EditorApi.get();
 | 
			
		||||
        api.change_PageOrient(value=='portrait');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    render() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
import React, {Component} from 'react';
 | 
			
		||||
import { connect } from 'react-redux';
 | 
			
		||||
import {
 | 
			
		||||
    Page,
 | 
			
		||||
    Navbar,
 | 
			
		||||
| 
						 | 
				
			
			@ -7,36 +8,37 @@ import {
 | 
			
		|||
    BlockTitle
 | 
			
		||||
} from 'framework7-react';
 | 
			
		||||
 | 
			
		||||
export default class DocumentSettings extends Component {
 | 
			
		||||
    constructor(props) {
 | 
			
		||||
        super(props);
 | 
			
		||||
    }
 | 
			
		||||
    render() {
 | 
			
		||||
        const textDocumentSettings = "Document Settings";
 | 
			
		||||
        const textBack = "Back";
 | 
			
		||||
        const textOrientation = "Orientation";
 | 
			
		||||
        const textPortrait = "Portrait";
 | 
			
		||||
        const textLandscape = "Landscape";
 | 
			
		||||
        const textFormat = "Format";
 | 
			
		||||
        const textMargins = "Margins";
 | 
			
		||||
const DocumentSettings = props => {
 | 
			
		||||
    const textDocumentSettings = "Document Settings";
 | 
			
		||||
    const textBack = "Back";
 | 
			
		||||
    const textOrientation = "Orientation";
 | 
			
		||||
    const textPortrait = "Portrait";
 | 
			
		||||
    const textLandscape = "Landscape";
 | 
			
		||||
    const textFormat = "Format";
 | 
			
		||||
    const textMargins = "Margins";
 | 
			
		||||
 | 
			
		||||
        const format = "A4";
 | 
			
		||||
        const formatSize = "21 cm x 29.7 cm";
 | 
			
		||||
    const format = "A4";
 | 
			
		||||
    const formatSize = "21 cm x 29.7 cm";
 | 
			
		||||
 | 
			
		||||
        return (
 | 
			
		||||
            <Page>
 | 
			
		||||
                <Navbar title={textDocumentSettings} backLink={textBack} />
 | 
			
		||||
                <BlockTitle>{textOrientation}</BlockTitle>
 | 
			
		||||
                <List>
 | 
			
		||||
                    <ListItem radio title={textPortrait} name="orientation-checkbox" defaultChecked onChange={e => this.props.onPageOrientation('portrait')}></ListItem>
 | 
			
		||||
                    <ListItem radio title={textLandscape} name="orientation-checkbox" onChange={e => this.props.onPageOrientation('landscape')}></ListItem>
 | 
			
		||||
                </List>
 | 
			
		||||
                <BlockTitle>{textFormat}</BlockTitle>
 | 
			
		||||
                <List mediaList>
 | 
			
		||||
                    <ListItem title={format} subtitle={formatSize} link="/document-formats/"></ListItem>
 | 
			
		||||
                    <ListItem checkbox title={textMargins} link="/margins/"></ListItem>
 | 
			
		||||
                </List>
 | 
			
		||||
            </Page>
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
    return (
 | 
			
		||||
        <Page>
 | 
			
		||||
            <Navbar title={textDocumentSettings} backLink={textBack} />
 | 
			
		||||
            <BlockTitle>{textOrientation}</BlockTitle>
 | 
			
		||||
            <List>
 | 
			
		||||
                <ListItem radio title={textPortrait} name="orientation-checkbox" checked={props.isPortrait} onClick={e => props.onPageOrientation('portrait')}></ListItem>
 | 
			
		||||
                <ListItem radio title={textLandscape} name="orientation-checkbox" checked={!props.isPortrait} onClick={e => props.onPageOrientation('landscape')}></ListItem>
 | 
			
		||||
            </List>
 | 
			
		||||
            <BlockTitle>{textFormat}</BlockTitle>
 | 
			
		||||
            <List mediaList>
 | 
			
		||||
                <ListItem title={format} subtitle={formatSize} link="/document-formats/"></ListItem>
 | 
			
		||||
                <ListItem checkbox title={textMargins} link="/margins/"></ListItem>
 | 
			
		||||
            </List>
 | 
			
		||||
        </Page>
 | 
			
		||||
     )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const mapStateToProps = (state) => {
 | 
			
		||||
    return state.settings;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default connect(mapStateToProps)(DocumentSettings);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
 | 
			
		||||
import {Component} from 'react'
 | 
			
		||||
import {connect} from 'react-redux'
 | 
			
		||||
import * as Actions from '../store/actions/actions'
 | 
			
		||||
 | 
			
		||||
class MainController extends Component {
 | 
			
		||||
    constructor(props) {
 | 
			
		||||
| 
						 | 
				
			
			@ -133,6 +135,7 @@ class MainController extends Component {
 | 
			
		|||
                    });
 | 
			
		||||
 | 
			
		||||
                    this.appOptions   = {};
 | 
			
		||||
                    this.bindEvents();
 | 
			
		||||
 | 
			
		||||
                    Common.Gateway.on('init',           loadConfig);
 | 
			
		||||
                    // Common.Gateway.on('showmessage',    _.bind(me.onExternalMessage, me));
 | 
			
		||||
| 
						 | 
				
			
			@ -140,6 +143,7 @@ class MainController extends Component {
 | 
			
		|||
                    Common.Gateway.appReady();
 | 
			
		||||
 | 
			
		||||
                    Common.Notifications.trigger('engineCreated', this.api);
 | 
			
		||||
                    Common.EditorApi = {get: () => this.api};
 | 
			
		||||
                }, error => {
 | 
			
		||||
                    console.log('promise failed ' + error);
 | 
			
		||||
                });
 | 
			
		||||
| 
						 | 
				
			
			@ -152,9 +156,16 @@ class MainController extends Component {
 | 
			
		|||
        document.body.appendChild(script);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bindEvents() {
 | 
			
		||||
        const {dispatch} = this.props;
 | 
			
		||||
        this.api.asc_registerCallback('asc_onPageOrient', isPortrait => {
 | 
			
		||||
            dispatch(Actions.changePageOrientation(isPortrait === true));
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    render() {
 | 
			
		||||
        return null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default MainController;
 | 
			
		||||
export default connect(null,null,null,{forwardRef:true})(MainController);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										9
									
								
								apps/documenteditor/mobile/src/store/actions/actions.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								apps/documenteditor/mobile/src/store/actions/actions.js
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
 | 
			
		||||
export const SETTINGS_PAGE_ORIENTATION_CHANGED = 'PAGE_ORIENTATION_CHANGED';
 | 
			
		||||
 | 
			
		||||
export const changePageOrientation = isPortrait => {
 | 
			
		||||
    return {
 | 
			
		||||
        type: SETTINGS_PAGE_ORIENTATION_CHANGED,
 | 
			
		||||
        isPortrait: isPortrait
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -1,10 +1,15 @@
 | 
			
		|||
import { combineReducers } from 'redux';
 | 
			
		||||
import settingsReducer from './settings'
 | 
			
		||||
import usersReducer from '../../../../../common/mobile/lib/store/users'
 | 
			
		||||
 | 
			
		||||
export const initialState = {
 | 
			
		||||
    settings: {
 | 
			
		||||
        isPortrait: true
 | 
			
		||||
    },
 | 
			
		||||
    users: []
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const rootReducer = combineReducers({
 | 
			
		||||
    settings: settingsReducer,
 | 
			
		||||
    users: usersReducer
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										12
									
								
								apps/documenteditor/mobile/src/store/reducers/settings.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								apps/documenteditor/mobile/src/store/reducers/settings.js
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
 | 
			
		||||
import * as actionTypes from '../actions/actions'
 | 
			
		||||
 | 
			
		||||
const settingsReducer = (state = [], action) => {
 | 
			
		||||
    if (action.type == actionTypes.SETTINGS_PAGE_ORIENTATION_CHANGED) {
 | 
			
		||||
        return {isPortrait: action.isPortrait};
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return state;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default settingsReducer;
 | 
			
		||||
							
								
								
									
										1
									
								
								vendor/framework7-react/babel.config.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/framework7-react/babel.config.js
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -8,5 +8,6 @@ module.exports = {
 | 
			
		|||
  plugins: [
 | 
			
		||||
    '@babel/plugin-transform-runtime',
 | 
			
		||||
    '@babel/plugin-syntax-dynamic-import',
 | 
			
		||||
    '@babel/plugin-proposal-class-properties',
 | 
			
		||||
  ],
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								vendor/framework7-react/package.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/framework7-react/package.json
									
									
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -35,6 +35,7 @@
 | 
			
		|||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@babel/core": "^7.11.0",
 | 
			
		||||
    "@babel/plugin-proposal-class-properties": "^7.10.4",
 | 
			
		||||
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
 | 
			
		||||
    "@babel/plugin-transform-runtime": "^7.11.0",
 | 
			
		||||
    "@babel/preset-env": "^7.11.0",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue