Bug 75225 - more correct scripts
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1204 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
a87a64ef01
commit
055928b6c3
|
@ -47,7 +47,7 @@ Bugzilla->send_header(
|
|||
if ($args->{type} eq 'search')
|
||||
{
|
||||
my $json = bz_encode_json(Bugzilla->full_json_query_visibility);
|
||||
print "qfVisibility = $json;";
|
||||
print "var qfVisibility = $json;";
|
||||
}
|
||||
elsif ($args->{type} eq 'bug')
|
||||
{
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
YAHOO.util.Event.addListener(window, 'load', initControlledFields);
|
||||
|
||||
function initControlledFields()
|
||||
{
|
||||
for (var i in show_fields)
|
||||
initControlledField(i);
|
||||
}
|
||||
|
||||
function initControlledField(i)
|
||||
{
|
||||
var f = document.getElementById(i);
|
||||
YAHOO.util.Event.addListener(f, 'change', handleControllerField, f);
|
||||
}
|
||||
|
||||
function getSelectedIds(sel)
|
||||
{
|
||||
var lm = sel.id.length+2;
|
||||
var opt = {};
|
||||
for (var i = 0; i < sel.options.length; i++)
|
||||
{
|
||||
if (sel.options[i].selected)
|
||||
{
|
||||
id = sel.options[i].id;
|
||||
opt[id.substr(1, id.length-lm)] = true;
|
||||
}
|
||||
}
|
||||
return opt;
|
||||
}
|
||||
|
||||
function handleControllerField(e, controller)
|
||||
{
|
||||
var vis, label_container, field_container, id;
|
||||
var opt = getSelectedIds(controller);
|
||||
for (var controlled_id in show_fields[controller.id]['fields'])
|
||||
{
|
||||
vis = false;
|
||||
for (var value in show_fields[controller.id]['fields'][controlled_id])
|
||||
{
|
||||
if (opt[value])
|
||||
{
|
||||
vis = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
label_container = document.getElementById('field_label_' + controlled_id);
|
||||
field_container = document.getElementById('field_container_' + controlled_id);
|
||||
if (vis)
|
||||
{
|
||||
YAHOO.util.Dom.removeClass(label_container, 'bz_hidden_field');
|
||||
YAHOO.util.Dom.removeClass(field_container, 'bz_hidden_field');
|
||||
}
|
||||
else
|
||||
{
|
||||
YAHOO.util.Dom.addClass(label_container, 'bz_hidden_field');
|
||||
YAHOO.util.Dom.addClass(field_container, 'bz_hidden_field');
|
||||
}
|
||||
}
|
||||
var item, controlled, copt, controlled_value;
|
||||
for (var controlled_id in show_fields[controller.id]['values'])
|
||||
{
|
||||
controlled = document.getElementById(controlled_id);
|
||||
copt = getSelectedIds(controlled);
|
||||
bz_clearOptions(controlled);
|
||||
for (var i in show_fields[controlled.id]['legal'])
|
||||
{
|
||||
controlled_value = show_fields[controlled.id]['legal'][i];
|
||||
vis = false;
|
||||
item = show_fields[controller.id]['values'][controlled_id][controlled_value[0]];
|
||||
if (!item)
|
||||
vis = true;
|
||||
else
|
||||
{
|
||||
for (var value in item)
|
||||
{
|
||||
if (opt[value])
|
||||
{
|
||||
vis = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (vis)
|
||||
{
|
||||
item = bz_createOptionInSelect(controlled, controlled_value[1], controlled_value[1]);
|
||||
item.id = 'v'+controlled_value[0]+'_'+controlled_id;
|
||||
if (copt[controlled_value[0]])
|
||||
item.selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
93
js/field.js
93
js/field.js
|
@ -21,99 +21,6 @@
|
|||
/* This library assumes that the needed YUI libraries have been loaded
|
||||
already. */
|
||||
|
||||
var show_fields = {};
|
||||
YAHOO.util.Event.addListener(window, 'load', initControlledFields);
|
||||
|
||||
function initControlledFields()
|
||||
{
|
||||
for (var i in show_fields)
|
||||
initControlledField(i);
|
||||
}
|
||||
|
||||
function initControlledField(i)
|
||||
{
|
||||
var f = document.getElementById(i);
|
||||
YAHOO.util.Event.addListener(f, 'change', handleControllerField, f);
|
||||
}
|
||||
|
||||
function getSelectedIds(sel)
|
||||
{
|
||||
var lm = sel.id.length+2;
|
||||
var opt = {};
|
||||
for (var i = 0; i < sel.options.length; i++)
|
||||
{
|
||||
if (sel.options[i].selected)
|
||||
{
|
||||
id = sel.options[i].id;
|
||||
opt[id.substr(1, id.length-lm)] = true;
|
||||
}
|
||||
}
|
||||
return opt;
|
||||
}
|
||||
|
||||
function handleControllerField(e, controller)
|
||||
{
|
||||
var vis, label_container, field_container, id;
|
||||
var opt = getSelectedIds(controller);
|
||||
for (var controlled_id in show_fields[controller.id]['fields'])
|
||||
{
|
||||
vis = false;
|
||||
for (var value in show_fields[controller.id]['fields'][controlled_id])
|
||||
{
|
||||
if (opt[value])
|
||||
{
|
||||
vis = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
label_container = document.getElementById('field_label_' + controlled_id);
|
||||
field_container = document.getElementById('field_container_' + controlled_id);
|
||||
if (vis)
|
||||
{
|
||||
YAHOO.util.Dom.removeClass(label_container, 'bz_hidden_field');
|
||||
YAHOO.util.Dom.removeClass(field_container, 'bz_hidden_field');
|
||||
}
|
||||
else
|
||||
{
|
||||
YAHOO.util.Dom.addClass(label_container, 'bz_hidden_field');
|
||||
YAHOO.util.Dom.addClass(field_container, 'bz_hidden_field');
|
||||
}
|
||||
}
|
||||
var item, controlled, copt, controlled_value;
|
||||
for (var controlled_id in show_fields[controller.id]['values'])
|
||||
{
|
||||
controlled = document.getElementById(controlled_id);
|
||||
copt = getSelectedIds(controlled);
|
||||
bz_clearOptions(controlled);
|
||||
for (var i in show_fields[controlled.id]['legal'])
|
||||
{
|
||||
controlled_value = show_fields[controlled.id]['legal'][i];
|
||||
vis = false;
|
||||
item = show_fields[controller.id]['values'][controlled_id][controlled_value[0]];
|
||||
if (!item)
|
||||
vis = true;
|
||||
else
|
||||
{
|
||||
for (var value in item)
|
||||
{
|
||||
if (opt[value])
|
||||
{
|
||||
vis = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (vis)
|
||||
{
|
||||
item = bz_createOptionInSelect(controlled, controlled_value[1], controlled_value[1]);
|
||||
item.id = 'v'+controlled_value[0]+'_'+controlled_id;
|
||||
if (copt[controlled_value[0]])
|
||||
item.selected = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createCalendar(name) {
|
||||
var cal = new YAHOO.widget.Calendar('calendar_' + name,
|
||||
'con_calendar_' + name);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/* JavaScript code to hide and show values of select fields on the query form */
|
||||
|
||||
var qfVisibility = {};
|
||||
var qfHandling = {};
|
||||
YAHOO.util.Event.addListener(window, 'load', initQueryformFields);
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
style_urls = [ 'skins/standard/create_attachment.css',
|
||||
'skins/standard/yui/calendar.css' ]
|
||||
javascript_urls = [ "js/attachment.js", "js/util.js", "js/yui/calendar.js",
|
||||
"js/field.js", "js/TUI.js", "fieldvaluecontrol.cgi?type=bug" ]
|
||||
"js/field.js", "js/TUI.js", "js/bug-visibility.js", "fieldvaluecontrol.cgi?type=bug" ]
|
||||
onload = 'set_assign_to();'
|
||||
%]
|
||||
|
||||
|
|
|
@ -38,8 +38,6 @@
|
|||
[% select_fields.${field.name} = field %]
|
||||
[% END %]
|
||||
|
||||
<script type="text/javascript" src="fieldvaluecontrol.cgi?type=bug"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var user_settings = {
|
||||
'is_insider' : [% user.is_insider ? 1 : 0 %],
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
[% title = "$terms.Bug $bug.bug_id – $filtered_desc – $filtered_prodcomp – $filtered_stat" %]
|
||||
[% header = "$terms.Bug $bug.bug_id" %]
|
||||
[% header_addl_info = "Last modified: $filtered_timestamp" %]
|
||||
[% javascript_urls = [ "js/util.js", "js/field.js", "js/yui/calendar.js" ] %]
|
||||
[% javascript_urls = [ "js/util.js", "js/field.js", "js/yui/calendar.js", "js/bug-visibility.js", "fieldvaluecontrol.cgi?type=bug" ] %]
|
||||
[% style_urls = [ "skins/standard/yui/calendar.css",
|
||||
"skins/standard/show_bug.css" ] %]
|
||||
[% doc_section = "bug_page.html" %]
|
||||
|
|
Loading…
Reference in New Issue