& /Elements/Header, Title => $title &> <& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &>
<%INIT> my @results; my $title = loc('Away Mode'); my $user = $session{'CurrentUser'}->UserObj; my $pref = $user->Preferences( 'AwayMode', {} ); if ($Update) { my $start_iso = ''; my $end_iso = ''; if ( length $StartDate ) { my $start_date = RT::Date->new( $session{'CurrentUser'} ); $start_date->Set( Format => 'unknown', Value => $StartDate ); $start_iso = $start_date->ISO( Time => 0 ) if $start_date->Unix > 0; } if ( length $EndDate ) { my $end_date = RT::Date->new( $session{'CurrentUser'} ); $end_date->Set( Format => 'unknown', Value => $EndDate ); $end_iso = $end_date->ISO( Time => 0 ) if $end_date->Unix > 0; } if ( $start_iso && $end_iso && $end_iso lt $start_iso ) { push @results, loc("End date can't be before start date."); } else { $pref = { Enabled => ( $Enabled ? 1 : 0 ), StartDate => $start_iso, EndDate => $end_iso, }; my ( $ok, $msg ) = $user->SetPreferences( 'AwayMode', $pref ); push @results, $ok ? loc('Away Mode preferences updated.') : $msg; } } my $is_away = RT::Extension::AwayMode->IsUserAway($user); %INIT> <%ARGS> $Enabled => 0 $StartDate => '' $EndDate => '' $Update => 0 %ARGS>