%# What does it mean if there is no fortune for you?
% unless ($NoUI) {
<& /Work/Elements/104Header, Title => 'New Request', Method => 'POST', Enctype => 'multipart/form-data' &>
% }
% } else {
<& /Work/Tickets/Elements/ShowQueue, QueueObj => $QueueObj &>
%# Basic Info {{{
 
  
     
    <% $QueueObj->Name %> 
  
     
% my $Now = RT::Date->new($session{'CurrentUser'}); $Now->SetToNow;
                        <% $Now->AsDate %> 
  
     
    <& /Work/Elements/SelectOwner, Name => "Owner", QueueObj => $QueueObj, Default => $Owner &>
   
 
 
  
     
    <% $QueueObj->Description %> 
  
     
    <&|/l&>New&> 
  
     
	<% $OwnerObj ? $OwnerObj->WorkPhone : '' %>
			 
 
%# }}}
               
                 
% }
               
                 
                  
%# Custom Fields {{{
% my @entry_fields;
% my $UserObj = $session{CurrentUser}->UserObj;
% while( my $cf = $CFs->Next() ) {
%   next if ($NoCF->{$cf->Name});
%   if ($cf->IsEntry) {
%     push @entry_fields, $cf;
%     next;
%   }
%   elsif (@entry_fields) {
 
<& /Work/Tickets/Elements/EditCustomFieldEntries, Prefix => 'AddEntry-', CustomFields => \@entry_fields, TempValues => $Entries, Loc => $Loc &>
 
  "<% $url %>">
%   $m->print($cf->Description);
  
    <& /Work/Tickets/Elements/EditCustomField,
	Name	    => 'CustomField-'.$cf->Id,
	CustomField => $cf,
	NamePrefix  => "CustomField-",
	Value	    => (exists($ARGS{$cf_key}) ? $ARGS{$cf_key} : $cf->Attribute('Default')),
	Queue	    => $QueueObj->Id,
	Loc	    => $Loc,
	ReadOnly    => ($cf->Attribute('OnCreate') eq 'readonly') &>
 
% }
%# }}}
% if (@entry_fields) {
 
<& /Work/Tickets/Elements/EditCustomFieldEntries, Prefix => 'AddEntry-', CustomFields => \@entry_fields, TempValues => $Entries, Loc => $Loc &>
 
                 
               
% if ($NoUI) {
            
                
                 
            
            
          
        
      
    
  
<%INIT>
my $QueueObj = new RT::Queue($session{'CurrentUser'});
$QueueObj->Load($Queue) || Abort(loc("Queue could not be loaded."));
my $CFs = $QueueObj->CustomFields();
if ($QueueObj->DefaultDueIn) {
    my $default_due = RT::Date->new($session{'CurrentUser'});
    $default_due->SetToNow();
    $default_due->AddDays($QueueObj->DefaultDueIn);
    $ARGS{'Due'} = $default_due->ISO();
}
# {{{ 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 };
}
# }}}
foreach my $key (keys %ARGS) {
    $key =~ /^AddMoreEntry-(.*)$/ or next;
    $ARGS{'AddMoreEntry'} = [ split(/-/, $1) ];
}
$session{'Entries'} = {} unless $ARGS{'AddMoreEntry'} or $ARGS{'id'};
my $Entries = $session{'Entries'} || {};
$m->comp('Elements/ProcessEntryUpdates', Entries => $Entries, %ARGS);
# delete temporary storage entry to make WebUI clean
unless (keys %{$session{'Attachments'}} and $ARGS{'id'} eq 'new') {
    delete $session{'Attachments'};
}
if (keys %{$Entries} and $ARGS{'id'} eq 'new') {
    $ARGS{"CustomField-$_"} = $Entries->{$_} foreach keys %{$Entries};
    $session{'Entries'} = { %{$Entries} };
}
else {
    delete $session{'Entries'};
}
# }}}
# {{{ deal with multi-select CC & AdminCC
foreach my $key (keys %ARGS) {
    if      ($key =~ m/^AddAdminCc/) {
        my @AdminCCs =
            ref($ARGS{$key}) eq 'ARRAY' ? @{$ARGS{$key}} : ($ARGS{$key});
        $ARGS{AdminCc} =
            join ",", $ARGS{AdminCc}, grep { $_ ne "-" } @AdminCCs;
    } elsif ($key =~ m/^AddCc/) {
        my @CCs = ref($ARGS{$key}) eq 'ARRAY' ? @{$ARGS{$key}} : ($ARGS{$key});
        $ARGS{Cc} =
            join ",", $ARGS{Cc}, grep { $_ ne "-" } @CCs;
    }
}
# }}}
my $valid_cfs = $m->comp('Elements/ValidateCustomFields', CustomFields => $CFs, ARGSRef => \%ARGS);
if ((!exists $ARGS{'AddMoreAttach'}) && (!exists $ARGS{'AddMoreEntry'}) && ($ARGS{'id'} eq 'new') and $valid_cfs) {
    $m->comp('Display.html', %ARGS);
    return;
}
my $users = new RT::Users($session{'CurrentUser'});
$users->LimitToPrivileged();
my @PrivUsers;
while (my $user = $users->Next) {
    push @PrivUsers, $user->Name;
}
my $Owner = $ARGS{Owner};
my $OwnerObj;
if (!$Owner and $OwnerObj = $QueueObj->AdminCc->UserMembersObj->First) {
    $Owner ||= $OwnerObj->Id;
};
$ARGS{Subject} = '' unless exists $ARGS{Subject};
%INIT>
<%ARGS>
$DependsOn => undef
$DependedOnBy => undef
$MemberOf => undef
$QuoteTransaction => undef
$Queue => undef
$NoUI => undef
$Loc => undef
$NoCF => {}
%ARGS>