mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Fixed evaluating checkbox dirty status
Problem: When value in checkbox is modified twice in a row (so it is at its original value) an 'undo' button is still visible even when it shouldn't be. Cause: IPA server sends boolean values as 'TRUE' or 'FALSE' (strings). Checkbox_widget converts them to JavaScript? boolean (true, false). Save method in checkbox_widget is returning array with a boolean. So test_dirty method always evaluates to dirty because 'FALSE' != false. This patch is fixing the problem. https://fedorahosted.org/freeipa/ticket/2494
This commit is contained in:
@@ -487,6 +487,23 @@ IPA.checkbox_field = function(spec) {
|
||||
var that = IPA.field(spec);
|
||||
|
||||
that.checked = spec.checked || false;
|
||||
that.boolean_formatter = IPA.boolean_formatter();
|
||||
|
||||
that.load = function(record) {
|
||||
|
||||
that.record = record;
|
||||
|
||||
that.values = that.get_value(record, that.param);
|
||||
|
||||
var value = that.boolean_formatter.parse(that.values);
|
||||
if (value === '') value = that.widget.checked; //default value
|
||||
|
||||
that.values = [value];
|
||||
|
||||
that.load_writable(record);
|
||||
|
||||
that.reset();
|
||||
};
|
||||
|
||||
that.widgets_created = function() {
|
||||
|
||||
@@ -510,13 +527,6 @@ IPA.checkboxes_field = function(spec) {
|
||||
|
||||
var that = IPA.field(spec);
|
||||
|
||||
that.checkbox_load = that.load;
|
||||
/*
|
||||
// a checkbox will always have a value, so it's never required
|
||||
that.is_required = function() {
|
||||
return false;
|
||||
};
|
||||
*/
|
||||
return that;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user