diff --git a/apps/common/mobile/lib/view/Search.jsx b/apps/common/mobile/lib/view/Search.jsx index 37b4d7f83..6a9b165f3 100644 --- a/apps/common/mobile/lib/view/Search.jsx +++ b/apps/common/mobile/lib/view/Search.jsx @@ -97,10 +97,13 @@ class SearchView extends Component { componentDidMount(){ this.$replace = $$('#idx-replace-val'); - const $editor = $$('#editor_sdk'); - $editor.on('pointerdown', this.onEditorTouchStart.bind(this)); - $editor.on('pointerup', this.onEditorTouchEnd.bind(this)); + + this.onEditorTouchStart = this.onEditorTouchStart.bind(this); + this.onEditorTouchEnd = this.onEditorTouchEnd.bind(this); + + $editor.on('pointerdown', this.onEditorTouchStart); + $editor.on('pointerup', this.onEditorTouchEnd); if( !this.searchbar ) { this.searchbar = f7.searchbar.get('.searchbar'); @@ -123,11 +126,8 @@ class SearchView extends Component { } componentWillUnmount() { - const $$ = Dom7; - const $editor = $$('#editor_sdk'); - - $editor.off('pointerdown', this.onEditorTouchStart.bind(this)); - $editor.off('pointerup', this.onEditorTouchEnd.bind(this)); + $$('#editor_sdk').off('pointerdown', this.onEditorTouchStart) + .off('pointerup', this.onEditorTouchEnd); } onSettingsClick(e) { @@ -192,6 +192,7 @@ class SearchView extends Component { } onEditorTouchStart(e) { + console.log('taouch start'); this.startPoint = this.pointerPosition(e); } diff --git a/apps/common/mobile/resources/less/about.less b/apps/common/mobile/resources/less/about.less index 2757dbb2b..3f35df3bb 100644 --- a/apps/common/mobile/resources/less/about.less +++ b/apps/common/mobile/resources/less/about.less @@ -27,6 +27,15 @@ } } + .settings-about-logo { + display: flex; + justify-content: center; + img { + max-width: 100%; + height: auto; + } + } + h3 { font-weight: normal; margin: 0; diff --git a/apps/documenteditor/mobile/src/controller/Toolbar.jsx b/apps/documenteditor/mobile/src/controller/Toolbar.jsx index 6fcbbbf64..136f040ca 100644 --- a/apps/documenteditor/mobile/src/controller/Toolbar.jsx +++ b/apps/documenteditor/mobile/src/controller/Toolbar.jsx @@ -4,10 +4,9 @@ import { f7 } from 'framework7-react'; import { useTranslation } from 'react-i18next'; import ToolbarView from "../view/Toolbar"; -const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'storeFocusObjects', 'storeToolbarSettings')(observer(props => { +const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'storeFocusObjects', 'storeToolbarSettings','storeDocumentInfo')(observer(props => { const {t} = useTranslation(); const _t = t("Toolbar", { returnObjects: true }); - const appOptions = props.storeAppOptions; const isDisconnected = props.users.isDisconnected; const displayMode = props.storeReview.displayMode; @@ -20,11 +19,16 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto const storeToolbarSettings = props.storeToolbarSettings; const isCanUndo = storeToolbarSettings.isCanUndo; const isCanRedo = storeToolbarSettings.isCanRedo; + const disabledControls = storeToolbarSettings.disabledControls; + const disabledEditControls = storeToolbarSettings.disabledEditControls; + const disabledSettings = storeToolbarSettings.disabledSettings; const showEditDocument = !appOptions.isEdit && appOptions.canEdit && appOptions.canRequestEditRights; + const docInfo = props.storeDocumentInfo; + const docTitle = docInfo.dataDoc ? docInfo.dataDoc.title : ''; + useEffect(() => { - Common.Notifications.on('setdoctitle', setDocTitle); Common.Gateway.on('init', loadConfig); Common.Notifications.on('toolbar:activatecontrols', activateControls); Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); @@ -37,24 +41,19 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto } return () => { - Common.Notifications.off('setdoctitle', setDocTitle); Common.Notifications.off('toolbar:activatecontrols', activateControls); Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.off('goback', goBack); } }); - const [docTitle, resetDocTitle] = useState(''); - const setDocTitle = (title) => { - resetDocTitle(title); - } - // Back button - const [isShowBack, setShowBack] = useState(false); + const [isShowBack, setShowBack] = useState(appOptions.canBackToFolder); const loadConfig = (data) => { if (data && data.config && data.config.canBackToFolder !== false && data.config.customization && data.config.customization.goback && - (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) { + (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) + { setShowBack(true); } }; @@ -108,20 +107,17 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeReview', 'sto } } - const [disabledEditControls, setDisabledEditControls] = useState(false); - const [disabledSettings, setDisabledSettings] = useState(false); const deactivateEditControls = (enableDownload) => { - setDisabledEditControls(true); + storeToolbarSettings.setDisabledEditControls(true); if (enableDownload) { //DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); } else { - setDisabledSettings(true); + storeToolbarSettings.setDisabledSettings(true); } }; - const [disabledControls, setDisabledControls] = useState(true); const activateControls = () => { - setDisabledControls(false); + storeToolbarSettings.setDisabledControls(false); }; const onEditDocument = () => { diff --git a/apps/documenteditor/mobile/src/page/main.jsx b/apps/documenteditor/mobile/src/page/main.jsx index 1b26899f1..1a43c593b 100644 --- a/apps/documenteditor/mobile/src/page/main.jsx +++ b/apps/documenteditor/mobile/src/page/main.jsx @@ -97,7 +97,7 @@ class MainPage extends Component { {/* Top Navbar */} - {showLogo &&
} + {showLogo && appOptions.canBranding !== undefined &&
} diff --git a/apps/documenteditor/mobile/src/store/toolbar.js b/apps/documenteditor/mobile/src/store/toolbar.js index ff0d1764a..97923348f 100644 --- a/apps/documenteditor/mobile/src/store/toolbar.js +++ b/apps/documenteditor/mobile/src/store/toolbar.js @@ -6,10 +6,34 @@ export class storeToolbarSettings { isCanUndo: observable, setCanUndo: action, isCanRedo: observable, - setCanRedo: action + setCanRedo: action, + disabledControls: observable, + setDisabledControls: action, + disabledEditControls: observable, + setDisabledEditControls: action, + disabledSettings: observable, + setDisabledSettings: action }) } + disabledControls = true; + + setDisabledControls(value) { + this.disabledControls = value; + } + + disabledEditControls = false; + + setDisabledEditControls(value) { + this.disabledEditControls = value; + } + + disabledSettings = false; + + setDisabledSettings(value) { + this.disabledSettings = value; + } + isCanUndo = false; setCanUndo(can) { diff --git a/apps/presentationeditor/mobile/src/controller/Toolbar.jsx b/apps/presentationeditor/mobile/src/controller/Toolbar.jsx index a1ba3d10d..d699ae362 100644 --- a/apps/presentationeditor/mobile/src/controller/Toolbar.jsx +++ b/apps/presentationeditor/mobile/src/controller/Toolbar.jsx @@ -4,7 +4,7 @@ import { f7 } from 'framework7-react'; import { useTranslation } from 'react-i18next'; import ToolbarView from "../view/Toolbar"; -const ToolbarController = inject('storeAppOptions', 'users', 'storeFocusObjects', 'storeToolbarSettings')(observer(props => { +const ToolbarController = inject('storeAppOptions', 'users', 'storeFocusObjects', 'storeToolbarSettings', 'storePresentationInfo')(observer(props => { const {t} = useTranslation(); const _t = t("Toolbar", { returnObjects: true }); @@ -20,9 +20,14 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeFocusObjects' const isCanUndo = storeToolbarSettings.isCanUndo; const isCanRedo = storeToolbarSettings.isCanRedo; const disabledPreview = storeToolbarSettings.countPages <= 0; + const disabledControls = storeToolbarSettings.disabledControls; + const disabledEditControls = storeToolbarSettings.disabledEditControls; + const disabledSettings = storeToolbarSettings.disabledSettings; + + const docInfo = props.storePresentationInfo; + const docTitle = docInfo.dataDoc ? docInfo.dataDoc.title : ''; useEffect(() => { - Common.Notifications.on('setdoctitle', setDocTitle); Common.Gateway.on('init', loadConfig); Common.Notifications.on('toolbar:activatecontrols', activateControls); Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); @@ -35,24 +40,19 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeFocusObjects' } return () => { - Common.Notifications.off('setdoctitle', setDocTitle); Common.Notifications.off('toolbar:activatecontrols', activateControls); Common.Notifications.off('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.off('goback', goBack); } }); - const [docTitle, resetDocTitle] = useState(''); - const setDocTitle = (title) => { - resetDocTitle(title); - } - // Back button - const [isShowBack, setShowBack] = useState(false); + const [isShowBack, setShowBack] = useState(appOptions.canBackToFolder); const loadConfig = (data) => { if (data && data.config && data.config.canBackToFolder !== false && data.config.customization && data.config.customization.goback && - (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) { + (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) + { setShowBack(true); } }; @@ -108,21 +108,17 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeFocusObjects' } } - const [disabledEditControls, setDisabledEditControls] = useState(false); - const [disabledSettings, setDisabledSettings] = useState(false); const deactivateEditControls = (enableDownload) => { - setDisabledEditControls(true); + storeToolbarSettings.setDisabledEditControls(true); if (enableDownload) { //DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); } else { - setDisabledSettings(true); + storeToolbarSettings.setDisabledSettings(true); } }; - - const [disabledControls, setDisabledControls] = useState(true); const activateControls = () => { - setDisabledControls(false); + storeToolbarSettings.setDisabledControls(false); }; const onEditDocument = () => { diff --git a/apps/presentationeditor/mobile/src/less/app.less b/apps/presentationeditor/mobile/src/less/app.less index de3bfa57f..a7d8fd7b6 100644 --- a/apps/presentationeditor/mobile/src/less/app.less +++ b/apps/presentationeditor/mobile/src/less/app.less @@ -139,4 +139,4 @@ z-index: 1; .encoded-svg-background(''); } -} +} \ No newline at end of file diff --git a/apps/presentationeditor/mobile/src/page/main.jsx b/apps/presentationeditor/mobile/src/page/main.jsx index 712298d0d..19aa9af81 100644 --- a/apps/presentationeditor/mobile/src/page/main.jsx +++ b/apps/presentationeditor/mobile/src/page/main.jsx @@ -105,7 +105,7 @@ class MainPage extends Component { {/* Top Navbar */} - {showLogo &&
} + {showLogo && appOptions.canBranding &&
} diff --git a/apps/presentationeditor/mobile/src/store/appOptions.js b/apps/presentationeditor/mobile/src/store/appOptions.js index 4ab711617..e51ebd13e 100644 --- a/apps/presentationeditor/mobile/src/store/appOptions.js +++ b/apps/presentationeditor/mobile/src/store/appOptions.js @@ -11,6 +11,7 @@ export class storeAppOptions { lostEditingRights: observable, changeEditingRights: action, + canBrandingExt: observable, isDocReady: observable, changeDocReady: action @@ -19,6 +20,7 @@ export class storeAppOptions { isEdit = false; canViewComments = false; + canBrandingExt = false; config = {}; lostEditingRights = false; diff --git a/apps/presentationeditor/mobile/src/store/toolbar.js b/apps/presentationeditor/mobile/src/store/toolbar.js index db3a9e87d..3b62e71fe 100644 --- a/apps/presentationeditor/mobile/src/store/toolbar.js +++ b/apps/presentationeditor/mobile/src/store/toolbar.js @@ -8,10 +8,34 @@ export class storeToolbarSettings { isCanRedo: observable, setCanRedo: action, countPages: observable, - setCountPages: action + setCountPages: action, + disabledControls: observable, + setDisabledControls: action, + disabledEditControls: observable, + setDisabledEditControls: action, + disabledSettings: observable, + setDisabledSettings: action }) } + disabledControls = true; + + setDisabledControls(value) { + this.disabledControls = value; + } + + disabledEditControls = false; + + setDisabledEditControls(value) { + this.disabledEditControls = value; + } + + disabledSettings = false; + + setDisabledSettings(value) { + this.disabledSettings = value; + } + isCanUndo = false; setCanUndo(can) { diff --git a/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx b/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx index 8b1f1e769..0892cfc56 100644 --- a/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx +++ b/apps/spreadsheeteditor/mobile/src/controller/Toolbar.jsx @@ -29,10 +29,12 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn const storeToolbarSettings = props.storeToolbarSettings; const isCanUndo = storeToolbarSettings.isCanUndo; const isCanRedo = storeToolbarSettings.isCanRedo; + const disabledControls = storeToolbarSettings.disabledControls; + const disabledEditControls = storeToolbarSettings.disabledEditControls; + const disabledSettings = storeToolbarSettings.disabledSettings; useEffect(() => { Common.Gateway.on('init', loadConfig); - Common.Notifications.on('toolbar:activatecontrols', activateControls); Common.Notifications.on('toolbar:deactivateeditcontrols', deactivateEditControls); Common.Notifications.on('goback', goBack); @@ -53,11 +55,12 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn }); // Back button - const [isShowBack, setShowBack] = useState(false); + const [isShowBack, setShowBack] = useState(appOptions.canBackToFolder); const loadConfig = (data) => { if (data && data.config && data.config.canBackToFolder !== false && data.config.customization && data.config.customization.goback && - (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) { + (data.config.customization.goback.url || data.config.customization.goback.requestClose && data.config.canRequestClose)) + { setShowBack(true); } }; @@ -113,26 +116,21 @@ const ToolbarController = inject('storeAppOptions', 'users', 'storeSpreadsheetIn } } - const [disabledEditControls, setDisabledEditControls] = useState(false); - const onApiActiveSheetChanged = (index) => { Common.Notifications.trigger('comments:filterchange', ['doc', 'sheet' + Common.EditorApi.get().asc_getWorksheetId(index)], false ); }; - const [disabledSettings, setDisabledSettings] = useState(false); const deactivateEditControls = (enableDownload) => { - setDisabledEditControls(true); + storeToolbarSettings.setDisabledEditControls(true); if (enableDownload) { //DE.getController('Settings').setMode({isDisconnected: true, enableDownload: enableDownload}); } else { - setDisabledSettings(true); + storeToolbarSettings.setDisabledSettings(true); } }; - - - const [disabledControls, setDisabledControls] = useState(true); + const activateControls = () => { - setDisabledControls(false); + storeToolbarSettings.setDisabledControls(false); }; const onEditDocument = () => { diff --git a/apps/spreadsheeteditor/mobile/src/page/main.jsx b/apps/spreadsheeteditor/mobile/src/page/main.jsx index ffd2a0ac4..f00872c45 100644 --- a/apps/spreadsheeteditor/mobile/src/page/main.jsx +++ b/apps/spreadsheeteditor/mobile/src/page/main.jsx @@ -104,7 +104,7 @@ class MainPage extends Component { {/* Top Navbar */} - {showLogo &&
} + {showLogo && appOptions.canBranding !== undefined &&
} diff --git a/apps/spreadsheeteditor/mobile/src/store/appOptions.js b/apps/spreadsheeteditor/mobile/src/store/appOptions.js index 4d405549b..c97af127b 100644 --- a/apps/spreadsheeteditor/mobile/src/store/appOptions.js +++ b/apps/spreadsheeteditor/mobile/src/store/appOptions.js @@ -11,6 +11,7 @@ export class storeAppOptions { lostEditingRights: observable, changeEditingRights: action, + canBranding: observable, isDocReady: observable, changeDocReady: action @@ -25,6 +26,7 @@ export class storeAppOptions { this.canViewComments = value; } + canBranding = undefined; lostEditingRights = false; changeEditingRights (value) { this.lostEditingRights = value; @@ -76,6 +78,8 @@ export class storeAppOptions { setPermissionOptions (document, licType, params, permissions, isSupportEditFeature) { if (params.asc_getRights() !== Asc.c_oRights.Edit) permissions.edit = false; + this.canBranding = params.asc_getCustomization(); + this.canBrandingExt = params.asc_getCanBranding() && (typeof this.customization == 'object'); this.canAutosave = true; this.canAnalytics = params.asc_getIsAnalyticsEnable(); this.canLicense = (licType === Asc.c_oLicenseResult.Success || licType === Asc.c_oLicenseResult.SuccessLimit); @@ -98,8 +102,6 @@ export class storeAppOptions { this.trialMode = params.asc_getLicenseMode(); this.canDownloadOrigin = permissions.download !== false; this.canDownload = permissions.download !== false; - this.canBranding = params.asc_getCustomization(); - this.canBrandingExt = params.asc_getCanBranding() && (typeof this.customization == 'object'); this.canUseReviewPermissions = this.canLicense && (!!permissions.reviewGroups || this.customization && this.customization.reviewPermissions && (typeof (this.customization.reviewPermissions) == 'object')); this.canUseCommentPermissions = this.canLicense && !!permissions.commentGroups; diff --git a/apps/spreadsheeteditor/mobile/src/store/toolbar.js b/apps/spreadsheeteditor/mobile/src/store/toolbar.js index ff0d1764a..97923348f 100644 --- a/apps/spreadsheeteditor/mobile/src/store/toolbar.js +++ b/apps/spreadsheeteditor/mobile/src/store/toolbar.js @@ -6,10 +6,34 @@ export class storeToolbarSettings { isCanUndo: observable, setCanUndo: action, isCanRedo: observable, - setCanRedo: action + setCanRedo: action, + disabledControls: observable, + setDisabledControls: action, + disabledEditControls: observable, + setDisabledEditControls: action, + disabledSettings: observable, + setDisabledSettings: action }) } + disabledControls = true; + + setDisabledControls(value) { + this.disabledControls = value; + } + + disabledEditControls = false; + + setDisabledEditControls(value) { + this.disabledEditControls = value; + } + + disabledSettings = false; + + setDisabledSettings(value) { + this.disabledSettings = value; + } + isCanUndo = false; setCanUndo(can) { diff --git a/vendor/framework7-react/build/webpack.config.js b/vendor/framework7-react/build/webpack.config.js index 0895d9932..528bba64b 100644 --- a/vendor/framework7-react/build/webpack.config.js +++ b/vendor/framework7-react/build/webpack.config.js @@ -173,7 +173,8 @@ module.exports = { __PUBLISHER_NAME__: JSON.stringify(process.env.PUBLISHER_NAME || 'Ascensio System SIA'), __APP_TITLE_TEXT__: JSON.stringify(process.env.APP_TITLE_TEXT ? process.env.APP_TITLE_TEXT : 'ONLYOFFICE'), __COMPANY_NAME__: JSON.stringify(process.env.COMPANY_NAME ? process.env.COMPANY_NAME : 'ONLYOFFICE'), - __HELP_URL__: JSON.stringify(process.env.HELP_URL || 'https://helpcenter.onlyoffice.com') + __HELP_URL__: JSON.stringify(process.env.HELP_URL || 'https://helpcenter.onlyoffice.com'), + __SALES_EMAIL__: JSON.stringify(process.env.__SALES_EMAIL__ || 'sales@onlyoffice.com'), }), new webpack.BannerPlugin(`\n* Version: ${process.env.PRODUCT_VERSION} (build: ${process.env.BUILD_NUMBER})\n`),