Bug 509045: Make "use_keywords" a global template variable instead of having to pass it to templates all the time
Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit git-svn-id: svn://10.0.0.236/trunk@258054 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -74,12 +74,6 @@ sub set_description { $_[0]->set('description', $_[1]); }
|
||||
#### Subroutines ######
|
||||
###############################
|
||||
|
||||
sub keyword_count {
|
||||
my ($count) =
|
||||
Bugzilla->dbh->selectrow_array('SELECT COUNT(*) FROM keyworddefs');
|
||||
return $count;
|
||||
}
|
||||
|
||||
sub get_all_with_bug_count {
|
||||
my $class = shift;
|
||||
my $dbh = Bugzilla->dbh;
|
||||
@@ -145,8 +139,6 @@ Bugzilla::Keyword - A Keyword that can be added to a bug.
|
||||
|
||||
use Bugzilla::Keyword;
|
||||
|
||||
my $count = Bugzilla::Keyword::keyword_count;
|
||||
|
||||
my $description = $keyword->description;
|
||||
|
||||
my $keywords = Bugzilla::Keyword->get_all_with_bug_count();
|
||||
@@ -166,14 +158,6 @@ implements.
|
||||
|
||||
=over
|
||||
|
||||
=item C<keyword_count()>
|
||||
|
||||
Description: A utility function to get the total number
|
||||
of keywords defined. Mostly used to see
|
||||
if there are any keywords defined at all.
|
||||
Params: none
|
||||
Returns: An integer, the count of keywords.
|
||||
|
||||
=item C<get_all_with_bug_count()>
|
||||
|
||||
Description: Returns all defined keywords. This is an efficient way
|
||||
|
||||
@@ -337,6 +337,15 @@ sub remove_from_db {
|
||||
#### Subroutines ######
|
||||
###############################
|
||||
|
||||
sub any_exist {
|
||||
my $class = shift;
|
||||
my $table = $class->DB_TABLE;
|
||||
my $dbh = Bugzilla->dbh;
|
||||
my $any_exist = $dbh->selectrow_array(
|
||||
"SELECT 1 FROM $table " . $dbh->sql_limit(1));
|
||||
return $any_exist ? 1 : 0;
|
||||
}
|
||||
|
||||
sub create {
|
||||
my ($class, $params) = @_;
|
||||
my $dbh = Bugzilla->dbh;
|
||||
@@ -882,6 +891,11 @@ Returns C<1> if the passed-in value is true, C<0> otherwise.
|
||||
|
||||
=over
|
||||
|
||||
=item C<any_exist>
|
||||
|
||||
Returns C<1> if there are any of these objects in the database,
|
||||
C<0> otherwise.
|
||||
|
||||
=item C<get_all>
|
||||
|
||||
Description: Returns all objects in this table from the database.
|
||||
|
||||
@@ -37,7 +37,9 @@ use strict;
|
||||
use Bugzilla::Bug;
|
||||
use Bugzilla::Constants;
|
||||
use Bugzilla::Install::Requirements;
|
||||
use Bugzilla::Install::Util qw(install_string template_include_path include_languages);
|
||||
use Bugzilla::Install::Util qw(install_string template_include_path
|
||||
include_languages);
|
||||
use Bugzilla::Keyword;
|
||||
use Bugzilla::Util;
|
||||
use Bugzilla::User;
|
||||
use Bugzilla::Error;
|
||||
@@ -752,6 +754,10 @@ sub create {
|
||||
return $cache->{template_bug_fields};
|
||||
},
|
||||
|
||||
# Whether or not keywords are enabled, in this Bugzilla.
|
||||
'use_keywords' => sub { return Bugzilla::Keyword->any_exist; },
|
||||
|
||||
|
||||
# These don't work as normal constants.
|
||||
DB_MODULE => \&Bugzilla::Constants::DB_MODULE,
|
||||
REQUIRED_MODULES =>
|
||||
|
||||
@@ -523,7 +523,6 @@ sub insert {
|
||||
$vars->{'bugs'} = [new Bugzilla::Bug($bugid)];
|
||||
$vars->{'header_done'} = 1;
|
||||
$vars->{'contenttypemethod'} = $cgi->param('contenttypemethod');
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
print $cgi->header();
|
||||
# Generate and return the UI (HTML page) from the appropriate template.
|
||||
@@ -644,7 +643,6 @@ sub update {
|
||||
$vars->{'attachment'} = $attachment;
|
||||
$vars->{'bugs'} = [$bug];
|
||||
$vars->{'header_done'} = 1;
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
print $cgi->header();
|
||||
|
||||
@@ -716,7 +714,6 @@ sub delete_attachment {
|
||||
# Required to display the bug the deleted attachment belongs to.
|
||||
$vars->{'bugs'} = [$bug];
|
||||
$vars->{'header_done'} = 1;
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
$template->process("attachment/updated.html.tmpl", $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
|
||||
@@ -1139,7 +1139,6 @@ if ($dotweak && scalar @bugs) {
|
||||
object => 'multiple_bugs'});
|
||||
}
|
||||
$vars->{'dotweak'} = 1;
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
# issue_session_token needs to write to the master DB.
|
||||
Bugzilla->switch_to_main_db();
|
||||
|
||||
@@ -71,7 +71,7 @@ if (Bugzilla->params->{"useqacontact"}) {
|
||||
if (Bugzilla->params->{"usestatuswhiteboard"}) {
|
||||
push(@masterlist, "status_whiteboard");
|
||||
}
|
||||
if (Bugzilla::Keyword::keyword_count()) {
|
||||
if (Bugzilla::Keyword->any_exist) {
|
||||
push(@masterlist, "keywords");
|
||||
}
|
||||
|
||||
|
||||
@@ -380,8 +380,6 @@ $vars->{'bug_severity'} = get_legal_field_values('bug_severity');
|
||||
$vars->{'rep_platform'} = get_legal_field_values('rep_platform');
|
||||
$vars->{'op_sys'} = get_legal_field_values('op_sys');
|
||||
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
$vars->{'assigned_to'} = formvalue('assigned_to');
|
||||
$vars->{'assigned_to_disabled'} = !$has_editbugs;
|
||||
$vars->{'cc_disabled'} = 0;
|
||||
|
||||
@@ -279,7 +279,6 @@ if ($cgi->cookie("BUGLIST")) {
|
||||
@bug_list = split(/:/, $cgi->cookie("BUGLIST"));
|
||||
}
|
||||
$vars->{'bug_list'} = \@bug_list;
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
if ($token) {
|
||||
trick_taint($token);
|
||||
|
||||
@@ -69,7 +69,6 @@ my $cgi = Bugzilla->cgi;
|
||||
my $dbh = Bugzilla->dbh;
|
||||
my $template = Bugzilla->template;
|
||||
my $vars = {};
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
######################################################################
|
||||
# Subroutines
|
||||
|
||||
@@ -230,8 +230,6 @@ if (Bugzilla->params->{'usetargetmilestone'}) {
|
||||
$vars->{'target_milestone'} = \@milestones;
|
||||
}
|
||||
|
||||
$vars->{'have_keywords'} = Bugzilla::Keyword::keyword_count();
|
||||
|
||||
my @chfields;
|
||||
|
||||
push @chfields, "[Bug creation]";
|
||||
|
||||
@@ -99,7 +99,6 @@ eval {
|
||||
|
||||
$vars->{'bugs'} = \@bugs;
|
||||
$vars->{'marks'} = \%marks;
|
||||
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
|
||||
|
||||
my @bugids = map {$_->bug_id} grep {!$_->error} @bugs;
|
||||
$vars->{'bugids'} = join(", ", @bugids);
|
||||
|
||||
@@ -285,7 +285,7 @@ function doOnSelectProduct(selectmode) {
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
[% IF have_keywords %]
|
||||
[% IF use_keywords %]
|
||||
<tr>
|
||||
<th align="right">
|
||||
<label for="keywords" accesskey="k"><a href="describekeywords.cgi"><u>K</u>eywords</a></label>:
|
||||
|
||||
Reference in New Issue
Block a user