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,