Quick Print for all editors

This commit is contained in:
OVSharova 2022-11-26 17:11:39 +03:00
parent fc8e344dd9
commit 07390eb428
15 changed files with 125 additions and 27 deletions

View file

@ -1495,8 +1495,7 @@ define([
this.appOptions.canEditStyles = this.appOptions.canLicense && this.appOptions.canEdit;
this.appOptions.canPrint = (this.permissions.print !== false);
this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp;
this.appOptions.canQuickPrint = this.appOptions.canPrint && this.appOptions.isDesktopApp &&
!(this.editorConfig.customization && this.editorConfig.customization.compactHeader);
this.appOptions.canQuickPrint = this.appOptions.canPrint && this.appOptions.isDesktopApp && !this.editorConfig.customization;
this.appOptions.canRename = this.editorConfig.canRename;
this.appOptions.buildVersion = params.asc_getBuildVersion();
this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);

View file

@ -1068,10 +1068,7 @@ define([
} else {
var _main = this.getApplication().getController('Main');
_main.onPrintQuick();
}
Common.component.Analytics.trackEvent('Print');
Common.component.Analytics.trackEvent('ToolBar', 'Print');
@ -1080,14 +1077,13 @@ define([
onPrintMenu: function (btn, e){
var oldType = this.toolbar.btnPrint.options.printType;
var newType = e.value;
//this.toolbar.btnPrint.toggle(true);
if(newType != oldType) {
this.toolbar.btnPrint.changeIcon({
next: e.options.iconClsForMainBtn,
curr: this.toolbar.btnPrint.menu.items.filter(function(item){return item.value == oldType;})[0].options.iconClsForMainBtn
});
this.toolbar.btnPrint.updateHint([e.caption, this.views.Toolbar.prototype.tipInsertText]);
this.toolbar.btnPrint.updateHint([e.caption + e.options.platformKey, this.views.Toolbar.prototype.tipInsertText]);
this.toolbar.btnPrint.options.printType = newType;
}
this.onPrint(e);

View file

@ -781,7 +781,7 @@ define([
$('tr.comments', this.el)[mode.canCoAuthoring ? 'show' : 'hide']();
/** coauthoring end **/
$('tr.quick-print', this.el)[mode.canQuickPrint ? 'show' : 'hide']();
$('tr.quick-print', this.el)[mode.canQuickPrint && !mode.customization.compactHeader ? 'show' : 'hide']();
$('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show']();
if ( !Common.UI.Themes.available() ) {
$('tr.themes, tr.themes + tr.divider', this.el).hide();

View file

@ -191,9 +191,9 @@ define([
iconCls: 'toolbar__icon btn-print no-mask',
lock: [_set.cantPrint, _set.disableOnStart],
signals: ['disabled'],
split: config.canQuickPrint,
menu: config.canQuickPrint,
dataHint: '1',
split: config.canQuickPrint && Common.localStorage.getBool("de-settings-quick-print-button",false),
menu: config.canQuickPrint && Common.localStorage.getBool("de-settings-quick-print-button",false),
dataHintDirection: 'top',
dataHintTitle: 'P',
printType: 'print'
@ -1747,23 +1747,25 @@ define([
})).then(function () {
if ( !config.isEdit ) return;
if(me.btnPrint && config.canQuickPrint && Common.localStorage.getBool("de-settings-quick-print-button",false)){
if(me.btnPrint.menu){
me.btnPrint.setMenu(
new Common.UI.Menu({
items:[
{
caption: 'Print',
caption: me.tipPrint,
iconCls: 'menu__icon btn-print',
toggleGroup: 'viewPrint',
value: 'print',
iconClsForMainBtn: 'btn-print'
iconClsForMainBtn: 'btn-print',
platformKey: Common.Utils.String.platformKey('Ctrl+P')
},
{
caption: 'QuickPrint',
caption: me.tipPrintQuick,
iconCls: 'menu__icon btn-quick-print',
toggleGroup: 'viewPrint',
value: 'print-quick',
iconClsForMainBtn: 'btn-quick-print'
iconClsForMainBtn: 'btn-quick-print',
platformKey: ''
}
]
}));
@ -2695,6 +2697,7 @@ define([
tipUndo: 'Undo',
tipRedo: 'Redo',
tipPrint: 'Print',
tipPrintQuick: 'Quick print',
tipSave: 'Save',
tipIncFont: 'Increment font size',
tipDecFont: 'Decrement font size',

View file

@ -2934,6 +2934,7 @@
"DE.Views.Toolbar.tipPaste": "Paste",
"DE.Views.Toolbar.tipPrColor": "Paragraph background color",
"DE.Views.Toolbar.tipPrint": "Print",
"DE.Views.Toolbar.tipPrintQuick": "Quick print",
"DE.Views.Toolbar.tipRedo": "Redo",
"DE.Views.Toolbar.tipSave": "Save",
"DE.Views.Toolbar.tipSaveCoauth": "Save your changes for the other users to see them.",

View file

@ -1166,8 +1166,7 @@ define([
}
this.appOptions.canPrint = (this.permissions.print !== false);
this.appOptions.canPreviewPrint = this.appOptions.canPrint && !Common.Utils.isMac && this.appOptions.isDesktopApp;
this.appOptions.canQuickPrint = this.appOptions.canPrint && this.appOptions.isDesktopApp &&
!(this.editorConfig.customization && this.editorConfig.customization.compactHeader);
this.appOptions.canQuickPrint = this.appOptions.canPrint && this.appOptions.isDesktopApp && !this.editorConfig.customization;
this.appOptions.canRename = this.editorConfig.canRename;
this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && (typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);
this.appOptions.forcesave = this.appOptions.canForcesave;

View file

@ -284,6 +284,7 @@ define([
toolbar.btnPreview.menu.on('item:click', _.bind(this.onPreviewItemClick, this));
toolbar.btnPrint.on('click', _.bind(this.onPrint, this));
toolbar.btnPrint.on('disabled', _.bind(this.onBtnChangeState, this, 'print:disabled'));
toolbar.btnPrint.menu && toolbar.btnPrint.menu.on('item:click', _.bind(this.onPrintMenu, this));
toolbar.btnSave.on('click', _.bind(this.onSave, this));
toolbar.btnUndo.on('click', _.bind(this.onUndo, this));
toolbar.btnUndo.on('disabled', _.bind(this.onBtnChangeState, this, 'undo:disabled'));
@ -1065,13 +1066,33 @@ define([
},
onPrint: function(e) {
Common.NotificationCenter.trigger('file:print', this.toolbar);
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
if (this.toolbar.btnPrint.options.printType == 'print') {
Common.NotificationCenter.trigger('file:print', this.toolbar);
Common.NotificationCenter.trigger('edit:complete', this.toolbar);
} else {
var _main = this.getApplication().getController('Main');
_main.onPrintQuick();
}
Common.component.Analytics.trackEvent('Print');
Common.component.Analytics.trackEvent('ToolBar', 'Print');
},
onPrintMenu: function (btn, e){
var oldType = this.toolbar.btnPrint.options.printType;
var newType = e.value;
if(newType != oldType) {
this.toolbar.btnPrint.changeIcon({
next: e.options.iconClsForMainBtn,
curr: this.toolbar.btnPrint.menu.items.filter(function(item){return item.value == oldType;})[0].options.iconClsForMainBtn
});
this.toolbar.btnPrint.updateHint([e.caption + e.options.platformKey, this.views.Toolbar.prototype.tipInsertText]);
this.toolbar.btnPrint.options.printType = newType;
}
this.onPrint(e);
},
onSave: function(e) {
var toolbar = this.toolbar;
if (this.api && this.api.asc_isDocumentCanSave) {

View file

@ -612,7 +612,7 @@ define([
$('tr.live-viewer', this.el)[mode.canLiveView && !mode.isOffline && mode.canChangeCoAuthoring ? 'show' : 'hide']();
$('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show']();
$('tr.spellcheck', this.el)[mode.isEdit && Common.UI.FeaturesManager.canChange('spellcheck') ? 'show' : 'hide']();
$('tr.quick-print', this.el)[mode.canQuickPrint ? 'show' : 'hide']();
$('tr.quick-print', this.el)[mode.canQuickPrint && !mode.customization.compactHeader ? 'show' : 'hide']();
if ( !Common.UI.Themes.available() ) {
$('tr.themes, tr.themes + tr.divider', this.el).hide();

View file

@ -211,9 +211,12 @@ define([
iconCls: 'toolbar__icon btn-print no-mask',
lock: [_set.slideDeleted, _set.noSlides, _set.cantPrint, _set.disableOnStart],
signals: ['disabled'],
split: config.canQuickPrint,
menu: config.canQuickPrint,
dataHint: '1',
dataHintDirection: 'top',
dataHintTitle: 'P'
dataHintTitle: 'P',
printType: 'print'
});
me.slideOnlyControls.push(me.btnPrint);
@ -1301,6 +1304,30 @@ define([
var me = this;
if (!config.isEdit) return;
if(me.btnPrint.menu) {
me.btnPrint.setMenu(
new Common.UI.Menu({
items:[
{
caption: me.tipPrint,
iconCls: 'menu__icon btn-print',
toggleGroup: 'viewPrint',
value: 'print',
iconClsForMainBtn: 'btn-print',
platformKey: Common.Utils.String.platformKey('Ctrl+P')
},
{
caption: me.tipPrintQuick,
iconCls: 'menu__icon btn-quick-print',
toggleGroup: 'viewPrint',
value: 'print-quick',
iconClsForMainBtn: 'btn-quick-print',
platformKey: ''
}
]
}));
}
me.btnsInsertImage.forEach(function (btn) {
btn.updateHint(me.tipInsertImage);
btn.setMenu(
@ -1907,6 +1934,7 @@ define([
tipUndo: 'Undo',
tipRedo: 'Redo',
tipPrint: 'Print',
tipPrintQuick: 'Quick print',
tipSave: 'Save',
tipFontColor: 'Font color',
tipMarkers: 'Bullets',

View file

@ -2319,6 +2319,7 @@
"PE.Views.Toolbar.tipPaste": "Paste",
"PE.Views.Toolbar.tipPreview": "Start slideshow",
"PE.Views.Toolbar.tipPrint": "Print",
"PE.Views.Toolbar.tipPrintQuick": "Quick print",
"PE.Views.Toolbar.tipRedo": "Redo",
"PE.Views.Toolbar.tipSave": "Save",
"PE.Views.Toolbar.tipSaveCoauth": "Save your changes for the other users to see them.",

View file

@ -1291,8 +1291,7 @@ define([
this.appOptions.isEdit = (this.appOptions.canLicense || this.appOptions.isEditDiagram || this.appOptions.isEditMailMerge || this.appOptions.isEditOle) && this.permissions.edit !== false && this.editorConfig.mode !== 'view';
this.appOptions.canDownload = (this.permissions.download !== false);
this.appOptions.canPrint = (this.permissions.print !== false);
this.appOptions.canQuickPrint = this.appOptions.canPrint && this.appOptions.isDesktopApp &&
!(this.editorConfig.customization && this.editorConfig.customization.compactHeader);
this.appOptions.canQuickPrint = this.appOptions.canPrint && this.appOptions.isDesktopApp && !this.editorConfig.customization;
this.appOptions.canForcesave = this.appOptions.isEdit && !this.appOptions.isOffline && !(this.appOptions.isEditDiagram || this.appOptions.isEditMailMerge || this.appOptions.isEditOle) &&
(typeof (this.editorConfig.customization) == 'object' && !!this.editorConfig.customization.forcesave);
this.appOptions.forcesave = this.appOptions.canForcesave;

View file

@ -359,6 +359,7 @@ define([
} else {
toolbar.btnPrint.on('click', _.bind(this.onPrint, this));
toolbar.btnPrint.on('disabled', _.bind(this.onBtnChangeState, this, 'print:disabled'));
toolbar.btnPrint.menu && toolbar.btnPrint.menu.on('item:click', _.bind(this.onPrintMenu, this));
toolbar.btnSave.on('click', _.bind(this.onSave, this));
toolbar.btnSave.on('disabled', _.bind(this.onBtnChangeState, this, 'save:disabled'));
toolbar.btnUndo.on('click', _.bind(this.onUndo, this));
@ -523,7 +524,27 @@ define([
},
onPrint: function(e) {
Common.NotificationCenter.trigger('print', this.toolbar);
if (this.toolbar.btnPrint.options.printType == 'print') {
Common.NotificationCenter.trigger('print', this.toolbar);
} else {
var _main = this.getApplication().getController('Main');
_main.onPrintQuick();
}
},
onPrintMenu: function (btn, e){
var oldType = this.toolbar.btnPrint.options.printType;
var newType = e.value;
if(newType != oldType) {
this.toolbar.btnPrint.changeIcon({
next: e.options.iconClsForMainBtn,
curr: this.toolbar.btnPrint.menu.items.filter(function(item){return item.value == oldType;})[0].options.iconClsForMainBtn
});
this.toolbar.btnPrint.updateHint([e.caption + e.options.platformKey, this.views.Toolbar.prototype.tipInsertText]);
this.toolbar.btnPrint.options.printType = newType;
}
this.onPrint(e);
},
onSave: function(e) {

View file

@ -799,7 +799,7 @@ define([
$('tr.coauth.changes', this.el)[mode.isEdit && !mode.isOffline && mode.canCoAuthoring && mode.canChangeCoAuthoring ? 'show' : 'hide']();
$('tr.live-viewer', this.el)[mode.canLiveView && !mode.isOffline && mode.canChangeCoAuthoring ? 'show' : 'hide']();
$('tr.macros', this.el)[(mode.customization && mode.customization.macros===false) ? 'hide' : 'show']();
$('tr.quick-print', this.el)[mode.canQuickPrint ? 'show' : 'hide']();
$('tr.quick-print', this.el)[mode.canQuickPrint && !mode.customization.compactHeader ? 'show' : 'hide']();
if ( !Common.UI.Themes.available() ) {
$('tr.themes, tr.themes + tr.divider', this.el).hide();

View file

@ -800,10 +800,13 @@ define([
cls : 'btn-toolbar',
iconCls : 'toolbar__icon btn-print no-mask',
lock : [_set.editCell, _set.cantPrint, _set.disableOnStart],
signals: ['disabled'],
signals : ['disabled'],
split : config.canQuickPrint,
menu : config.canQuickPrint,
dataHint : '1',
dataHintDirection: 'top',
dataHintTitle: 'P'
dataHintTitle: 'P',
printType: 'print'
});
me.btnSave = new Common.UI.Button({
@ -2963,6 +2966,31 @@ define([
if (!this.mode.isEdit || this.mode.isEditMailMerge || this.mode.isEditDiagram || this.mode.isEditOle) return;
var me = this;
if(me.btnPrint.menu) {
me.btnPrint.setMenu(
new Common.UI.Menu({
items:[
{
caption: me.tipPrint,
iconCls: 'menu__icon btn-print',
toggleGroup: 'viewPrint',
value: 'print',
iconClsForMainBtn: 'btn-print',
platformKey: Common.Utils.String.platformKey('Ctrl+P')
},
{
caption: me.tipPrintQuick,
iconCls: 'menu__icon btn-quick-print',
toggleGroup: 'viewPrint',
value: 'print-quick',
iconClsForMainBtn: 'btn-quick-print',
platformKey: ''
}
]
}));
}
var _holder_view = SSE.getController('DocumentHolder').getView('DocumentHolder');
me.btnImgForward.updateHint(me.tipSendForward);
me.btnImgForward.setMenu(new Common.UI.Menu({
@ -3061,6 +3089,7 @@ define([
tipUndo: 'Undo',
tipRedo: 'Redo',
tipPrint: 'Print',
tipPrintQuick: 'Quick print',
tipSave: 'Save',
tipFontColor: 'Font color',
tipPrColor: 'Background color',

View file

@ -3538,6 +3538,7 @@
"SSE.Views.Toolbar.tipPrColor": "Fill color",
"SSE.Views.Toolbar.tipPrint": "Print",
"SSE.Views.Toolbar.tipPrintArea": "Print area",
"SSE.Views.Toolbar.tipPrintQuick": "Quick print",
"SSE.Views.Toolbar.tipPrintTitles": "Print titles",
"SSE.Views.Toolbar.tipRedo": "Redo",
"SSE.Views.Toolbar.tipSave": "Save",