[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