diff options
Diffstat (limited to 'rt/share/html/Callbacks')
10 files changed, 159 insertions, 0 deletions
diff --git a/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default new file mode 100644 index 000000000..2c0698ec2 --- /dev/null +++ b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default @@ -0,0 +1,12 @@ +<%doc> +If mandatory fields aren't set yet, point the "Resolve" link back +to "Ticket Basics". +</%doc> +<%init> +my $TicketObj = delete($ARGS{'Ticket'}); +my $actions = $ARGS{'actions'}; +if( $m->comp('/Ticket/Elements/CheckMandatoryFields', Ticket => $TicketObj) + ) { + $actions->{'G'}->{'path'} = 'Ticket/Modify.html?id='.$TicketObj->Id.'&resolve=1'; +} +</%init> diff --git a/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList new file mode 100644 index 000000000..4779411ce --- /dev/null +++ b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList @@ -0,0 +1,15 @@ +<%init> +use Data::Dumper; +my $ARGSRef = $ARGS{'ARGSRef'}; +my $TicketObj = $ARGS{'Ticket'}; +my $results = $ARGS{'Actions'}; +if(defined($ARGSRef->{'resolve'})) { + my @errors = + $m->comp('/Ticket/Elements/CheckMandatoryFields', Ticket => $TicketObj); + return if !@errors; + my $msg = 'Missing required field'.(@errors > 1 ? 's' : '').': ' . + join(', ', map { $_->Name } @errors); + $m->notes( ('InvalidField-' . $_->Id) => 'Required' ) foreach @errors; + push @$results, $msg; +} +</%init> diff --git a/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay new file mode 100644 index 000000000..0d69bc27b --- /dev/null +++ b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay @@ -0,0 +1,24 @@ +<%doc> +When the user tries to change a ticket's status to "resolved" through +the Update interface, check mandatory fields. If they aren't all set, +redirect to Ticket Basics instead of updating. Note that this will +lose any comments/time/other information the user has entered. +</%doc> + +<%init> +my $TicketObj = $ARGS{'Ticket'}; +my $ARGSRef = $ARGS{'ARGSRef'}; +my $oldStatus = $TicketObj->Status(); +my $newStatus = $ARGSRef->{'Status'} || $ARGSRef->{'DefaultStatus'}; +if( $oldStatus ne 'resolved' and + $newStatus eq 'resolved' and + $m->comp('/Ticket/Elements/CheckMandatoryFields', + Ticket => $TicketObj + ) ) { + $m->clear_buffer; + RT::Interface::Web::Redirect( + RT->Config->Get('WebURL')."Ticket/Modify.html?id=".$TicketObj->Id."&resolve=1" + ); + $m->abort; +} +</%init> diff --git a/rt/share/html/Callbacks/RTx-Calendar/Elements/Header/Head b/rt/share/html/Callbacks/RTx-Calendar/Elements/Header/Head new file mode 100644 index 000000000..c1f24c2b4 --- /dev/null +++ b/rt/share/html/Callbacks/RTx-Calendar/Elements/Header/Head @@ -0,0 +1,2 @@ +<link rel="stylesheet" href="<%$RT::WebPath%>/NoAuth/css/calendar.css" type="text/css" media="all" /> + diff --git a/rt/share/html/Callbacks/RTx-Calendar/Ticket/Elements/Tabs/Default b/rt/share/html/Callbacks/RTx-Calendar/Ticket/Elements/Tabs/Default new file mode 100644 index 000000000..cb46fdaf6 --- /dev/null +++ b/rt/share/html/Callbacks/RTx-Calendar/Ticket/Elements/Tabs/Default @@ -0,0 +1,19 @@ +<%init> +my $args; +$args= "?" . $m->comp( + '/Elements/QueryString', + Query => $ARGS{'Query'} || $session{'CurrentSearchHash'}->{'Query'}, + Format => $ARGS{'Format'} || $session{'CurrentSearchHash'}->{'Format'}, + OrderBy => $ARGS{'OrderBy'} || $session{'CurrentSearchHash'}->{'OrderBy'}, + Order => $ARGS{'Order'} || $session{'CurrentSearchHash'}->{'Order'}, + Page => $ARGS{'Page'} || $session{'CurrentSearchHash'}->{'Page'}, + Rows => $ARGS{'Rows'}, + ) if ($ARGS{'Query'} or $session{'CurrentSearchHash'}->{'Query'}); +$args ||= ''; + +$tabs->{'zz'} = { title =>loc("Calendar"), + path => "Search/Calendar.html$args" }; +</%init> +<%args> +$tabs +</%args> diff --git a/rt/share/html/Callbacks/RTx-Calendar/User/Elements/Tabs/Default b/rt/share/html/Callbacks/RTx-Calendar/User/Elements/Tabs/Default new file mode 100644 index 000000000..06413e278 --- /dev/null +++ b/rt/share/html/Callbacks/RTx-Calendar/User/Elements/Tabs/Default @@ -0,0 +1,9 @@ +<%init> + $tabs->{'z'} = { title =>loc("Calendar"), + path => "Prefs/Calendar.html" }; +</%init> +<%args> +$tabs +$current_subtab => undef +$Searches => undef +</%args> diff --git a/rt/share/html/Callbacks/RTx-Statistics/Elements/Tabs/Default b/rt/share/html/Callbacks/RTx-Statistics/Elements/Tabs/Default new file mode 100644 index 000000000..d4ca2b95e --- /dev/null +++ b/rt/share/html/Callbacks/RTx-Statistics/Elements/Tabs/Default @@ -0,0 +1,11 @@ +<%init> +use RTx::Statistics; +if (($Statistics::RestrictAccess == 0) || ($session{'CurrentUser'}->HasRight( Right => 'ShowConfigTab', + Object => $RT::System ))) { + $toptabs->{'ZZ-RTx-STATS'} = { title => 'RTx-Statistics', + path => "RTx/Statistics/index.html" }; +} +</%init> +<%args> + $toptabs =>undef +</%args> diff --git a/rt/share/html/Callbacks/SearchCustomerFields/Search/Elements/PickBasics/Default b/rt/share/html/Callbacks/SearchCustomerFields/Search/Elements/PickBasics/Default new file mode 100644 index 000000000..abbafbcf1 --- /dev/null +++ b/rt/share/html/Callbacks/SearchCustomerFields/Search/Elements/PickBasics/Default @@ -0,0 +1,46 @@ +<%init> +push @$Conditions, + { + Name => 'Agentnum', + Field => 'Agent', + Op => { + Type => 'component', + Path => '/Elements/SelectBoolean', + Arguments => { TrueVal=> '=', FalseVal => '!=' }, + }, + Value => { + Type => 'component', + Path => '/Elements/SelectCustomerAgent', + }, + }, + { + Name => 'Classnum', + Field => 'Customer Class', + Op => { + Type => 'component', + Path => '/Elements/SelectBoolean', + Arguments => { TrueVal=> '=', FalseVal => '!=' }, + }, + Value => { + Type => 'component', + Path => '/Elements/SelectCustomerClass', + }, + }, + { + Name => 'Tagnum', + Field => 'Tag', + Op => { + Type => 'component', + Path => '/Elements/SelectBoolean', + Arguments => { TrueVal=> '=', FalseVal => '!=' }, + }, + Value => { + Type => 'component', + Path => '/Elements/SelectCustomerTag', + }, + }, +; +</%init> +<%ARGS> +$Conditions => [] +</%ARGS> diff --git a/rt/share/html/Callbacks/TimeToResolve/Elements/RT__Ticket/ColumnMap/Once b/rt/share/html/Callbacks/TimeToResolve/Elements/RT__Ticket/ColumnMap/Once new file mode 100644 index 000000000..df5d29e14 --- /dev/null +++ b/rt/share/html/Callbacks/TimeToResolve/Elements/RT__Ticket/ColumnMap/Once @@ -0,0 +1,13 @@ +<%init> +$COLUMN_MAP->{'TimeToResolve'} = { + title => 'Time to Resolve', + attribute => 'Resolved', + value => sub { + my $r = $_[0]->ResolvedObj or return ''; + return $r->DiffAsString($_[0]->CreatedObj); + } +}; +</%init> +<%ARGS> +$COLUMN_MAP => {} +</%ARGS> diff --git a/rt/share/html/Callbacks/TimeToResolve/Search/Elements/BuildFormatString/SetFieldsOnce b/rt/share/html/Callbacks/TimeToResolve/Search/Elements/BuildFormatString/SetFieldsOnce new file mode 100644 index 000000000..54dcae04c --- /dev/null +++ b/rt/share/html/Callbacks/TimeToResolve/Search/Elements/BuildFormatString/SetFieldsOnce @@ -0,0 +1,8 @@ +<%init> +my $i = 1; +$i++ until ($i == scalar(@$Fields) or $Fields->[$i-1] =~ /^Resolved/); +splice @$Fields, $i, 0, 'TimeToResolve'; +</%init> +<%ARGS> +$Fields => [] +</%ARGS> |