From 9fd592efb1b68ed9c4aa1d47151cb8f32d88885f Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Fri, 25 Aug 2006 04:41:20 +0000 Subject: Bug 345958: Do not throw an error if an inactive flag type is set to "X" while editing a bug - Patch by Frédéric Buclin a=myk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Flag.pm | 16 +++++----------- template/en/default/global/code-error.html.tmpl | 5 +++-- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 7888640f9..de90170a3 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -264,17 +264,6 @@ sub validate { # because the bug may be moved into another product meanwhile. # This check will be done later when creating new flags, see FormToNewFlags(). - # All new flags must belong to active flag types. - if (scalar(@flagtype_ids)) { - my $inactive_flagtypes = - $dbh->selectrow_array('SELECT 1 FROM flagtypes - WHERE id IN (' . join(',', @flagtype_ids) . ') - AND is_active = 0 ' . - $dbh->sql_limit(1)); - - ThrowCodeError('flag_type_inactive') if $inactive_flagtypes; - } - if (scalar(@flag_ids)) { # No reference to existing flags should exist when creating a new # attachment. @@ -315,6 +304,11 @@ sub validate { my $flag_type = new Bugzilla::FlagType($id); $flag_type || ThrowCodeError('flag_type_nonexistent', { id => $id }); + # Make sure the flag type is active. + unless ($flag_type->is_active) { + ThrowCodeError('flag_type_inactive', {'type' => $flag_type->name}); + } + _validate(undef, $flag_type, $status, \@requestees, $private_attachment, $bug_id, $attach_id); } diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 0a9bcc867..d5c5766b0 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -223,8 +223,9 @@ is invalid. [% ELSIF error == "flag_type_inactive" %] - [% title = "Inactive Flag Types" %] - Some flag types are inactive and cannot be used to create new flags. + [% title = "Inactive Flag Type" %] + The flag type [% type FILTER html %] is inactive and cannot be used + to create new flags. [% ELSIF error == "flag_type_nonexistent" %] There is no flag type with the ID [% id FILTER html %]. -- cgit v1.2.3-24-g4f1b