Fix for bug 204631: enhances config.cgi to generate a list of queryable fields so third-party clients can populate search forms with the list.

r=gerv
a=myk


git-svn-id: svn://10.0.0.236/trunk@144056 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
myk%mozilla.org
2003-06-23 18:01:39 +00:00
parent a99f618223
commit 6543d0e9e4
5 changed files with 48 additions and 14 deletions

View File

@@ -87,6 +87,9 @@ foreach my $status (@::legal_bug_status) {
$vars->{'open_status'} = \@open_status;
$vars->{'closed_status'} = \@closed_status;
# Generate a list of fields that can be queried.
$vars->{'field'} = [GetFieldDefs()];
# Determine how the user would like to receive the output;
# default is JavaScript.
my $format = GetFormat("config", $::FORM{'format'}, $::FORM{'ctype'} || "js");

View File

@@ -627,6 +627,26 @@ sub GetSelectableProductHash {
}
sub GetFieldDefs {
my $extra = "";
if (!UserInGroup(Param('timetrackinggroup'))) {
$extra = "WHERE name NOT IN ('estimated time', 'remaining_time', " .
"'work_time', 'percentage_complete')";
}
my @fields;
PushGlobalSQLState();
SendSQL("SELECT name, description FROM fielddefs $extra ORDER BY sortkey");
while (MoreSQLData()) {
my ($name, $description) = FetchSQLData();
push(@fields, { name => $name, description => $description });
}
PopGlobalSQLState();
return(@fields);
}
sub CanSeeBug {
my ($id, $userid) = @_;

View File

@@ -314,19 +314,7 @@ $vars->{'bug_severity'} = \@::legal_severity;
# Boolean charts
my @fields;
push(@fields, { name => "noop", description => "---" });
SendSQL("SELECT name, description FROM fielddefs ORDER BY sortkey");
while (MoreSQLData()) {
my ($name, $description) = FetchSQLData();
if (($name eq "estimated_time" ||
$name eq "remaining_time" ||
$name eq "work_time" ||
$name eq "percentage_complete" ) &&
(!UserInGroup(Param('timetrackinggroup')))) {
next;
}
push(@fields, { name => $name, description => $description });
}
push(@fields, GetFieldDefs());
$vars->{'fields'} = \@fields;
# Creating new charts - if the cmd-add value is there, we define the field

View File

@@ -101,8 +101,18 @@ var component_exceptions = new Array(
// // ^^^^
);
// Queryable Fields
// ================
[% PROCESS "global/field-descs.none.tmpl" %]
var field = [
[% FOREACH x = field %]
{ name: '[% x.name FILTER js %]',
description: '[% (field_descs.${x.name} OR x.description) FILTER js %]' },
[% END %]
];
// Deprecated Variables
// ================================
// ====================
//
// Other names for various variables. These are deprecated
// and could go away at any time. Use them at your own risk!

View File

@@ -180,6 +180,19 @@
</bz:target_milestones>
[% END %]
<bz:fields>
<Seq>
[% PROCESS "global/field-descs.none.tmpl" %]
[% FOREACH item = field %]
<li>
<bz:field rdf:about="[% Param('urlbase') %]field.cgi?name=[% item.name FILTER uri %]">
<bz:name>[% item.name FILTER html %]</bz:name>
<bz:description>[% (field_descs.${item.name} OR item.description) FILTER html %]</bz:description>
</bz:field>
</li>
[% END %]
</Seq>
</bz:fields>
</bz:installation>
</RDF>