Hide delete button in multivalued widget if attr is not writable

https://fedorahosted.org/freeipa/ticket/3799
This commit is contained in:
Petr Vobornik 2013-06-28 16:14:45 +02:00
parent ff6f958d96
commit 006c4eabd9

View File

@ -219,6 +219,10 @@ IPA.input_widget = function(spec) {
that.value_changed.notify([value], that); that.value_changed.notify([value], that);
}; };
that.is_writable = function() {
return !that.read_only && !!that.writable;
};
that.focus_input = function() {}; that.focus_input = function() {};
that.set_deleted = function() {}; that.set_deleted = function() {};
@ -293,11 +297,10 @@ IPA.text_widget = function(spec) {
that.update = function(values) { that.update = function(values) {
var value = values && values.length ? values[0] : ''; var value = values && values.length ? values[0] : '';
if (that.read_only || !that.writable) { if (!that.is_writable()) {
that.display_control.text(value); that.display_control.text(value);
that.display_control.css('display', 'inline'); that.display_control.css('display', 'inline');
that.input.css('display', 'none'); that.input.css('display', 'none');
} else { } else {
that.input.val(value); that.input.val(value);
that.display_control.css('display', 'none'); that.display_control.css('display', 'none');
@ -308,9 +311,8 @@ IPA.text_widget = function(spec) {
}; };
that.save = function() { that.save = function() {
if (that.read_only || !that.writable) { if (!that.is_writable()) {
return null; return null;
} else { } else {
var value = that.input.val(); var value = that.input.val();
return value === '' ? [] : [value]; return value === '' ? [] : [value];
@ -395,7 +397,9 @@ IPA.multivalued_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();
row.remove_link.show(); if (that.is_writable()) {
row.remove_link.show();
}
} }
}; };
@ -507,11 +511,14 @@ IPA.multivalued_widget = function(spec) {
} }
}).appendTo(row.container); }).appendTo(row.container);
if(row.is_new) { if (row.is_new) {
row.remove_link.hide(); row.remove_link.hide();
row.widget.show_undo(); row.widget.show_undo();
that.value_changed.notify([], that); that.value_changed.notify([], that);
} }
if (!that.is_writable()) {
row.remove_link.hide();
}
row.container.insertBefore(that.add_link); row.container.insertBefore(that.add_link);
}; };
@ -618,7 +625,7 @@ IPA.multivalued_widget = function(spec) {
that.initialized = true; that.initialized = true;
if (that.read_only || !that.writable) { if (!that.is_writable()) {
that.add_link.css('display', 'none'); that.add_link.css('display', 'none');
} else { } else {
that.add_link.css('display', 'inline'); that.add_link.css('display', 'inline');
@ -1283,7 +1290,7 @@ IPA.textarea_widget = function (spec) {
}; };
that.save = function() { that.save = function() {
if (that.read_only || !that.writable) { if (!that.is_writable()) {
return null; return null;
} }
var value = that.input.val(); var value = that.input.val();
@ -1291,7 +1298,7 @@ IPA.textarea_widget = function (spec) {
}; };
that.update = function(values) { that.update = function(values) {
var read_only = that.read_only || !that.writable; var read_only = !that.is_writable();
that.input.prop('readOnly', read_only); that.input.prop('readOnly', read_only);
var value = values && values.length ? values[0] : ''; var value = values && values.length ? values[0] : '';