summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Component.pm6
-rw-r--r--Bugzilla/DB/Schema.pm6
-rw-r--r--Bugzilla/Install/DB.pm23
-rw-r--r--Bugzilla/Milestone.pm15
-rw-r--r--Bugzilla/Version.pm11
5 files changed, 52 insertions, 9 deletions
diff --git a/Bugzilla/Component.pm b/Bugzilla/Component.pm
index e5eb78a2d..2a176f5dc 100644
--- a/Bugzilla/Component.pm
+++ b/Bugzilla/Component.pm
@@ -45,6 +45,7 @@ use constant DB_COLUMNS => qw(
initialowner
initialqacontact
description
+ isactive
);
use constant UPDATE_COLUMNS => qw(
@@ -52,6 +53,7 @@ use constant UPDATE_COLUMNS => qw(
initialowner
initialqacontact
description
+ isactive
);
use constant REQUIRED_FIELD_MAP => {
@@ -66,6 +68,7 @@ use constant VALIDATORS => {
description => \&_check_description,
initial_cc => \&_check_cc_list,
name => \&_check_name,
+ isactive => \&Bugzilla::Object::check_boolean,
};
use constant VALIDATOR_DEPENDENCIES => {
@@ -300,6 +303,7 @@ sub _create_series {
sub set_name { $_[0]->set('name', $_[1]); }
sub set_description { $_[0]->set('description', $_[1]); }
+sub set_is_active { $_[0]->set('isactive', $_[1]); }
sub set_default_assignee {
my ($self, $owner) = @_;
@@ -416,6 +420,7 @@ sub product {
sub description { return $_[0]->{'description'}; }
sub product_id { return $_[0]->{'product_id'}; }
+sub is_active { return $_[0]->{'isactive'}; }
##############################################
# Implement Bugzilla::Field::ChoiceInterface #
@@ -423,7 +428,6 @@ sub product_id { return $_[0]->{'product_id'}; }
use constant FIELD_NAME => 'component';
use constant is_default => 0;
-use constant is_active => 1;
sub is_set_on_bug {
my ($self, $bug) = @_;
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index 2efdbefc4..356480e3b 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -718,6 +718,8 @@ use constant ABSTRACT_SCHEMA => {
REFERENCES => {TABLE => 'products',
COLUMN => 'id',
DELETE => 'CASCADE'}},
+ isactive => {TYPE => 'BOOLEAN', NOTNULL => 1,
+ DEFAULT => 'TRUE'},
],
INDEXES => [
versions_product_id_idx => {FIELDS => [qw(product_id value)],
@@ -736,6 +738,8 @@ use constant ABSTRACT_SCHEMA => {
value => {TYPE => 'varchar(20)', NOTNULL => 1},
sortkey => {TYPE => 'INT2', NOTNULL => 1,
DEFAULT => 0},
+ isactive => {TYPE => 'BOOLEAN', NOTNULL => 1,
+ DEFAULT => 'TRUE'},
],
INDEXES => [
milestones_product_id_idx => {FIELDS => [qw(product_id value)],
@@ -1264,6 +1268,8 @@ use constant ABSTRACT_SCHEMA => {
COLUMN => 'userid',
DELETE => 'SET NULL'}},
description => {TYPE => 'MEDIUMTEXT', NOTNULL => 1},
+ isactive => {TYPE => 'BOOLEAN', NOTNULL => 1,
+ DEFAULT => 'TRUE'},
],
INDEXES => [
components_product_id_idx => {FIELDS => [qw(product_id name)],
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index 21739fab9..df4ea737e 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -631,6 +631,9 @@ sub update_table_definitions {
# 2010-07-18 LpSolit@gmail.com - Bug 119703
_remove_attachment_isurl();
+ # 2009-05-07 ghendricks@novell.com - Bug 77193
+ _add_isactive_to_product_fields();
+
################################################################
# New --TABLE-- changes should go *** A B O V E *** this point #
################################################################
@@ -3397,6 +3400,26 @@ sub _remove_attachment_isurl {
}
}
+sub _add_isactive_to_product_fields {
+ my $dbh = Bugzilla->dbh;
+
+ # If we add the isactive column all values should start off as active
+ if (!$dbh->bz_column_info('components', 'isactive')) {
+ $dbh->bz_add_column('components', 'isactive',
+ {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'});
+ }
+
+ if (!$dbh->bz_column_info('versions', 'isactive')) {
+ $dbh->bz_add_column('versions', 'isactive',
+ {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'});
+ }
+
+ if (!$dbh->bz_column_info('milestones', 'isactive')) {
+ $dbh->bz_add_column('milestones', 'isactive',
+ {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'TRUE'});
+ }
+}
+
sub _migrate_field_visibility_value {
my $dbh = Bugzilla->dbh;
diff --git a/Bugzilla/Milestone.pm b/Bugzilla/Milestone.pm
index cb7d53da3..92bc2192a 100644
--- a/Bugzilla/Milestone.pm
+++ b/Bugzilla/Milestone.pm
@@ -43,6 +43,7 @@ use constant DB_COLUMNS => qw(
value
product_id
sortkey
+ isactive
);
use constant REQUIRED_FIELD_MAP => {
@@ -52,12 +53,14 @@ use constant REQUIRED_FIELD_MAP => {
use constant UPDATE_COLUMNS => qw(
value
sortkey
+ isactive
);
use constant VALIDATORS => {
- product => \&_check_product,
- sortkey => \&_check_sortkey,
- value => \&_check_value,
+ product => \&_check_product,
+ sortkey => \&_check_sortkey,
+ value => \&_check_value,
+ isactive => \&Bugzilla::Object::check_boolean,
};
use constant VALIDATOR_DEPENDENCIES => {
@@ -203,8 +206,9 @@ sub _check_product {
# Methods
################################
-sub set_name { $_[0]->set('value', $_[1]); }
-sub set_sortkey { $_[0]->set('sortkey', $_[1]); }
+sub set_name { $_[0]->set('value', $_[1]); }
+sub set_sortkey { $_[0]->set('sortkey', $_[1]); }
+sub set_is_active { $_[0]->set('isactive', $_[1]); }
sub bug_count {
my $self = shift;
@@ -226,6 +230,7 @@ sub bug_count {
sub name { return $_[0]->{'value'}; }
sub product_id { return $_[0]->{'product_id'}; }
sub sortkey { return $_[0]->{'sortkey'}; }
+sub is_active { return $_[0]->{'isactive'}; }
sub product {
my $self = shift;
diff --git a/Bugzilla/Version.pm b/Bugzilla/Version.pm
index 4270b1e5f..7f53add13 100644
--- a/Bugzilla/Version.pm
+++ b/Bugzilla/Version.pm
@@ -44,6 +44,7 @@ use constant DB_COLUMNS => qw(
id
value
product_id
+ isactive
);
use constant REQUIRED_FIELD_MAP => {
@@ -52,11 +53,13 @@ use constant REQUIRED_FIELD_MAP => {
use constant UPDATE_COLUMNS => qw(
value
+ isactive
);
use constant VALIDATORS => {
- product => \&_check_product,
- value => \&_check_value,
+ product => \&_check_product,
+ value => \&_check_value,
+ isactive => \&Bugzilla::Object::check_boolean,
};
use constant VALIDATOR_DEPENDENCIES => {
@@ -153,6 +156,7 @@ sub remove_from_db {
###############################
sub product_id { return $_[0]->{'product_id'}; }
+sub is_active { return $_[0]->{'isactive'}; }
sub product {
my $self = shift;
@@ -166,7 +170,8 @@ sub product {
# Validators
################################
-sub set_name { $_[0]->set('value', $_[1]); }
+sub set_name { $_[0]->set('value', $_[1]); }
+sub set_is_active { $_[0]->set('isactive', $_[1]); }
sub _check_value {
my ($invocant, $name, undef, $params) = @_;