/* * * (c) Copyright Ascensio System SIA 2010-2019 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ /** * PrintSettings.js * * Created by Julia Radzhabova on 4/03/14 * Copyright (c) 2018 Ascensio System SIA. All rights reserved. * */ define([ 'text!spreadsheeteditor/main/app/template/PrintSettings.template', 'common/main/lib/view/AdvancedSettingsWindow', 'common/main/lib/component/MetricSpinner', 'common/main/lib/component/CheckBox', 'common/main/lib/component/RadioBox', 'common/main/lib/component/ListView' ], function (contentTemplate) { 'use strict'; SSE.Views.PrintSettings = Common.Views.AdvancedSettingsWindow.extend(_.extend({ options: { alias: 'PrintSettings', contentWidth: 280, height: 575, buttons: null }, initialize : function(options) { this.type = options.type || 'print'; _.extend(this.options, { title: (this.type == 'print') ? this.textTitle : this.textTitlePDF, template: [ '
', '', '
' + _.template(contentTemplate)({scope: this}) + '
', '
', '
', '' ].join('') }, options); Common.Views.AdvancedSettingsWindow.prototype.initialize.call(this, this.options); this.spinners = []; }, render: function() { Common.Views.AdvancedSettingsWindow.prototype.render.call(this); this.cmbRange = new Common.UI.ComboBox({ el : $('#printadv-dlg-combo-range'), style : 'width: 132px;', menuStyle : 'min-width: 132px;max-height: 280px;', editable : false, takeFocusOnClose: true, cls : 'input-group-nr', data : [ { value: Asc.c_oAscPrintType.ActiveSheets, displayValue: this.textCurrentSheet }, { value: Asc.c_oAscPrintType.EntireWorkbook, displayValue: this.textAllSheets }, { value: Asc.c_oAscPrintType.Selection, displayValue: this.textSelection } ] }); this.cmbRange.on('selected', _.bind(this.comboRangeChange, this)); this.chIgnorePrintArea = new Common.UI.CheckBox({ el: $('#printadv-dlg-chb-ignore'), labelText: this.textIgnore }); this.cmbSheet = new Common.UI.ComboBox({ el : $('#printadv-dlg-combo-sheets'), style : 'width: 242px;', menuStyle : 'min-width: 242px;max-height: 280px;', editable : false, cls : 'input-group-nr', data : [], takeFocusOnClose: true }); this.cmbPaperSize = new Common.UI.ComboBox({ el : $('#printadv-dlg-combo-pages'), style : 'width: 242px;', menuStyle : 'max-height: 280px; min-width: 242px;', editable : false, takeFocusOnClose: true, cls : 'input-group-nr', data : [ {value:'215.9|279.4', displayValue:'US Letter (21,59cm x 27,94cm)', caption: 'US Letter'}, {value:'215.9|355.6', displayValue:'US Legal (21,59cm x 35,56cm)', caption: 'US Legal'}, {value:'210|297', displayValue:'A4 (21cm x 29,7cm)', caption: 'A4'}, {value:'148|210', displayValue:'A5 (14,8cm x 21cm)', caption: 'A5'}, {value:'176|250', displayValue:'B5 (17,6cm x 25cm)', caption: 'B5'}, {value:'104.8|241.3', displayValue:'Envelope #10 (10,48cm x 24,13cm)', caption: 'Envelope #10'}, {value:'110|220', displayValue:'Envelope DL (11cm x 22cm)', caption: 'Envelope DL'}, {value:'279.4|431.8', displayValue:'Tabloid (27,94cm x 43,18cm)', caption: 'Tabloid'}, {value:'297|420', displayValue:'A3 (29,7cm x 42cm)', caption: 'A3'}, {value:'304.8|457.1', displayValue:'Tabloid Oversize (30,48cm x 45,71cm)', caption: 'Tabloid Oversize'}, {value:'196.8|273', displayValue:'ROC 16K (19,68cm x 27,3cm)', caption: 'ROC 16K'}, {value:'119.9|234.9', displayValue:'Envelope Choukei 3 (11,99cm x 23,49cm)', caption: 'Envelope Choukei 3'}, {value:'330.2|482.5', displayValue:'Super B/A3 (33,02cm x 48,25cm)', caption: 'Super B/A3'} ] }); this.cmbPaperOrientation = new Common.UI.ComboBox({ el : $('#printadv-dlg-combo-orient'), style : 'width: 132px;', menuStyle : 'min-width: 132px;', editable : false, takeFocusOnClose: true, cls : 'input-group-nr', data : [ { value: Asc.c_oAscPageOrientation.PagePortrait, displayValue: this.strPortrait }, { value: Asc.c_oAscPageOrientation.PageLandscape, displayValue: this.strLandscape } ] }); this.chPrintGrid = new Common.UI.CheckBox({ el: $('#printadv-dlg-chb-grid'), labelText: (this.type == 'print') ? this.textPrintGrid : this.textShowGrid }); this.chPrintRows = new Common.UI.CheckBox({ el: $('#printadv-dlg-chb-rows'), labelText: (this.type == 'print') ? this.textPrintHeadings : this.textShowHeadings }); this.spnMarginTop = new Common.UI.MetricSpinner({ el: $('#printadv-dlg-spin-margin-top'), step: .1, width: 110, defaultUnit : "cm", value: '0 cm', maxValue: 48.25, minValue: 0 }); this.spinners.push(this.spnMarginTop); this.spnMarginBottom = new Common.UI.MetricSpinner({ el: $('#printadv-dlg-spin-margin-bottom'), step: .1, width: 110, defaultUnit : "cm", value: '0 cm', maxValue: 48.25, minValue: 0 }); this.spinners.push(this.spnMarginBottom); this.spnMarginLeft = new Common.UI.MetricSpinner({ el: $('#printadv-dlg-spin-margin-left'), step: .1, width: 110, defaultUnit : "cm", value: '0.19 cm', maxValue: 48.25, minValue: 0 }); this.spinners.push(this.spnMarginLeft); this.spnMarginRight = new Common.UI.MetricSpinner({ el: $('#printadv-dlg-spin-margin-right'), step: .1, width: 110, defaultUnit : "cm", value: '0.19 cm', maxValue: 48.25, minValue: 0 }); this.spinners.push(this.spnMarginRight); var itemsTemplate = _.template([ '<% _.each(items, function(item) { %>', '
  • class="border-top" style="margin-top: 5px;" <% } %> >', '<%= scope.getDisplayValue(item) %>', '
  • ', '<% }); %>' ].join('')); this.cmbLayout = new Common.UI.ComboBox({ el : $('#printadv-dlg-combo-layout'), style : 'width: 242px;', menuStyle : 'min-width: 242px;', editable : false, takeFocusOnClose: true, cls : 'input-group-nr', data : [ { value: 0, displayValue: this.textActualSize }, { value: 1, displayValue: this.textFitPage }, { value: 2, displayValue: this.textFitCols }, { value: 3, displayValue: this.textFitRows }, { value: 'customoptions', displayValue: this.textCustomOptions } ], itemsTemplate: itemsTemplate }); this.txtRangeTop = new Common.UI.InputFieldBtn({ el : $('#printadv-dlg-txt-top'), style : 'width: 147px;', allowBlank : true, validateOnChange: true }); this.btnPresetsTop = new Common.UI.Button({ parentEl: $('#printadv-dlg-presets-top'), cls: 'btn-text-menu-default', caption: this.textRepeat, style: 'width: 85px;', menu: true }); this.txtRangeLeft = new Common.UI.InputFieldBtn({ el : $('#printadv-dlg-txt-left'), style : 'width: 147px;', allowBlank : true, validateOnChange: true }); this.btnPresetsLeft = new Common.UI.Button({ parentEl: $('#printadv-dlg-presets-left'), cls: 'btn-text-menu-default', caption: this.textRepeat, style: 'width: 85px;', menu: true }); this.btnHide = new Common.UI.Button({ el: $('#printadv-dlg-btn-hide') }); this.btnHide.on('click', _.bind(this.handlerShowDetails, this)); this.panelDetails = $('#printadv-dlg-content-to-hide'); this.updateMetricUnit(); this.options.afterrender && this.options.afterrender.call(this); var value = Common.localStorage.getItem("sse-hide-print-settings"); this.extended = (value!==null && parseInt(value)==0); this.handlerShowDetails(this.btnHide); }, getFocusedComponents: function() { return [this.cmbRange, this.chIgnorePrintArea, this.cmbSheet, this.cmbPaperSize, this.cmbPaperOrientation, this.cmbLayout, this.txtRangeTop, this.txtRangeLeft, this.spnMarginTop, this.spnMarginBottom, this.spnMarginLeft, this.spnMarginRight, this.chPrintGrid, this.chPrintRows]; }, getDefaultFocusableComponent: function () { if (this._alreadyRendered) return; // focus only at first show this._alreadyRendered = true; return this.cmbRange; }, addCustomScale: function (add) { if (add) { this.cmbLayout.setData([ { value: 0, displayValue: this.textActualSize }, { value: 1, displayValue: this.textFitPage }, { value: 2, displayValue: this.textFitCols }, { value: 3, displayValue: this.textFitRows }, { value: 4, displayValue: this.textCustom }, { value: 'customoptions', displayValue: this.textCustomOptions } ]); } else { this.cmbLayout.setData([ { value: 0, displayValue: this.textActualSize }, { value: 1, displayValue: this.textFitPage }, { value: 2, displayValue: this.textFitCols }, { value: 3, displayValue: this.textFitRows }, { value: 'customoptions', displayValue: this.textCustomOptions } ]); } }, setRange: function(value) { this.cmbRange.setValue(value); }, getRange: function() { return this.cmbRange.getValue(); }, setIgnorePrintArea: function(value) { this.chIgnorePrintArea.setValue(value); }, getIgnorePrintArea: function() { return (this.chIgnorePrintArea.getValue()=='checked'); }, comboRangeChange: function(combo, record) { this.fireEvent('changerange', this); }, updateMetricUnit: function() { if (this.spinners) { for (var i=0; i