[Rt-commit] r16247 - in rt/branches/3.999-DANGEROUS: lib/RT/Action
sunnavy at bestpractical.com
sunnavy at bestpractical.com
Wed Oct 8 18:05:45 EDT 2008
Author: sunnavy
Date: Wed Oct 8 18:05:45 2008
New Revision: 16247
Added:
rt/branches/3.999-DANGEROUS/lib/RT/Action/DeleteTicketLinks.pm
Modified:
rt/branches/3.999-DANGEROUS/ (props changed)
Log:
r17064 at sunnavys-mb: sunnavy | 2008-10-09 05:54:13 +0800
added DeleteTicketLinks action
Added: rt/branches/3.999-DANGEROUS/lib/RT/Action/DeleteTicketLinks.pm
==============================================================================
--- (empty file)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Action/DeleteTicketLinks.pm Wed Oct 8 18:05:45 2008
@@ -0,0 +1,51 @@
+package RT::Action::DeleteTicketLinks;
+use Jifty::Param::Schema;
+use Jifty::Action schema {};
+
+use Text::Naming::Convention qw/renaming/;
+use constant report_detailed_messages => 1;
+
+sub take_action {
+ my $self = shift;
+
+ $self->result->content->{'detailed_messages'} ||= {};
+ my %map = (
+ depends_on => 'depended_on_by',
+ member_of => 'has_member',
+ refers_to => 'referred_to_by',
+ );
+
+ if ( $self->argument_value('id') ) {
+ my $ticket =
+ RT::Model::Ticket->new( current_user => Jifty->web->current_user );
+ my $id = $self->argument_value('id');
+ $ticket->load($id);
+
+ for my $field ( keys %map ) {
+ my $type = renaming( $field, { convention => 'UpperCamelCase' } );
+ if ( my $v = $self->argument_value($field) ) {
+ for my $value ( ref $v eq 'ARRAY' ? @$v : $v ) {
+ my ( $val, $msg ) = $ticket->delete_link(
+ target => $value,
+ type => $type,
+ );
+ $self->result->content('detailed_messages')->{$field} .=
+ $msg;
+ }
+ }
+ if ( my $v = $self->argument_value( $map{$field} ) ) {
+ for my $value ( ref $v eq 'ARRAY' ? @$v : $v ) {
+ my ( $val, $msg ) = $ticket->delete_link(
+ base => $value,
+ type => $type,
+ );
+ $self->result->content('detailed_messages')->{ $map{field} } .= "$msg.";
+ }
+ }
+ }
+ }
+
+ return 1;
+}
+
+1;
More information about the Rt-commit
mailing list