mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-27 02:43:07 +00:00
Bug 140435 - Templatise GetCommandMenu. Patch by gerv; r=bbaetz, justdave.
This commit is contained in:
parent
84055f06cc
commit
2743a43bf1
@ -480,9 +480,52 @@ sub quietly_check_login() {
|
||||
if (!$loginok) {
|
||||
delete $::COOKIE{"Bugzilla_login"};
|
||||
}
|
||||
|
||||
$vars->{'user'} = GetUserInfo($::userid);
|
||||
|
||||
return $loginok;
|
||||
}
|
||||
|
||||
# Populate a hash with information about this user.
|
||||
sub GetUserInfo {
|
||||
my ($userid) = (@_);
|
||||
my %user;
|
||||
my @queries;
|
||||
my %groups;
|
||||
|
||||
# No info if not logged in
|
||||
return \%user if ($userid == 0);
|
||||
|
||||
$user{'login'} = $::COOKIE{"Bugzilla_login"};
|
||||
$user{'userid'} = $userid;
|
||||
|
||||
SendSQL("SELECT mybugslink, realname, groupset FROM profiles " .
|
||||
"WHERE userid = $userid");
|
||||
($user{'showmybugslink'}, $user{'realname'}, $user{'groupset'}) =
|
||||
FetchSQLData();
|
||||
|
||||
SendSQL("SELECT name, query, linkinfooter FROM namedqueries " .
|
||||
"WHERE userid = $userid");
|
||||
while (MoreSQLData()) {
|
||||
my %query;
|
||||
($query{'name'}, $query{'query'}, $query{'linkinfooter'}) =
|
||||
FetchSQLData();
|
||||
push(@queries, \%query);
|
||||
}
|
||||
|
||||
$user{'queries'} = \@queries;
|
||||
|
||||
SendSQL("select name, (bit & $user{'groupset'}) != 0 from groups");
|
||||
while (MoreSQLData()) {
|
||||
my ($name, $bit) = FetchSQLData();
|
||||
$groups{$name} = $bit;
|
||||
}
|
||||
|
||||
$user{'groups'} = \%groups;
|
||||
|
||||
return \%user;
|
||||
}
|
||||
|
||||
sub CheckEmailSyntax {
|
||||
my ($addr) = (@_);
|
||||
my $match = Param('emailregexp');
|
||||
|
@ -1119,8 +1119,22 @@ CMD: for ($::FORM{'cmdtype'}) {
|
||||
SendSQL("REPLACE INTO namedqueries (userid, name, query, linkinfooter)
|
||||
VALUES ($userid, $qname, $qbuffer, $tofooter)");
|
||||
}
|
||||
|
||||
my $new_in_footer = $tofooter;
|
||||
|
||||
# Don't add it to the list if they are reusing an existing query name.
|
||||
foreach my $query (@{$vars->{'user'}{'queries'}}) {
|
||||
if ($query->{'name'} eq $name) {
|
||||
$new_in_footer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
print "Content-Type: text/html\n\n";
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
if ($new_in_footer) {
|
||||
push(@{$vars->{'user'}{'queries'}}, {name => $name});
|
||||
}
|
||||
|
||||
$vars->{'title'} = "OK, query saved.";
|
||||
$vars->{'message'} = "OK, you have a new query named <code>$name</code>";
|
||||
$vars->{'url'} = "query.cgi";
|
||||
@ -1453,7 +1467,7 @@ $vars->{'urlquerypart'} =~ s/[&?](order|cmdtype)=[^&]*//g;
|
||||
$vars->{'order'} = $order;
|
||||
|
||||
# The user's login account name (i.e. email address).
|
||||
$vars->{'user'} = $::COOKIE{'Bugzilla_login'};
|
||||
my $login = $::COOKIE{'Bugzilla_login'};
|
||||
|
||||
$vars->{'caneditbugs'} = UserInGroup('editbugs');
|
||||
$vars->{'usebuggroups'} = UserInGroup('usebuggroups');
|
||||
@ -1461,8 +1475,8 @@ $vars->{'usebuggroups'} = UserInGroup('usebuggroups');
|
||||
# Whether or not this user is authorized to move bugs to another installation.
|
||||
$vars->{'ismover'} = 1
|
||||
if Param('move-enabled')
|
||||
&& defined($vars->{'user'})
|
||||
&& Param('movers') =~ /^(\Q$vars->{'user'}\E[,\s])|([,\s]\Q$vars->{'user'}\E[,\s]+)/;
|
||||
&& defined($login)
|
||||
&& Param('movers') =~ /^(\Q$login\E[,\s])|([,\s]\Q$login\E[,\s]+)/;
|
||||
|
||||
my @bugowners = keys %$bugowners;
|
||||
if (scalar(@bugowners) > 1 && UserInGroup('editbugs')) {
|
||||
|
@ -842,6 +842,7 @@ END
|
||||
js => sub { return $_; },
|
||||
html => sub { return $_; },
|
||||
url_quote => sub { return $_; }
|
||||
no_break => sub { return $_; }
|
||||
},
|
||||
}) || die ("Could not create Template: " . Template->error() . "\n");
|
||||
|
||||
|
@ -486,7 +486,6 @@ sub GenerateVersionTable {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $cols = LearnAboutColumns("bugs");
|
||||
|
||||
@::log_columns = @{$cols->{"-list-"}};
|
||||
@ -1574,6 +1573,15 @@ $::template ||= Template->new(
|
||||
# filter should be used for a full URL that may have
|
||||
# characters that need encoding.
|
||||
url_quote => \&url_quote ,
|
||||
|
||||
# Returns the text with spaces converted to non-breaking space
|
||||
# HTML entities.
|
||||
no_break => sub
|
||||
{
|
||||
my ($var) = @_;
|
||||
$var =~ s/ /\ /g;
|
||||
return $var;
|
||||
} ,
|
||||
} ,
|
||||
}
|
||||
) || DisplayError("Template creation failed: " . Template->error())
|
||||
@ -1756,6 +1764,8 @@ $::vars =
|
||||
|
||||
# User Agent - useful for detecting in templates
|
||||
'user_agent' => $ENV{'HTTP_USER_AGENT'} ,
|
||||
|
||||
'use_votes' => $::anyvotesallowed,
|
||||
};
|
||||
|
||||
1;
|
||||
|
@ -66,6 +66,7 @@ delete $::COOKIE{"Bugzilla_login"};
|
||||
next time it is required.";
|
||||
$vars->{'url'} = "query.cgi?GoAheadAndLogIn=1";
|
||||
$vars->{'link'} = "Log in again here";
|
||||
$vars->{'user'} = {};
|
||||
|
||||
print "Content-Type: text/html\n\n";
|
||||
$template->process("global/message.html.tmpl", $vars)
|
||||
|
@ -70,6 +70,7 @@ my $template = Template->new(
|
||||
js => sub { return $_ } ,
|
||||
strike => sub { return $_ } ,
|
||||
url_quote => sub { return $_ } ,
|
||||
no_break => sub { return $_ } ,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
@ -21,9 +21,11 @@
|
||||
|
||||
[% PROCESS global/header.html.tmpl
|
||||
title = "Show Votes"
|
||||
h2 = user.name
|
||||
h2 = voting_user.name
|
||||
%]
|
||||
|
||||
[% canedit = 1 IF voting_user.login == user.login %]
|
||||
|
||||
[% IF votes_recorded %]
|
||||
<p>
|
||||
<font color="red">
|
||||
@ -76,7 +78,7 @@
|
||||
</a>
|
||||
</td>
|
||||
<td align="right">
|
||||
[% IF user.canedit %]
|
||||
[% IF canedit %]
|
||||
[% IF product.onevoteonly %]
|
||||
<input type="checkbox" name="[% bug.id %]" value="1"
|
||||
[% " checked" IF bug.count %]>
|
||||
@ -103,7 +105,7 @@
|
||||
[% END %]
|
||||
</table>
|
||||
|
||||
[% IF user.canedit %]
|
||||
[% IF canedit %]
|
||||
<input type="submit" value="Change My Votes">
|
||||
<br>
|
||||
<br>
|
||||
@ -114,7 +116,7 @@
|
||||
</form>
|
||||
[% ELSE %]
|
||||
<p>
|
||||
[% IF user.canedit %]
|
||||
[% IF canedit %]
|
||||
You are
|
||||
[% ELSE %]
|
||||
This user is
|
||||
|
@ -16,12 +16,46 @@
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Contributor(s): Gervase Markham <gerv@gerv.net>
|
||||
#%]
|
||||
|
||||
[% PerformSubsts(Param('footerhtml')) %]
|
||||
[%# INTERFACE:
|
||||
# This template has no interface. However, you must fulfill the interface to
|
||||
# global/useful-links.html.tmpl.
|
||||
#%]
|
||||
|
||||
[%# Migration note: this whole file corresponds to the old Param 'footerhtml' %]
|
||||
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td bgcolor="#000000" valign="top">
|
||||
<table border="0" cellpadding="10" cellspacing="0" width="100%"
|
||||
bgcolor="lightyellow">
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
[%# Migration note: this section corresponds to the old Param 'blurbhtml' %]
|
||||
|
||||
This is <b>Bugzilla</b>: the Mozilla bug system. For more
|
||||
information about what Bugzilla is and what it can do, see
|
||||
<a href="http://www.bugzilla.org/">bugzilla.org</a>.
|
||||
|
||||
[%# End section %]
|
||||
|
||||
<br>
|
||||
|
||||
[% Migration note: useful-links.html.tmpl corresponds to %commandmenu% %]
|
||||
|
||||
[% PROCESS "global/useful-links.html.tmpl" %]
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
[% CALL SyncAnyPendingShadowChanges() %]
|
||||
[% CALL SyncAnyPendingShadowChanges() IF SyncAnyPendingShadowChanges %]
|
||||
|
@ -0,0 +1,125 @@
|
||||
<!-- 1.0@bugzilla.org -->
|
||||
[%# The contents of this file are subject to the Mozilla Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is the Bugzilla Bug Tracking System.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Gervase Markham <gerv@gerv.net>
|
||||
#%]
|
||||
|
||||
[%# INTERFACE:
|
||||
# user: hash. Information about the user. If the user is not logged in,
|
||||
# user.login is undefined.
|
||||
# login: string. The user's Bugzilla login email address.
|
||||
# showmybugslink: boolean. True if user wants My Bugs in the footer.
|
||||
# queries: list of strings. The names of those of the user's named
|
||||
# queries which should be displayed in the footer.
|
||||
# groups: hash. Keys are group names, values are true if user in that group.
|
||||
# The keys used in this template are
|
||||
# tweakparams, editcomponents, creategroups, editkeywords, confirm,
|
||||
# editbugs, editusers.
|
||||
# use_votes: boolean. True if we are using votes.
|
||||
#%]
|
||||
|
||||
[%# Migration note: this whole file corresponds to the old %commandmenu%
|
||||
substitution param in 'footerhtml' %]
|
||||
|
||||
<form method="get" action="show_bug.cgi">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
Actions:
|
||||
</td>
|
||||
|
||||
<td valign="middle" nowrap>
|
||||
<a href="enter_bug.cgi">New</a> |
|
||||
<a href="query.cgi">Query</a> |
|
||||
|
||||
<input type="submit" value="Find"> bug #
|
||||
<input name="id" size="6"> |
|
||||
|
||||
<a href="reports.cgi">Reports</a>
|
||||
|
||||
[% IF user.login AND use_votes %]
|
||||
| <a href="votes.cgi?action=show_user">My Votes</a>
|
||||
[% END %]
|
||||
</td>
|
||||
|
||||
<td> </td>
|
||||
|
||||
[% IF user.login %]
|
||||
|
||||
<td valign="middle">
|
||||
Edit <a href="userprefs.cgi">prefs</a>
|
||||
[% ", <a href='editparams.cgi'>parameters</a>"
|
||||
IF user.groups.tweakparams %]
|
||||
[% ", <a href='editusers.cgi'>users</a>" IF user.groups.editusers %]
|
||||
[% ", <a href='editproducts.cgi'>products</a>"
|
||||
IF user.groups.editcomponents %]
|
||||
[% ", <a href='editattachstatuses.cgi'> attachment statuses</a>"
|
||||
IF user.groups.editcomponents %]
|
||||
[% ", <a href='editgroups.cgi'>groups</a>"
|
||||
IF user.groups.creategroups %]
|
||||
[% ", <a href='editkeywords.cgi'>keywords</a>"
|
||||
IF user.groups.editkeywords %]
|
||||
[% " | <a href='sanitycheck.cgi'>Sanity check</a>"
|
||||
IF user.groups.tweakparams %]
|
||||
|
||||
| <a href="relogin.cgi">Log out</a> [% user.login %]
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
[%# Preset queries %]
|
||||
|
||||
[% preset_queries = user.showmybugslink %]
|
||||
[% FOREACH q = user.queries %]
|
||||
[% preset_queries = 1 IF q.linkinfooter %]
|
||||
[% END %]
|
||||
|
||||
<tr>
|
||||
[% IF preset_queries %]
|
||||
<td>
|
||||
Preset Queries:
|
||||
</td>
|
||||
[% END %]
|
||||
|
||||
<td colspan="3">
|
||||
[% IF user.showmybugslink %]
|
||||
<a href="buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=[% user.name FILTER url_quote %]&emailtype1=exact&emailassigned_to1=1&emailreporter1=1">My Bugs
|
||||
</a>
|
||||
[% print_pipe = 1 %]
|
||||
[% END %]
|
||||
|
||||
[% FOREACH q = user.queries %]
|
||||
[% IF q.linkinfooter %]
|
||||
[% " | " IF print_pipe %]
|
||||
<a href="buglist.cgi?cmdtype=runnamed&namedcmd=[% q FILTER url_quote %]">[% q.name FILTER no_break FILTER html %]
|
||||
</a>
|
||||
[% print_pipe = 1 %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
[% ELSE %]
|
||||
<td valign="middle" align="right">
|
||||
<a href="createaccount.cgi">New Account</a> |
|
||||
<a href="query.cgi?GoAheadAndLogIn=1">Log In</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
|
||||
</table>
|
||||
</form>
|
@ -280,7 +280,7 @@
|
||||
Reassign</A> bugs to
|
||||
</label>
|
||||
<input name="assigned_to"
|
||||
value="[% user FILTER html %]"
|
||||
value="[% user.login FILTER html %]"
|
||||
onchange="document.forms.changeform.knob[[% knum %]].checked = true;"
|
||||
size="32"><br />
|
||||
|
||||
|
@ -323,6 +323,9 @@ sub SaveFooter {
|
||||
}
|
||||
SendSQL("UPDATE profiles SET mybugslink = " .
|
||||
SqlQuote($::FORM{'mybugslink'}) . " WHERE userid = $userid");
|
||||
|
||||
# Regenerate cached info about queries in footer.
|
||||
$vars->{'user'} = GetUserInfo($::userid);
|
||||
}
|
||||
|
||||
|
||||
|
@ -213,7 +213,7 @@ sub show_user {
|
||||
SendSQL("DELETE FROM votes WHERE count <= 0");
|
||||
SendSQL("UNLOCK TABLES");
|
||||
|
||||
$vars->{'user'} = { canedit => $canedit, name => $name, id => $who };
|
||||
$vars->{'voting_user'} = { "login" => $name };
|
||||
$vars->{'products'} = \@products;
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
|
Loading…
Reference in New Issue
Block a user