X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fhtml%2FSelfService%2FCreate.html;h=9a64b5fd9add0ff8f61050982b1db72bcc72fd6f;hp=bfa7534eb0c839f015947c112c414d039d268c3d;hb=24548f7cf666bac02335d0bc74f81251c7b4ab50;hpb=9c68254528b6f2c7d8c1921b452fa56064783782 diff --git a/rt/html/SelfService/Create.html b/rt/html/SelfService/Create.html index bfa7534eb..9a64b5fd9 100644 --- a/rt/html/SelfService/Create.html +++ b/rt/html/SelfService/Create.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -45,71 +47,131 @@ %# END BPS TAGGED BLOCK }}} <& Elements/Header, Title => loc("Create a ticket") &> -
- +<& /Elements/ListActions, actions => \@results &> - - - + +
-<&|/l&>Queue: + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + - -
<&|/l&>Queue: + + <% $queue_obj->Name %> (<%$queue_obj->Description || ''%>)
<&|/l&>Requestors: - - <%$queue_obj->Name%> (<%$queue_obj->Description%>) -
-<&|/l&>Requestors: - - -
-<&|/l&>Cc: - - -
-<&|/l&>Subject: - - -
<&|/l&>Cc: + +
<&|/l&>Subject: + +
<& /Ticket/Elements/EditCustomFields, QueueObj => $queue_obj &>
-<&|/l&>Attach file: - - -
-<&|/l&>Describe the issue below:
+
<&|/l&>Attach file: + +
+<&|/l&>Describe the issue below:
+% if (exists $ARGS{Content}) { +<& /Elements/MessageBox, Default => $ARGS{Content}, IncludeSignature => 0 &> +% } else { <& /Elements/MessageBox &> -
+% } +
<& /Elements/Submit, Label => loc("Create ticket")&> -
+ <%args> $Queue => undef <%init> my $queue_obj = RT::Queue->new($session{'CurrentUser'}); -$queue_obj->Load($Queue); +$queue_obj->Load($Queue) || Abort(loc("Queue could not be loaded.")); +$queue_obj->Disabled && Abort(loc("Cannot create tickets in a disabled queue.")); + +my ($checks_failure, $skip_create, @results) = (0, 0, ()); +$skip_create = 1 unless ($ARGS{'id'}||'') eq 'new'; + +$m->comp('/Elements/Callback', + QueueObj => $queue_obj, ARGSRef => \%ARGS, + skip_create => \$skip_create, checks_failure => \$checks_failure, + results => \@results +); + +$skip_create = 1 if exists $ARGS{'AddMoreAttach'}; + +# deal with deleting uploaded attachments +foreach my $key (keys %ARGS) { + if ($key =~ m/^DeleteAttach-(.+)$/) { + delete $session{'Attachments'}{$1}; + } + $session{'Attachments'} = { %{$session{'Attachments'} || {}} }; +} + +# store the uploaded attachment in session +if ( $ARGS{'Attach'} ) { # attachment? + $session{'Attachments'} = {} unless defined $session{'Attachments'}; + + my $subject = "$ARGS{'Attach'}"; + + # strip leading directories + $subject =~ s#^.*[\\/]##; + + my $attachment = MakeMIMEEntity( + Subject => $subject, + Body => "", + AttachmentFieldName => 'Attach' + ); + + $session{'Attachments'} = { %{$session{'Attachments'} || {}}, + $ARGS{'Attach'} => $attachment }; +} + +unless (keys %{$session{'Attachments'}} and $ARGS{'id'} eq 'new') { + delete $session{'Attachments'}; +} + +my $CFs = $queue_obj->TicketCustomFields; +my $ValidCFs = $m->comp( + '/Elements/ValidateCustomFields', + CustomFields => $CFs, + ARGSRef => \%ARGS +); +unless ( $ValidCFs ) { + $checks_failure = 1; + while ( my $CF = $CFs->Next ) { + my $msg = $m->notes('InvalidField-' . $CF->Id) or next; + push @results, $CF->Name . ': ' . $msg + if ($ARGS{'id'}||'') eq 'new'; + } +} + +if ( !$checks_failure && !$skip_create ) { + $m->comp('Display.html', %ARGS); + $RT::Logger->crit("After display call; error is $@"); + $m->abort(); +}