-#It's hard to do this inline, so we'll preload the html of the selectstatus in here.
-my $SelectStatus = $m->scomp("/Elements/SelectStatus", Name => 'Status', DefaultLabel => loc("[_1] (Unchanged)",loc($TicketObj->Status)));
-my $SelectQueue = $m->scomp("/Elements/SelectQueue", Name => 'Queue', Default =>$TicketObj->QueueObj->Id, ShowNullOption => 0);
+my $WillResolveObj = $TicketObj->WillResolveObj if defined $TicketObj;
+unless ( @fields ) {
+ my $subject = $defaults{'Subject'} || $TicketObj->Subject;
+ @fields = (
+ { name => 'Subject',
+ html => '<input name="Subject" value="'.(defined($subject) ? $m->interp->apply_escapes( $subject, 'h' ) : '').'" />',
+ },
+ { name => 'Status',
+ comp => '/Ticket/Elements/SelectStatus',
+ args => {
+ Name => 'Status',
+ Default => $defaults{'Status'},
+ DefaultFromArgs => 0,
+ TicketObj => $TicketObj,
+ onchange => 'changeStatus()',
+ },
+ },
+ { name => 'Resolve this Ticket on',
+ comp => '/Elements/SelectDate',
+ args => {
+ menu_prefix => 'WillResolve',
+ Default => $ARGS{'WillResolve'} ||
+ (defined($WillResolveObj)
+ and $WillResolveObj->Unix > 0 ?
+ $WillResolveObj->Date : ''),
+ current => 0,
+ ShowTime => 0,
+ },
+ },
+ { name => 'Queue',
+ comp => '/Elements/SelectQueue',
+ args => {
+ Name => 'Queue',
+ Default => $defaults{'Queue'} || $TicketObj->QueueObj->Id,
+ ShowNullOption => 0,
+ }
+ },
+ { name => 'Owner',
+ comp => '/Elements/SelectOwner',
+ args => {
+ Name => 'Owner',
+ QueueObj => $TicketObj->QueueObj,
+ TicketObj => $TicketObj,
+ Default => $defaults{'Owner'} || $TicketObj->OwnerObj->Id,
+ DefaultValue => 0,
+ }
+ },
+ # Time Estimated, Worked, and Left
+ (
+ map {
+ (my $field = $_) =~ s/ //g;
+ {
+ name => $_,
+ comp => '/Elements/EditTimeValue',
+ args => {
+ Name => $field,
+ Default => $defaults{$field} || $TicketObj->$field,
+ }
+ }
+ } ('Time Estimated', 'Time Worked', 'Time Left')
+ ),
+ # Priority and Final Priority
+ (
+ map {
+ (my $field = $_) =~ s/ //g;
+ {
+ name => $_,
+ comp => '/Elements/SelectPriority',
+ args => {
+ Name => $field,
+ Default => $defaults{$field} || $TicketObj->$field,
+ }
+ }
+ } ('Priority', 'Final Priority')
+ ),
+ );
+}