From 4b5d2d61669c35919345dc27e0ed3831ada92f24 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Wed, 11 Sep 2013 14:25:33 +0800 Subject: Bug 909843: trackingflags do not support "Can be set on bug creation" --- extensions/TrackingFlags/Extension.pm | 6 ++++++ extensions/TrackingFlags/lib/Admin.pm | 5 +++++ extensions/TrackingFlags/lib/Flag.pm | 8 ++++++-- .../template/en/default/pages/tracking_flags_admin_edit.html.tmpl | 6 ++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/extensions/TrackingFlags/Extension.pm b/extensions/TrackingFlags/Extension.pm index 6172f0ffc..b79faef61 100644 --- a/extensions/TrackingFlags/Extension.pm +++ b/extensions/TrackingFlags/Extension.pm @@ -59,6 +59,7 @@ sub template_before_process { { $vars->{'tracking_flags'} = Bugzilla::Extension::TrackingFlags::Flag->match({ product => $vars->{'product'}->name, + enter_bug => 1, is_active => 1, }); @@ -122,6 +123,11 @@ sub db_schema_abstract_schema { NOTNULL => 1, DEFAULT => '0', }, + enter_bug => { + TYPE => 'BOOLEAN', + NOTNULL => 1, + DEFAULT => 'TRUE', + }, is_active => { TYPE => 'BOOLEAN', NOTNULL => 1, diff --git a/extensions/TrackingFlags/lib/Admin.pm b/extensions/TrackingFlags/lib/Admin.pm index 719b4f248..5af593f08 100644 --- a/extensions/TrackingFlags/lib/Admin.pm +++ b/extensions/TrackingFlags/lib/Admin.pm @@ -109,6 +109,7 @@ sub admin_edit { } $flag->set_sortkey(_next_unique_sortkey($flag->sortkey)); $flag->set_type($flag->flag_type); + $flag->set_enter_bug($flag->enter_bug); # always default new flags as active, even when copying an inactive one $flag->set_is_active(1); @@ -121,6 +122,7 @@ sub admin_edit { $vars->{mode} = 'new'; $vars->{flag} = { sortkey => 0, + enter_bug => 1, is_active => 1, }; $vars->{values} = _flag_values_to_json([ @@ -148,10 +150,12 @@ sub _load_from_input { description => trim($input->{flag_desc} || ''), sortkey => $input->{flag_sort} || 0, type => trim($input->{flag_type} || ''), + enter_bug => $input->{flag_enter_bug} ? 1 : 0, is_active => $input->{flag_active} ? 1 : 0, }; detaint_natural($flag->{id}); detaint_natural($flag->{sortkey}); + detaint_natural($flag->{enter_bug}); detaint_natural($flag->{is_active}); # values @@ -288,6 +292,7 @@ sub _update_db_flag { description => $flag->{description}, sortkey => $flag->{sortkey}, type => $flag->{type}, + enter_bug => $flag->{enter_bug}, is_active => $flag->{is_active}, }; diff --git a/extensions/TrackingFlags/lib/Flag.pm b/extensions/TrackingFlags/lib/Flag.pm index 9be416978..f7eb674ee 100644 --- a/extensions/TrackingFlags/lib/Flag.pm +++ b/extensions/TrackingFlags/lib/Flag.pm @@ -35,6 +35,7 @@ use constant DB_COLUMNS => qw( description type sortkey + enter_bug is_active ); @@ -45,6 +46,7 @@ use constant UPDATE_COLUMNS => qw( description type sortkey + enter_bug is_active ); @@ -53,8 +55,8 @@ use constant VALIDATORS => { description => \&_check_description, type => \&_check_type, sortkey => \&_check_sortkey, + enter_bug => \&Bugzilla::Object::check_boolean, is_active => \&Bugzilla::Object::check_boolean, - }; use constant UPDATE_VALIDATORS => { @@ -62,6 +64,7 @@ use constant UPDATE_VALIDATORS => { description => \&_check_description, type => \&_check_type, sortkey => \&_check_sortkey, + enter_bug => \&Bugzilla::Object::check_boolean, is_active => \&Bugzilla::Object::check_boolean, }; @@ -332,6 +335,7 @@ sub set_name { $_[0]->set('name', $_[1]); } sub set_description { $_[0]->set('description', $_[1]); } sub set_type { $_[0]->set('type', $_[1]); } sub set_sortkey { $_[0]->set('sortkey', $_[1]); } +sub set_enter_bug { $_[0]->set('enter_bug', $_[1]); } sub set_is_active { $_[0]->set('is_active', $_[1]); } ############################### @@ -343,6 +347,7 @@ sub name { return $_[0]->{'name'}; } sub description { return $_[0]->{'description'}; } sub flag_type { return $_[0]->{'type'}; } sub sortkey { return $_[0]->{'sortkey'}; } +sub enter_bug { return $_[0]->{'enter_bug'}; } sub is_active { return $_[0]->{'is_active'}; } sub values { @@ -425,7 +430,6 @@ sub legal_values { return $_[0]->values; } sub custom { return 1; } sub in_new_bugmail { return 1; } sub obsolete { return $_[0]->is_active ? 1 : 0; } -sub enter_bug { return 1; } sub buglist { return 1; } sub is_select { return 1; } sub is_abnormal { return 1; } diff --git a/extensions/TrackingFlags/template/en/default/pages/tracking_flags_admin_edit.html.tmpl b/extensions/TrackingFlags/template/en/default/pages/tracking_flags_admin_edit.html.tmpl index 85915dbde..17b64d41e 100644 --- a/extensions/TrackingFlags/template/en/default/pages/tracking_flags_admin_edit.html.tmpl +++ b/extensions/TrackingFlags/template/en/default/pages/tracking_flags_admin_edit.html.tmpl @@ -97,6 +97,12 @@ var selected_components = [ + + Enter [% terms.Bug %] + + can be set on [% terms.bug %] creation + + Active -- cgit v1.2.3-24-g4f1b