[DE Mobile] Added page margins setting.
This commit is contained in:
parent
9584a0ef85
commit
645612fd16
|
@ -81,6 +81,14 @@ define([
|
||||||
],
|
],
|
||||||
_licInfo;
|
_licInfo;
|
||||||
|
|
||||||
|
var mm2Cm = function(mm) {
|
||||||
|
return parseFloat((mm/10.).toFixed(2));
|
||||||
|
};
|
||||||
|
|
||||||
|
var cm2Mm = function(cm) {
|
||||||
|
return cm * 10.;
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
models: [],
|
models: [],
|
||||||
collections: [],
|
collections: [],
|
||||||
|
@ -89,14 +97,23 @@ define([
|
||||||
],
|
],
|
||||||
|
|
||||||
initialize: function () {
|
initialize: function () {
|
||||||
|
var me = this;
|
||||||
|
|
||||||
Common.SharedSettings.set('readerMode', false);
|
Common.SharedSettings.set('readerMode', false);
|
||||||
Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this));
|
Common.NotificationCenter.on('settingscontainer:show', _.bind(this.initEvents, this));
|
||||||
|
|
||||||
this.addListeners({
|
me.maxMarginsW = me.maxMarginsH = 0;
|
||||||
|
me.localSectionProps = new Asc.CDocumentSectionProps();
|
||||||
|
|
||||||
|
me.addListeners({
|
||||||
'Settings': {
|
'Settings': {
|
||||||
'page:show' : this.onPageShow
|
'page:show' : me.onPageShow
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
uiApp.onPageAfterBack('settings-document-view', function (page) {
|
||||||
|
me.applyPageMarginsIfNeed()
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
setApi: function (api) {
|
setApi: function (api) {
|
||||||
|
@ -208,7 +225,8 @@ define([
|
||||||
initPageDocumentSettings: function () {
|
initPageDocumentSettings: function () {
|
||||||
var me = this,
|
var me = this,
|
||||||
$pageOrientation = $('.page[data-page=settings-document-view] input:radio[name=doc-orientation]'),
|
$pageOrientation = $('.page[data-page=settings-document-view] input:radio[name=doc-orientation]'),
|
||||||
$pageSize = $('#settings-document-format');
|
$pageSize = $('#settings-document-format'),
|
||||||
|
txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm);
|
||||||
|
|
||||||
// Init orientation
|
// Init orientation
|
||||||
$pageOrientation.val([_isPortrait]);
|
$pageOrientation.val([_isPortrait]);
|
||||||
|
@ -217,6 +235,23 @@ define([
|
||||||
// Init format
|
// Init format
|
||||||
$pageSize.find('.item-title').text(_pageSizes[_pageSizesIndex]['caption']);
|
$pageSize.find('.item-title').text(_pageSizes[_pageSizesIndex]['caption']);
|
||||||
$pageSize.find('.item-subtitle').text(_pageSizes[_pageSizesIndex]['subtitle']);
|
$pageSize.find('.item-subtitle').text(_pageSizes[_pageSizesIndex]['subtitle']);
|
||||||
|
|
||||||
|
// Init page margins
|
||||||
|
me.localSectionProps = me.api.asc_GetSectionProps();
|
||||||
|
|
||||||
|
if (me.localSectionProps) {
|
||||||
|
me.maxMarginsH = me.localSectionProps.get_H() - 26;
|
||||||
|
me.maxMarginsW = me.localSectionProps.get_W() - 127;
|
||||||
|
|
||||||
|
$('#document-margin-top .item-after label').text(mm2Cm(me.localSectionProps.get_TopMargin()) + ' ' + txtCm);
|
||||||
|
$('#document-margin-bottom .item-after label').text(mm2Cm(me.localSectionProps.get_BottomMargin()) + ' ' + txtCm);
|
||||||
|
$('#document-margin-left .item-after label').text(mm2Cm(me.localSectionProps.get_LeftMargin()) + ' ' + txtCm);
|
||||||
|
$('#document-margin-right .item-after label').text(mm2Cm(me.localSectionProps.get_RightMargin()) + ' ' + txtCm);
|
||||||
|
}
|
||||||
|
|
||||||
|
_.each(["top", "left", "bottom", "right"], function(align) {
|
||||||
|
$(Common.Utils.String.format('#document-margin-{0} .button', align)).single('click', _.bind(me.onPageMarginsChange, me, align));
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
initPageInfo: function () {
|
initPageInfo: function () {
|
||||||
|
@ -271,6 +306,29 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Utils
|
||||||
|
|
||||||
|
applyPageMarginsIfNeed: function() {
|
||||||
|
var me = this,
|
||||||
|
originalMarginsProps = me.api.asc_GetSectionProps(),
|
||||||
|
originalMarginsChecksum = _.reduce([
|
||||||
|
originalMarginsProps.get_TopMargin(),
|
||||||
|
originalMarginsProps.get_LeftMargin(),
|
||||||
|
originalMarginsProps.get_RightMargin(),
|
||||||
|
originalMarginsProps.get_BottomMargin()
|
||||||
|
], function(memo, num){ return memo + num; }, 0),
|
||||||
|
localMarginsChecksum = _.reduce([
|
||||||
|
me.localSectionProps.get_TopMargin(),
|
||||||
|
me.localSectionProps.get_LeftMargin(),
|
||||||
|
me.localSectionProps.get_RightMargin(),
|
||||||
|
me.localSectionProps.get_BottomMargin()
|
||||||
|
], function(memo, num){ return memo + num; }, 0);
|
||||||
|
|
||||||
|
if (Math.abs(originalMarginsChecksum - localMarginsChecksum) > 0.01) {
|
||||||
|
me.api.asc_SetSectionProps(me.localSectionProps);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// Handlers
|
// Handlers
|
||||||
|
|
||||||
onSearch: function (e) {
|
onSearch: function (e) {
|
||||||
|
@ -373,6 +431,38 @@ define([
|
||||||
}, 300);
|
}, 300);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onPageMarginsChange: function (align, e) {
|
||||||
|
var me = this,
|
||||||
|
$button = $(e.currentTarget),
|
||||||
|
step = 1, // mm
|
||||||
|
txtCm = Common.Utils.Metric.getMetricName(Common.Utils.Metric.c_MetricUnits.cm),
|
||||||
|
marginValue = null;
|
||||||
|
|
||||||
|
switch (align) {
|
||||||
|
case 'left': marginValue = me.localSectionProps.get_LeftMargin(); break;
|
||||||
|
case 'top': marginValue = me.localSectionProps.get_TopMargin(); break;
|
||||||
|
case 'right': marginValue = me.localSectionProps.get_RightMargin(); break;
|
||||||
|
case 'bottom': marginValue = me.localSectionProps.get_BottomMargin(); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($button.hasClass('decrement')) {
|
||||||
|
marginValue = Math.max(0, marginValue - step);
|
||||||
|
} else {
|
||||||
|
marginValue = Math.min((align == 'left' || align == 'right') ? me.maxMarginsW : me.maxMarginsH, marginValue + step);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (align) {
|
||||||
|
case 'left': me.localSectionProps.put_LeftMargin(marginValue); break;
|
||||||
|
case 'top': me.localSectionProps.put_TopMargin(marginValue); break;
|
||||||
|
case 'right': me.localSectionProps.put_RightMargin(marginValue); break;
|
||||||
|
case 'bottom': me.localSectionProps.put_BottomMargin(marginValue); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(Common.Utils.String.format('#document-margin-{0} .item-after label', align)).text(mm2Cm(marginValue) + ' ' + txtCm);
|
||||||
|
|
||||||
|
me.applyPageMarginsIfNeed()
|
||||||
|
},
|
||||||
|
|
||||||
// API handlers
|
// API handlers
|
||||||
|
|
||||||
onApiGetDocInfoStart: function () {
|
onApiGetDocInfoStart: function () {
|
||||||
|
|
|
@ -209,6 +209,71 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="content-block-title"><%= scope.textMargins %></div>
|
||||||
|
<div class="list-block">
|
||||||
|
<ul>
|
||||||
|
<li id="document-margin-top">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textTop %></div>
|
||||||
|
<div class="item-after splitter">
|
||||||
|
<% if (!android) { %><label></label><% } %>
|
||||||
|
<p class="buttons-row">
|
||||||
|
<span class="button decrement"><% if (android) { %><i class="icon icon-expand-down"></i><% } else { %>-<% } %></span>
|
||||||
|
<% if (android) { %><label></label><% } %>
|
||||||
|
<span class="button increment"><% if (android) { %><i class="icon icon-expand-up"></i><% } else { %>+<% } %></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li id="document-margin-bottom">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textBottom %></div>
|
||||||
|
<div class="item-after splitter">
|
||||||
|
<% if (!android) { %><label></label><% } %>
|
||||||
|
<p class="buttons-row">
|
||||||
|
<span class="button decrement"><% if (android) { %><i class="icon icon-expand-down"></i><% } else { %>-<% } %></span>
|
||||||
|
<% if (android) { %><label></label><% } %>
|
||||||
|
<span class="button increment"><% if (android) { %><i class="icon icon-expand-up"></i><% } else { %>+<% } %></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li id="document-margin-left">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textLeft %></div>
|
||||||
|
<div class="item-after splitter">
|
||||||
|
<% if (!android) { %><label></label><% } %>
|
||||||
|
<p class="buttons-row">
|
||||||
|
<span class="button decrement"><% if (android) { %><i class="icon icon-expand-down"></i><% } else { %>-<% } %></span>
|
||||||
|
<% if (android) { %><label></label><% } %>
|
||||||
|
<span class="button increment"><% if (android) { %><i class="icon icon-expand-up"></i><% } else { %>+<% } %></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li id="document-margin-right">
|
||||||
|
<div class="item-content">
|
||||||
|
<div class="item-inner">
|
||||||
|
<div class="item-title"><%= scope.textRight %></div>
|
||||||
|
<div class="item-after splitter">
|
||||||
|
<% if (!android) { %><label></label><% } %>
|
||||||
|
<p class="buttons-row">
|
||||||
|
<span class="button decrement"><% if (android) { %><i class="icon icon-expand-down"></i><% } else { %>-<% } %></span>
|
||||||
|
<% if (android) { %><label></label><% } %>
|
||||||
|
<span class="button increment"><% if (android) { %><i class="icon icon-expand-up"></i><% } else { %>+<% } %></span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -261,7 +261,12 @@ define([
|
||||||
textOrientation: 'Orientation',
|
textOrientation: 'Orientation',
|
||||||
textPoweredBy: 'Powered by',
|
textPoweredBy: 'Powered by',
|
||||||
textSpellcheck: 'Spell Checking',
|
textSpellcheck: 'Spell Checking',
|
||||||
textPrint: 'Print'
|
textPrint: 'Print',
|
||||||
|
textMargins: 'Margins',
|
||||||
|
textTop: 'Top',
|
||||||
|
textLeft: 'Left',
|
||||||
|
textBottom: 'Bottom',
|
||||||
|
textRight: 'Right'
|
||||||
|
|
||||||
}
|
}
|
||||||
})(), DE.Views.Settings || {}))
|
})(), DE.Views.Settings || {}))
|
||||||
|
|
|
@ -387,5 +387,10 @@
|
||||||
"DE.Views.Settings.unknownText": "Unknown",
|
"DE.Views.Settings.unknownText": "Unknown",
|
||||||
"DE.Views.Settings.textSpellcheck": "Spell Checking",
|
"DE.Views.Settings.textSpellcheck": "Spell Checking",
|
||||||
"DE.Views.Settings.textPrint": "Print",
|
"DE.Views.Settings.textPrint": "Print",
|
||||||
|
"DE.Views.Settings.textMargins": "Margins",
|
||||||
|
"DE.Views.Settings.textTop": "Top",
|
||||||
|
"DE.Views.Settings.textLeft": "Left",
|
||||||
|
"DE.Views.Settings.textBottom": "Bottom",
|
||||||
|
"DE.Views.Settings.textRight": "Right",
|
||||||
"DE.Views.Toolbar.textBack": "Back"
|
"DE.Views.Toolbar.textBack": "Back"
|
||||||
}
|
}
|
Loading…
Reference in a new issue