From 33663d2bbeb1cc02d209c111ce4a5a13478519ed Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Mon, 19 Dec 2022 18:50:32 +0300 Subject: [PATCH 1/2] [SSE] Fix bug 60105 --- .../main/app/controller/Print.js | 52 +++++++++++-------- .../main/app/view/FileMenuPanels.js | 28 ++++++++++ apps/spreadsheeteditor/main/locale/en.json | 1 + .../main/resources/less/leftmenu.less | 16 +++++- 4 files changed, 74 insertions(+), 23 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/controller/Print.js b/apps/spreadsheeteditor/main/app/controller/Print.js index 65b0fb3ab..41b8f6a34 100644 --- a/apps/spreadsheeteditor/main/app/controller/Print.js +++ b/apps/spreadsheeteditor/main/app/controller/Print.js @@ -91,11 +91,16 @@ define([ } }, this)); this.printSettings.btnsSave.forEach(function (btn) { - btn.on('click', _.bind(me.querySavePrintSettings, me, false)); + btn.on('click', _.bind(me.querySavePrintSettings, me, 'save')); }); this.printSettings.btnsPrint.forEach(function (btn) { - btn.on('click', _.bind(me.querySavePrintSettings, me, true)); + btn.on('click', _.bind(me.querySavePrintSettings, me, 'print')); }); + if (this.mode.isDesktopApp) { + this.printSettings.btnsPrintPDF.forEach(function (btn) { + btn.on('click', _.bind(me.querySavePrintSettings, me, 'print-pdf')); + }); + } this.printSettings.btnPrevPage.on('click', _.bind(this.onChangePreviewPage, this, false)); this.printSettings.btnNextPage.on('click', _.bind(this.onChangePreviewPage, this, true)); this.printSettings.txtNumberPage.on({ @@ -442,34 +447,37 @@ define([ querySavePrintSettings: function(print) { if ( this.checkMargins(this.printSettings) ) { this.savePageOptions(this.printSettings); - this._isPrint = print; + this._isPrint = print === 'print'; this.printSettings.applySettings(); - if (print) { - var view = SSE.getController('Toolbar').getView('Toolbar'); - var printType = this.printSettings.getRange(); - this.adjPrintParams.asc_setPrintType(printType); - this.adjPrintParams.asc_setPageOptionsMap(this._changedProps); - this.adjPrintParams.asc_setIgnorePrintArea(this.printSettings.getIgnorePrintArea()); - this.adjPrintParams.asc_setActiveSheetsArray(printType === Asc.c_oAscPrintType.ActiveSheets ? SSE.getController('Statusbar').getSelectTabs() : null); - var pageFrom = this.printSettings.getPagesFrom(), - pageTo = this.printSettings.getPagesTo(); - if (pageFrom > pageTo) { - var t = pageFrom; - pageFrom = pageTo; - pageTo = t; - } - this.adjPrintParams.asc_setStartPageIndex(pageFrom > 0 ? pageFrom - 1 : null); - this.adjPrintParams.asc_setEndPageIndex(pageTo > 0 ? pageTo - 1 : null); - Common.localStorage.setItem("sse-print-settings-range", printType); + var view = SSE.getController('Toolbar').getView('Toolbar'); + var printType = this.printSettings.getRange(); + this.adjPrintParams.asc_setPrintType(printType); + this.adjPrintParams.asc_setPageOptionsMap(this._changedProps); + this.adjPrintParams.asc_setIgnorePrintArea(this.printSettings.getIgnorePrintArea()); + this.adjPrintParams.asc_setActiveSheetsArray(printType === Asc.c_oAscPrintType.ActiveSheets ? SSE.getController('Statusbar').getSelectTabs() : null); + var pageFrom = this.printSettings.getPagesFrom(), + pageTo = this.printSettings.getPagesTo(); + if (pageFrom > pageTo) { + var t = pageFrom; + pageFrom = pageTo; + pageTo = t; + } + this.adjPrintParams.asc_setStartPageIndex(pageFrom > 0 ? pageFrom - 1 : null); + this.adjPrintParams.asc_setEndPageIndex(pageTo > 0 ? pageTo - 1 : null); + Common.localStorage.setItem("sse-print-settings-range", printType); + if (print === 'print') { var opts = new Asc.asc_CDownloadOptions(null, Common.Utils.isChrome || Common.Utils.isOpera || Common.Utils.isGecko && Common.Utils.firefoxVersion>86); opts.asc_setAdvancedOptions(this.adjPrintParams); this.api.asc_Print(opts); - Common.NotificationCenter.trigger('edit:complete', view); - this._isPrint = false; + } else if (print === 'print-pdf') { + var opts = new Asc.asc_CDownloadOptions(Asc.c_oAscFileType.PDF); + opts.asc_setAdvancedOptions(this.adjPrintParams); + this.api.asc_DownloadAs(opts); } + Common.NotificationCenter.trigger('edit:complete', view); } }, diff --git a/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js b/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js index 2f4fcbbbf..414175279 100644 --- a/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js +++ b/apps/spreadsheeteditor/main/app/view/FileMenuPanels.js @@ -2735,6 +2735,26 @@ SSE.Views.FileMenuPanels.RecentFiles = Common.UI.BaseView.extend({ this.btnsSave = []; this.btnsPrint = []; + if (this.mode.isDesktopApp) { + this.btnsPrintPDF = []; + for (var i=0; i<2; i++) { + var table = + ['', + '', + '', + '', + '', + '', '
', + ].join(''); + var tableTemplate = _.template(table)({scope: this, index: i}); + $($markup.find('.footer')[i]).html(tableTemplate); + this.btnsPrintPDF.push(new Common.UI.Button({ + el: $markup.findById('#print-btn-print-pdf-'+i) + })); + } + $markup.find('.footer').addClass('footer-with-pdf'); + } + for (var i=0; i<2; i++) { this.btnsSave.push(new Common.UI.Button({ el: $markup.findById('#print-btn-save-'+i) @@ -2744,6 +2764,13 @@ SSE.Views.FileMenuPanels.RecentFiles = Common.UI.BaseView.extend({ })); } + this.btnsSavePDF = []; + for (var i=0; i<2; i++) { + this.btnsSavePDF.push(new Common.UI.Button({ + el: $markup.findById('#print-btn-save-pdf-'+i) + })); + } + this.btnPrevPage = new Common.UI.Button({ parentEl: $markup.findById('#print-prev-page'), cls: 'btn-prev-page', @@ -2950,6 +2977,7 @@ SSE.Views.FileMenuPanels.RecentFiles = Common.UI.BaseView.extend({ txtPrint: 'Print', txtSave: 'Save', + txtPrintToPDF: 'Print to PDF', txtPrintRange: 'Print range', txtCurrentSheet: 'Current sheet', txtActiveSheets: 'Active sheets', diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 252a939af..670cce925 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -3122,6 +3122,7 @@ "SSE.Views.PrintWithPreview.txtSettingsOfSheet": "Settings of sheet", "SSE.Views.PrintWithPreview.txtSheet": "Sheet: {0}", "SSE.Views.PrintWithPreview.txtTop": "Top", + "SSE.Views.PrintWithPreview.txtPrintToPDF": "Print to PDF", "SSE.Views.ProtectDialog.textExistName": "ERROR! Range with such a title already exists", "SSE.Views.ProtectDialog.textInvalidName": "The range title must begin with a letter and may only contain letters, numbers, and spaces.", "SSE.Views.ProtectDialog.textInvalidRange": "ERROR! Invalid cells range", diff --git a/apps/spreadsheeteditor/main/resources/less/leftmenu.less b/apps/spreadsheeteditor/main/resources/less/leftmenu.less index 74f822d4a..8d069eb5d 100644 --- a/apps/spreadsheeteditor/main/resources/less/leftmenu.less +++ b/apps/spreadsheeteditor/main/resources/less/leftmenu.less @@ -693,7 +693,7 @@ font-weight: 700; } .footer { - .btn.primary { + .btn:not(:last-child) { margin-right: 8px; } } @@ -728,6 +728,20 @@ } } } + .footer-with-pdf { + table { + width: 247px; + } + td:not(:last-child) { + padding-right: 5px; + } + .btn-text-default.auto { + padding-left: 3px; + padding-right: 3px; + min-width: 64px; + width: 100%; + } + } } #print-navigation { height: 50px; From 232e4fed76a97d7b3a420c964292be709c33aeea Mon Sep 17 00:00:00 2001 From: JuliaSvinareva Date: Mon, 19 Dec 2022 22:54:13 +0300 Subject: [PATCH 2/2] [DE PE SSE] Fix scrolls and headers in file menu panels --- apps/documenteditor/main/app/view/FileMenuPanels.js | 5 +++-- apps/documenteditor/main/resources/less/filemenu.less | 5 ++++- .../main/app/view/FileMenuPanels.js | 5 +++-- .../main/resources/less/leftmenu.less | 4 ++++ .../spreadsheeteditor/main/app/view/FileMenuPanels.js | 11 ++--------- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/apps/documenteditor/main/app/view/FileMenuPanels.js b/apps/documenteditor/main/app/view/FileMenuPanels.js index 13f2da499..f09186f6c 100644 --- a/apps/documenteditor/main/app/view/FileMenuPanels.js +++ b/apps/documenteditor/main/app/view/FileMenuPanels.js @@ -806,7 +806,7 @@ define([ updateScroller: function() { if (this.scroller) { Common.UI.Menu.Manager.hideAll(); - var scrolled = this.$el.height()< this.pnlTable.parent().height() + 25 + this.pnlApply.height(); + var scrolled = this.$el.height()< this.pnlTable.parent().height() + 25 + this.pnlApply.height() + this.$el.find('.header').outerHeight(true); this.pnlApply.toggleClass('hidden', !scrolled); this.trApply.toggleClass('hidden', scrolled); this.pnlSettings.css('overflow', scrolled ? 'hidden' : 'visible'); @@ -2498,6 +2498,7 @@ define([ '
', '