99 lines
3.0 KiB
Perl
99 lines
3.0 KiB
Perl
# --
|
|
# 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::Output::HTML::Notification::SystemMaintenanceCheck;
|
|
|
|
use parent 'Kernel::Output::HTML::Base';
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
our @ObjectDependencies = (
|
|
'Kernel::System::DateTime',
|
|
'Kernel::System::SystemMaintenance',
|
|
'Kernel::Output::HTML::Layout',
|
|
'Kernel::Config',
|
|
);
|
|
|
|
sub Run {
|
|
my ( $Self, %Param ) = @_;
|
|
|
|
# get system maintenance object
|
|
my $SystemMaintenanceObject = $Kernel::OM->Get('Kernel::System::SystemMaintenance');
|
|
|
|
my $ActiveMaintenance = $SystemMaintenanceObject->SystemMaintenanceIsActive();
|
|
|
|
# get layout object
|
|
my $LayoutObject = $Kernel::OM->Get('Kernel::Output::HTML::Layout');
|
|
|
|
# check if system maintenance is active
|
|
if ($ActiveMaintenance) {
|
|
|
|
my $SystemMaintenanceData = $SystemMaintenanceObject->SystemMaintenanceGet(
|
|
ID => $ActiveMaintenance,
|
|
UserID => $Self->{UserID},
|
|
);
|
|
|
|
my $NotifyMessage =
|
|
$SystemMaintenanceData->{NotifyMessage}
|
|
|| $Kernel::OM->Get('Kernel::Config')->Get('SystemMaintenance::IsActiveDefaultNotification')
|
|
|| $LayoutObject->{LanguageObject}->Translate("System maintenance is active!");
|
|
|
|
return $LayoutObject->Notify(
|
|
Priority => 'Notice',
|
|
Data =>
|
|
$LayoutObject->{LanguageObject}->Translate(
|
|
$NotifyMessage,
|
|
),
|
|
);
|
|
}
|
|
|
|
my %SystemMaintenanceIsComing = $SystemMaintenanceObject->SystemMaintenanceIsComing();
|
|
|
|
if (%SystemMaintenanceIsComing) {
|
|
|
|
my $MaintenanceStartDateTimeObject = $Kernel::OM->Create(
|
|
'Kernel::System::DateTime',
|
|
ObjectParams => {
|
|
Epoch => $SystemMaintenanceIsComing{StartDate},
|
|
},
|
|
);
|
|
my $MaintenanceStartDateTime = $LayoutObject->{LanguageObject}->FormatTimeString(
|
|
$MaintenanceStartDateTimeObject->ToString(),
|
|
'DateFormat',
|
|
1,
|
|
);
|
|
|
|
my $MaintenanceStopDateTimeObject = $Kernel::OM->Create(
|
|
'Kernel::System::DateTime',
|
|
ObjectParams => {
|
|
Epoch => $SystemMaintenanceIsComing{StopDate},
|
|
},
|
|
);
|
|
my $MaintenanceStopDateTime = $LayoutObject->{LanguageObject}->FormatTimeString(
|
|
$MaintenanceStopDateTimeObject->ToString(),
|
|
'DateFormat',
|
|
1,
|
|
);
|
|
|
|
return $LayoutObject->Notify(
|
|
Priority => 'Notice',
|
|
Data =>
|
|
$LayoutObject->{LanguageObject}->Translate(
|
|
"A system maintenance period will start at: %s and is expected to stop at: %s",
|
|
$MaintenanceStartDateTime, $MaintenanceStopDateTime
|
|
),
|
|
);
|
|
|
|
}
|
|
|
|
return '';
|
|
}
|
|
|
|
1;
|