[Rt-commit] rt branch, create-action, updated. 64a664e9c397083808239253ef73573eb309836a
sartak at bestpractical.com
sartak at bestpractical.com
Thu Sep 3 08:18:37 EDT 2009
The branch, create-action has been updated
via 64a664e9c397083808239253ef73573eb309836a (commit)
from 827641ab25126c554020c09fb06706544e418129 (commit)
Summary of changes:
lib/RT/Action/CreateTicket.pm | 44 +++++++++++++++++++++++++++++++++++++++++
lib/RT/View/Ticket/Create.pm | 1 +
2 files changed, 45 insertions(+), 0 deletions(-)
- Log -----------------------------------------------------------------
commit 64a664e9c397083808239253ef73573eb309836a
Author: Shawn M Moore <sartak at bestpractical.com>
Date: Thu Sep 3 08:18:19 2009 -0400
Most of the way to the owner dropdown
diff --git a/lib/RT/Action/CreateTicket.pm b/lib/RT/Action/CreateTicket.pm
index fc16db2..c34da8b 100644
--- a/lib/RT/Action/CreateTicket.pm
+++ b/lib/RT/Action/CreateTicket.pm
@@ -11,6 +11,10 @@ use Jifty::Action schema {
param status =>
render as 'select',
valid_values are 'new', 'open'; # XXX
+
+ param owner =>
+ render as 'select',
+ valid_values are RT->nobody;
};
sub after_set_queue {
@@ -18,9 +22,49 @@ sub after_set_queue {
my $queue = shift;
$self->SUPER::after_set_queue(@_);
+ $self->set_valid_statuses($queue);
+ $self->set_valid_owners($queue);
+}
+
+sub set_valid_statuses {
+ my $self = shift;
+ my $queue = shift;
+
my @valid_statuses = $queue->status_schema->valid;
$self->{_cached_arguments}{status}{valid_values} = \@valid_statuses;
}
+sub set_valid_owners {
+ my $self = shift;
+ my $queue = shift;
+
+ my $isSU = Jifty->web->current_user->has_right(
+ right => 'SuperUser',
+ object => RT->system,
+ );
+
+ my $users = RT::Model::UserCollection->new;
+ $users->who_have_right(
+ right => 'OwnTicket',
+ object => $queue,
+ include_system_rights => 1,
+ include_superusers => $isSU,
+ );
+
+ my %user_uniq_hash;
+ while (my $user = $users->next) {
+ # skip nobody here, so we can make them first later
+ next if $user->id == RT->nobody->id;
+
+ $user_uniq_hash{ $user->id } = $user;
+ }
+
+ my @valid_owners = sort { uc( $a->name ) cmp uc( $b->name ) }
+ values %user_uniq_hash;
+ unshift @valid_owners, RT->nobody;
+
+ $self->{_cached_arguments}{status}{valid_values} = \@valid_owners;
+}
+
1;
diff --git a/lib/RT/View/Ticket/Create.pm b/lib/RT/View/Ticket/Create.pm
index 8c7db57..b2651d9 100644
--- a/lib/RT/View/Ticket/Create.pm
+++ b/lib/RT/View/Ticket/Create.pm
@@ -105,6 +105,7 @@ sub show_basics {
render_hidden($create, 'queue', $queue);
render_param($create, 'status');
+ render_param($create, 'owner');
$create->button(label => _('Create'));
};
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list