diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index 52c4200b1..e07d4939a 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -1425,6 +1425,7 @@ define([ var win = new PE.Views.ShapeSettingsAdvanced( { shapeProps: elValue, + slideSize: PE.getController('Toolbar').currentPageSize, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/presentationeditor/main/app/template/ChartSettingsAdvanced.template b/apps/presentationeditor/main/app/template/ChartSettingsAdvanced.template index 867ab988c..19fce891c 100644 --- a/apps/presentationeditor/main/app/template/ChartSettingsAdvanced.template +++ b/apps/presentationeditor/main/app/template/ChartSettingsAdvanced.template @@ -1,4 +1,58 @@ -
+
+
+ + + + + + + + + +
+ +
+ +
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
diff --git a/apps/presentationeditor/main/app/template/ShapeSettingsAdvanced.template b/apps/presentationeditor/main/app/template/ShapeSettingsAdvanced.template index 6c3e2a6f9..0900539cd 100644 --- a/apps/presentationeditor/main/app/template/ShapeSettingsAdvanced.template +++ b/apps/presentationeditor/main/app/template/ShapeSettingsAdvanced.template @@ -1,6 +1,11 @@
+ + +
+ +
@@ -16,6 +21,36 @@
+
+
+ + + + + + + + + + + + +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+
diff --git a/apps/presentationeditor/main/app/view/ChartSettings.js b/apps/presentationeditor/main/app/view/ChartSettings.js index 9ac998a65..9650c68c3 100644 --- a/apps/presentationeditor/main/app/view/ChartSettings.js +++ b/apps/presentationeditor/main/app/view/ChartSettings.js @@ -486,6 +486,7 @@ define([ (new PE.Views.ChartSettingsAdvanced( { chartProps: elValue, + slideSize: PE.getController('Toolbar').currentPageSize, handler: function(result, value) { if (result == 'ok') { if (me.api) { diff --git a/apps/presentationeditor/main/app/view/ChartSettingsAdvanced.js b/apps/presentationeditor/main/app/view/ChartSettingsAdvanced.js index 5b5a0155a..4064fba12 100644 --- a/apps/presentationeditor/main/app/view/ChartSettingsAdvanced.js +++ b/apps/presentationeditor/main/app/view/ChartSettingsAdvanced.js @@ -50,13 +50,15 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem height: 342, toggleGroup: 'chart-adv-settings-group', properties: null, - storageName: 'pe-chart-settings-adv-category' + storageName: 'pe-chart-settings-adv-category', + sizeMax: {width: 55.88, height: 55.88}, }, initialize : function(options) { _.extend(this.options, { title: this.textTitle, items: [ + {panelId: 'id-adv-chart-placement', panelCaption: this.textPlacement}, {panelId: 'id-adv-chart-alttext', panelCaption: this.textAlt} ], contentTemplate: _.template(contentTemplate)({ @@ -65,7 +67,10 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem }, options); Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options); + this.spinners = []; + this._originalProps = this.options.chartProps; + this.slideSize = this.options.slideSize; this._changedProps = null; }, @@ -74,6 +79,125 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem var me = this; + // Placement + + this.spnWidth = new Common.UI.MetricSpinner({ + el: $('#chart-advanced-spin-width'), + step: .1, + width: 100, + defaultUnit : "cm", + value: '3 cm', + maxValue: 55.88, + minValue: 0 + }); + this.spnWidth.on('change', _.bind(function(field){ + if (this.btnRatio.pressed) { + var w = field.getNumberValue(); + var h = w/this._nRatio; + if (h>this.sizeMax.height) { + h = this.sizeMax.height; + w = h * this._nRatio; + this.spnWidth.setValue(w, true); + } + this.spnHeight.setValue(h, true); + } + if (this._changedProps) { + this._changedProps.put_Width(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue())); + this._changedProps.put_Height(Common.Utils.Metric.fnRecalcToMM(this.spnHeight.getNumberValue())); + } + }, this)); + this.spinners.push(this.spnWidth); + + this.spnHeight = new Common.UI.MetricSpinner({ + el: $('#chart-advanced-spin-height'), + step: .1, + width: 100, + defaultUnit : "cm", + value: '3 cm', + maxValue: 55.88, + minValue: 0 + }); + this.spnHeight.on('change', _.bind(function(field, newValue, oldValue, eOpts){ + var h = field.getNumberValue(), w = null; + if (this.btnRatio.pressed) { + w = h * this._nRatio; + if (w>this.sizeMax.width) { + w = this.sizeMax.width; + h = w/this._nRatio; + this.spnHeight.setValue(h, true); + } + this.spnWidth.setValue(w, true); + } + if (this._changedProps) { + this._changedProps.put_Height(Common.Utils.Metric.fnRecalcToMM(field.getNumberValue())); + this._changedProps.put_Width(Common.Utils.Metric.fnRecalcToMM(this.spnWidth.getNumberValue())); + } + }, this)); + this.spinners.push(this.spnHeight); + + this.btnRatio = new Common.UI.Button({ + parentEl: $('#chart-advanced-button-ratio'), + cls: 'btn-toolbar', + iconCls: 'toolbar__icon advanced-btn-ratio', + style: 'margin-bottom: 1px;', + enableToggle: true, + hint: this.textKeepRatio + }); + this.btnRatio.on('click', _.bind(function(btn, e) { + if (btn.pressed && this.spnHeight.getNumberValue()>0) { + this._nRatio = this.spnWidth.getNumberValue()/this.spnHeight.getNumberValue(); + } + if (this._changedProps) { + this._changedProps.asc_putLockAspect(btn.pressed); + } + }, this)); + + this.spnX = new Common.UI.MetricSpinner({ + el: $('#chart-advanced-spin-x'), + step: .1, + width: 85, + defaultUnit : "cm", + defaultValue : 0, + value: '0 cm', + maxValue: 55.87, + minValue: -55.87 + }); + this.spinners.push(this.spnX); + + this.spnY = new Common.UI.MetricSpinner({ + el: $('#chart-advanced-spin-y'), + step: .1, + width: 85, + defaultUnit : "cm", + defaultValue : 0, + value: '0 cm', + maxValue: 55.87, + minValue: -55.87 + }); + this.spinners.push(this.spnY); + + this.cmbFromX = new Common.UI.ComboBox({ + el: $('#chart-advanced-combo-from-x'), + cls: 'input-group-nr', + style: "width: 100px;", + menuStyle: 'min-width: 100px;', + data: [ + { value: 'left', displayValue: this.textTopLeftCorner }, + { value: 'center', displayValue: this.textCenter } + ] + }); + + this.cmbFromY = new Common.UI.ComboBox({ + el: $('#chart-advanced-combo-from-y'), + cls: 'input-group-nr', + style: "width: 100px;", + menuStyle: 'min-width: 100px;', + data: [ + { value: 'left', displayValue: this.textTopLeftCorner }, + { value: 'center', displayValue: this.textCenter } + ] + }); + // Alt Text this.inputAltTitle = new Common.UI.InputField({ @@ -97,6 +221,7 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem }, afterRender: function() { + this.updateMetricUnit(); this._setDefaults(this._originalProps); if (this.storageName) { var value = Common.localStorage.getItem(this.storageName); @@ -125,6 +250,28 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem _setDefaults: function(props) { if (props ){ + this.spnWidth.setMaxValue(this.sizeMax.width); + this.spnHeight.setMaxValue(this.sizeMax.height); + this.spnWidth.setValue(Common.Utils.Metric.fnRecalcFromMM(props.get_Width()).toFixed(2), true); + this.spnHeight.setValue(Common.Utils.Metric.fnRecalcFromMM(props.get_Height()).toFixed(2), true); + + var value = props.asc_getLockAspect(); + this.btnRatio.toggle(value); + if (props.get_Height()>0) + this._nRatio = props.get_Width()/props.get_Height(); + + this.cmbFromX.setValue('left'); + this.cmbFromY.setValue('left'); + + /*if (props.get_Position()) { + var Position = {X: props.get_Position().get_X(), Y: props.get_Position().get_Y()}; + this.spnX.setValue((Position.X !== null && Position.X !== undefined) ? Common.Utils.Metric.fnRecalcFromMM(Position.X) : '', true); + this.spnY.setValue((Position.Y !== null && Position.Y !== undefined) ? Common.Utils.Metric.fnRecalcFromMM(Position.Y) : '', true); + } else {*/ + this.spnX.setValue('', true); + this.spnY.setValue('', true); + /*}*/ + var value = props.asc_getTitle(); this.inputAltTitle.setValue(value ? value : ''); @@ -136,6 +283,23 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem }, getSettings: function() { + /*var Position = new Asc.CPosition(); + if (this.spnX.getValue() !== '') { + var x = Common.Utils.Metric.fnRecalcToMM(this.spnX.getNumberValue()); + if (this.cmbFromX.getValue() === 'center') { + x = (this.slideSize.width/36000)/2 + x; + } + Position.put_X(x); + } + if (this.spnY.getValue() !== '') { + var y = Common.Utils.Metric.fnRecalcToMM(this.spnY.getNumberValue()); + if (this.cmbFromY.getValue() === 'center') { + y = (this.slideSize.height/36000)/2 + y; + } + Position.put_Y(y); + } + this._changedProps.put_Position(Position);*/ + if (this.isAltTitleChanged) this._changedProps.asc_putTitle(this.inputAltTitle.getValue()); @@ -145,11 +309,36 @@ define([ 'text!presentationeditor/main/app/template/ChartSettingsAdvanced.tem return { chartProps: this._changedProps} ; }, + updateMetricUnit: function() { + if (this.spinners) { + for (var i=0; i