[SSE] Print titles: check frozen areas, check print ranges

This commit is contained in:
Julia Radzhabova 2020-03-18 13:06:18 +03:00
parent e5c35c772e
commit d8e79bded7
4 changed files with 70 additions and 43 deletions

View file

@ -111,10 +111,10 @@ define([
},
comboSheetsChange: function(panel, combo, record) {
this.fillPageOptions(panel, this._changedProps[record.value] ? this._changedProps[record.value] : this.api.asc_getPageOptions(record.value));
this.fillPageOptions(panel, this._changedProps[record.value] ? this._changedProps[record.value] : this.api.asc_getPageOptions(record.value), record.value);
},
fillPageOptions: function(panel, props) {
fillPageOptions: function(panel, props, sheet) {
var opt = props.asc_getPageSetup();
this._originalPageSettings = opt;
@ -159,13 +159,18 @@ define([
panel.chPrintGrid.setValue(props.asc_getGridLines(), true);
panel.chPrintRows.setValue(props.asc_getHeadings(), true);
// var value = props.asc_getPrintTitlesWidth();
// panel.txtRangeTop.setValue((value) ? value : '');
// panel.dataRangeTop = value;
//
// value = props.asc_getPrintTitlesHeight();
// panel.txtRangeLeft.setValue((value) ? value : '');
// panel.dataRangeLeft = value;
var value = props.asc_getPrintTitlesWidth();
panel.txtRangeTop.setValue((value) ? value : '');
panel.txtRangeTop.checkValidate();
panel.dataRangeTop = value;
value = props.asc_getPrintTitlesHeight();
panel.txtRangeLeft.setValue((value) ? value : '');
panel.txtRangeLeft.checkValidate();
panel.dataRangeLeft = value;
panel.btnPresetsTop.menu.items[panel.btnPresetsTop.menu.items[0].value == 'frozen' ? 0 : 1].setDisabled(!this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.frozen, false, sheet));
panel.btnPresetsLeft.menu.items[panel.btnPresetsLeft.menu.items[0].value == 'frozen' ? 0 : 1].setDisabled(!this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.frozen, true, sheet));
},
fillPrintOptions: function(props) {
@ -223,8 +228,11 @@ define([
props.asc_setPageMargins(opt);
props.asc_setPrintTitlesWidth(panel.txtRangeTop.getValue());
props.asc_setPrintTitlesHeight(panel.txtRangeLeft.getValue());
var check = this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.None, panel.txtRangeTop.getValue(), false) !== Asc.c_oAscError.ID.DataRangeError;
props.asc_setPrintTitlesWidth(check ? panel.txtRangeTop.getValue() : panel.dataRangeTop);
check = this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.None, panel.txtRangeLeft.getValue(), false) !== Asc.c_oAscError.ID.DataRangeError;
props.asc_setPrintTitlesHeight(check ? panel.txtRangeLeft.getValue() : panel.dataRangeLeft);
return props;
},
@ -366,6 +374,8 @@ define([
panel.spnMarginRight.on('change', _.bind(this.propertyChange, this, panel));
panel.chPrintGrid.on('change', _.bind(this.propertyChange, this, panel));
panel.chPrintRows.on('change', _.bind(this.propertyChange, this, panel));
panel.txtRangeTop.on('changing', _.bind(this.propertyChange, this, panel));
panel.txtRangeLeft.on('changing', _.bind(this.propertyChange, this, panel));
panel.btnPresetsTop.menu.on('item:click', _.bind(this.onPresetSelect, this, panel, 'top'));
panel.btnPresetsLeft.menu.on('item:click', _.bind(this.onPresetSelect, this, panel, 'left'));
},
@ -425,6 +435,7 @@ define([
fillComponents: function(panel, selectdata) {
var me = this;
panel.txtRangeTop.validation = function(value) {
me.propertyChange(panel);
if (_.isEmpty(value)) {
return true;
}
@ -432,6 +443,7 @@ define([
return (isvalid==Asc.c_oAscError.ID.DataRangeError) ? me.textInvalidRange : true;
};
panel.txtRangeLeft.validation = function(value) {
me.propertyChange(panel);
if (_.isEmpty(value)) {
return true;
}
@ -491,7 +503,7 @@ define([
win.setSettings({
api : me.api,
range : (!_.isEmpty(txtRange.getValue()) && (txtRange.checkValidate()==true)) ? txtRange.getValue() : ((type=='top') ? panel.dataRangeTop : panel.dataRangeLeft),
type : Asc.c_oAscSelectionDialogType.None
type : Asc.c_oAscSelectionDialogType.Chart
});
}
} else {

View file

@ -275,20 +275,20 @@ define([
'</tr>','<tr class="divider"></tr>',
'<tr>',
'<td class="left" style="vertical-align: top;"><label><%= scope.strPrintTitles %></label></td>',
'<td class="right" style="vertical-align: top;"><div id="advsettings-margins">',
'<td class="right" style="vertical-align: top;"><div id="advsettings-print-titles">',
'<table cols="2" class="no-padding">',
'<tr>',
'<td colspan="2" ><label><%= scope.textRepeatTop %></label></td>',
'</tr>',
'<tr>',
'<td class="padding-small"><div id="advsettings-txt-top" style="margin-right: 10px;"></div></td>',
'<td class="padding-small" style="padding-right: 10px;"><div id="advsettings-txt-top"></div></td>',
'<td class="padding-small"><div id="advsettings-presets-top"></div></td>',
'</tr>',
'<tr>',
'<td colspan="2" ><label><%= scope.textRepeatLeft %></label></td>',
'</tr>',
'<tr>',
'<td class="padding-small"><div id="advsettings-txt-left" style="margin-right: 10px;"></div></td>',
'<td class="padding-small" style="padding-right: 10px;"><div id="advsettings-txt-left"></div></td>',
'<td class="padding-small"><div id="advsettings-presets-left"></div></td>',
'</tr>',
'</table>',
@ -466,7 +466,7 @@ define([
this.txtRangeTop = new Common.UI.InputField({
el : $markup.findById('#advsettings-txt-top'),
style : 'width: 100%;',
style : 'width: 147px',
allowBlank : true,
validateOnChange: true
});
@ -474,14 +474,14 @@ define([
this.btnPresetsTop = new Common.UI.Button({
cls: 'btn-text-menu-default',
caption: this.textRepeat,
style: 'width: 95px;',
style: 'width: 85px;',
menu: true
});
this.btnPresetsTop.render( $markup.findById('#advsettings-presets-top')) ;
this.txtRangeLeft = new Common.UI.InputField({
el : $markup.findById('#advsettings-txt-left'),
style : 'width: 100%;',
style : 'width: 147px',
allowBlank : true,
validateOnChange: true
});
@ -489,7 +489,7 @@ define([
this.btnPresetsLeft = new Common.UI.Button({
cls: 'btn-text-menu-default',
caption: this.textRepeat,
style: 'width: 95px;',
style: 'width: 85px;',
menu: true
});
this.btnPresetsLeft.render( $markup.findById('#advsettings-presets-left')) ;

View file

@ -231,7 +231,7 @@ define([ 'text!spreadsheeteditor/main/app/template/PrintSettings.template',
this.txtRangeTop = new Common.UI.InputField({
el : $('#printadv-dlg-txt-top'),
style : 'width: 100%;',
style : 'width: 147px;',
allowBlank : true,
validateOnChange: true
});
@ -239,14 +239,14 @@ define([ 'text!spreadsheeteditor/main/app/template/PrintSettings.template',
this.btnPresetsTop = new Common.UI.Button({
cls: 'btn-text-menu-default',
caption: this.textRepeat,
style: 'width: 95px;',
style: 'width: 85px;',
menu: true
});
this.btnPresetsTop.render( $('#printadv-dlg-presets-top')) ;
this.txtRangeLeft = new Common.UI.InputField({
el : $('#printadv-dlg-txt-left'),
style : 'width: 100%;',
style : 'width: 147px;',
allowBlank : true,
validateOnChange: true
});
@ -254,7 +254,7 @@ define([ 'text!spreadsheeteditor/main/app/template/PrintSettings.template',
this.btnPresetsLeft = new Common.UI.Button({
cls: 'btn-text-menu-default',
caption: this.textRepeat,
style: 'width: 95px;',
style: 'width: 85px;',
menu: true
});
this.btnPresetsLeft.render( $('#printadv-dlg-presets-left')) ;

View file

@ -134,6 +134,7 @@ define([
}
});
var frozen = this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.frozen, false, this.sheet);
this.btnPresetsTop = new Common.UI.Button({
cls: 'btn-text-menu-default',
caption: this.textRepeat,
@ -144,10 +145,10 @@ define([
additionalAlign: this.menuAddAlign,
items: [
{caption: this.textSelectRange, value: 'select'},
{caption: this.textFrozenRows, value: 'frozen'},
{caption: this.textFirstRow, value: 'first'},
{caption: this.textFrozenRows, value: 'frozen', range: frozen, disabled: !frozen},
{caption: this.textFirstRow, value: 'first', range: this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.first, false, this.sheet)},
{caption: '--'},
{caption: this.textNoRepeat, value: 'empty'}
{caption: this.textNoRepeat, value: 'empty', range: ''}
]
})
});
@ -168,6 +169,7 @@ define([
}
});
frozen = this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.frozen, true, this.sheet);
this.btnPresetsLeft = new Common.UI.Button({
cls: 'btn-text-menu-default',
caption: this.textRepeat,
@ -178,10 +180,10 @@ define([
additionalAlign: this.menuAddAlign,
items: [
{caption: this.textSelectRange, value: 'select'},
{caption: this.textFrozenCols, value: 'frozen'},
{caption: this.textFirstCol, value: 'first'},
{caption: this.textFrozenCols, value: 'frozen', range: frozen, disabled: !frozen},
{caption: this.textFirstCol, value: 'first', range: this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.first, true, this.sheet)},
{caption: '--'},
{caption: this.textNoRepeat, value: 'empty'}
{caption: this.textNoRepeat, value: 'empty', range: ''}
]
})
});
@ -195,9 +197,26 @@ define([
this.setSettings();
},
isRangeValid: function() {
if (this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.None, this.txtRangeTop.getValue(), false) == Asc.c_oAscError.ID.DataRangeError) {
this.txtRangeTop.cmpEl.find('input').focus();
return false;
}
if (this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.None, this.txtRangeLeft.getValue(), false) == Asc.c_oAscError.ID.DataRangeError) {
this.txtRangeLeft.cmpEl.find('input').focus();
return false;
}
return true;
},
_handleInput: function(state) {
if (this.options.handler)
if (this.options.handler) {
if (state == 'ok') {
if (!this.isRangeValid())
return;
}
this.options.handler.call(this, this, state);
}
this.close();
},
@ -257,15 +276,11 @@ define([
win.setSettings({
api : me.api,
range : (!_.isEmpty(txtRange.getValue()) && (txtRange.checkValidate()==true)) ? txtRange.getValue() : ((type=='top') ? me.dataRangeTop : me.dataRangeLeft),
type : Asc.c_oAscSelectionDialogType.None
type : Asc.c_oAscSelectionDialogType.Chart
});
}
} else {
var value = '';
if (item.value == 'frozen')
value = this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.frozen, type=='left', this.sheet);
else if (item.value == 'first')
value = this.api.asc_getPrintTitlesRange(Asc.c_oAscPrintTitlesRangeType.first, type=='left', this.sheet);
var value = item.options.range || '';
txtRange.setValue(value);
txtRange.checkValidate();
if (type=='top')