[Rt-commit] rt branch, create-action, updated. 2579a6529ea4f509ffda6421109f9634b93d5dff
sartak at bestpractical.com
sartak at bestpractical.com
Wed Sep 2 08:20:53 EDT 2009
The branch, create-action has been updated
via 2579a6529ea4f509ffda6421109f9634b93d5dff (commit)
via f2195f3272258625ae196f993420fce35dc21f3e (commit)
from 71098aefb1dec36af596ed58be8490052466b0f1 (commit)
Summary of changes:
lib/RT/Action/CreateTicket.pm | 25 ++++-----------
lib/RT/Action/{CreateTicket.pm => QueueBased.pm} | 34 +++++++++++++++-------
2 files changed, 30 insertions(+), 29 deletions(-)
copy lib/RT/Action/{CreateTicket.pm => QueueBased.pm} (51%)
- Log -----------------------------------------------------------------
commit f2195f3272258625ae196f993420fce35dc21f3e
Author: Shawn M Moore <sartak at bestpractical.com>
Date: Wed Sep 2 08:20:10 2009 -0400
Begin a QueueBased mixin for actions that change based on queue
diff --git a/lib/RT/Action/QueueBased.pm b/lib/RT/Action/QueueBased.pm
new file mode 100644
index 0000000..6d1ec60
--- /dev/null
+++ b/lib/RT/Action/QueueBased.pm
@@ -0,0 +1,47 @@
+package RT::Action::QueueBased;
+use strict;
+use warnings;
+use base 'Jifty::Action';
+
+use Jifty::Param::Schema;
+use Jifty::Action schema {
+ param queue =>
+ render as 'text',
+ render_mode is 'read';
+};
+
+sub arguments {
+ my $self = shift;
+
+ if (!$self->{_cached_arguments}) {
+ $self->{_cached_arguments} = \%{ $self->PARAMS };
+
+ if (get('queue')) {
+ my $queue = Jifty->web->request->argument('queue');
+ $queue = $queue->[0] if ref $queue eq 'ARRAY';
+ $self->set_queue($queue);
+ }
+ }
+
+ return $self->{_cached_arguments};
+}
+
+sub set_queue {
+ my $self = shift;
+ my $queue = shift;
+
+ if (!ref($queue)) {
+ my $queue_obj = RT::Model::Queue->new;
+ $queue_obj->load($queue);
+ $queue = $queue_obj;
+ }
+
+ $self->after_set_queue($queue);
+
+ return $queue;
+}
+
+sub after_set_queue {}
+
+1;
+
commit 2579a6529ea4f509ffda6421109f9634b93d5dff
Author: Shawn M Moore <sartak at bestpractical.com>
Date: Wed Sep 2 08:20:43 2009 -0400
Recast CreateTicket to be a QueueBased action
diff --git a/lib/RT/Action/CreateTicket.pm b/lib/RT/Action/CreateTicket.pm
index 77f21e2..7e26b65 100644
--- a/lib/RT/Action/CreateTicket.pm
+++ b/lib/RT/Action/CreateTicket.pm
@@ -1,34 +1,23 @@
package RT::Action::CreateTicket;
use strict;
use warnings;
-use base 'Jifty::Action::Record::Create';
+use base 'RT::Action::QueueBased', 'Jifty::Action::Record::Create';
use constant record_class => 'RT::Model::Ticket';
use constant report_detailed_messages => 1;
use Jifty::Param::Schema;
use Jifty::Action schema {
- param queue =>
- render as 'text',
- render_mode is 'read',
- default is defer {
- my $queue = Jifty->web->request->argument('queue');
- $queue = $queue->[0] if ref $queue eq 'ARRAY';
- $queue;
- };
+ param status =>
+ render as 'select',
+ valid_values are 'new', 'open'; # XXX
};
-sub set_queue {
+sub after_set_queue {
my $self = shift;
my $queue = shift;
-
- if (!ref($queue)) {
- my $queue_obj = RT::Model::Queue->new;
- $queue_obj->load($queue);
- $queue = $queue_obj;
- }
-
- my @valid_statuses = $queue->status_schema->valid;
+ $self->SUPER::after_set_queue(@_);
+ # set valid statuses
}
1;
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list