[DE] Fix list content controls: verify unique values

This commit is contained in:
Julia Radzhabova 2019-11-15 17:37:34 +03:00
parent c40c8d6a2d
commit 68433e3cca
2 changed files with 18 additions and 3 deletions

View file

@ -502,6 +502,7 @@ define([ 'text!documenteditor/main/app/template/ControlSettingsDialog.template',
onAddItem: function() { onAddItem: function() {
var me = this, var me = this,
win = new DE.Views.EditListItemDialog({ win = new DE.Views.EditListItemDialog({
store: me.list.store,
handler: function(result, name, value) { handler: function(result, name, value) {
if (result == 'ok') { if (result == 'ok') {
var rec = me.list.store.add({ var rec = me.list.store.add({
@ -524,6 +525,7 @@ define([ 'text!documenteditor/main/app/template/ControlSettingsDialog.template',
var me = this, var me = this,
rec = this.list.getSelectedRec(), rec = this.list.getSelectedRec(),
win = new DE.Views.EditListItemDialog({ win = new DE.Views.EditListItemDialog({
store: me.list.store,
handler: function(result, name, value) { handler: function(result, name, value) {
if (result == 'ok') { if (result == 'ok') {
if (rec) { if (rec) {

View file

@ -60,7 +60,7 @@ define([
'<div class="input-row">', '<div class="input-row">',
'<label>' + this.textDisplayName + '</label>', '<label>' + this.textDisplayName + '</label>',
'</div>', '</div>',
'<div id="id-dlg-label-name" class="input-row"></div>', '<div id="id-dlg-label-name" class="input-row" style="margin-bottom: 8px;"></div>',
'<div class="input-row">', '<div class="input-row">',
'<label>' + this.textValue + '</label>', '<label>' + this.textValue + '</label>',
'</div>', '</div>',
@ -99,7 +99,15 @@ define([
me.inputValue = new Common.UI.InputField({ me.inputValue = new Common.UI.InputField({
el : $('#id-dlg-label-value'), el : $('#id-dlg-label-value'),
style : 'width: 100%;', style : 'width: 100%;',
validateOnBlur: false validateOnBlur: false,
validation : function(value) {
if (value!=='' && me.options.store) {
var rec = me.options.store.findWhere({value: value});
if (rec)
return me.textValueError
}
return true;
}
}); });
me.inputValue._input.on('input', function (e) { me.inputValue._input.on('input', function (e) {
if (me.copyvalue==undefined && me.inputValue.getValue()==me.inputName.getValue()) { if (me.copyvalue==undefined && me.inputValue.getValue()==me.inputName.getValue()) {
@ -140,6 +148,10 @@ define([
this.inputName.cmpEl.find('input').focus(); this.inputName.cmpEl.find('input').focus();
return; return;
} }
if (this.inputValue.checkValidate() !== true) {
this.inputValue.cmpEl.find('input').focus();
return;
}
} }
this.options.handler.call(this, state, this.inputName.getValue(), this.inputValue.getValue()); this.options.handler.call(this, state, this.inputName.getValue(), this.inputValue.getValue());
@ -157,6 +169,7 @@ define([
textDisplayName: 'Display name', textDisplayName: 'Display name',
textValue: 'Value', textValue: 'Value',
textNameError: 'Display name must not be empty.' textNameError: 'Display name must not be empty.',
textValueError: 'An item with the same value already exists.'
}, DE.Views.EditListItemDialog || {})); }, DE.Views.EditListItemDialog || {}));
}); });