Commit 4b858cb8 authored by Dave Lawrence's avatar Dave Lawrence

Bug 581538 - Hide (instead of showing as disabled) flags that aren't available…

Bug 581538 - Hide (instead of showing as disabled) flags that aren't available for a specific component on enter_bug.cgi r/a=LpSolit
parent 3ed3c6bc
...@@ -102,30 +102,31 @@ function set_assign_to() { ...@@ -102,30 +102,31 @@ function set_assign_to() {
} }
[% END %] [% END %]
// First, we disable all flags. Then we re-enable those // We show or hide the available flags depending on the selected component.
// which are available for the selected component. var flag_rows = YAHOO.util.Dom.getElementsByClassName('bz_flag_type', 'tbody');
var inputElements = document.getElementsByTagName("select"); for (var i = 0; i < flag_rows.length; i++) {
var inputElement, flagField; // Each flag table row should have one flag form select element
for ( var i=0 ; i<inputElements.length ; i++ ) { // We get the flag type id from the id attribute of the select
inputElement = inputElements.item(i); var flag_select = YAHOO.util.Dom.getElementsByClassName('flag_select',
if (inputElement.name.search(/^flag_type-(\d+)$/) != -1) { 'select',
var id = inputElement.name.replace(/^flag_type-(\d+)$/, "$1"); flag_rows[i])[0];
inputElement.disabled = true; var type_id = flag_select.id.split('-')[1];
// Also hide the requestee field, if it exists. var can_set = flag_select.options.length > 1 ? 1 : 0;
inputElement = document.getElementById("requestee_type-" + id); var show = 0;
if (inputElement) // Loop through the allowed flag ids for the selected component
YAHOO.util.Dom.addClass(inputElement.parentNode, 'bz_default_hidden'); // and if we match, then show the row, otherwise hide the row
for (var j = 0; j < flags[index].length; j++) {
if (flags[index][j] == type_id) {
show = 1;
break;
}
} }
} if (show && can_set) {
// Now enable flags available for the selected component. flag_select.disabled = false;
for (var i = 0; i < flags[index].length; i++) { YAHOO.util.Dom.removeClass(flag_rows[i], 'bz_default_hidden');
flagField = document.getElementById("flag_type-" + flags[index][i]); } else {
// Do not enable flags the user cannot set nor request. flag_select.disabled = true;
if (flagField && flagField.options.length > 1) { YAHOO.util.Dom.addClass(flag_rows[i], 'bz_default_hidden');
flagField.disabled = false;
// Re-enabling the requestee field depends on the status
// of the flag.
toggleRequesteeField(flagField, 1);
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment