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
5f61a3d8
Commit
5f61a3d8
authored
Nov 09, 2003
by
gerv%gerv.net
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 179339 - Simplify and improve the stored query mechanism. Patch by gerv; r,a=myk.
parent
ef05aed5
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
78 additions
and
232 deletions
+78
-232
buglist.cgi
buglist.cgi
+12
-19
prefs.html.tmpl
template/en/default/account/prefs/prefs.html.tmpl
+0
-2
site-navigation.html.tmpl
template/en/default/global/site-navigation.html.tmpl
+3
-5
useful-links.html.tmpl
template/en/default/global/useful-links.html.tmpl
+4
-14
list.html.tmpl
template/en/default/list/list.html.tmpl
+44
-14
knob.html.tmpl
template/en/default/search/knob.html.tmpl
+15
-110
userprefs.cgi
userprefs.cgi
+0
-68
No files found.
buglist.cgi
View file @
5f61a3d8
...
...
@@ -274,7 +274,7 @@ if ($::FORM{'cmdtype'} eq "dorem" && $::FORM{'remaction'} =~ /^run/) {
if
(
$::FORM
{
'cmdtype'
}
eq
"dorem"
)
{
if
(
$::FORM
{
'remaction'
}
eq
"run"
)
{
$::buffer
=
LookupNamedQuery
(
$::FORM
{
"namedcmd"
});
$vars
->
{
'
title'
}
=
"Bug List: $::FORM{'namedcmd'}"
;
$vars
->
{
'
searchname'
}
=
$::FORM
{
'namedcmd'
}
;
$params
=
new
Bugzilla::
CGI
(
$::buffer
);
$order
=
$params
->
param
(
'order'
)
||
$order
;
}
...
...
@@ -284,17 +284,6 @@ if ($::FORM{'cmdtype'} eq "dorem") {
$params
=
new
Bugzilla::
CGI
(
$::buffer
);
$order
=
$params
->
param
(
'order'
)
||
$order
;
}
elsif
(
$::FORM
{
'remaction'
}
eq
"load"
)
{
my
$url
=
"query.cgi?"
.
LookupNamedQuery
(
$::FORM
{
"namedcmd"
});
print
$cgi
->
redirect
(
-
location
=>
$url
);
# Generate and return the UI (HTML page) from the appropriate template.
$vars
->
{
'message'
}
=
"buglist_load_named_query"
;
$vars
->
{
'namedcmd'
}
=
$::FORM
{
'namedcmd'
};
$vars
->
{
'url'
}
=
$url
;
$template
->
process
(
"global/message.html.tmpl"
,
$vars
)
||
ThrowTemplateError
(
$template
->
error
());
exit
;
}
elsif
(
$::FORM
{
'remaction'
}
eq
"forget"
)
{
confirm_login
();
my
$userid
=
DBNameToIdAndCheck
(
$::COOKIE
{
"Bugzilla_login"
});
...
...
@@ -314,18 +303,18 @@ if ($::FORM{'cmdtype'} eq "dorem") {
exit
;
}
}
elsif
(
$::FORM
{
'cmdtype'
}
eq
"doit"
&&
$::FORM
{
'remember'
}
)
{
if
(
$::FORM
{
'rem
ember'
}
==
1
&&
$::FORM
{
'rem
type'
}
eq
"asdefault"
)
{
elsif
(
$::FORM
{
'cmdtype'
}
eq
"doit"
)
{
if
(
$::FORM
{
'remtype'
}
eq
"asdefault"
)
{
confirm_login
();
my
$userid
=
DBNameToIdAndCheck
(
$::COOKIE
{
"Bugzilla_login"
});
my
$qname
=
SqlQuote
(
$::defaultqueryname
);
my
$qbuffer
=
SqlQuote
(
$::buffer
);
SendSQL
(
"REPLACE INTO namedqueries (userid, name, query)
VALUES ($userid, $qname, $qbuffer)"
);
# Generate and return the UI (HTML page) from the appropriate template.
$vars
->
{
'message'
}
=
"buglist_new_default_query"
;
}
elsif
(
$::FORM
{
'rem
ember'
}
==
1
&&
$::FORM
{
'rem
type'
}
eq
"asnamed"
)
{
elsif
(
$::FORM
{
'remtype'
}
eq
"asnamed"
)
{
confirm_login
();
my
$userid
=
DBNameToIdAndCheck
(
$::COOKIE
{
"Bugzilla_login"
});
...
...
@@ -334,10 +323,9 @@ elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) {
$name
!~
/[<>&]/
||
ThrowUserError
(
"illegal_query_name"
);
my
$qname
=
SqlQuote
(
$name
);
$::buffer
=~
s/[\&\?]cmdtype=[a-z]+//
;
my
$qbuffer
=
SqlQuote
(
$::buffer
);
my
$qbuffer
=
SqlQuote
(
$::FORM
{
'newquery'
});
my
$tofooter
=
$::FORM
{
'tofooter'
}
?
1
:
0
;
my
$tofooter
=
1
;
$vars
->
{
'message'
}
=
"buglist_new_named_query"
;
...
...
@@ -363,6 +351,11 @@ elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) {
Bugzilla
->
user
->
flush_queries_cache
();
$vars
->
{
'queryname'
}
=
$name
;
print
"Content-Type: text/html\n\n"
;
$template
->
process
(
"global/message.html.tmpl"
,
$vars
)
||
ThrowTemplateError
(
$template
->
error
());
exit
;
}
}
...
...
template/en/default/account/prefs/prefs.html.tmpl
View file @
5f61a3d8
...
...
@@ -53,8 +53,6 @@
saveable => "1" },
{ name => "email", description => "Email settings",
saveable => "1" },
{ name => "footer", description => "Page footer",
saveable => "1" },
{ name => "permissions", description => "Permissions",
saveable => "0" } ] %]
...
...
template/en/default/global/site-navigation.html.tmpl
View file @
5f61a3d8
...
...
@@ -72,20 +72,18 @@
[% END %]
[%# ***
Preset Queri
es *** %]
[%# ***
Saved Search
es *** %]
[% IF user.showmybugslink %]
[% user_login = user.login FILTER url_quote %]
<link rel="
Preset Queries" title="My [% terms.Bugs %]"
<link rel="
Saved Searches" title="My [% terms.Bugs %]"
href="[% Param('mybugstemplate').replace('%userid%', user_login) %]">
[% END %]
[% FOREACH q = user.queries %]
[% IF q.linkinfooter %]
<link rel="Preset Queries"
<link rel="Saved Searches"
title="[% q.name FILTER html %]"
href="buglist.cgi?cmdtype=runnamed&namedcmd=[% q.name FILTER url_quote %]">
[% END %]
[% END %]
[%# *** Bugzilla Administration Tools *** %]
[% IF user.login %]
...
...
template/en/default/global/useful-links.html.tmpl
View file @
5f61a3d8
...
...
@@ -33,7 +33,7 @@
<td valign="middle" nowrap="nowrap">
<a href="enter_bug.cgi">New</a> |
<a href="query.cgi">
Query
</a> |
<a href="query.cgi">
Search
</a> |
<input type="submit" value="Find"> [% terms.bug %] #
<input name="id" size="6"> |
...
...
@@ -78,22 +78,12 @@
</td>
</tr>
[%# Preset queries %]
[% preset_queries = user.showmybugslink %]
[% IF NOT preset_queries %]
[% FOREACH q = user.queries %]
[% IF q.linkinfooter %]
[% preset_queries = 1 %]
[% LAST %]
[% END %]
[% END %]
[% END %]
[%# Saved searches %]
<tr>
[% IF
preset_queries
%]
[% IF
user.showmybugslink OR user.queries.size
%]
<td>
Preset Queri
es:
Saved Search
es:
</td>
[% END %]
...
...
template/en/default/list/list.html.tmpl
View file @
5f61a3d8
...
...
@@ -25,7 +25,11 @@
[% PROCESS global/variables.none.tmpl %]
[% DEFAULT title = "$terms.Bug List" %]
[% title = "$terms.Bug List" %]
[% IF searchname %]
[% title = title _ ": " _ searchname FILTER html %]
[% END %]
[% style_urls = [ "css/buglist.css" ] %]
[% qorder = order FILTER url_quote IF order %]
[% message = "buglist_sorted_by_relevance" IF sorted_by_relevance %]
...
...
@@ -132,33 +136,59 @@
[%############################################################################%]
[% IF bugs.size > 0 %]
<p>
<table>
<tr>
<td valign="top">
<form method="post" action="long_list.cgi">
<input type="hidden" name="buglist" value="[% buglist %]">
<input type="submit" value="Long Format">
</form>
</td>
<td> </td>
<td valign="top">
<a href="buglist.cgi?
[% urlquerypart FILTER html %]&ctype=csv">CSV</a>
[% urlquerypart FILTER html %]&ctype=csv">CSV</a> |
<a href="colchange.cgi?
[% urlquerypart FILTER html %]">Change Columns</a>
[% urlquerypart FILTER html %]">Change Columns</a> |
[% IF bugs.size > 1 && caneditbugs && !dotweak %]
<a href="buglist.cgi?[% urlquerypart FILTER html %]
[%- "&order=$qorder" FILTER html IF order %]&tweak=1">Change Several
[% terms.Bugs %] at
Once</a>
[%- "&order=$qorder" FILTER html IF order %]&tweak=1"
>Change Several [% terms.Bugs %] at
Once</a>
|
[% END %]
[% IF bugowners %]
<a href="mailto:[% bugowners FILTER html %]">Send
Mail to [% terms.Bug %] Owners</a>
<a href="mailto:
[% bugowners FILTER html %]">Send Mail to [% terms.Bug %] Owners</a> |
[% END %]
<a href="query.cgi?
[% urlquerypart FILTER html %]">Edit this Query</a>
<a href="query.cgi?[% urlquerypart FILTER html %]">Edit Search</a>
</td>
[% IF searchname %]
<td valign="top" nowrap="nowrap">
|
<a href="buglist.cgi?cmdtype=dorem&remaction=forget&namedcmd=
[% searchname FILTER html %]">Forget Search '
[% searchname FILTER html %]'</a>
</td>
[% ELSE %]
<td> </td>
<td>
<form method="get" action="buglist.cgi">
<input type="submit" value="Remember search"> as
<input type="hidden" name="newquery"
value="[% urlquerypart FILTER html %]">
<input type="hidden" name="cmdtype" value="doit">
<input type="hidden" name="remtype" value="asnamed">
<input type="text" name="newqueryname" size="20">
</form>
</td>
[% END %]
</tr>
</table>
</p>
[% END %]
...
...
template/en/default/search/knob.html.tmpl
View file @
5f61a3d8
...
...
@@ -31,112 +31,7 @@
"Assignee" => "Assignee",
"Last Changed" => "Last Changed" } %]
<br>
[% IF NOT user %]
<input type="hidden" name="cmdtype" value="doit">
[% ELSE %]
<script type="text/javascript"> <!--
function remCheckboxChanged() {
if (document.queryform.remember.checked == true) {
document.queryform.remtype[0].disabled = false;
document.queryform.remtype[1].disabled = false;
remTypeChanged();
}
else {
document.queryform.remtype[0].disabled = true;
document.queryform.remtype[1].disabled = true;
document.queryform.newqueryname.disabled = true;
document.queryform.tofooter.disabled = true;
}
}
function remTypeChanged() {
if (document.queryform.remtype[0].checked == true) {
document.queryform.newqueryname.disabled = false;
document.queryform.tofooter.disabled = false;
}
else {
document.queryform.newqueryname.disabled = true;
document.queryform.tofooter.disabled = true;
}
}
function selectDoRem() {
document.queryform.cmdtype[1].checked = true;
}
// -->
</script>
<table>
[% IF namedqueries.size > 0 %]
<tr>
<td>
<input type="radio" id="cmdtype-doit"
name="cmdtype" value="doit" checked="checked">
<label for="cmdtype-doit">Run this search</label>
</td>
<td> </td>
</tr>
[% END %]
<tr>
<td valign="top">
[% IF namedqueries.size > 0 %]
[% END %]
<input type="checkbox" id="remember" name="remember" value="1"
onclick="remCheckboxChanged()">
[% IF namedqueries.size > 0 %]
<label for="remember">and remember it</label>
[% ELSE %]
<label for="remember">Remember this search</label>
<input type="hidden" id="cmdtype-doit"
name="cmdtype" value="doit">
[% END %]
</td>
<td>
<input type="radio" id="remtype-asnamed"
name="remtype" value="asnamed" checked="checked"
onclick="remTypeChanged()">
<label for="remtype-asnamed">with this name:</label>
<input type="text" name="newqueryname"><br>
<input type="checkbox" id="tofooter" name="tofooter" value="1">
<label for="tofooter">and put it in my page footer</label><br>
<input type="radio" id="remtype-asdefault"
name="remtype" value="asdefault"
onclick="remTypeChanged()">
<label for="remtype-asdefault">
as my default options for this page
</label><br>
</td>
</tr>
<tr>
<td colspan="2">
[% IF namedqueries.size > 0 %]
<input type="radio" id="cmdtype-dorem" name="cmdtype" value="dorem">
<select name="remaction" onclick="selectDoRem()">
<option value="run">Run</option>
<option value="load">Load</option>
<option value="forget">Forget</option>
</select>
<label for="cmdtype-dorem">my remembered search:</label>
<select name="namedcmd" onclick="selectDoRem()">
[% FOREACH query = namedqueries %]
<option value="[% query FILTER html %]">
[% query FILTER html %]</option>
[% END %]
</select>
[% END %]
</td>
</tr>
</table>
<script type="text/javascript"> <!--
remCheckboxChanged();
// -->
</script>
[% END %]
<input type="hidden" name="cmdtype" value="doit">
<p>
Sort results by:
...
...
@@ -147,14 +42,24 @@
[% ordersdesc.$order FILTER html %]</option>
[% END %]
</select>
</p>
<p>
<input type="submit" value="[% button_name FILTER html %]">
</p>
[% IF userdefaultquery %]
<p>
<input type="checkbox" id="remasdefault"
name="remtype" value="asdefault">
<label for="remasdefault">
and remember these as my default search options
</label>
</p>
[% IF userdefaultquery %]
<p>
<a href="query.cgi?nukedefaultquery=1">
Set my default query back to the system default</a>.
</p>
[% END %]
</p>
[% END %]
userprefs.cgi
View file @
5f61a3d8
...
...
@@ -30,13 +30,6 @@ require "CGI.pl";
use
RelationSet
;
# Shut up misguided -w warnings about "used only once". "use vars" just
# doesn't work for me.
sub
sillyness
{
my
$zz
;
$zz
=
$::defaultqueryname
;
}
# Use global template variables.
use
vars
qw($template $vars $userid)
;
...
...
@@ -269,61 +262,6 @@ sub SaveEmail {
}
sub
DoFooter
{
SendSQL
(
"SELECT mybugslink FROM profiles "
.
"WHERE userid = $userid"
);
$vars
->
{
'mybugslink'
}
=
FetchSQLData
();
SendSQL
(
"SELECT name, linkinfooter FROM namedqueries "
.
"WHERE userid = $userid"
);
my
@queries
;
while
(
MoreSQLData
())
{
my
(
$name
,
$footer
)
=
(
FetchSQLData
());
next
if
(
$name
eq
$::defaultqueryname
);
push
(
@queries
,
{
name
=>
$name
,
footer
=>
$footer
});
}
$vars
->
{
'queries'
}
=
\
@queries
;
}
sub
SaveFooter
{
my
%
old
;
SendSQL
(
"SELECT name, linkinfooter FROM namedqueries "
.
"WHERE userid = $userid"
);
while
(
MoreSQLData
())
{
my
(
$name
,
$footer
)
=
(
FetchSQLData
());
$old
{
$name
}
=
$footer
;
}
for
(
my
$c
=
0
;
$c
<
$::FORM
{
'numqueries'
};
$c
++
)
{
my
$name
=
$::FORM
{
"name-$c"
};
if
(
exists
$old
{
$name
})
{
my
$new
=
$::FORM
{
"query-$c"
};
if
(
$new
ne
$old
{
$name
})
{
detaint_natural
(
$new
);
SendSQL
(
"UPDATE namedqueries SET linkinfooter = $new "
.
"WHERE userid = $userid "
.
"AND name = "
.
SqlQuote
(
$name
));
}
}
else
{
ThrowUserError
(
"missing_query"
,
{
queryname
=>
$name
});
}
}
SendSQL
(
"UPDATE profiles SET mybugslink = "
.
SqlQuote
(
$::FORM
{
'mybugslink'
})
.
" WHERE userid = $userid"
);
# Make sure that cached queries in the user object are invalidated
# so that the footer is correct
my
$user
=
Bugzilla
->
user
;
$user
->
flush_queries_cache
();
# Also need to update showmybugslink
$user
->
{
showmybugslink
}
=
$::FORM
{
'mybugslink'
}
?
1
:
0
;
}
sub
DoPermissions
{
my
(
@has_bits
,
@set_bits
);
...
...
@@ -385,11 +323,6 @@ SWITCH: for ($current_tab_name) {
DoEmail
();
last
SWITCH
;
};
/^footer$/
&&
do
{
SaveFooter
()
if
$::FORM
{
'dosave'
};
DoFooter
();
last
SWITCH
;
};
/^permissions$/
&&
do
{
DoPermissions
();
last
SWITCH
;
...
...
@@ -402,4 +335,3 @@ SWITCH: for ($current_tab_name) {
print
$cgi
->
header
();
$template
->
process
(
"account/prefs/prefs.html.tmpl"
,
$vars
)
||
ThrowTemplateError
(
$template
->
error
());
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