diff --git a/apps/documenteditor/main/app/controller/Links.js b/apps/documenteditor/main/app/controller/Links.js
index aa04c6039..f6d37fd4c 100644
--- a/apps/documenteditor/main/app/controller/Links.js
+++ b/apps/documenteditor/main/app/controller/Links.js
@@ -78,7 +78,8 @@ define([
},
onLaunch: function () {
this._state = {
- prcontrolsdisable:undefined
+ prcontrolsdisable:undefined,
+ in_object: false
};
Common.Gateway.on('setactionlink', function (url) {
console.log('url with actions: ' + url);
@@ -127,7 +128,8 @@ define([
header_locked = false,
in_header = false,
in_equation = false,
- in_image = false;
+ in_image = false,
+ in_table = false;
while (++i < selectedObjects.length) {
type = selectedObjects[i].get_ObjectType();
@@ -142,10 +144,12 @@ define([
in_image = true;
} else if (type === Asc.c_oAscTypeSelectElement.Math) {
in_equation = true;
+ } else if (type === Asc.c_oAscTypeSelectElement.Table) {
+ in_table = true;
}
}
-
this._state.prcontrolsdisable = paragraph_locked || header_locked;
+ this._state.in_object = in_image || in_table || in_equation;
var control_props = this.api.asc_IsContentControl() ? this.api.asc_GetContentControlProperties() : null,
control_plain = (control_props) ? (control_props.get_ContentControlType()==Asc.c_oAscSdtLevelType.Inline) : false;
@@ -337,7 +341,7 @@ define([
onCaptionClick: function(btn) {
var me = this;
(new DE.Views.CaptionDialog({
- api: me.api,
+ isObject: this._state.in_object,
handler: function (result, settings) {
if (result == 'ok') {
me.api.asc_AddObjectCaption(settings);
diff --git a/apps/documenteditor/main/app/view/CaptionDialog.js b/apps/documenteditor/main/app/view/CaptionDialog.js
index d647b74f9..68b63cddc 100644
--- a/apps/documenteditor/main/app/view/CaptionDialog.js
+++ b/apps/documenteditor/main/app/view/CaptionDialog.js
@@ -48,7 +48,7 @@ define([
DE.Views.CaptionDialog = Common.Views.AdvancedSettingsWindow.extend(_.extend({
options: {
contentWidth: 351,
- height: 330
+ height: 350
},
initialize : function(options) {
@@ -83,6 +83,11 @@ define([
'',
'',
'',
+ '
',
+ '',
+ '',
+ ' | ',
+ '
',
'',
'',
'',
@@ -124,7 +129,7 @@ define([
].join('')
}, options);
- this.api = options.api;
+ this.isObject = options.isObject;
this.handler = options.handler;
this.props = options.props;
@@ -146,6 +151,7 @@ define([
cls: 'input-group-nr',
menuStyle: 'min-width: 75px;',
editable: false,
+ disabled: !this.isObject,
data: [
{ displayValue: this.textBefore, value: 1 },
{ displayValue: this.textAfter, value: 0 }
@@ -162,14 +168,13 @@ define([
Common.Utils.InternalSettings.set("de-settings-captions", arr);
}
arr = arr ? arr.split(';') : [];
- arr = _.map(arr, function(str){ return { displayValue: str, value: 1 }; });
+ arr = _.map(arr, function(str){ return { displayValue: str, value: str, type: 1 }; });
- // 0, -1 - not removable
- this.arrLabel = [{ displayValue: this.textNone, value: -1 }].concat(arr)
- .concat([{ displayValue: this.textEquation, value: 0 },
- { displayValue: this.textFigure, value: 0 },
- { displayValue: this.textTable, value: 0 }
- ]);
+ // 0 - not removable
+ this.arrLabel = arr.concat([{ displayValue: this.textEquation, value: this.textEquation, type: 0 },
+ { displayValue: this.textFigure, value: this.textFigure, type: 0 },
+ { displayValue: this.textTable, value: this.textTable, type: 0 }
+ ]);
this.cmbLabel = new Common.UI.ComboBox({
el: $('#caption-combo-label'),
@@ -179,12 +184,10 @@ define([
data: this.arrLabel
});
this.cmbLabel.on('selected', function(combo, record) {
- me.props.put_ExcludeLabel(record.value==-1);
- if (record.value>=0)
- me.props.put_Label(record.displayValue);
+ me.props.put_Label(record.value);
me.props.updateName();
me.txtCaption.setValue(me.props.get_Name());
- var custom = (record.value==1);
+ var custom = (record.type==1);
me.btnAdd.setDisabled(true);
me.btnDelete.setDisabled(!custom);
});
@@ -203,6 +206,16 @@ define([
this.btnDelete.on('click', function() {
});
+ this.chExclude = new Common.UI.CheckBox({
+ el: $('#caption-checkbox-exclude'),
+ labelText: this.textExclude
+ });
+ this.chExclude.on('change', function(field, newValue, oldValue) {
+ me.props.put_ExcludeLabel(newValue=='checked');
+ me.props.updateName();
+ me.txtCaption.setValue(me.props.get_Name());
+ });
+
this.cmbNumbering = new Common.UI.ComboBox({
el: $('#caption-combo-numbering'),
cls: 'input-group-nr',
@@ -300,13 +313,10 @@ define([
_setDefaults: function (props) {
this.props = new Asc.CAscCaptionProperties();
this.props.put_Before(!!this.cmbPosition.getValue());
- var value = this.cmbLabel.getValue();
- this.props.put_ExcludeLabel(value==-1);
- if (value>=0)
- this.props.put_Label(this.cmbLabel.getDisplayValue(this.cmbLabel.getSelectedRecord()));
- this.btnDelete.setDisabled(value!=1);
-
- this.props.put_ExcludeLabel = prot["put_ExcludeLabel"] = function(v){this.ExcludeLabel = v;};
+ this.props.put_Label(this.cmbLabel.getValue());
+ var value = this.cmbLabel.getSelectedRecord();
+ this.btnDelete.setDisabled(!value || value.type==0);
+ this.props.put_ExcludeLabel(this.chExclude.getValue()=='checked');
this.props.put_Format(this.cmbNumbering.getValue());
this.props.put_IncludeChapterNumber(this.chChapter.getValue()=='checked');
this.props.put_HeadingLvl(this.cmbChapter.getValue());
@@ -351,10 +361,10 @@ define([
textColon: 'colon',
textLongDash: 'long dash',
textDash: 'dash',
- textNone: 'None',
textEquation: 'Equation',
textFigure: 'Figure',
- textTable: 'Table'
+ textTable: 'Table',
+ textExclude: 'Exclude label from caption'
}, DE.Views.CaptionDialog || {}))
});
\ No newline at end of file
|