[SSE] Fix ranges for sparklines

This commit is contained in:
Julia Radzhabova 2021-03-24 18:39:00 +03:00
parent 3e5928286d
commit 35237831f5
2 changed files with 27 additions and 19 deletions

View file

@ -193,7 +193,8 @@ define([
pgmargins: undefined, pgmargins: undefined,
pgorient: undefined, pgorient: undefined,
lock_doc: undefined, lock_doc: undefined,
cf_locked: [] cf_locked: [],
selectedCells: 0
}; };
this.binding = {}; this.binding = {};
@ -418,6 +419,7 @@ define([
this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this)); this.api.asc_registerCallback('asc_onContextMenu', _.bind(this.onContextMenu, this));
Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this)); Common.NotificationCenter.on('storage:image-load', _.bind(this.openImageFromStorage, this));
Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this)); Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this));
this.api.asc_registerCallback('asc_onSelectionMathChanged', _.bind(this.onApiMathChanged, this));
} }
this.api.asc_registerCallback('asc_onInitEditorStyles', _.bind(this.onApiInitEditorStyles, this)); this.api.asc_registerCallback('asc_onInitEditorStyles', _.bind(this.onApiInitEditorStyles, this));
this.api.asc_registerCallback('asc_onCoAuthoringDisconnect',_.bind(this.onApiCoAuthoringDisconnect, this)); this.api.asc_registerCallback('asc_onCoAuthoringDisconnect',_.bind(this.onApiCoAuthoringDisconnect, this));
@ -1138,6 +1140,7 @@ define([
(new SSE.Views.CreateSparklineDialog( (new SSE.Views.CreateSparklineDialog(
{ {
api: me.api, api: me.api,
props: {selectedCells: me._state.selectedCells},
handler: function(result, settings) { handler: function(result, settings) {
if (result == 'ok' && settings) { if (result == 'ok' && settings) {
me.view && me.view.fireEvent('insertspark', me.view); me.view && me.view.fireEvent('insertspark', me.view);
@ -1153,6 +1156,10 @@ define([
Common.NotificationCenter.trigger('edit:complete', this.toolbar); Common.NotificationCenter.trigger('edit:complete', this.toolbar);
}, },
onApiMathChanged: function(info) {
this._state.selectedCells = info.asc_getCount(); // not empty cells
},
onInsertTextart: function (data) { onInsertTextart: function (data) {
if (this.api) { if (this.api) {
this.toolbar.fireEvent('inserttextart', this.toolbar); this.toolbar.fireEvent('inserttextart', this.toolbar);

View file

@ -47,7 +47,7 @@ define([
SSE.Views.CreateSparklineDialog = Common.Views.AdvancedSettingsWindow.extend(_.extend({ SSE.Views.CreateSparklineDialog = Common.Views.AdvancedSettingsWindow.extend(_.extend({
options: { options: {
contentWidth: 310, contentWidth: 310,
height: 200 height: 195
}, },
initialize : function(options) { initialize : function(options) {
@ -71,7 +71,7 @@ define([
'</td>', '</td>',
'</tr>', '</tr>',
'<tr>', '<tr>',
'<td class="padding-small">', '<td>',
'<label class="input-label">' + me.textDestination + '</label>', '<label class="input-label">' + me.textDestination + '</label>',
'</td>', '</td>',
'</tr>', '</tr>',
@ -137,29 +137,30 @@ define([
return [this.txtSourceRange, this.txtDestRange]; return [this.txtSourceRange, this.txtDestRange];
}, },
getDefaultFocusableComponent: function () {
if (this._alreadyRendered) return; // focus only at first show
this._alreadyRendered = true;
return this.txtSourceRange;
},
afterRender: function() { afterRender: function() {
this._setDefaults(this.props); this._setDefaults(this.props);
}, },
_setDefaults: function (props) { _setDefaults: function (props) {
if (props) { var cells = props ? props.selectedCells : 0;
var value = props.asc_getRange();
this.txtSourceRange.setValue((value) ? value : '');
this.dataSourceValid = value;
}
var me = this; var me = this;
if (cells>0) {
var range = this.api.asc_getActiveRangeStr(Asc.referenceType.R);
this.txtSourceRange.setValue(range);
this.dataSourceValid = range;
setTimeout(function(){me.txtDestRange.focus();}, 100);
} else {
var range = this.api.asc_getActiveRangeStr(Asc.referenceType.A);
this.txtDestRange.setValue(range);
this.dataDestValid = range;
setTimeout(function(){me.txtSourceRange.focus();}, 100);
}
this.txtSourceRange.validation = function(value) { this.txtSourceRange.validation = function(value) {
var isvalid = me.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.Chart, value, false); var isvalid = me.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.Chart, value, false);
return (isvalid==Asc.c_oAscError.ID.DataRangeError) ? me.textInvalidRange : true; return (isvalid==Asc.c_oAscError.ID.DataRangeError) ? me.textInvalidRange : true;
}; };
this.txtDestRange.validation = function(value) { this.txtDestRange.validation = function(value) {
var isvalid = me.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.Chart, value, false); var isvalid = me.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.FormatTable, value, false);
return (isvalid==Asc.c_oAscError.ID.DataRangeError) ? me.textInvalidRange : true; return (isvalid==Asc.c_oAscError.ID.DataRangeError) ? me.textInvalidRange : true;
}; };
}, },
@ -185,7 +186,7 @@ define([
} }
if (!isvalid) { if (!isvalid) {
this.txtSourceRange.showError([txtError]); this.txtSourceRange.showError([txtError]);
this.txtSourceRange.cmpEl.find('input').focus(); this.txtSourceRange.focus();
return isvalid; return isvalid;
} }
@ -193,13 +194,13 @@ define([
isvalid = false; isvalid = false;
txtError = this.txtEmpty; txtError = this.txtEmpty;
} else { } else {
isvalid = this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.Chart, this.txtDestRange.getValue()); isvalid = this.api.asc_checkDataRange(Asc.c_oAscSelectionDialogType.FormatTable, this.txtDestRange.getValue());
isvalid = (isvalid == Asc.c_oAscError.ID.No); isvalid = (isvalid == Asc.c_oAscError.ID.No);
!isvalid && (txtError = this.textInvalidRange); !isvalid && (txtError = this.textInvalidRange);
} }
if (!isvalid) { if (!isvalid) {
this.txtDestRange.showError([txtError]); this.txtDestRange.showError([txtError]);
this.txtDestRange.cmpEl.find('input').focus(); this.txtDestRange.focus();
return isvalid; return isvalid;
} }
@ -235,7 +236,7 @@ define([
win.setSettings({ win.setSettings({
api : me.api, api : me.api,
range : (!_.isEmpty(txtRange.getValue()) && (txtRange.checkValidate()==true)) ? txtRange.getValue() : ((type=='source') ? me.dataSourceValid : me.dataDestValid), range : (!_.isEmpty(txtRange.getValue()) && (txtRange.checkValidate()==true)) ? txtRange.getValue() : ((type=='source') ? me.dataSourceValid : me.dataDestValid),
type : Asc.c_oAscSelectionDialogType.Chart type : (type=='source') ? Asc.c_oAscSelectionDialogType.Chart : Asc.c_oAscSelectionDialogType.FormatTable
}); });
} }
}, },