X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Frt_ticket.pm;h=72e387c5642ac8a83a9b6ca5d6e66473ad8f40c9;hb=517ad7e0c5bd5a6329dfd3ef9c35f69afea9fc49;hp=87a06dcfd59eebff716ecc3f349b4c6d049f4334;hpb=3542eb33ca09edef912885d05d1fa47181a61d51;p=freeside.git diff --git a/FS/FS/part_export/rt_ticket.pm b/FS/FS/part_export/rt_ticket.pm index 87a06dcfd..72e387c56 100644 --- a/FS/FS/part_export/rt_ticket.pm +++ b/FS/FS/part_export/rt_ticket.pm @@ -6,7 +6,6 @@ use FS::part_export; use FS::Record qw(qsearch qsearchs); use FS::Conf; use FS::TicketSystem; -use Data::Dumper 'Dumper'; @ISA = qw(FS::part_export); @@ -14,6 +13,7 @@ my %templates; my %queues; my %template_select = ( type => 'select', + freeform => 1, option_label => sub { $templates{$_[0]}; }, @@ -21,7 +21,7 @@ my %template_select = ( %templates = (0 => '', map { $_->msgnum, $_->msgname } qsearch({ table => 'msg_template', - hashref => {}, + hashref => { disabled => '' }, order_by => 'ORDER BY msgnum ASC' }) ); @@ -29,39 +29,85 @@ my %template_select = ( }, ); +my %queue_select = ( + type => 'select', + freeform => 1, + option_label => sub { + $queues{$_[0]}; + }, + option_values => sub { + %queues = (0 => '', FS::TicketSystem->queues()); + sort {$queues{$a} cmp $queues{$b}} keys %queues; + }, +); + tie my %options, 'Tie::IxHash', ( - 'queue' => { - label => 'Queue', - type => 'select', - option_label => sub { - $queues{$_[0]}; - }, - option_values => sub { - %queues = FS::TicketSystem->queues(); - sort {$queues{$a} cmp $queues{$b}} keys %queues; - }, + 'insert_queue' => { + before => ' + + + + ' }, 'insert_template' => { - label => 'Insert', - %template_select + before => ' +', }, - 'replace_template' => { - label => 'Replace', - %template_select + 'delete_queue' => { + before => ' + ', }, 'delete_template' => { - label => 'Delete', - %template_select + before => ' +', + }, + 'replace_queue' => { + before => ' + ', + }, + 'replace_template' => { + before => ' +', + }, + 'suspend_queue' => { + before => ' + ', }, 'suspend_template' => { - label => 'Suspend', - %template_select + before => ' +', + }, + 'unsuspend_queue' => { + before => ' + ', }, 'unsuspend_template' => { - label => 'Unsuspend', - %template_select + before => ' +
QueueTemplate
New service', + %queue_select, + after => '', + %template_select, + after => '
Delete', + %queue_select, + after => '', + %template_select, + after => '
Modify', + %queue_select, + after => '', + %template_select, + after => '
Suspend', + %queue_select, + after => '', + %template_select, + after => '
Unsuspend', + %queue_select, + after => '', + %template_select, + after => '
+', }, 'requestor' => { + freeform => 0, label => 'Requestor', 'type' => 'select', option_label => sub { @@ -76,22 +122,31 @@ tie my %options, 'Tie::IxHash', ( ); %info = ( - 'svc' => [qw( svc_acct )], #others? + 'svc' => [qw( svc_acct svc_broadband svc_phone svc_domain )], 'desc' => - 'Create an RT ticket', + 'Create an RT ticket', 'options' => \%options, 'nodomain' => '', - 'notes' => <<'END' -Create a ticket in RT. The subject and body of the ticket -will be generated from a message template. -END + 'no_machine' => 1, + 'notes' => ' + Create a ticket in RT. The subject and body of the ticket + will be generated from a message template.' ); sub _export_ticket { my( $self, $action, $svc ) = (shift, shift, shift); + my $conf = new FS::Conf; + die "rt_ticket export - no ticket system configured" + unless $conf->config('ticket_system'); + + FS::TicketSystem->init(); + my $msgnum = $self->option($action.'_template'); return if !$msgnum; + my $queue = $self->option($action.'_queue'); + return if !$queue; + my $msg_template = FS::msg_template->by_key($msgnum); return "Template $msgnum not found\n" if !$msg_template; @@ -121,7 +176,7 @@ sub _export_ticket { my $err_or_ticket = FS::TicketSystem->create_ticket( '', #session should already exist - 'queue' => $self->option('queue'), + 'queue' => $queue, 'subject' => $msg{'subject'}, 'requestor' => $requestor, 'message' => $msg{'html_body'},