[Rt-commit] rt branch, admin_ui, updated. cfdd7080867c73d87cd3e0587bdc99534a8833a6
sunnavy at bestpractical.com
sunnavy at bestpractical.com
Thu Jan 21 00:14:20 EST 2010
The branch, admin_ui has been updated
via cfdd7080867c73d87cd3e0587bdc99534a8833a6 (commit)
from 2e244f28fca0e192365cef4af4dca54d646175ce (commit)
Summary of changes:
lib/RT/Action/EditUserPrefsQuickSearch.pm | 62 +++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
create mode 100644 lib/RT/Action/EditUserPrefsQuickSearch.pm
- Log -----------------------------------------------------------------
commit cfdd7080867c73d87cd3e0587bdc99534a8833a6
Author: sunnavy <sunnavy at bestpractical.com>
Date: Thu Jan 21 13:13:59 2010 +0800
EditUserPrefsQuickSearch action
diff --git a/lib/RT/Action/EditUserPrefsQuickSearch.pm b/lib/RT/Action/EditUserPrefsQuickSearch.pm
new file mode 100644
index 0000000..a7dc526
--- /dev/null
+++ b/lib/RT/Action/EditUserPrefsQuickSearch.pm
@@ -0,0 +1,62 @@
+use strict;
+use warnings;
+
+package RT::Action::EditUserPrefsQuickSearch;
+use base qw/RT::Action::EditUserPrefs/;
+
+sub name {
+ return 'QuickSearch';
+}
+
+use Jifty::Param::Schema;
+use Jifty::Action schema {
+ param
+ 'queues' =>
+ label is _('Select queues to be displayed on the "RT at a glance" page'),
+ render as 'Checkboxes',
+ available are defer {
+ my $qs = __PACKAGE__->queues;
+ return [
+ map {
+ { display => $_->description || $_->name, value => $_->name }
+ } __PACKAGE__->queues
+ ];
+ },
+ default is defer {
+ my $unwanted = __PACKAGE__->user->preferences( __PACKAGE__->name, {} );
+ return [
+ map { $_->name }
+ grep { !$unwanted->{ $_->name } } __PACKAGE__->queues
+ ];
+ };
+};
+
+sub take_action {
+ my $self = shift;
+ if ( $self->has_argument('queues') ) {
+ my $wants = $self->argument_value('queues');
+ $wants = [$wants] unless ref $wants eq 'ARRAY';
+ my %wants = map { $_ => 1 } ref $wants eq 'ARRAY' ? @$wants : $wants;
+ my %unwanted =
+ map { $_ => 1 } grep { !$wants{$_} } map { $_->name } $self->queues;
+ my ( $status, $msg ) =
+ $self->user->set_preferences( $self->name, \%unwanted );
+ Jifty->log->error($msg) unless $status;
+
+ # Let QueueSummary rebuild the cache
+ Jifty->web->session->remove('quick_search_queues');
+ $self->report_success;
+ }
+ return 1;
+}
+
+sub queues {
+ my $self = shift;
+ my $queues = RT::Model::QueueCollection->new;
+ $queues->find_all_rows;
+ return
+ grep { $_->current_user_has_right('ShowTicket') }
+ @{ $queues->items_array_ref };
+}
+
+1;
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list