Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
d7564670
Commit
d7564670
authored
May 08, 2002
by
gerv%gerv.net
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 140435 - Templatise GetCommandMenu. Patch by gerv; r=bbaetz, justdave.
parent
4afae456
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
247 additions
and
13 deletions
+247
-13
CGI.pl
CGI.pl
+43
-0
buglist.cgi
buglist.cgi
+17
-3
checksetup.pl
checksetup.pl
+1
-0
globals.pl
globals.pl
+11
-1
relogin.cgi
relogin.cgi
+1
-0
004template.t
t/004template.t
+1
-0
list-for-user.html.tmpl
template/en/default/bug/votes/list-for-user.html.tmpl
+6
-4
footer.html.tmpl
template/en/default/global/footer.html.tmpl
+37
-3
useful-links.html.tmpl
template/en/default/global/useful-links.html.tmpl
+125
-0
edit-multiple.html.tmpl
template/en/default/list/edit-multiple.html.tmpl
+1
-1
userprefs.cgi
userprefs.cgi
+3
-0
votes.cgi
votes.cgi
+1
-1
No files found.
CGI.pl
View file @
d7564670
...
@@ -480,9 +480,52 @@ sub quietly_check_login() {
...
@@ -480,9 +480,52 @@ sub quietly_check_login() {
if
(
!
$loginok
)
{
if
(
!
$loginok
)
{
delete
$::COOKIE
{
"Bugzilla_login"
};
delete
$::COOKIE
{
"Bugzilla_login"
};
}
}
$vars
->
{
'user'
}
=
GetUserInfo
(
$::userid
);
return
$loginok
;
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
{
sub
CheckEmailSyntax
{
my
(
$addr
)
=
(
@_
);
my
(
$addr
)
=
(
@_
);
my
$match
=
Param
(
'emailregexp'
);
my
$match
=
Param
(
'emailregexp'
);
...
...
buglist.cgi
View file @
d7564670
...
@@ -1119,8 +1119,22 @@ CMD: for ($::FORM{'cmdtype'}) {
...
@@ -1119,8 +1119,22 @@ CMD: for ($::FORM{'cmdtype'}) {
SendSQL
(
"REPLACE INTO namedqueries (userid, name, query, linkinfooter)
SendSQL
(
"REPLACE INTO namedqueries (userid, name, query, linkinfooter)
VALUES ($userid, $qname, $qbuffer, $tofooter)"
);
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"
;
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
->
{
'title'
}
=
"OK, query saved."
;
$vars
->
{
'message'
}
=
"OK, you have a new query named <code>$name</code>"
;
$vars
->
{
'message'
}
=
"OK, you have a new query named <code>$name</code>"
;
$vars
->
{
'url'
}
=
"query.cgi"
;
$vars
->
{
'url'
}
=
"query.cgi"
;
...
@@ -1453,7 +1467,7 @@ $vars->{'urlquerypart'} =~ s/[&?](order|cmdtype)=[^&]*//g;
...
@@ -1453,7 +1467,7 @@ $vars->{'urlquerypart'} =~ s/[&?](order|cmdtype)=[^&]*//g;
$vars
->
{
'order'
}
=
$order
;
$vars
->
{
'order'
}
=
$order
;
# The user's login account name (i.e. email address).
# 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
->
{
'caneditbugs'
}
=
UserInGroup
(
'editbugs'
);
$vars
->
{
'usebuggroups'
}
=
UserInGroup
(
'usebuggroups'
);
$vars
->
{
'usebuggroups'
}
=
UserInGroup
(
'usebuggroups'
);
...
@@ -1461,8 +1475,8 @@ $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.
# Whether or not this user is authorized to move bugs to another installation.
$vars
->
{
'ismover'
}
=
1
$vars
->
{
'ismover'
}
=
1
if
Param
(
'move-enabled'
)
if
Param
(
'move-enabled'
)
&&
defined
(
$
vars
->
{
'user'
}
)
&&
defined
(
$
login
)
&&
Param
(
'movers'
)
=~
/^(\Q$
vars->{'user'}\E[,\s])|([,\s]\Q$vars->{'user'}
\E[,\s]+)/
;
&&
Param
(
'movers'
)
=~
/^(\Q$
login\E[,\s])|([,\s]\Q$login
\E[,\s]+)/
;
my
@bugowners
=
keys
%
$bugowners
;
my
@bugowners
=
keys
%
$bugowners
;
if
(
scalar
(
@bugowners
)
>
1
&&
UserInGroup
(
'editbugs'
))
{
if
(
scalar
(
@bugowners
)
>
1
&&
UserInGroup
(
'editbugs'
))
{
...
...
checksetup.pl
View file @
d7564670
...
@@ -842,6 +842,7 @@ END
...
@@ -842,6 +842,7 @@ END
js
=>
sub
{
return
$_
;
},
js
=>
sub
{
return
$_
;
},
html
=>
sub
{
return
$_
;
},
html
=>
sub
{
return
$_
;
},
url_quote
=>
sub
{
return
$_
;
}
url_quote
=>
sub
{
return
$_
;
}
no_break
=>
sub
{
return
$_
;
}
},
},
})
||
die
(
"Could not create Template: "
.
Template
->
error
()
.
"\n"
);
})
||
die
(
"Could not create Template: "
.
Template
->
error
()
.
"\n"
);
...
...
globals.pl
View file @
d7564670
...
@@ -486,7 +486,6 @@ sub GenerateVersionTable {
...
@@ -486,7 +486,6 @@ sub GenerateVersionTable {
}
}
}
}
my
$cols
=
LearnAboutColumns
(
"bugs"
);
my
$cols
=
LearnAboutColumns
(
"bugs"
);
@::log_columns
=
@
{
$cols
->
{
"-list-"
}};
@::log_columns
=
@
{
$cols
->
{
"-list-"
}};
...
@@ -1574,6 +1573,15 @@ $::template ||= Template->new(
...
@@ -1574,6 +1573,15 @@ $::template ||= Template->new(
# filter should be used for a full URL that may have
# filter should be used for a full URL that may have
# characters that need encoding.
# characters that need encoding.
url_quote
=>
\&
url_quote
,
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
())
)
||
DisplayError
(
"Template creation failed: "
.
Template
->
error
())
...
@@ -1756,6 +1764,8 @@ $::vars =
...
@@ -1756,6 +1764,8 @@ $::vars =
# User Agent - useful for detecting in templates
# User Agent - useful for detecting in templates
'user_agent'
=>
$ENV
{
'HTTP_USER_AGENT'
}
,
'user_agent'
=>
$ENV
{
'HTTP_USER_AGENT'
}
,
'use_votes'
=>
$::anyvotesallowed
,
};
};
1
;
1
;
relogin.cgi
View file @
d7564670
...
@@ -66,6 +66,7 @@ delete $::COOKIE{"Bugzilla_login"};
...
@@ -66,6 +66,7 @@ delete $::COOKIE{"Bugzilla_login"};
next time it is required."
;
next time it is required."
;
$vars
->
{
'url'
}
=
"query.cgi?GoAheadAndLogIn=1"
;
$vars
->
{
'url'
}
=
"query.cgi?GoAheadAndLogIn=1"
;
$vars
->
{
'link'
}
=
"Log in again here"
;
$vars
->
{
'link'
}
=
"Log in again here"
;
$vars
->
{
'user'
}
=
{};
print
"Content-Type: text/html\n\n"
;
print
"Content-Type: text/html\n\n"
;
$template
->
process
(
"global/message.html.tmpl"
,
$vars
)
$template
->
process
(
"global/message.html.tmpl"
,
$vars
)
...
...
t/004template.t
View file @
d7564670
...
@@ -70,6 +70,7 @@ my $template = Template->new(
...
@@ -70,6 +70,7 @@ my $template = Template->new(
js
=>
sub
{
return
$_
}
,
js
=>
sub
{
return
$_
}
,
strike
=>
sub
{
return
$_
}
,
strike
=>
sub
{
return
$_
}
,
url_quote
=>
sub
{
return
$_
}
,
url_quote
=>
sub
{
return
$_
}
,
no_break
=>
sub
{
return
$_
}
,
},
},
}
}
);
);
...
...
template/en/default/bug/votes/list-for-user.html.tmpl
View file @
d7564670
...
@@ -21,9 +21,11 @@
...
@@ -21,9 +21,11 @@
[% PROCESS global/header.html.tmpl
[% PROCESS global/header.html.tmpl
title = "Show Votes"
title = "Show Votes"
h2 = user.name
h2 =
voting_
user.name
%]
%]
[% canedit = 1 IF voting_user.login == user.login %]
[% IF votes_recorded %]
[% IF votes_recorded %]
<p>
<p>
<font color="red">
<font color="red">
...
@@ -76,7 +78,7 @@
...
@@ -76,7 +78,7 @@
</a>
</a>
</td>
</td>
<td align="right">
<td align="right">
[% IF
user.
canedit %]
[% IF canedit %]
[% IF product.onevoteonly %]
[% IF product.onevoteonly %]
<input type="checkbox" name="[% bug.id %]" value="1"
<input type="checkbox" name="[% bug.id %]" value="1"
[% " checked" IF bug.count %]>
[% " checked" IF bug.count %]>
...
@@ -103,7 +105,7 @@
...
@@ -103,7 +105,7 @@
[% END %]
[% END %]
</table>
</table>
[% IF
user.
canedit %]
[% IF canedit %]
<input type="submit" value="Change My Votes">
<input type="submit" value="Change My Votes">
<br>
<br>
<br>
<br>
...
@@ -114,7 +116,7 @@
...
@@ -114,7 +116,7 @@
</form>
</form>
[% ELSE %]
[% ELSE %]
<p>
<p>
[% IF
user.
canedit %]
[% IF canedit %]
You are
You are
[% ELSE %]
[% ELSE %]
This user is
This user is
...
...
template/en/default/global/footer.html.tmpl
View file @
d7564670
...
@@ -16,12 +16,46 @@
...
@@ -16,12 +16,46 @@
# Copyright (C) 1998 Netscape Communications Corporation. All
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
# 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>
</body>
</html>
</html>
[% CALL SyncAnyPendingShadowChanges() %]
[% CALL SyncAnyPendingShadowChanges()
IF SyncAnyPendingShadowChanges
%]
template/en/default/global/useful-links.html.tmpl
0 → 100644
View file @
d7564670
<!-- 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>
template/en/default/list/edit-multiple.html.tmpl
View file @
d7564670
...
@@ -280,7 +280,7 @@
...
@@ -280,7 +280,7 @@
Reassign</A> bugs to
Reassign</A> bugs to
</label>
</label>
<input name="assigned_to"
<input name="assigned_to"
value="[% user FILTER html %]"
value="[% user
.login
FILTER html %]"
onchange="document.forms.changeform.knob[[% knum %]].checked = true;"
onchange="document.forms.changeform.knob[[% knum %]].checked = true;"
size="32"><br />
size="32"><br />
...
...
userprefs.cgi
View file @
d7564670
...
@@ -323,6 +323,9 @@ sub SaveFooter {
...
@@ -323,6 +323,9 @@ sub SaveFooter {
}
}
SendSQL
(
"UPDATE profiles SET mybugslink = "
.
SendSQL
(
"UPDATE profiles SET mybugslink = "
.
SqlQuote
(
$::FORM
{
'mybugslink'
})
.
" WHERE userid = $userid"
);
SqlQuote
(
$::FORM
{
'mybugslink'
})
.
" WHERE userid = $userid"
);
# Regenerate cached info about queries in footer.
$vars
->
{
'user'
}
=
GetUserInfo
(
$::userid
);
}
}
...
...
votes.cgi
View file @
d7564670
...
@@ -213,7 +213,7 @@ sub show_user {
...
@@ -213,7 +213,7 @@ sub show_user {
SendSQL
(
"DELETE FROM votes WHERE count <= 0"
);
SendSQL
(
"DELETE FROM votes WHERE count <= 0"
);
SendSQL
(
"UNLOCK TABLES"
);
SendSQL
(
"UNLOCK TABLES"
);
$vars
->
{
'
user'
}
=
{
canedit
=>
$canedit
,
name
=>
$name
,
id
=>
$who
};
$vars
->
{
'
voting_user'
}
=
{
"login"
=>
$name
};
$vars
->
{
'products'
}
=
\
@products
;
$vars
->
{
'products'
}
=
\
@products
;
print
"Content-type: text/html\n\n"
;
print
"Content-type: text/html\n\n"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment