mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Added validation logic to multivalued text field
https://fedorahosted.org/freeipa/ticket/1466
This commit is contained in:
parent
747c069c45
commit
911f396604
@ -522,7 +522,35 @@ IPA.multivalued_field = function(spec) {
|
|||||||
|
|
||||||
that.widget_value_changed = function() {
|
that.widget_value_changed = function() {
|
||||||
that.set_dirty(that.test_dirty());
|
that.set_dirty(that.test_dirty());
|
||||||
//that.validate(); disabling validation for now
|
that.validate();
|
||||||
|
};
|
||||||
|
|
||||||
|
that.validate = function() {
|
||||||
|
|
||||||
|
that.hide_error();
|
||||||
|
that.valid = true;
|
||||||
|
|
||||||
|
var values = that.save();
|
||||||
|
|
||||||
|
if (that.is_empty(values)) {
|
||||||
|
return that.valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i=0; i<values.length; i++) {
|
||||||
|
|
||||||
|
for (var j=0; j<that.validators.length; j++) {
|
||||||
|
|
||||||
|
var validation_result = that.validators[j].validate(values[i], that);
|
||||||
|
if (!validation_result.valid) {
|
||||||
|
that.valid = false;
|
||||||
|
var row_index = that.widget.get_saved_value_row_index(i);
|
||||||
|
that.widget.show_child_error(row_index, validation_result.message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return that.valid;
|
||||||
};
|
};
|
||||||
|
|
||||||
return that;
|
return that;
|
||||||
|
@ -351,7 +351,7 @@ IPA.multivalued_text_widget = function(spec) {
|
|||||||
for(var i=0; i<that.rows.length; i++) {
|
for(var i=0; i<that.rows.length; i++) {
|
||||||
var row = that.rows[i];
|
var row = that.rows[i];
|
||||||
row.widget.hide_undo();
|
row.widget.hide_undo();
|
||||||
if(row.is_new) row.remove_link.show();
|
row.remove_link.show();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -365,6 +365,31 @@ IPA.multivalued_text_widget = function(spec) {
|
|||||||
that.show_undo();
|
that.show_undo();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
that.hide_error = function() {
|
||||||
|
|
||||||
|
that.widget_hide_error();
|
||||||
|
|
||||||
|
for (var i=0; i<that.rows.length; i++) {
|
||||||
|
that.rows[i].widget.hide_error();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
that.show_child_error = function(index, error) {
|
||||||
|
|
||||||
|
that.rows[index].widget.show_error(error);
|
||||||
|
};
|
||||||
|
|
||||||
|
that.get_saved_value_row_index = function(index) {
|
||||||
|
|
||||||
|
for (var i=0; i<that.rows.length;i++) {
|
||||||
|
|
||||||
|
if(that.rows[i].deleted) index++;
|
||||||
|
if(i === index) return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1; //error state
|
||||||
|
};
|
||||||
|
|
||||||
that.save = function() {
|
that.save = function() {
|
||||||
|
|
||||||
var values = [];
|
var values = [];
|
||||||
|
Loading…
Reference in New Issue
Block a user