From feba5016425b52740c29653383343d0d1887a592 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Mon, 17 Aug 2015 22:22:02 -0700 Subject: display dates as real dates in Excel export, #23121, update for current RT --- rt/lib/RT/Interface/Web_Vendor.pm | 5 +++-- rt/share/html/Elements/ShowCustomFieldDate | 6 +++++- rt/share/html/Elements/ShowCustomFieldDateTime | 6 +++++- rt/share/html/Search/Elements/ResultsStructuredView | 2 -- rt/share/html/Search/Results.xls | 5 ++--- 5 files changed, 15 insertions(+), 9 deletions(-) (limited to 'rt') diff --git a/rt/lib/RT/Interface/Web_Vendor.pm b/rt/lib/RT/Interface/Web_Vendor.pm index c9bff6f36..ea3a498d6 100644 --- a/rt/lib/RT/Interface/Web_Vendor.pm +++ b/rt/lib/RT/Interface/Web_Vendor.pm @@ -423,12 +423,13 @@ sub ProcessColumnMapValue { my $value = shift; my %args = ( Arguments => [], Escape => 1, - FormatDate => \&default_FormatDate, @_ ); + my $FormatDate = $m->notes('FormatDate') || \&default_FormatDate; + if ( ref $value ) { if ( ref $value eq 'RT::Date' ) { - return $args{FormatDate}->($value); + return $FormatDate->($value); } elsif ( UNIVERSAL::isa( $value, 'CODE' ) ) { my @tmp = $value->( @{ $args{'Arguments'} } ); return ProcessColumnMapValue( ( @tmp > 1 ? \@tmp : $tmp[0] ), %args ); diff --git a/rt/share/html/Elements/ShowCustomFieldDate b/rt/share/html/Elements/ShowCustomFieldDate index 92ab7679a..1536935c5 100644 --- a/rt/share/html/Elements/ShowCustomFieldDate +++ b/rt/share/html/Elements/ShowCustomFieldDate @@ -49,7 +49,11 @@ my $content = $Object->Content; my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => 'unknown', Value => $content, Timezone => 'utc' ); - $content = $DateObj->AsString(Time => 0, Timezone => 'utc'); + if ($m->notes('FormatDate')) { + $content = $m->notes('FormatDate')->($DateObj); + } else { + $content = $DateObj->AsString(Time => 0, Timezone => 'utc'); + } <%$content|n%> <%ARGS> diff --git a/rt/share/html/Elements/ShowCustomFieldDateTime b/rt/share/html/Elements/ShowCustomFieldDateTime index 2ba873aad..e179d6a4b 100644 --- a/rt/share/html/Elements/ShowCustomFieldDateTime +++ b/rt/share/html/Elements/ShowCustomFieldDateTime @@ -49,7 +49,11 @@ my $content = $Object->Content; my $DateObj = RT::Date->new ( $session{'CurrentUser'} ); $DateObj->Set( Format => 'ISO', Value => $content ); - $content = $DateObj->AsString; + if ($m->notes('FormatDate')) { + $content = $m->notes('FormatDate')->($DateObj); + } else { + $content = $DateObj->AsString; + } <%$content|n%> <%ARGS> diff --git a/rt/share/html/Search/Elements/ResultsStructuredView b/rt/share/html/Search/Elements/ResultsStructuredView index 0e9457c45..5b9db4ee1 100644 --- a/rt/share/html/Search/Elements/ResultsStructuredView +++ b/rt/share/html/Search/Elements/ResultsStructuredView @@ -54,7 +54,6 @@ $Format => undef #Callbacks $WriteHeader => sub { $RT::Logger->error('WriteHeader callback required'); '' } $WriteRow => sub { $RT::Logger->error('WriteRow callback required'); '' } -$FormatDate => sub { $_[0]->AsString } <%INIT> @@ -146,7 +145,6 @@ while ( my $Ticket = $Tickets->Next()) { push @out, ProcessColumnMapValue( $ColumnMap->{$col}{'value'}, Arguments => [ $Ticket, $row ], - FormatDate => $FormatDate, ); } #foreach $subcol $value = join('', '', @out, ''); diff --git a/rt/share/html/Search/Results.xls b/rt/share/html/Search/Results.xls index 8b94e22ba..d9d83568c 100644 --- a/rt/share/html/Search/Results.xls +++ b/rt/share/html/Search/Results.xls @@ -118,11 +118,11 @@ my $WriteRow = sub { $row++; }; -my $FormatDate = sub { +$m->notes('FormatDate', sub { my $DateObj = shift; return '' if $DateObj->Unix == 0; return time2str('%Y-%m-%dT%H:%M', $DateObj->Unix); -}; +}); # Write everything to the worksheet $m->comp('Elements/ResultsStructuredView', @@ -132,7 +132,6 @@ $m->comp('Elements/ResultsStructuredView', Format => $Format, WriteHeader => $WriteHeader, WriteRow => $WriteRow, - FormatDate => $FormatDate, ); # Set column widths -- cgit v1.2.1 From d0b3acc1efb65855d5e52d54c33bb035c9776e2d Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Mon, 5 Oct 2015 18:35:13 -0700 Subject: ticket_system-appointment-queueid config, RT#34237 --- rt/share/html/Elements/CalendarSlotSchedule | 6 +++++- rt/share/html/Search/Schedule.html | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'rt') diff --git a/rt/share/html/Elements/CalendarSlotSchedule b/rt/share/html/Elements/CalendarSlotSchedule index 045d6e436..4a9b3bcc3 100644 --- a/rt/share/html/Elements/CalendarSlotSchedule +++ b/rt/share/html/Elements/CalendarSlotSchedule @@ -87,7 +87,11 @@ % # (XXX and eventually, package) % my $cust_main = qsearchs('cust_main', { custnum=>$custnum } ) % or die "unknown custnum $custnum"; -% my $Queue = $cust_main->agent->ticketing_queueid || 1; # || $default_queueid;#XXX really, pick pkg_category queue +% +% my $conf = new FS::Conf; +% my $Queue = $conf->config('ticket_system-appointment-queueid') +% or die "ticket_system-appointment-queueid configuration not set"; +% % my $member = "freeside://freeside/cust_main/$custnum"; % %warn my $Starts = int($tod_row/60). ':'. sprintf('%02d',$tod_row%60). ':00'; diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html index be5a140ef..c729ff068 100644 --- a/rt/share/html/Search/Schedule.html +++ b/rt/share/html/Search/Schedule.html @@ -201,8 +201,8 @@ <& /Search/Calendar.html, @_, Query => "( Status = 'new' OR Status = 'open' OR Status = 'stalled') - AND ( Type = 'reminder' OR 'Type' = 'ticket' )", - #XXX and we have the magic custom field + AND ( Type = 'reminder' OR 'Type' = 'ticket' ) + AND Queue.id = $queueid ", slots => scalar(@usernames), Embed => 'Schedule.html', DimPast => 1, @@ -222,6 +222,11 @@ my $timestep = RT->Config->Get('CalendarWeeklySizeMin') || 30; #1/2h <%init> +#abstraction-leaking +my $conf = new FS::Conf; +my $queueid = $conf->config('ticket_system-appointment-queueid') + or die "ticket_system-appointment-queueid configuration not set"; + my @files = (); #if ( ! $initialized ) { push @files, map "overlibmws$_", ( '', qw( _iframe _draggable _crossframe ) ); -- cgit v1.2.1 From 883e34abf9c9a59cf039c2c698b930b2f305be7f Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Mon, 5 Oct 2015 19:05:10 -0700 Subject: ticket_system-appointment-queueid config, RT#34237 --- rt/share/html/Search/Schedule.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rt') diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html index c729ff068..43680b47c 100644 --- a/rt/share/html/Search/Schedule.html +++ b/rt/share/html/Search/Schedule.html @@ -202,7 +202,7 @@ @_, Query => "( Status = 'new' OR Status = 'open' OR Status = 'stalled') AND ( Type = 'reminder' OR 'Type' = 'ticket' ) - AND Queue.id = $queueid ", + AND Queue = $queueid ", slots => scalar(@usernames), Embed => 'Schedule.html', DimPast => 1, -- cgit v1.2.1 From 05c0b947ddba67a8ac2537c010a583277623ff3e Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Mon, 5 Oct 2015 20:12:09 -0700 Subject: show customer name on appointments, RT#34237 --- rt/share/html/Elements/CalendarDaySchedule | 7 ++++++- rt/share/html/Elements/CalendarSlotSchedule | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'rt') diff --git a/rt/share/html/Elements/CalendarDaySchedule b/rt/share/html/Elements/CalendarDaySchedule index 5be5b06bc..bac9a78d4 100644 --- a/rt/share/html/Elements/CalendarDaySchedule +++ b/rt/share/html/Elements/CalendarDaySchedule @@ -31,8 +31,13 @@ $CurrentUser => undef % my( $starts, $due, $col, $t ) = @{ $schedule{'scheduled'}->{$id} }; % my $s = int(($starts-$stime)/10); % my $e = int(($due-$stime)/10)-1; + +% #false laziness w/misc/xmlhttp-ticket-update.html & CalendarSlotSchedule +% my %hash = $m->comp('/Ticket/Elements/Customers', Ticket => $t); +% my @cust_main = values( %{$hash{cust_main}} ); + = $tod_row ) { #first row +% +% #false laziness w/misc/xmlhttp-ticket-update.html & CalendarDaySchedule +% my %hash = $m->comp('/Ticket/Elements/Customers', Ticket => $t); +% my @cust_main = values( %{$hash{cust_main}} ); +% % $content .= ($content?', ':''). #$id. ': '. % #false laziness w/xmlhttp-ticket-update.html % FS::sched_avail::pretty_time($starts). '-'. -% FS::sched_avail::pretty_time($due); +% FS::sched_avail::pretty_time($due). +% ': '. encode_entities($cust_main[0]->_FreesideURILabel); % #'install for custname XX miles away'; #XXX placeholder/more % $draggable_ticketid = $id; % $draggable_length = $due - $starts; -- cgit v1.2.1 From f27e48e51e2154468d960f1be656538373332ee5 Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Tue, 6 Oct 2015 20:17:42 -0500 Subject: RT#38481: installer scheduling: redirect to basics (custom field edit) page instead of ticket view --- rt/share/html/Elements/CalendarSlotSchedule | 4 +++- rt/share/html/Search/Schedule.html | 1 + rt/share/html/Ticket/Display.html | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'rt') diff --git a/rt/share/html/Elements/CalendarSlotSchedule b/rt/share/html/Elements/CalendarSlotSchedule index 632fabba3..251347148 100644 --- a/rt/share/html/Elements/CalendarSlotSchedule +++ b/rt/share/html/Elements/CalendarSlotSchedule @@ -9,6 +9,7 @@ $LengthMin => $default_timestep $custnum => undef $pkgnum => undef + $RedirectToBasics => 0 % foreach my $username ( @username ) { % @@ -110,7 +111,8 @@ % '&Starts='. $Date->strftime('%F').'%20'. $Starts. % '&Due='. $Date->strftime('%F').'%20'. $Due. % '&new-MemberOf='. $member. #XXX uri_escape? -% '&Status=new'; +% '&Status=new'. +% '&RedirectToBasics='.$RedirectToBasics; % #'&Requestors='. #XXX Freeside customer requestor(s) (package? onmouseover = "boxon(this);" diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html index 43680b47c..ccd844bf8 100644 --- a/rt/share/html/Search/Schedule.html +++ b/rt/share/html/Search/Schedule.html @@ -212,6 +212,7 @@ #oops, more freeside abstraction-leaking custnum => $ARGS{custnum}, pkgnum => $ARGS{pkgnum}, + RedirectToBasics => $ARGS{RedirectToBasics}, ], &> diff --git a/rt/share/html/Ticket/Display.html b/rt/share/html/Ticket/Display.html index 41684c5be..96a49d4e4 100755 --- a/rt/share/html/Ticket/Display.html +++ b/rt/share/html/Ticket/Display.html @@ -99,6 +99,7 @@ $id => undef $TicketObj => undef $ShowHeaders => 0 $ForceShowHistory => 0 +$RedirectToBasics => 0 <%INIT> @@ -217,6 +218,7 @@ $m->callback( ); # This code does automatic redirection if any updates happen. +$m->notes('RedirectToBasics' => 1) if $RedirectToBasics; my $path = '/Ticket/'. ( $m->notes('RedirectToBasics') ? 'Modify.html' : 'Display.html' ); MaybeRedirectForResults( -- cgit v1.2.1 From eb0db72e7ee45f9495975f194049cf89717cd801 Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Fri, 9 Oct 2015 23:00:05 -0500 Subject: RT#38481 [noted in FREESIDE_MODIFIED] --- rt/FREESIDE_MODIFIED | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'rt') diff --git a/rt/FREESIDE_MODIFIED b/rt/FREESIDE_MODIFIED index ace0d499b..05ffb2a46 100644 --- a/rt/FREESIDE_MODIFIED +++ b/rt/FREESIDE_MODIFIED @@ -165,3 +165,9 @@ share/html/Search/Elements/PickBasics lib/RT/CustomField.pm share/html/Admin/CustomFields/Modify.html share/html/Ticket/Create.html + +#allow RedirectToBasics to be set from schedule-appointments, RT#38481 +share/html/Search/Schedule.html +share/html/Elements/CalendarSlotSchedule +share/html/Ticket/Display.html + -- cgit v1.2.1