[Rt-commit] rt branch, create-action, updated. 0d1a1eaeb9d89a687d9eb81948d39a86f9b5f7cf

sartak at bestpractical.com sartak at bestpractical.com
Tue Sep 22 08:46:59 EDT 2009


The branch, create-action has been updated
       via  0d1a1eaeb9d89a687d9eb81948d39a86f9b5f7cf (commit)
      from  1a2d5e1a64dbc3413cf35eaa0e3598d0816cfb09 (commit)

Summary of changes:
 lib/RT/Action/CreateTicket.pm |   12 ++++++------
 lib/RT/Action/QueueBased.pm   |   12 +++++++++++-
 2 files changed, 17 insertions(+), 7 deletions(-)

- Log -----------------------------------------------------------------
commit 0d1a1eaeb9d89a687d9eb81948d39a86f9b5f7cf
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Tue Sep 22 08:46:38 2009 -0400

    Factor away setting _cached_arguments into a method, fill_parameter

diff --git a/lib/RT/Action/CreateTicket.pm b/lib/RT/Action/CreateTicket.pm
index 5cfe5e2..b97c162 100644
--- a/lib/RT/Action/CreateTicket.pm
+++ b/lib/RT/Action/CreateTicket.pm
@@ -75,7 +75,7 @@ sub set_valid_statuses {
     my $queue = shift;
 
     my @valid_statuses = $queue->status_schema->valid;
-    $self->{_cached_arguments}{status}{valid_values} = \@valid_statuses;
+    $self->fill_parameter(status => valid_values => \@valid_statuses);
 }
 
 sub set_valid_owners {
@@ -107,12 +107,12 @@ sub set_valid_owners {
                        values %user_uniq_hash;
     unshift @valid_owners, RT->nobody;
 
-    $self->{_cached_arguments}{owner}{valid_values} = [
+    $self->fill_parameter(owner => valid_values => [
         map { {
             display => $_->name, # XXX: should use ShowUser or something
             value   => $_->id,
         } } @valid_owners,
-    ];
+    ]);
 }
 
 sub add_role_group_parameter {
@@ -123,18 +123,18 @@ sub add_role_group_parameter {
 
     push @{ $self->{_role_group_parameters} }, $name;
 
-    $self->{_cached_arguments}{$name} = {
+    $self->fill_parameter($name => (
         render_as      => 'text',
         display_length => 40,
         %args,
-    };
+    ));
 }
 
 sub set_default_priority {
     my $self  = shift;
     my $queue = shift;
 
-    $self->{_cached_arguments}{priority}{default_value} = $queue->initial_priority;
+    $self->fill_parameter(priority => default_value => $queue->initial_priority);
 }
 
 1;
diff --git a/lib/RT/Action/QueueBased.pm b/lib/RT/Action/QueueBased.pm
index de47c15..d74712f 100644
--- a/lib/RT/Action/QueueBased.pm
+++ b/lib/RT/Action/QueueBased.pm
@@ -60,13 +60,23 @@ sub set_queue {
     # Prep the arguments cache
     $self->arguments if !$self->{_cached_arguments};
 
-    $self->{_cached_arguments}{queue}{default_value} = $queue->name;
+    $self->fill_parameter(queue => default_value => $queue->name);
 
     $self->after_set_queue($queue);
 
     return $queue;
 }
 
+sub fill_parameter {
+    my $self = shift;
+    my $name = shift;
+
+    $self->{_cached_arguments}{$name} = {
+        %{ $self->{_cached_arguments}{$name} || {} },
+        @_,
+    };
+}
+
 sub after_set_queue {}
 
 1;

-----------------------------------------------------------------------


More information about the Rt-commit mailing list