summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Component.pm25
-rw-r--r--Bugzilla/Migrate.pm6
-rw-r--r--Bugzilla/Milestone.pm25
-rw-r--r--Bugzilla/Product.pm4
-rw-r--r--Bugzilla/Version.pm19
-rwxr-xr-xeditmilestones.cgi2
-rwxr-xr-xeditversions.cgi2
7 files changed, 38 insertions, 45 deletions
diff --git a/Bugzilla/Component.pm b/Bugzilla/Component.pm
index 5fb911031..a1f5144e5 100644
--- a/Bugzilla/Component.pm
+++ b/Bugzilla/Component.pm
@@ -28,6 +28,8 @@ use Bugzilla::User;
use Bugzilla::FlagType;
use Bugzilla::Series;
+use Scalar::Util qw(blessed);
+
###############################
#### Initialization ####
###############################
@@ -66,10 +68,11 @@ use constant VALIDATORS => {
initialqacontact => \&_check_initialqacontact,
description => \&_check_description,
initial_cc => \&_check_cc_list,
+ name => \&_check_name,
};
-use constant UPDATE_VALIDATORS => {
- name => \&_check_name,
+use constant VALIDATOR_DEPENDENCIES => {
+ name => ['product'],
};
###############################
@@ -116,8 +119,11 @@ sub create {
my $params = $class->run_create_validators(@_);
my $cc_list = delete $params->{initial_cc};
my $create_series = delete $params->{create_series};
+ my $product = delete $params->{product};
+ $params->{product_id} = $product->id;
my $component = $class->insert_create_data($params);
+ $component->{product} = $product;
# We still have to fill the component_cc table.
$component->_update_cc_list($cc_list) if $cc_list;
@@ -129,17 +135,6 @@ sub create {
return $component;
}
-sub run_create_validators {
- my $class = shift;
- my $params = $class->SUPER::run_create_validators(@_);
-
- my $product = delete $params->{product};
- $params->{product_id} = $product->id;
- $params->{name} = $class->_check_name($params->{name}, $product);
-
- return $params;
-}
-
sub update {
my $self = shift;
my $changes = $self->SUPER::update(@_);
@@ -190,7 +185,8 @@ sub remove_from_db {
################################
sub _check_name {
- my ($invocant, $name, $product) = @_;
+ my ($invocant, $name, undef, $params) = @_;
+ my $product = blessed($invocant) ? $invocant->product : $params->{product};
$name = trim($name);
$name || ThrowUserError('component_blank_name');
@@ -199,7 +195,6 @@ sub _check_name {
ThrowUserError('component_name_too_long', {'name' => $name});
}
- $product = $invocant->product if (ref $invocant);
my $component = new Bugzilla::Component({product => $product, name => $name});
if ($component && (!ref $invocant || $component->id != $invocant->id)) {
ThrowUserError('component_already_exists', { name => $component->name,
diff --git a/Bugzilla/Migrate.pm b/Bugzilla/Migrate.pm
index 6c353357d..2ae638e4f 100644
--- a/Bugzilla/Migrate.pm
+++ b/Bugzilla/Migrate.pm
@@ -654,7 +654,7 @@ sub create_legal_values {
next if new Bugzilla::Version({ product => $prod_obj,
name => $version });
my $created = Bugzilla::Version->create({ product => $prod_obj,
- name => $version });
+ value => $version });
my $field = $self->bug_fields->{version};
print get_text('migrate_value_created', { product => $prod_obj,
field => $field,
@@ -663,8 +663,8 @@ sub create_legal_values {
foreach my $milestone (keys %{ $product_values{$product}->{target_milestone} }) {
next if new Bugzilla::Milestone({ product => $prod_obj,
name => $milestone });
- my $created = Bugzilla::Milestone->create({ product => $prod_obj,
- name => $milestone });
+ my $created = Bugzilla::Milestone->create(
+ { product => $prod_obj, value => $milestone });
my $field = $self->bug_fields->{target_milestone};
print get_text('migrate_value_created', { product => $prod_obj,
field => $field,
diff --git a/Bugzilla/Milestone.pm b/Bugzilla/Milestone.pm
index fc44cf1af..fafd14ad0 100644
--- a/Bugzilla/Milestone.pm
+++ b/Bugzilla/Milestone.pm
@@ -26,6 +26,8 @@ use Bugzilla::Constants;
use Bugzilla::Util;
use Bugzilla::Error;
+use Scalar::Util qw(blessed);
+
################################
##### Initialization #####
################################
@@ -44,7 +46,7 @@ use constant DB_COLUMNS => qw(
);
use constant REQUIRED_CREATE_FIELDS => qw(
- name
+ value
product
);
@@ -56,10 +58,11 @@ use constant UPDATE_COLUMNS => qw(
use constant VALIDATORS => {
product => \&_check_product,
sortkey => \&_check_sortkey,
+ value => \&_check_value,
};
-use constant UPDATE_VALIDATORS => {
- value => \&_check_value,
+use constant VALIDATOR_DEPENDENCIES => {
+ value => ['product'],
};
################################
@@ -94,14 +97,10 @@ sub new {
}
sub run_create_validators {
- my $class = shift;
+ my $class = shift;
my $params = $class->SUPER::run_create_validators(@_);
-
my $product = delete $params->{product};
$params->{product_id} = $product->id;
- $params->{value} = $class->_check_value($params->{name}, $product);
- delete $params->{name};
-
return $params;
}
@@ -165,7 +164,8 @@ sub remove_from_db {
################################
sub _check_value {
- my ($invocant, $name, $product) = @_;
+ my ($invocant, $name, undef, $params) = @_;
+ my $product = blessed($invocant) ? $invocant->product : $params->{product};
$name = trim($name);
$name || ThrowUserError('milestone_blank_name');
@@ -173,7 +173,6 @@ sub _check_value {
ThrowUserError('milestone_name_too_long', {name => $name});
}
- $product = $invocant->product if (ref $invocant);
my $milestone = new Bugzilla::Milestone({product => $product, name => $name});
if ($milestone && (!ref $invocant || $milestone->id != $invocant->id)) {
ThrowUserError('milestone_already_exists', { name => $milestone->name,
@@ -255,7 +254,7 @@ Bugzilla::Milestone - Bugzilla product milestone class.
my $sortkey = $milestone->sortkey;
my $milestone = Bugzilla::Milestone->create(
- { name => $name, product => $product, sortkey => $sortkey });
+ { value => $name, product => $product, sortkey => $sortkey });
$milestone->set_name($new_name);
$milestone->set_sortkey($new_sortkey);
@@ -361,11 +360,11 @@ Milestone.pm represents a Product Milestone object.
=over
-=item C<create({name => $name, product => $product, sortkey => $sortkey})>
+=item C<create({value => $value, product => $product, sortkey => $sortkey})>
Description: Create a new milestone for the given product.
- Params: $name - name of the new milestone (string). This name
+ Params: $value - name of the new milestone (string). This name
must be unique within the product.
$product - a Bugzilla::Product object.
$sortkey - the sortkey of the new milestone (signed integer)
diff --git a/Bugzilla/Product.pm b/Bugzilla/Product.pm
index 9416d3eef..4426dda38 100644
--- a/Bugzilla/Product.pm
+++ b/Bugzilla/Product.pm
@@ -101,8 +101,8 @@ sub create {
Bugzilla->user->clear_product_cache();
# Add the new version and milestone into the DB as valid values.
- Bugzilla::Version->create({name => $version, product => $product});
- Bugzilla::Milestone->create({ name => $product->default_milestone,
+ Bugzilla::Version->create({ value => $version, product => $product });
+ Bugzilla::Milestone->create({ value => $product->default_milestone,
product => $product });
# Create groups and series for the new product, if requested.
diff --git a/Bugzilla/Version.pm b/Bugzilla/Version.pm
index 1c96003f1..e40a022c4 100644
--- a/Bugzilla/Version.pm
+++ b/Bugzilla/Version.pm
@@ -26,6 +26,8 @@ use Bugzilla::Install::Util qw(vers_cmp);
use Bugzilla::Util;
use Bugzilla::Error;
+use Scalar::Util qw(blessed);
+
################################
##### Initialization #####
################################
@@ -45,7 +47,7 @@ use constant DB_COLUMNS => qw(
);
use constant REQUIRED_CREATE_FIELDS => qw(
- name
+ value
product
);
@@ -55,10 +57,11 @@ use constant UPDATE_COLUMNS => qw(
use constant VALIDATORS => {
product => \&_check_product,
+ value => \&_check_value,
};
-use constant UPDATE_VALIDATORS => {
- value => \&_check_value,
+use constant VALIDATOR_DEPENDENCIES => {
+ value => ['product'],
};
################################
@@ -103,12 +106,8 @@ sub new_from_list {
sub run_create_validators {
my $class = shift;
my $params = $class->SUPER::run_create_validators(@_);
-
my $product = delete $params->{product};
$params->{product_id} = $product->id;
- $params->{value} = $class->_check_value($params->{name}, $product);
- delete $params->{name};
-
return $params;
}
@@ -171,14 +170,14 @@ sub product {
sub set_name { $_[0]->set('value', $_[1]); }
sub _check_value {
- my ($invocant, $name, $product) = @_;
+ my ($invocant, $name, undef, $params) = @_;
+ my $product = blessed($invocant) ? $invocant->product : $params->{product};
$name = trim($name);
$name || ThrowUserError('version_blank_name');
# Remove unprintable characters
$name = clean_text($name);
- $product = $invocant->product if (ref $invocant);
my $version = new Bugzilla::Version({ product => $product, name => $name });
if ($version && (!ref $invocant || $version->id != $invocant->id)) {
ThrowUserError('version_already_exists', { name => $version->name,
@@ -211,7 +210,7 @@ Bugzilla::Version - Bugzilla product version class.
my $product = $version->product;
my $version = Bugzilla::Version->create(
- { name => $name, product => $product });
+ { value => $name, product => $product });
$version->set_name($new_name);
$version->update();
diff --git a/editmilestones.cgi b/editmilestones.cgi
index a5f0c3d63..ff13b6114 100755
--- a/editmilestones.cgi
+++ b/editmilestones.cgi
@@ -115,7 +115,7 @@ if ($action eq 'add') {
if ($action eq 'new') {
check_token_data($token, 'add_milestone');
- my $milestone = Bugzilla::Milestone->create({ name => $milestone_name,
+ my $milestone = Bugzilla::Milestone->create({ value => $milestone_name,
product => $product,
sortkey => $sortkey });
delete_token($token);
diff --git a/editversions.cgi b/editversions.cgi
index 7e6b9247d..b4cf9febc 100755
--- a/editversions.cgi
+++ b/editversions.cgi
@@ -120,7 +120,7 @@ if ($action eq 'add') {
if ($action eq 'new') {
check_token_data($token, 'add_version');
my $version = Bugzilla::Version->create(
- {name => $version_name, product => $product});
+ { value => $version_name, product => $product });
delete_token($token);
$vars->{'message'} = 'version_created';