init III
This commit is contained in:
163
Perl OTRS/Kernel/System/Console/Command/Admin/Queue/Add.pm
Normal file
163
Perl OTRS/Kernel/System/Console/Command/Admin/Queue/Add.pm
Normal file
@@ -0,0 +1,163 @@
|
||||
# --
|
||||
# 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::System::Console::Command::Admin::Queue::Add;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent qw(Kernel::System::Console::BaseCommand);
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::Group',
|
||||
'Kernel::System::Queue',
|
||||
'Kernel::System::SystemAddress',
|
||||
);
|
||||
|
||||
sub Configure {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
$Self->Description('Create a new queue.');
|
||||
$Self->AddOption(
|
||||
Name => 'name',
|
||||
Description => 'Queue name for the new queue.',
|
||||
Required => 1,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'group',
|
||||
Description => 'Group which should be assigned to the new queue.',
|
||||
Required => 1,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'system-address-id',
|
||||
Description => 'ID of the system address which should be assigned to the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/\d/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'system-address-name',
|
||||
Description => 'System email address which should be assigned to the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'comment',
|
||||
Description => 'Comment for the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'unlock-timeout',
|
||||
Description => 'Unlock timeout in minutes for the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/\d/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'first-response-time',
|
||||
Description => 'Ticket first response time in minutes for the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/\d/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'update-time',
|
||||
Description => 'Ticket update time in minutes for the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/\d/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'solution-time',
|
||||
Description => 'Ticket solution time in minutes for the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/\d/smx,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'calendar',
|
||||
Description => 'Calendar order number for the new queue.',
|
||||
Required => 0,
|
||||
HasValue => 1,
|
||||
ValueRegex => qr/.*/smx,
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub Run {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
$Self->Print("<yellow>Adding a new queue...</yellow>\n");
|
||||
|
||||
# check group
|
||||
my $Group = $Self->GetOption('group');
|
||||
my $GroupID = $Kernel::OM->Get('Kernel::System::Group')->GroupLookup( Group => $Group );
|
||||
if ( !$GroupID ) {
|
||||
$Self->PrintError("Found no GroupID for $Group\n");
|
||||
return $Self->ExitCodeError();
|
||||
}
|
||||
|
||||
my $SystemAddressID = $Self->GetOption('system-address-id');
|
||||
my $SystemAddressName = $Self->GetOption('system-address-name');
|
||||
|
||||
# check System Address
|
||||
if ($SystemAddressName) {
|
||||
my %SystemAddressList = $Kernel::OM->Get('Kernel::System::SystemAddress')->SystemAddressList(
|
||||
Valid => 1
|
||||
);
|
||||
ADDRESS:
|
||||
for my $ID ( sort keys %SystemAddressList ) {
|
||||
my %SystemAddressInfo = $Kernel::OM->Get('Kernel::System::SystemAddress')->SystemAddressGet(
|
||||
ID => $ID
|
||||
);
|
||||
if ( $SystemAddressInfo{Name} eq $SystemAddressName ) {
|
||||
$SystemAddressID = $ID;
|
||||
last ADDRESS;
|
||||
}
|
||||
}
|
||||
if ( !$SystemAddressID ) {
|
||||
$Self->PrintError("Address $SystemAddressName not found\n");
|
||||
return $Self->ExitCodeError();
|
||||
}
|
||||
}
|
||||
|
||||
# add queue
|
||||
my $Success = $Kernel::OM->Get('Kernel::System::Queue')->QueueAdd(
|
||||
Name => $Self->GetOption('name'),
|
||||
GroupID => $GroupID,
|
||||
SystemAddressID => $SystemAddressID || $Self->GetOption('system-address-id') || undef,
|
||||
Comment => $Self->GetOption('comment'),
|
||||
UnlockTimeout => $Self->GetOption('unlock-timeout'),
|
||||
FirstResponseTime => $Self->GetOption('first-response-time'),
|
||||
UpdateTime => $Self->GetOption('update-time'),
|
||||
SolutionTime => $Self->GetOption('solution-time'),
|
||||
Calendar => $Self->GetOption('calendar'),
|
||||
ValidID => 1,
|
||||
UserID => 1,
|
||||
);
|
||||
|
||||
# error handling
|
||||
if ( !$Success ) {
|
||||
$Self->PrintError("Can't create queue.\n");
|
||||
return $Self->ExitCodeError();
|
||||
}
|
||||
|
||||
$Self->Print("<green>Done.</green>\n");
|
||||
|
||||
return $Self->ExitCodeOk();
|
||||
}
|
||||
|
||||
1;
|
||||
85
Perl OTRS/Kernel/System/Console/Command/Admin/Queue/List.pm
Normal file
85
Perl OTRS/Kernel/System/Console/Command/Admin/Queue/List.pm
Normal file
@@ -0,0 +1,85 @@
|
||||
# --
|
||||
# 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::System::Console::Command::Admin::Queue::List;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use parent qw(Kernel::System::Console::BaseCommand);
|
||||
|
||||
our @ObjectDependencies = (
|
||||
'Kernel::System::Queue',
|
||||
'Kernel::System::Valid',
|
||||
);
|
||||
|
||||
sub Configure {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
$Self->Description('List existing queues.');
|
||||
$Self->AddOption(
|
||||
Name => 'all',
|
||||
Description => "Show all queues.",
|
||||
Required => 0,
|
||||
HasValue => 0,
|
||||
);
|
||||
$Self->AddOption(
|
||||
Name => 'verbose',
|
||||
Description => "More detailled output.",
|
||||
Required => 0,
|
||||
HasValue => 0,
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub Run {
|
||||
my ( $Self, %Param ) = @_;
|
||||
|
||||
$Self->Print("<yellow>Listing Queues...</yellow>\n");
|
||||
|
||||
my $QueueObject = $Kernel::OM->Get('Kernel::System::Queue');
|
||||
my %ValidList = $Kernel::OM->Get('Kernel::System::Valid')->ValidList();
|
||||
|
||||
my $Valid = !$Self->GetOption('all');
|
||||
my %Queues = $QueueObject->QueueList( Valid => $Valid );
|
||||
|
||||
if ( $Self->GetOption('verbose') ) {
|
||||
for ( sort keys %Queues ) {
|
||||
my %Queue = $QueueObject->QueueGet( ID => $_ );
|
||||
|
||||
$Self->Print( sprintf( "%6s", $_ ) . " $Queue{'Name'} " );
|
||||
if ( $Queue{'ValidID'} == 1 ) {
|
||||
$Self->Print("<green>$ValidList{$Queue{'ValidID'}}</green>\n");
|
||||
}
|
||||
else {
|
||||
$Self->Print("<yellow>$ValidList{$Queue{'ValidID'}}</yellow>\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for ( sort keys %Queues ) {
|
||||
$Self->Print(" $Queues{$_}\n");
|
||||
}
|
||||
}
|
||||
|
||||
$Self->Print("<green>Done.</green>\n");
|
||||
return $Self->ExitCodeOk();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 TERMS AND CONDITIONS
|
||||
|
||||
This software is part of the OTRS project (L<https://otrs.org/>).
|
||||
|
||||
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 L<https://www.gnu.org/licenses/gpl-3.0.txt>.
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user