diff --git a/apps/documenteditor/mobile/src/controller/Main.jsx b/apps/documenteditor/mobile/src/controller/Main.jsx index 4bf67dcf4..471070499 100644 --- a/apps/documenteditor/mobile/src/controller/Main.jsx +++ b/apps/documenteditor/mobile/src/controller/Main.jsx @@ -26,7 +26,8 @@ import PluginsController from '../../../../common/mobile/lib/controller/Plugins. "storeTableSettings", "storeDocumentInfo", "storeChartSettings", - "storeApplicationSettings" + "storeApplicationSettings", + "storeLinkSettings" ) class MainController extends Component { constructor(props) { @@ -572,6 +573,12 @@ class MainController extends Component { storeTextSettings.resetBackgroundColor(color); }); + // link settings + const storeLinkSettings = this.props.storeLinkSettings; + this.api.asc_registerCallback('asc_onCanAddHyperlink', (value) => { + storeLinkSettings.canAddHyperlink(value); + }); + //paragraph settings EditorUIController.initEditorStyles && EditorUIController.initEditorStyles(this.props.storeParagraphSettings); diff --git a/apps/documenteditor/mobile/src/controller/add/AddOther.jsx b/apps/documenteditor/mobile/src/controller/add/AddOther.jsx index 3d5ff6b15..e4de3e84f 100644 --- a/apps/documenteditor/mobile/src/controller/add/AddOther.jsx +++ b/apps/documenteditor/mobile/src/controller/add/AddOther.jsx @@ -242,16 +242,25 @@ class AddOtherController extends Component { render () { return ( - ) } diff --git a/apps/documenteditor/mobile/src/store/mainStore.js b/apps/documenteditor/mobile/src/store/mainStore.js index 57fa6ee88..d9a85af99 100644 --- a/apps/documenteditor/mobile/src/store/mainStore.js +++ b/apps/documenteditor/mobile/src/store/mainStore.js @@ -9,6 +9,7 @@ import {storeImageSettings} from "./imageSettings"; import {storeTableSettings} from "./tableSettings"; import {storeChartSettings} from "./chartSettings"; import {storeDocumentInfo} from "./documentInfo"; +import {storeLinkSettings} from './linkSettings'; import {storeApplicationSettings} from './applicationSettings'; import {storeAppOptions} from "./appOptions"; import {storePalette} from "./palette"; @@ -21,6 +22,7 @@ export const stores = { storeDocumentSettings: new storeDocumentSettings(), users: new storeUsers(), storeTextSettings: new storeTextSettings(), + storeLinkSettings: new storeLinkSettings(), storeParagraphSettings: new storeParagraphSettings(), storeShapeSettings: new storeShapeSettings(), storeChartSettings: new storeChartSettings(), diff --git a/apps/documenteditor/mobile/src/view/add/Add.jsx b/apps/documenteditor/mobile/src/view/add/Add.jsx index f793ba4b6..6538f5a21 100644 --- a/apps/documenteditor/mobile/src/view/add/Add.jsx +++ b/apps/documenteditor/mobile/src/view/add/Add.jsx @@ -84,45 +84,44 @@ const AddTabs = inject("storeFocusObjects")(observer(({storeFocusObjects, showPa const options = storeFocusObjects.settings; const paragraphObj = storeFocusObjects.paragraphObject; - let need_disable = false, - can_add_table = true, - can_add_image = true, - paragraph_locked = false, - in_footnote = false, - in_control = false, - control_props = false, - lock_type = false, - control_plain = false, - content_locked = false, - rich_del_lock = false, - rich_edit_lock = false, - plain_del_lock = false, - plain_edit_lock = false; + let needDisable = false, + canAddTable = true, + canAddImage = true, + paragraphLocked = false, + inFootnote = false, + inControl = false, + controlProps = false, + lockType = false, + controlPlain = false, + contentLocked = false, + richDelLock = false, + richEditLock = false, + plainDelLock = false, + plainEditLock = false; if(paragraphObj) { - can_add_table = paragraphObj.get_CanAddTable(); - can_add_image = paragraphObj.get_CanAddImage(); - paragraph_locked = paragraphObj.get_Locked(); + canAddTable = paragraphObj.get_CanAddTable(); + canAddImage = paragraphObj.get_CanAddImage(); + paragraphLocked = paragraphObj.get_Locked(); - in_footnote = api.asc_IsCursorInFootnote() || api.asc_IsCursorInEndnote(); - in_control = api.asc_IsContentControl(); + inFootnote = api.asc_IsCursorInFootnote() || api.asc_IsCursorInEndnote(); + inControl = api.asc_IsContentControl(); - control_props = in_control ? api.asc_GetContentControlProperties() : null; - lock_type = (in_control && control_props) ? control_props.get_Lock() : Asc.c_oAscSdtLockType.Unlocked; - control_plain = (in_control && control_props) ? (control_props.get_ContentControlType() == Asc.c_oAscSdtLevelType.Inline) : false; - content_locked = lock_type == Asc.c_oAscSdtLockType.SdtContentLocked || lock_type == Asc.c_oAscSdtLockType.ContentLocked; + controlProps = inControl ? api.asc_GetContentControlProperties() : null; + lockType = (inControl && controlProps) ? controlProps.get_Lock() : Asc.c_oAscSdtLockType.Unlocked; + controlPlain = (inControl && controlProps) ? (controlProps.get_ContentControlType() == Asc.c_oAscSdtLevelType.Inline) : false; + contentLocked = lockType == Asc.c_oAscSdtLockType.SdtContentLocked || lockType == Asc.c_oAscSdtLockType.ContentLocked; - rich_del_lock = paragraphObj ? !paragraphObj.can_DeleteBlockContentControl() : false; - rich_edit_lock = paragraphObj ? !paragraphObj.can_EditBlockContentControl() : false; - plain_del_lock = paragraphObj ? !paragraphObj.can_DeleteInlineContentControl() : false; - plain_edit_lock = paragraphObj ? !paragraphObj.can_EditInlineContentControl() : false; + richDelLock = paragraphObj ? !paragraphObj.can_DeleteBlockContentControl() : false; + richEditLock = paragraphObj ? !paragraphObj.can_EditBlockContentControl() : false; + plainDelLock = paragraphObj ? !paragraphObj.can_DeleteInlineContentControl() : false; + plainEditLock = paragraphObj ? !paragraphObj.can_EditInlineContentControl() : false; } if (!showPanels && options.indexOf('text') > -1) { - need_disable = !can_add_table || control_plain || rich_edit_lock || plain_edit_lock || rich_del_lock || plain_del_lock; - // console.log(need_disable); + needDisable = !canAddTable || controlPlain || richEditLock || plainEditLock || richDelLock || plainDelLock; - if(!need_disable) { + if(!needDisable) { tabs.push({ caption: _t.textTable, id: 'add-table', @@ -132,10 +131,9 @@ const AddTabs = inject("storeFocusObjects")(observer(({storeFocusObjects, showPa } } if(!showPanels) { - need_disable = paragraph_locked || control_plain || content_locked || in_footnote; - // console.log(need_disable); + needDisable = paragraphLocked || controlPlain || contentLocked || inFootnote; - if(!need_disable) { + if(!needDisable) { tabs.push({ caption: _t.textShape, id: 'add-shape', @@ -145,10 +143,9 @@ const AddTabs = inject("storeFocusObjects")(observer(({storeFocusObjects, showPa } } if(!showPanels) { - need_disable = paragraph_locked || paragraphObj && !can_add_image || control_plain || rich_del_lock || plain_del_lock || content_locked; - // console.log(need_disable); + needDisable = paragraphLocked || paragraphObj && !canAddImage || controlPlain || richDelLock || plainDelLock || contentLocked; - if(!need_disable) { + if(!needDisable) { tabs.push({ caption: _t.textImage, id: 'add-image', @@ -162,7 +159,17 @@ const AddTabs = inject("storeFocusObjects")(observer(({storeFocusObjects, showPa caption: _t.textOther, id: 'add-other', icon: 'icon-add-other', - component: + component: + }); } if (showPanels && showPanels === 'link') { diff --git a/apps/documenteditor/mobile/src/view/add/AddOther.jsx b/apps/documenteditor/mobile/src/view/add/AddOther.jsx index 240e27521..90c4aa227 100644 --- a/apps/documenteditor/mobile/src/view/add/AddOther.jsx +++ b/apps/documenteditor/mobile/src/view/add/AddOther.jsx @@ -153,21 +153,39 @@ const PageFootnote = props => { const AddOther = props => { const { t } = useTranslation(); const _t = t('Add', {returnObjects: true}); - const storeFocusObjects = props.storeFocusObjects; + const storeLinkSettings = props.storeLinkSettings; + const canAddLink = storeLinkSettings.canAddLink; + let isShape = storeFocusObjects.settings.indexOf('shape') > -1, isText = storeFocusObjects.settings.indexOf('text') > -1, isChart = storeFocusObjects.settings.indexOf('chart') > -1; + let disabledAddLink = false, + disabledAddBreak = false, + disabledAddFootnote = false, + inFootnote = props.inFootnote, + inControl = props.inControl, + paragraphLocked = props.paragraphLocked, + controlPlain = props.controlPlain, + richDelLock = props.richDelLock, + richEditLock = props.richEditLock, + plainDelLock = props.plainDelLock, + plainEditLock = props.plainEditLock; + + disabledAddBreak = paragraphLocked || inFootnote || inControl || richEditLock || plainEditLock || richDelLock || plainDelLock; + disabledAddFootnote = paragraphLocked || controlPlain || richEditLock || plainEditLock; + disabledAddLink = paragraphLocked || !canAddLink; + return ( - {isText && { + {isText && { props.closeModal(); Common.Notifications.trigger('addcomment'); }}> } - {isText && @@ -178,15 +196,16 @@ const AddOther = props => { }}> - {(isShape || isChart) ? null : - [ - , - + + } + {(isShape || isChart) || (isText && disabledAddFootnote) ? null : { initFootnoteStartAt: props.initFootnoteStartAt }}> - ] + } ) }; -const AddOtherContainer = inject("storeComments","storeFocusObjects")(observer(AddOther)); +const AddOtherContainer = inject("storeComments","storeFocusObjects", "storeLinkSettings")(observer(AddOther)); export {AddOtherContainer as AddOther, PageNumber as PageAddNumber,