init III
This commit is contained in:
187
Perl OTRS/Kernel/Modules/AgentITSMSLAZoom.pm
Normal file
187
Perl OTRS/Kernel/Modules/AgentITSMSLAZoom.pm
Normal file
@@ -0,0 +1,187 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (GPL). If you
|
||||
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
|
||||
# --
|
||||
|
||||
package Kernel::Modules::AgentITSMSLAZoom;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Kernel::Language qw(Translatable);
|
||||
|
||||
our $ObjectManagerDisabled = 1;
|
||||
|
||||
sub new {
|
||||
my ( $Type, %Param ) = @_;
|
||||
|
||||
# allocate new hash for object
|
||||
my $Self = {%Param};
|
||||
bless( $Self, $Type );
|
||||
|
||||
return $Self;
|
||||
}
|
||||
|
||||
sub Run {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
# get params
|
||||
my $SLAID = $Kernel::OM->Get('Kernel::System::Web::Request')->GetParam( Param => "SLAID" );
|
||||
|
||||
# get layout object
|
||||
my $LayoutObject = $Kernel::OM->Get('Kernel::Output::HTML::Layout');
|
||||
|
||||
# check needed stuff
|
||||
if ( !$SLAID ) {
|
||||
return $LayoutObject->ErrorScreen(
|
||||
Message => Translatable('No SLAID is given!'),
|
||||
Comment => Translatable('Please contact the administrator.'),
|
||||
);
|
||||
}
|
||||
|
||||
# get sla
|
||||
my %SLA = $Kernel::OM->Get('Kernel::System::SLA')->SLAGet(
|
||||
SLAID => $SLAID,
|
||||
UserID => $Self->{UserID},
|
||||
);
|
||||
if ( !$SLA{SLAID} ) {
|
||||
return $LayoutObject->ErrorScreen(
|
||||
Message => $LayoutObject->{LanguageObject}->Translate( 'SLAID %s not found in database!', $SLAID ),
|
||||
Comment => Translatable('Please contact the administrator.'),
|
||||
);
|
||||
}
|
||||
|
||||
# get config object
|
||||
my $ConfigObject = $Kernel::OM->Get('Kernel::Config');
|
||||
|
||||
# get calendar name
|
||||
if ( $SLA{Calendar} ) {
|
||||
$SLA{CalendarName} = "Calendar $SLA{Calendar} - "
|
||||
. $ConfigObject->Get( "TimeZone::Calendar" . $SLA{Calendar} . "Name" );
|
||||
}
|
||||
else {
|
||||
$SLA{CalendarName} = Translatable('Calendar Default');
|
||||
}
|
||||
|
||||
# run config item menu modules
|
||||
if ( ref $ConfigObject->Get('ITSMSLA::Frontend::MenuModule') eq 'HASH' ) {
|
||||
my %Menus = %{ $ConfigObject->Get('ITSMSLA::Frontend::MenuModule') };
|
||||
my $Counter = 0;
|
||||
for my $Menu ( sort keys %Menus ) {
|
||||
|
||||
# load module
|
||||
if ( $Kernel::OM->Get('Kernel::System::Main')->Require( $Menus{$Menu}->{Module} ) ) {
|
||||
my $Object = $Menus{$Menu}->{Module}->new(
|
||||
%{$Self},
|
||||
SLAID => $Self->{SLAID},
|
||||
);
|
||||
|
||||
# set classes
|
||||
if ( $Menus{$Menu}->{Target} ) {
|
||||
if ( $Menus{$Menu}->{Target} eq 'PopUp' ) {
|
||||
$Menus{$Menu}->{MenuClass} = 'AsPopup';
|
||||
}
|
||||
elsif ( $Menus{$Menu}->{Target} eq 'Back' ) {
|
||||
$Menus{$Menu}->{MenuClass} = 'HistoryBack';
|
||||
}
|
||||
}
|
||||
|
||||
# run module
|
||||
$Counter = $Object->Run(
|
||||
%Param,
|
||||
SLA => \%SLA,
|
||||
Counter => $Counter,
|
||||
Config => $Menus{$Menu},
|
||||
);
|
||||
}
|
||||
else {
|
||||
return $LayoutObject->FatalError();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $SLA{ServiceIDs} && ref $SLA{ServiceIDs} eq 'ARRAY' && @{ $SLA{ServiceIDs} } ) {
|
||||
|
||||
# output row
|
||||
$LayoutObject->Block(
|
||||
Name => 'Service',
|
||||
);
|
||||
|
||||
# create service list
|
||||
my %ServiceList;
|
||||
for my $ServiceID ( @{ $SLA{ServiceIDs} } ) {
|
||||
|
||||
# get service data
|
||||
my %Service = $Kernel::OM->Get('Kernel::System::Service')->ServiceGet(
|
||||
ServiceID => $ServiceID,
|
||||
IncidentState => 1,
|
||||
UserID => $Self->{UserID},
|
||||
);
|
||||
|
||||
# add service to hash
|
||||
$ServiceList{$ServiceID} = \%Service;
|
||||
}
|
||||
|
||||
# set incident signal
|
||||
my %InciSignals = (
|
||||
Translatable('operational') => 'greenled',
|
||||
Translatable('warning') => 'yellowled',
|
||||
Translatable('incident') => 'redled',
|
||||
);
|
||||
|
||||
my $CssClass = '';
|
||||
for my $ServiceID (
|
||||
sort { $ServiceList{$a}->{Name} cmp $ServiceList{$b}->{Name} }
|
||||
keys %ServiceList
|
||||
)
|
||||
{
|
||||
|
||||
# set output object
|
||||
$CssClass = $CssClass eq 'searchpassive' ? 'searchactive' : 'searchpassive';
|
||||
|
||||
# output row
|
||||
$LayoutObject->Block(
|
||||
Name => 'ServiceRow',
|
||||
Data => {
|
||||
%{ $ServiceList{$ServiceID} },
|
||||
CurInciSignal => $InciSignals{ $ServiceList{$ServiceID}->{CurInciStateType} },
|
||||
CssClass => $CssClass,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
# get user object
|
||||
my $UserObject = $Kernel::OM->Get('Kernel::System::User');
|
||||
|
||||
# get create user data
|
||||
$SLA{CreateByName} = $UserObject->UserName(
|
||||
UserID => $SLA{CreateBy},
|
||||
);
|
||||
|
||||
# get change user data
|
||||
$SLA{ChangeByName} = $UserObject->UserName(
|
||||
UserID => $SLA{ChangeBy},
|
||||
);
|
||||
|
||||
# output header
|
||||
my $Output = $LayoutObject->Header();
|
||||
$Output .= $LayoutObject->NavigationBar();
|
||||
|
||||
# generate output
|
||||
$Output .= $LayoutObject->Output(
|
||||
TemplateFile => 'AgentITSMSLAZoom',
|
||||
Data => {
|
||||
%Param,
|
||||
%SLA,
|
||||
},
|
||||
);
|
||||
$Output .= $LayoutObject->Footer();
|
||||
|
||||
return $Output;
|
||||
}
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user