summaryrefslogtreecommitdiffstats
path: root/extensions/RequestNagger/lib
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/RequestNagger/lib')
-rw-r--r--extensions/RequestNagger/lib/Bug.pm34
-rw-r--r--extensions/RequestNagger/lib/Constants.pm69
-rw-r--r--extensions/RequestNagger/lib/Settings.pm75
3 files changed, 86 insertions, 92 deletions
diff --git a/extensions/RequestNagger/lib/Bug.pm b/extensions/RequestNagger/lib/Bug.pm
index 974a688ea..dc510d486 100644
--- a/extensions/RequestNagger/lib/Bug.pm
+++ b/extensions/RequestNagger/lib/Bug.pm
@@ -17,29 +17,29 @@ use feature 'state';
use Bugzilla::User;
sub short_desc {
- my ($self) = @_;
- return $self->{sanitise_bug} ? '(Secure bug)' : $self->SUPER::short_desc;
+ my ($self) = @_;
+ return $self->{sanitise_bug} ? '(Secure bug)' : $self->SUPER::short_desc;
}
sub is_private {
- my ($self) = @_;
- if (!exists $self->{is_private}) {
- state $default_user //= Bugzilla::User->new();
- $self->{is_private} = !$default_user->can_see_bug($self);
- }
- return $self->{is_private};
+ my ($self) = @_;
+ if (!exists $self->{is_private}) {
+ state $default_user //= Bugzilla::User->new();
+ $self->{is_private} = !$default_user->can_see_bug($self);
+ }
+ return $self->{is_private};
}
sub tooltip {
- my ($self) = @_;
- my $tooltip = $self->bug_status;
- if ($self->bug_status eq 'RESOLVED') {
- $tooltip .= '/' . $self->resolution;
- }
- if (!$self->{sanitise_bug}) {
- $tooltip .= ' ' . $self->product . ' :: ' . $self->component;
- }
- return $tooltip;
+ my ($self) = @_;
+ my $tooltip = $self->bug_status;
+ if ($self->bug_status eq 'RESOLVED') {
+ $tooltip .= '/' . $self->resolution;
+ }
+ if (!$self->{sanitise_bug}) {
+ $tooltip .= ' ' . $self->product . ' :: ' . $self->component;
+ }
+ return $tooltip;
}
1;
diff --git a/extensions/RequestNagger/lib/Constants.pm b/extensions/RequestNagger/lib/Constants.pm
index bc6cf3371..1309e06c9 100644
--- a/extensions/RequestNagger/lib/Constants.pm
+++ b/extensions/RequestNagger/lib/Constants.pm
@@ -14,13 +14,13 @@ use warnings;
use base qw(Exporter);
our @EXPORT = qw(
- MAX_SETTER_COUNT
- MAX_REQUEST_AGE
- FLAG_TYPES
- REQUESTEE_NAG_SQL
- SETTER_NAG_SQL
- WATCHING_REQUESTEE_NAG_SQL
- WATCHING_SETTER_NAG_SQL
+ MAX_SETTER_COUNT
+ MAX_REQUEST_AGE
+ FLAG_TYPES
+ REQUESTEE_NAG_SQL
+ SETTER_NAG_SQL
+ WATCHING_REQUESTEE_NAG_SQL
+ WATCHING_SETTER_NAG_SQL
);
# if there are more than this many requests that a user is waiting on, show a
@@ -29,33 +29,24 @@ use constant MAX_SETTER_COUNT => 7;
# ignore any request older than this many days in the requestee emails
# massively overdue requests will still be included in the 'watching' emails
-use constant MAX_REQUEST_AGE => 90; # about three months
+use constant MAX_REQUEST_AGE => 90; # about three months
# the order of this array determines the order used in email
use constant FLAG_TYPES => (
- {
- type => 'review', # flag_type.name
- group => 'everyone', # the user must be a member of this group to receive reminders
- },
- {
- type => 'superview',
- group => 'everyone',
- },
- {
- type => 'feedback',
- group => 'everyone',
- },
- {
- type => 'needinfo',
- group => 'editbugs',
- },
+ {
+ type => 'review', # flag_type.name
+ group => 'everyone', # the user must be a member of this group to receive reminders
+ },
+ {type => 'superview', group => 'everyone',},
+ {type => 'feedback', group => 'everyone',},
+ {type => 'needinfo', group => 'editbugs',},
);
sub REQUESTEE_NAG_SQL {
- my $dbh = Bugzilla->dbh;
- my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
+ my $dbh = Bugzilla->dbh;
+ my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
- return "
+ return "
SELECT
flagtypes.name AS flag_type,
flags.id AS flag_id,
@@ -84,7 +75,8 @@ sub REQUESTEE_NAG_SQL {
AND flags.status = '?'
AND products.nag_interval != 0
AND TIMESTAMPDIFF(HOUR, flags.modification_date, CURRENT_DATE()) >= products.nag_interval
- AND TIMESTAMPDIFF(DAY, flags.modification_date, CURRENT_DATE()) <= " . MAX_REQUEST_AGE . "
+ AND TIMESTAMPDIFF(DAY, flags.modification_date, CURRENT_DATE()) <= "
+ . MAX_REQUEST_AGE . "
AND (profile_setting.setting_value IS NULL OR profile_setting.setting_value = 'on')
AND requestee.disable_mail = 0
AND nag_defer.id IS NULL
@@ -96,10 +88,10 @@ sub REQUESTEE_NAG_SQL {
}
sub SETTER_NAG_SQL {
- my $dbh = Bugzilla->dbh;
- my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
+ my $dbh = Bugzilla->dbh;
+ my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
- return "
+ return "
SELECT
flagtypes.name AS flag_type,
flags.id AS flag_id,
@@ -128,7 +120,8 @@ sub SETTER_NAG_SQL {
AND flags.status = '?'
AND products.nag_interval != 0
AND TIMESTAMPDIFF(HOUR, flags.modification_date, CURRENT_DATE()) >= products.nag_interval
- AND TIMESTAMPDIFF(DAY, flags.modification_date, CURRENT_DATE()) <= " . MAX_REQUEST_AGE . "
+ AND TIMESTAMPDIFF(DAY, flags.modification_date, CURRENT_DATE()) <= "
+ . MAX_REQUEST_AGE . "
AND (profile_setting.setting_value IS NULL OR profile_setting.setting_value = 'on')
AND setter.disable_mail = 0
AND nag_defer.id IS NULL
@@ -140,10 +133,10 @@ sub SETTER_NAG_SQL {
}
sub WATCHING_REQUESTEE_NAG_SQL {
- my $dbh = Bugzilla->dbh;
- my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
+ my $dbh = Bugzilla->dbh;
+ my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
- return "
+ return "
SELECT
nag_watch.watcher_id,
flagtypes.name AS flag_type,
@@ -192,10 +185,10 @@ sub WATCHING_REQUESTEE_NAG_SQL {
}
sub WATCHING_SETTER_NAG_SQL {
- my $dbh = Bugzilla->dbh;
- my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
+ my $dbh = Bugzilla->dbh;
+ my @flag_types_sql = map { $dbh->quote($_->{type}) } FLAG_TYPES;
- return "
+ return "
SELECT
nag_watch.watcher_id,
flagtypes.name AS flag_type,
diff --git a/extensions/RequestNagger/lib/Settings.pm b/extensions/RequestNagger/lib/Settings.pm
index 393d224ba..839c37485 100644
--- a/extensions/RequestNagger/lib/Settings.pm
+++ b/extensions/RequestNagger/lib/Settings.pm
@@ -17,47 +17,48 @@ use List::MoreUtils qw( any );
use constant FIELDS => qw( reviews_only extended_period no_encryption );
sub new {
- my ($class, $user_id) = @_;
-
- my $dbh = Bugzilla->dbh;
- my $self = { user_id => $user_id };
- foreach my $row (@{ $dbh->selectall_arrayref(
- "SELECT setting_name,setting_value FROM nag_settings WHERE user_id = ?",
- { Slice => {} },
- $user_id
- ) }) {
- $self->{$row->{setting_name}} = $row->{setting_value};
- }
-
- return bless($self, $class);
+ my ($class, $user_id) = @_;
+
+ my $dbh = Bugzilla->dbh;
+ my $self = {user_id => $user_id};
+ foreach my $row (@{
+ $dbh->selectall_arrayref(
+ "SELECT setting_name,setting_value FROM nag_settings WHERE user_id = ?",
+ {Slice => {}}, $user_id)
+ })
+ {
+ $self->{$row->{setting_name}} = $row->{setting_value};
+ }
+
+ return bless($self, $class);
}
-sub reviews_only { exists $_[0]->{reviews_only} ? $_[0]->{reviews_only} : 0 }
-sub extended_period { exists $_[0]->{extended_period} ? $_[0]->{extended_period} : 0 }
-sub no_encryption { exists $_[0]->{no_encryption} ? $_[0]->{no_encryption} : 0 }
+sub reviews_only { exists $_[0]->{reviews_only} ? $_[0]->{reviews_only} : 0 }
+
+sub extended_period {
+ exists $_[0]->{extended_period} ? $_[0]->{extended_period} : 0;
+}
+sub no_encryption { exists $_[0]->{no_encryption} ? $_[0]->{no_encryption} : 0 }
sub set {
- my ($self, $field, $value) = @_;
- return unless any { $_ eq $field } FIELDS;
- $value = $value ? 1 : 0;
-
- my $dbh = Bugzilla->dbh;
- if (exists $self->{$field}) {
- $dbh->do(
- "UPDATE nag_settings SET setting_value=? WHERE user_id=? AND setting_name=?",
- undef,
- $value, $self->{user_id}, $field
- );
- }
- else {
- $dbh->do(
- "INSERT INTO nag_settings(user_id, setting_name, setting_value) VALUES (?, ?, ?)",
- undef,
- $self->{user_id}, $field, $value
- );
- }
-
- $self->{$field} = $value;
+ my ($self, $field, $value) = @_;
+ return unless any { $_ eq $field } FIELDS;
+ $value = $value ? 1 : 0;
+
+ my $dbh = Bugzilla->dbh;
+ if (exists $self->{$field}) {
+ $dbh->do(
+ "UPDATE nag_settings SET setting_value=? WHERE user_id=? AND setting_name=?",
+ undef, $value, $self->{user_id}, $field);
+ }
+ else {
+ $dbh->do(
+ "INSERT INTO nag_settings(user_id, setting_name, setting_value) VALUES (?, ?, ?)",
+ undef, $self->{user_id}, $field, $value
+ );
+ }
+
+ $self->{$field} = $value;
}
1;