Fixed posix group checkbox.

In the adder dialog for groups the checkbox has been modified to use
the correct field name "nonposix" and be checked by default.

Note: This is a temporary fix to minimize the changes due to release
schedule. Eventually the field label will be changed into "Non-POSIX
group" and the checkbox will be unchecked by default, which is more
consistent with CLI.

Ticket #1799
This commit is contained in:
Endi S. Dewata 2011-09-14 12:36:58 -05:00
parent 89c4e9362d
commit 21cd1857c8
3 changed files with 40 additions and 10 deletions

View File

@ -92,13 +92,28 @@ IPA.entity_factories.group = function () {
'cn',
'description',
{
factory:IPA.checkbox_widget,
name: 'posix',
factory: IPA.group_nonposix_checkbox_widget,
name: 'nonposix',
label: IPA.messages.objects.group.posix,
undo: false,
checked: 'checked'
checked: true
},
'gidnumber']
}).
build();
};
IPA.group_nonposix_checkbox_widget = function (spec) {
spec = spec || {};
var that = IPA.checkbox_widget(spec);
that.save = function() {
var value = that.checkbox_save()[0];
// convert posix into non-posix
return [!value];
};
return that;
};

View File

@ -241,7 +241,7 @@ test("Testing checkbox widget.", function() {
spec = {name:'title'};
base_widget_test('test_value');
mock_record = {'title':'something'};
mock_record = { 'title': 'TRUE' };
widget.load(mock_record);
same(widget.save(),[true], "Checkbox is set");

View File

@ -760,9 +760,11 @@ IPA.multivalued_text_widget = function(spec) {
IPA.checkbox_widget = function (spec) {
spec = spec || {};
var that = IPA.widget(spec);
that.checked = spec.checked || '';
// default value
that.checked = spec.checked || false;
that.create = function(container) {
@ -773,7 +775,7 @@ IPA.checkbox_widget = function (spec) {
that.input = $('<input/>', {
type: 'checkbox',
name: that.name,
checked : that.checked,
checked: that.checked,
title: that.tooltip,
change: function() {
that.set_dirty(that.test_dirty());
@ -786,6 +788,7 @@ IPA.checkbox_widget = function (spec) {
};
that.load = function(record) {
that.widget_load(record);
that.values = record[that.name] || [false];
that.reset();
};
@ -796,17 +799,29 @@ IPA.checkbox_widget = function (spec) {
};
that.update = function() {
var value = that.values && that.values.length ? that.values[0] : false;
if (value ==="FALSE"){
value = false;
var value;
if (that.values && that.values.length) {
// use loaded value
value = that.values[0];
} else {
// use default value
value = that.checked;
}
if (value ==="TRUE"){
// convert string into boolean
if (value === 'TRUE') {
value = true;
} else if (value === 'FALSE') {
value = false;
}
that.input.attr('checked', value);
};
that.checkbox_save = that.save;
that.checkbox_load = that.load;
return that;
};