Commit 31a77bea4e5b2baf6158479ccd61a99b7fc4adfe
1 parent
6bf50fa9
Exists in
master
Ajustes para OTRS 4.0.3
Showing
9 changed files
with
303 additions
and
286 deletions
Show diff stats
Kernel/Config/Files/QueueService.xml
| 1 | <?xml version="1.0" encoding="UTF-8" ?> | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
| 2 | <otrs_config init="Application" version="1.0"> | 2 | <otrs_config init="Application" version="1.0"> |
| 3 | - | ||
| 4 | <ConfigItem Name="Frontend::Module###QueueService" Required="0" Valid="1"> | 3 | <ConfigItem Name="Frontend::Module###QueueService" Required="0" Valid="1"> |
| 5 | - <Description Translatable="1">Frontend module registration for the service per queue</Description> | 4 | + <Description Lang="en">Frontend module registration for the service per queue</Description> |
| 5 | + <Description Lang="pt_BR">Registro do módulo de serviços por fila</Description> | ||
| 6 | <Group>Ticket</Group> | 6 | <Group>Ticket</Group> |
| 7 | <SubGroup>Frontend::Admin::ModuleRegistration</SubGroup> | 7 | <SubGroup>Frontend::Admin::ModuleRegistration</SubGroup> |
| 8 | <Setting> | 8 | <Setting> |
| 9 | <FrontendModuleReg> | 9 | <FrontendModuleReg> |
| 10 | <Group>admin</Group> | 10 | <Group>admin</Group> |
| 11 | <Description>Admin</Description> | 11 | <Description>Admin</Description> |
| 12 | - <Title Translatable="1">Services per queue</Title> | 12 | + <Title Lang="en">Services per queue</Title> |
| 13 | + <Title Lang="pt_BR">Serviços por fila</Title> | ||
| 13 | <NavBarName>Admin</NavBarName> | 14 | <NavBarName>Admin</NavBarName> |
| 14 | <NavBarModule> | 15 | <NavBarModule> |
| 15 | <Module>Kernel::Output::HTML::NavBarModuleAdmin</Module> | 16 | <Module>Kernel::Output::HTML::NavBarModuleAdmin</Module> |
| 16 | - <Name Translatable="1">Service per queue</Name> | ||
| 17 | - <Description Translatable="1">Create and manage services per queue</Description> | 17 | + <Name Lang="en">Services per queue</Name> |
| 18 | + <Name Lang="pt_BR">Serviços por fila</Name> | ||
| 19 | + <Description Lang="en">Create and manages services per queue</Description> | ||
| 20 | + <Description Lang="pt_BR">Cria e gerencia serviços por fila</Description> | ||
| 18 | <Block>Ticket</Block> | 21 | <Block>Ticket</Block> |
| 19 | <Prio>900</Prio> | 22 | <Prio>900</Prio> |
| 20 | </NavBarModule> | 23 | </NavBarModule> |
Kernel/Language/pt_BR_QueueService.pm
| 1 | # -- | 1 | # -- |
| 2 | -# Kernel/Modules/pt_BR_NewTicketWizard.pm - frontend module for creating custom new ticket interfaces | ||
| 3 | -# Translations | 2 | +# Kernel/Modules/pt_BR_QueueService.pm - module to associate services per queue |
| 3 | +# | ||
| 4 | +# Copyright (C) 2014 - SeTIC - UFSC - http://setic.ufsc.br/ | ||
| 5 | +# Version 01/06/2015 - Adjusts for OTRS 4 | ||
| 4 | # | 6 | # |
| 5 | -# Copyright (C) 2014 (Rodrigo Goncalves) (rodrigo.g@ufsc.br) | ||
| 6 | # -- | 7 | # -- |
| 7 | # This software comes with ABSOLUTELY NO WARRANTY. For details, see | 8 | # This software comes with ABSOLUTELY NO WARRANTY. For details, see |
| 8 | # the enclosed file COPYING for license information (AGPL). If you | 9 | # the enclosed file COPYING for license information (AGPL). If you |
| @@ -12,11 +13,14 @@ package Kernel::Language::pt_BR_QueueService; | @@ -12,11 +13,14 @@ package Kernel::Language::pt_BR_QueueService; | ||
| 12 | 13 | ||
| 13 | use strict; | 14 | use strict; |
| 14 | use warnings; | 15 | use warnings; |
| 16 | +use utf8; | ||
| 15 | 17 | ||
| 16 | sub Data { | 18 | sub Data { |
| 17 | my $Self = shift; | 19 | my $Self = shift; |
| 18 | - | ||
| 19 | $Self->{Translation}->{'Services per queue'} = 'Serviços por fila'; | 20 | $Self->{Translation}->{'Services per queue'} = 'Serviços por fila'; |
| 21 | + $Self->{Translation}->{'Create and manages services per queue'} = 'Cria e gerencia serviços por fila'; | ||
| 22 | + | ||
| 20 | return 1; | 23 | return 1; |
| 21 | } | 24 | } |
| 25 | + | ||
| 22 | 1; | 26 | 1; |
| 23 | \ No newline at end of file | 27 | \ No newline at end of file |
Kernel/Modules/QueueService.pm
| 1 | # -- | 1 | # -- |
| 2 | # Kernel/Modules/QueueService.pm - frontend module | 2 | # Kernel/Modules/QueueService.pm - frontend module |
| 3 | -# Copyright (C) (2014) (Rodrigo Gonçalves) (rodrigo.g@ufsc.br) | ||
| 4 | -# -- | ||
| 5 | -# $Id: writing-otrs-application.xml,v 1.1 2010/08/13 08:59:28 mg Exp $ | ||
| 6 | -# -- | ||
| 7 | -# This software comes with ABSOLUTELY NO WARRANTY. For details, see | ||
| 8 | -# the enclosed file COPYING for license information (AGPL). If you | ||
| 9 | -# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. | ||
| 10 | -# -- | ||
| 11 | -# Autor: Carlos Rebelato | 3 | +# |
| 4 | +# Copyright (C) 2014 - SeTIC - UFSC - http://setic.ufsc.br/ | ||
| 5 | +# Version 01/06/2015 - Adjusts for OTRS 4 | ||
| 6 | +# | ||
| 7 | +# Autor: Carlos Rebelato, Rodrigo Gonçalves | ||
| 12 | # Data.: 19/02/2014 - Versão inicial | 8 | # Data.: 19/02/2014 - Versão inicial |
| 13 | # | 9 | # |
| 14 | package Kernel::Modules::QueueService; | 10 | package Kernel::Modules::QueueService; |
| @@ -20,6 +16,20 @@ require Kernel::System::QueueService; | @@ -20,6 +16,20 @@ require Kernel::System::QueueService; | ||
| 20 | require Kernel::System::Service; | 16 | require Kernel::System::Service; |
| 21 | require Kernel::System::Queue; | 17 | require Kernel::System::Queue; |
| 22 | 18 | ||
| 19 | +our @ObjectDependencies = ( | ||
| 20 | + "Kernel::System::Web::Request", # Old ParamObject | ||
| 21 | + "Kernel::System::DB", | ||
| 22 | + "Kernel::System::Ticket", | ||
| 23 | + "Kernel::Output::HTML::Layout", # Old LayoutObject | ||
| 24 | + "Kernel::System::Log", | ||
| 25 | + "Kernel::System::Queue", | ||
| 26 | + "Kernel::Config", | ||
| 27 | + "Kernel::System::Encode", | ||
| 28 | + "Kernel::System::Main", | ||
| 29 | + "Kernel::System::QueueService", # Ask direct to manager | ||
| 30 | + "Kernel::System::Service" # Ask direct to manager | ||
| 31 | +); | ||
| 32 | + | ||
| 23 | sub new { | 33 | sub new { |
| 24 | my ( $Type, %Param ) = @_; | 34 | my ( $Type, %Param ) = @_; |
| 25 | 35 | ||
| @@ -27,33 +37,21 @@ sub new { | @@ -27,33 +37,21 @@ sub new { | ||
| 27 | my $Self = {%Param}; | 37 | my $Self = {%Param}; |
| 28 | bless( $Self, $Type ); | 38 | bless( $Self, $Type ); |
| 29 | 39 | ||
| 30 | - # check needed objects | ||
| 31 | - for ( | ||
| 32 | - qw(ParamObject DBObject TicketObject LayoutObject LogObject QueueObject ConfigObject EncodeObject MainObject) | ||
| 33 | - ) | ||
| 34 | - { | ||
| 35 | - if ( !$Self->{$_} ) { | ||
| 36 | - $Self->{LayoutObject}->FatalError( Message => "Got no $_!" ); | ||
| 37 | - } | ||
| 38 | - } | ||
| 39 | - | ||
| 40 | - # create needed objects | ||
| 41 | - $Self->{QueueServiceObject} = Kernel::System::QueueService->new(%Param); | ||
| 42 | - $Self->{ServiceObject} = Kernel::System::Service->new(%Param); | ||
| 43 | - | ||
| 44 | return $Self; | 40 | return $Self; |
| 45 | } | 41 | } |
| 46 | 42 | ||
| 47 | sub Run { | 43 | sub Run { |
| 48 | my ( $Self, %Param ) = @_; | 44 | my ( $Self, %Param ) = @_; |
| 49 | 45 | ||
| 50 | - my $SubAction = $Self->{ParamObject}->GetParam( Param => "Subaction" ); | 46 | + my $ParamObject = $Kernel::OM->Get("Kernel::System::Web::Request"); |
| 47 | + | ||
| 48 | + my $SubAction = $ParamObject->GetParam( Param => "Subaction" ); | ||
| 51 | 49 | ||
| 52 | if ( $SubAction eq "ServiceEdit" ) { | 50 | if ( $SubAction eq "ServiceEdit" ) { |
| 53 | - return $Self->ShowChangeService( ID => $Self->{ParamObject}->GetParam( Param => "ID" ) ); | 51 | + return $Self->ShowChangeService( ID => $ParamObject->GetParam( Param => "ID" ) ); |
| 54 | } | 52 | } |
| 55 | elsif ( $SubAction eq "QueueEdit" ) { | 53 | elsif ( $SubAction eq "QueueEdit" ) { |
| 56 | - return $Self->ShowChangeQueue( ID => $Self->{ParamObject}->GetParam( Param => "ID" ) ); | 54 | + return $Self->ShowChangeQueue( ID => $ParamObject->GetParam( Param => "ID" ) ); |
| 57 | } | 55 | } |
| 58 | elsif ( $SubAction eq "ChangeService" ) { | 56 | elsif ( $SubAction eq "ChangeService" ) { |
| 59 | $Self->ChangeService(); | 57 | $Self->ChangeService(); |
| @@ -72,11 +70,12 @@ sub ShowOverview() { | @@ -72,11 +70,12 @@ sub ShowOverview() { | ||
| 72 | my ( $Self, %Param ) = @_; | 70 | my ( $Self, %Param ) = @_; |
| 73 | my %Data = (); | 71 | my %Data = (); |
| 74 | 72 | ||
| 75 | - my %Queues = $Self->{QueueObject}->QueueList( Valid => 1 ); | ||
| 76 | - my %Services = $Self->{ServiceObject}->ServiceList( UserID => 1 ); | 73 | + my %Queues = $Kernel::OM->Get("Kernel::System::Queue")->QueueList( Valid => 1 ); |
| 74 | + my %Services = $Kernel::OM->Get("Kernel::System::Service")->ServiceList( UserID => 1 ); | ||
| 75 | + my $LayoutObject = $Kernel::OM->Get("Kernel::Output::HTML::Layout"); | ||
| 77 | 76 | ||
| 78 | foreach my $service ( sort { uc( $Services{$a} ) cmp uc( $Services{$b} ) } keys %Services ) { | 77 | foreach my $service ( sort { uc( $Services{$a} ) cmp uc( $Services{$b} ) } keys %Services ) { |
| 79 | - $Self->{LayoutObject}->Block( | 78 | + $LayoutObject->Block( |
| 80 | Name => 'ListService', | 79 | Name => 'ListService', |
| 81 | Data => { | 80 | Data => { |
| 82 | ServiceID => $service, | 81 | ServiceID => $service, |
| @@ -86,7 +85,7 @@ sub ShowOverview() { | @@ -86,7 +85,7 @@ sub ShowOverview() { | ||
| 86 | } | 85 | } |
| 87 | 86 | ||
| 88 | foreach my $queue ( sort { uc( $Queues{$a} ) cmp uc( $Queues{$b} ) } keys %Queues ) { | 87 | foreach my $queue ( sort { uc( $Queues{$a} ) cmp uc( $Queues{$b} ) } keys %Queues ) { |
| 89 | - $Self->{LayoutObject}->Block( | 88 | + $LayoutObject->Block( |
| 90 | Name => 'ListQueue', | 89 | Name => 'ListQueue', |
| 91 | Data => { | 90 | Data => { |
| 92 | QueueID => $queue, | 91 | QueueID => $queue, |
| @@ -95,24 +94,24 @@ sub ShowOverview() { | @@ -95,24 +94,24 @@ sub ShowOverview() { | ||
| 95 | ); | 94 | ); |
| 96 | } | 95 | } |
| 97 | 96 | ||
| 98 | - my $Output = | ||
| 99 | - $Self->{LayoutObject}->Header( Title => $Self->{LayoutObject}->{LanguageObject}->Get("Services per queue") ); | ||
| 100 | - $Output .= $Self->{LayoutObject}->NavigationBar(); | ||
| 101 | - $Output .= $Self->{LayoutObject}->Output( | 97 | + my $Output = $LayoutObject->Header( Title => $LayoutObject->{LanguageObject}->Get("Services per queue") ); |
| 98 | + $Output .= $LayoutObject->NavigationBar(); | ||
| 99 | + $Output .= $LayoutObject->Output( | ||
| 102 | Data => \%Data, | 100 | Data => \%Data, |
| 103 | TemplateFile => 'QueueService' | 101 | TemplateFile => 'QueueService' |
| 104 | ); | 102 | ); |
| 105 | 103 | ||
| 106 | - $Output .= $Self->{LayoutObject}->Footer(); | 104 | + $Output .= $LayoutObject->Footer(); |
| 107 | return $Output; | 105 | return $Output; |
| 108 | } | 106 | } |
| 109 | 107 | ||
| 110 | sub ShowChangeService() { | 108 | sub ShowChangeService() { |
| 111 | my ( $Self, %Param ) = @_; | 109 | my ( $Self, %Param ) = @_; |
| 112 | my %Data = (); | 110 | my %Data = (); |
| 113 | - my %Service = $Self->{ServiceObject}->ServiceGet( ServiceID => $Param{ID}, UserID => 1 ); | ||
| 114 | - my %QueuesService = $Self->{QueueServiceObject}->GetQueueList( ServiceID => $Param{ID} ); | ||
| 115 | - my %Queues = $Self->{QueueObject}->QueueList( Valid => 1 ); | 111 | + my %Service = $Kernel::OM->Get("Kernel::System::Service")->ServiceGet( ServiceID => $Param{ID}, UserID => 1 ); |
| 112 | + my %QueuesService = $Kernel::OM->Get("Kernel::System::QueueService")->GetQueueList( ServiceID => $Param{ID} ); | ||
| 113 | + my %Queues = $Kernel::OM->Get("Kernel::System::Queue")->QueueList( Valid => 1 ); | ||
| 114 | + my $LayoutObject = $Kernel::OM->Get("Kernel::Output::HTML::Layout"); | ||
| 116 | 115 | ||
| 117 | $Data{Type} = "Queue"; | 116 | $Data{Type} = "Queue"; |
| 118 | $Data{Filter} = "Service"; | 117 | $Data{Filter} = "Service"; |
| @@ -120,13 +119,13 @@ sub ShowChangeService() { | @@ -120,13 +119,13 @@ sub ShowChangeService() { | ||
| 120 | $Data{Name} = $Service{Name}; | 119 | $Data{Name} = $Service{Name}; |
| 121 | $Data{ID} = $Service{ServiceID}; | 120 | $Data{ID} = $Service{ServiceID}; |
| 122 | 121 | ||
| 123 | - $Self->{LayoutObject}->Block( | 122 | + $LayoutObject->Block( |
| 124 | Name => 'ChangeHeader', | 123 | Name => 'ChangeHeader', |
| 125 | Data => \%Data | 124 | Data => \%Data |
| 126 | ); | 125 | ); |
| 127 | 126 | ||
| 128 | foreach my $queue ( sort { uc( $Queues{$a} ) cmp uc( $Queues{$b} ) } keys %Queues ) { | 127 | foreach my $queue ( sort { uc( $Queues{$a} ) cmp uc( $Queues{$b} ) } keys %Queues ) { |
| 129 | - $Self->{LayoutObject}->Block( | 128 | + $LayoutObject->Block( |
| 130 | Name => 'ChangeRow', | 129 | Name => 'ChangeRow', |
| 131 | Data => { | 130 | Data => { |
| 132 | Type => "Queue", | 131 | Type => "Queue", |
| @@ -138,23 +137,24 @@ sub ShowChangeService() { | @@ -138,23 +137,24 @@ sub ShowChangeService() { | ||
| 138 | } | 137 | } |
| 139 | 138 | ||
| 140 | my $Output = | 139 | my $Output = |
| 141 | - $Self->{LayoutObject}->Header( Title => $Self->{LayoutObject}->{LanguageObject}->Get("Services per queue") ); | ||
| 142 | - $Output .= $Self->{LayoutObject}->NavigationBar(); | ||
| 143 | - $Output .= $Self->{LayoutObject}->Output( | 140 | + $LayoutObject->Header( Title => $LayoutObject->{LanguageObject}->Get("Services per queue") ); |
| 141 | + $Output .= $LayoutObject->NavigationBar(); | ||
| 142 | + $Output .= $LayoutObject->Output( | ||
| 144 | Data => \%Data, | 143 | Data => \%Data, |
| 145 | TemplateFile => 'QueueServiceChange' | 144 | TemplateFile => 'QueueServiceChange' |
| 146 | ); | 145 | ); |
| 147 | 146 | ||
| 148 | - $Output .= $Self->{LayoutObject}->Footer(); | 147 | + $Output .= $LayoutObject->Footer(); |
| 149 | return $Output; | 148 | return $Output; |
| 150 | } | 149 | } |
| 151 | 150 | ||
| 152 | sub ShowChangeQueue() { | 151 | sub ShowChangeQueue() { |
| 153 | my ( $Self, %Param ) = @_; | 152 | my ( $Self, %Param ) = @_; |
| 154 | - my %Data = (); | ||
| 155 | - my %Queue = $Self->{QueueObject}->QueueGet( ID => $Param{ID} ); | ||
| 156 | - my %ServicesQueue = $Self->{QueueServiceObject}->GetServiceList( QueueID => $Param{ID} ); | ||
| 157 | - my %Services = $Self->{ServiceObject}->ServiceList( UserID => 1 ); | 153 | + my %Data = (); |
| 154 | + my %Queue = $Kernel::OM->Get("Kernel::System::Queue")->QueueGet( ID => $Param{ID} ); | ||
| 155 | + my %ServicesQueue = $Kernel::OM->Get("Kernel::System::QueueService")->GetServiceList( QueueID => $Param{ID} ); | ||
| 156 | + my %Services = $Kernel::OM->Get("Kernel::System::Service")->ServiceList( UserID => 1 ); | ||
| 157 | + my $LayoutObject = $Kernel::OM->Get("Kernel::Output::HTML::Layout"); | ||
| 158 | 158 | ||
| 159 | $Data{Type} = "Service"; | 159 | $Data{Type} = "Service"; |
| 160 | $Data{Filter} = "Queue"; | 160 | $Data{Filter} = "Queue"; |
| @@ -162,13 +162,13 @@ sub ShowChangeQueue() { | @@ -162,13 +162,13 @@ sub ShowChangeQueue() { | ||
| 162 | $Data{Name} = $Queue{Name}; | 162 | $Data{Name} = $Queue{Name}; |
| 163 | $Data{ID} = $Queue{QueueID}; | 163 | $Data{ID} = $Queue{QueueID}; |
| 164 | 164 | ||
| 165 | - $Self->{LayoutObject}->Block( | 165 | + $LayoutObject->Block( |
| 166 | Name => 'ChangeHeader', | 166 | Name => 'ChangeHeader', |
| 167 | Data => \%Data | 167 | Data => \%Data |
| 168 | ); | 168 | ); |
| 169 | 169 | ||
| 170 | foreach my $service ( sort { uc( $Services{$a} ) cmp uc( $Services{$b} ) } keys %Services ) { | 170 | foreach my $service ( sort { uc( $Services{$a} ) cmp uc( $Services{$b} ) } keys %Services ) { |
| 171 | - $Self->{LayoutObject}->Block( | 171 | + $LayoutObject->Block( |
| 172 | Name => 'ChangeRow', | 172 | Name => 'ChangeRow', |
| 173 | Data => { | 173 | Data => { |
| 174 | Type => "Service", | 174 | Type => "Service", |
| @@ -180,30 +180,29 @@ sub ShowChangeQueue() { | @@ -180,30 +180,29 @@ sub ShowChangeQueue() { | ||
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | my $Output = | 182 | my $Output = |
| 183 | - $Self->{LayoutObject}->Header( Title => $Self->{LayoutObject}->{LanguageObject}->Get("Services per queue") ); | ||
| 184 | - $Output .= $Self->{LayoutObject}->NavigationBar(); | ||
| 185 | - $Output .= $Self->{LayoutObject}->Output( | 183 | + $LayoutObject->Header( Title => $LayoutObject->{LanguageObject}->Get("Services per queue") ); |
| 184 | + $Output .= $LayoutObject->NavigationBar(); | ||
| 185 | + $Output .= $LayoutObject->Output( | ||
| 186 | Data => \%Data, | 186 | Data => \%Data, |
| 187 | TemplateFile => 'QueueServiceChange' | 187 | TemplateFile => 'QueueServiceChange' |
| 188 | ); | 188 | ); |
| 189 | 189 | ||
| 190 | - $Output .= $Self->{LayoutObject}->Footer(); | 190 | + $Output .= $LayoutObject->Footer(); |
| 191 | return $Output; | 191 | return $Output; |
| 192 | 192 | ||
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | sub ChangeService() { | 195 | sub ChangeService() { |
| 196 | my ( $Self, %Param ) = @_; | 196 | my ( $Self, %Param ) = @_; |
| 197 | - my @queueIDs = $Self->{ParamObject}->GetArray( Param => 'Queue' ); | ||
| 198 | - my $id = $Self->{ParamObject}->GetParam( Param => 'ID' ); | ||
| 199 | - $Self->{QueueServiceObject}->SetServiceQueues(ServiceID => $id, Queues => \@queueIDs); | 197 | + my @queueIDs = $Kernel::OM->Get("Kernel::System::Web::Request")->GetArray( Param => 'Queue' ); |
| 198 | + my $id = $Kernel::OM->Get("Kernel::System::Web::Request")->GetParam( Param => 'ID' ); | ||
| 199 | + $Kernel::OM->Get("Kernel::System::QueueService")->SetServiceQueues(ServiceID => $id, Queues => \@queueIDs); | ||
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | - | ||
| 203 | sub ChangeQueue() { | 202 | sub ChangeQueue() { |
| 204 | my ( $Self, %Param ) = @_; | 203 | my ( $Self, %Param ) = @_; |
| 205 | - my @serviceIDs = $Self->{ParamObject}->GetArray( Param => 'Service' ); | ||
| 206 | - my $id = $Self->{ParamObject}->GetParam( Param => 'ID' ); | ||
| 207 | - $Self->{QueueServiceObject}->SetQueueServices(QueueID => $id, Services => \@serviceIDs); | 204 | + my @serviceIDs = $Kernel::OM->Get("Kernel::System::Web::Request")->GetArray( Param => 'Service' ); |
| 205 | + my $id = $Kernel::OM->Get("Kernel::System::Web::Request")->GetParam( Param => 'ID' ); | ||
| 206 | + $Kernel::OM->Get("Kernel::System::QueueService")->SetQueueServices(QueueID => $id, Services => \@serviceIDs); | ||
| 208 | 207 | ||
| 209 | } | 208 | } |
| 210 | \ No newline at end of file | 209 | \ No newline at end of file |
Kernel/Output/HTML/Standard/QueueService.dtl
| @@ -1,87 +0,0 @@ | @@ -1,87 +0,0 @@ | ||
| 1 | -# -- | ||
| 2 | -# Kernel/Output/HTML/Standard/QueueService.dtl - overview | ||
| 3 | -# Copyright (C) (2014) (Rodrigo Gonçalves) (rodrigo.g@ufsc.br) | ||
| 4 | -# -- | ||
| 5 | -# $Id: writing-otrs-application.xml,v 1.1 2010/08/13 08:59:28 mg Exp $ | ||
| 6 | -# -- | ||
| 7 | -# This software comes with ABSOLUTELY NO WARRANTY. For details, see | ||
| 8 | -# the enclosed file COPYING for license information (AGPL). If you | ||
| 9 | -# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. | ||
| 10 | -# -- | ||
| 11 | -<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst"> | ||
| 12 | - <h1>$Text{"Services per queue"}</h1> | ||
| 13 | - | ||
| 14 | - <div class="SidebarColumn"> | ||
| 15 | - | ||
| 16 | - <div class="WidgetSimple"> | ||
| 17 | - <div class="Header"> | ||
| 18 | - <h2>$Text{"Actions"}</h2> | ||
| 19 | - </div> | ||
| 20 | - <div class="Content"> | ||
| 21 | - <ul class="ActionList"> | ||
| 22 | - <li> | ||
| 23 | - <a href="$Env{"Baselink"}Action=$Env{"Action"}" class="CallForAction"><span>$Text{"Go to overview"}</span></a> | ||
| 24 | - </li> | ||
| 25 | - </ul> | ||
| 26 | - </div> | ||
| 27 | - </div> | ||
| 28 | - | ||
| 29 | -<!-- dtl:block:serviceFilter --> | ||
| 30 | - <div class="WidgetSimple"> | ||
| 31 | - <div class="Header"> | ||
| 32 | - <h2><label for="FilterServices">$Text{"Services"}</label></h2> | ||
| 33 | - </div> | ||
| 34 | - <div class="Content"> | ||
| 35 | - <input type="text" id="FilterUsers" class="W50pc" name="FilterUser" value="" title="$Text{"Service"}" /> | ||
| 36 | - </div> | ||
| 37 | - </div> | ||
| 38 | -<!-- dtl:block:serviceFilter --> | ||
| 39 | -<!-- dtl:block:queueFilter --> | ||
| 40 | - <div class="WidgetSimple"> | ||
| 41 | - <div class="Header"> | ||
| 42 | - <h2><label for="FilterQueues">$Text{"Queues"}</label></h2> | ||
| 43 | - </div> | ||
| 44 | - <div class="Content"> | ||
| 45 | - <input type="text" id="FilterGroups" class="W50pc" name="FilterGroups" value="" title="$Text{"Queue"}"/> | ||
| 46 | - </div> | ||
| 47 | - </div> | ||
| 48 | -<!-- dtl:block:queueFilter --> | ||
| 49 | - </div> | ||
| 50 | - | ||
| 51 | - <div class="ContentColumn"> | ||
| 52 | - <div class="WidgetSimple"> | ||
| 53 | - | ||
| 54 | - <div class="Header"> | ||
| 55 | - <h2>$Text{"Overview"}</h2> | ||
| 56 | - </div> | ||
| 57 | - <div class="Content LayoutGrid ColumnsWithSpacing"> | ||
| 58 | - <div class="Size1of2"> | ||
| 59 | - <ul class="Tablelike" id="Services"> | ||
| 60 | - <li class="Header">$Text{"Services"}</li> | ||
| 61 | - <li class="FilterMessage Hidden">$Text{"No matches found."}</li> | ||
| 62 | -<!-- dtl:block:ListService--> | ||
| 63 | - <li><a href="$Env{"Baselink"}Action=$Env{"Action"};Subaction=ServiceEdit;ID=$LQData{"ServiceID"}" class="AsBlock">$QData{"ServiceName"}</a></li> | ||
| 64 | -<!-- dtl:block:ListService--> | ||
| 65 | - </ul> | ||
| 66 | - </div> | ||
| 67 | - <div class="Size1of2"> | ||
| 68 | - <ul class="Tablelike" id="Queues"> | ||
| 69 | - <li class="Header">$Text{"Queues"}</li> | ||
| 70 | - <li class="FilterMessage Hidden">$Text{"No matches found."}</li> | ||
| 71 | -<!-- dtl:block:ListQueue--> | ||
| 72 | - <li><a href="$Env{"Baselink"}Action=$Env{"Action"};Subaction=QueueEdit;ID=$LQData{"QueueID"}" class="AsBlock">$QData{"QueueName"}</a></li> | ||
| 73 | -<!-- dtl:block:ListQueue--> | ||
| 74 | - </ul> | ||
| 75 | - </div> | ||
| 76 | - <div class="Clear"></div> | ||
| 77 | - </div> | ||
| 78 | - | ||
| 79 | - | ||
| 80 | -<!-- dtl:js_on_document_complete --> | ||
| 81 | -<script type="text/javascript">//<![CDATA[ | ||
| 82 | - Core.UI.Table.InitTableFilter($('#FilterServices'), $('#Services')); | ||
| 83 | - Core.UI.Table.InitTableFilter($('#FilterQueues'), $('#Queues')); | ||
| 84 | -//]]></script> | ||
| 85 | -<!-- dtl:js_on_document_complete --> | ||
| 86 | - | ||
| 87 | - | ||
| 88 | \ No newline at end of file | 0 | \ No newline at end of file |
| @@ -0,0 +1,86 @@ | @@ -0,0 +1,86 @@ | ||
| 1 | +# -- | ||
| 2 | +# Kernel/Output/HTML/Standard/QueueService.tt - overview | ||
| 3 | +# Copyright (C) (2014) SeTIC - UFSC - http://setic.ufsc.br/ | ||
| 4 | +# Version 06/01/2015 - Adjusts for OTRS 4 | ||
| 5 | +# | ||
| 6 | +# This software comes with ABSOLUTELY NO WARRANTY. For details, see | ||
| 7 | +# the enclosed file COPYING for license information (AGPL). If you | ||
| 8 | +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. | ||
| 9 | +# -- | ||
| 10 | +<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst"> | ||
| 11 | + <h1>[% Translate("Services per queue") | html %]</h1> | ||
| 12 | + | ||
| 13 | + <div class="SidebarColumn"> | ||
| 14 | + | ||
| 15 | + <div class="WidgetSimple"> | ||
| 16 | + <div class="Header"> | ||
| 17 | + <h2>[% Translate("Actions") | html %]</h2> | ||
| 18 | + </div> | ||
| 19 | + <div class="Content"> | ||
| 20 | + <ul class="ActionList"> | ||
| 21 | + <li> | ||
| 22 | + <a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction"><span>[% Translate("Go to overview") | html %]</span></a> | ||
| 23 | + </li> | ||
| 24 | + </ul> | ||
| 25 | + </div> | ||
| 26 | + </div> | ||
| 27 | + | ||
| 28 | +[% RenderBlockStart("serviceFilter") %] | ||
| 29 | + <div class="WidgetSimple"> | ||
| 30 | + <div class="Header"> | ||
| 31 | + <h2><label for="FilterServices">[% Translate("Services") | html %]</label></h2> | ||
| 32 | + </div> | ||
| 33 | + <div class="Content"> | ||
| 34 | + <input type="text" id="FilterUsers" class="W50pc" name="FilterUser" value="" title="[% Translate("Service") | html %]" /> | ||
| 35 | + </div> | ||
| 36 | + </div> | ||
| 37 | +[% RenderBlockEnd("serviceFilter") %] | ||
| 38 | +[% RenderBlockStart("queueFilter") %] | ||
| 39 | + <div class="WidgetSimple"> | ||
| 40 | + <div class="Header"> | ||
| 41 | + <h2><label for="FilterQueues">[% Translate("Queues") | html %]</label></h2> | ||
| 42 | + </div> | ||
| 43 | + <div class="Content"> | ||
| 44 | + <input type="text" id="FilterGroups" class="W50pc" name="FilterGroups" value="" title="[% Translate("Queue") | html %]"/> | ||
| 45 | + </div> | ||
| 46 | + </div> | ||
| 47 | +[% RenderBlockEnd("queueFilter") %] | ||
| 48 | + </div> | ||
| 49 | + | ||
| 50 | + <div class="ContentColumn"> | ||
| 51 | + <div class="WidgetSimple"> | ||
| 52 | + | ||
| 53 | + <div class="Header"> | ||
| 54 | + <h2>[% Translate("Overview") | html %]</h2> | ||
| 55 | + </div> | ||
| 56 | + <div class="Content LayoutGrid ColumnsWithSpacing"> | ||
| 57 | + <div class="Size1of2"> | ||
| 58 | + <ul class="Tablelike" id="Services"> | ||
| 59 | + <li class="Header">[% Translate("Services") | html %]</li> | ||
| 60 | + <li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li> | ||
| 61 | +[% RenderBlockStart("ListService") %] | ||
| 62 | + <li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ID=[% Data.ServiceID | uri %]" class="AsBlock">[% Data.ServiceName | html %]</a></li> | ||
| 63 | +[% RenderBlockEnd("ListService") %] | ||
| 64 | + </ul> | ||
| 65 | + </div> | ||
| 66 | + <div class="Size1of2"> | ||
| 67 | + <ul class="Tablelike" id="Queues"> | ||
| 68 | + <li class="Header">[% Translate("Queues") | html %]</li> | ||
| 69 | + <li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li> | ||
| 70 | +[% RenderBlockStart("ListQueue") %] | ||
| 71 | + <li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=QueueEdit;ID=[% Data.QueueID | uri %]" class="AsBlock">[% Data.QueueName | html %]</a></li> | ||
| 72 | +[% RenderBlockEnd("ListQueue") %] | ||
| 73 | + </ul> | ||
| 74 | + </div> | ||
| 75 | + <div class="Clear"></div> | ||
| 76 | + </div> | ||
| 77 | + | ||
| 78 | + | ||
| 79 | +[% WRAPPER JSOnDocumentComplete %] | ||
| 80 | +<script type="text/javascript">//<![CDATA[ | ||
| 81 | + Core.UI.Table.InitTableFilter($('#FilterServices'), $('#Services')); | ||
| 82 | + Core.UI.Table.InitTableFilter($('#FilterQueues'), $('#Queues')); | ||
| 83 | +//]]></script> | ||
| 84 | +[% END %] | ||
| 85 | + | ||
| 86 | + | ||
| 0 | \ No newline at end of file | 87 | \ No newline at end of file |
Kernel/Output/HTML/Standard/QueueServiceChange.dtl
| @@ -1,95 +0,0 @@ | @@ -1,95 +0,0 @@ | ||
| 1 | -<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst"> | ||
| 2 | - <h1>$Text{"Services and queues"}</h1> | ||
| 3 | - <div class="SidebarColumn"> | ||
| 4 | - <div class="WidgetSimple"> | ||
| 5 | - <div class="Header"> | ||
| 6 | - <h2>$Text{"Actions"}</h2> | ||
| 7 | - </div> | ||
| 8 | - <div class="Content"> | ||
| 9 | - <ul class="ActionList"> | ||
| 10 | - <li> | ||
| 11 | - <a href="$Env{"Baselink"}Action=$Env{"Action"}" class="CallForAction"><span>$Text{"Go to overview"}</span></a> | ||
| 12 | - </li> | ||
| 13 | - </ul> | ||
| 14 | - </div> | ||
| 15 | - </div> | ||
| 16 | - <div class="WidgetSimple"> | ||
| 17 | - <div class="Header"> | ||
| 18 | - <h2> | ||
| 19 | - <label for="Filter">$Text{"Filter"}</label> | ||
| 20 | - </h2> | ||
| 21 | - </div> | ||
| 22 | - <div class="Content"> | ||
| 23 | - <input type="text" id="Filter" class="W50pc" name="Filter" value="" title="$Text{"Filter"}" /> | ||
| 24 | - </div> | ||
| 25 | - </div> | ||
| 26 | - </div> | ||
| 27 | - | ||
| 28 | - <div class="ContentColumn"> | ||
| 29 | - <div class="WidgetSimple"> | ||
| 30 | - <div class="Header"> | ||
| 31 | - <h2> | ||
| 32 | -<!-- dtl:block:ChangeHeaderService --> | ||
| 33 | - $Text{"Select queues for the service"} | ||
| 34 | -<!-- dtl:block:ChangeHeaderService --> | ||
| 35 | -<!-- dtl:block:ChangeHeaderQueue --> | ||
| 36 | - $Text{"Select services for the queue"} | ||
| 37 | -<!-- dtl:block:ChangeHeaderQueue --> | ||
| 38 | - $QData{"Name"} | ||
| 39 | - </h2> | ||
| 40 | - </div> | ||
| 41 | - <div class="Content "> | ||
| 42 | - <form action="$Env{"CGIHandle"}" method="post" name="matrix"> | ||
| 43 | - <input type="hidden" name="Action" value="$Env{"Action"}"/> | ||
| 44 | - <input type="hidden" name="Subaction" value="Change$QData{"VisibleNeType"}"/> | ||
| 45 | - <input type="hidden" name="ID" value="$QData{"ID"}"/> | ||
| 46 | - <table class="DataTable VariableWidth" id="ServicesQueues"> | ||
| 47 | - <thead> | ||
| 48 | - <tr> | ||
| 49 | - <th>$Text{"$Data{"VisibleNeType"}"}</th> | ||
| 50 | -<!-- dtl:block:ChangeHeader --> | ||
| 51 | - <th class="Center $QData{"Mark"}"> | ||
| 52 | - <input type="checkbox" name="$QData{"Type"}" id="SelectAll$QData{"Type"}" title="$Text{"Toggle active state for all"}" value="" /> | ||
| 53 | - $Text{"Active"} | ||
| 54 | - </th> | ||
| 55 | -<!-- dtl:js_on_document_complete --> | ||
| 56 | -<script type="text/javascript">//<![CDATA[ | ||
| 57 | - Core.Form.InitSelectAllCheckboxes($('table td input:checkbox[name=$QData{"Type"}]'), $('#SelectAll$QData{"Type"}')); | ||
| 58 | - $('input:checkbox[name=$QData{"Type"}]').bind('click', function () { | ||
| 59 | - Core.Form.SelectAllCheckboxes($(this), $('#SelectAll$QData{"Type"}')); | ||
| 60 | - }); | ||
| 61 | -//]]></script> | ||
| 62 | -<!-- dtl:js_on_document_complete --> | ||
| 63 | -<!-- dtl:block:ChangeHeader --> | ||
| 64 | - </tr> | ||
| 65 | - </thead> | ||
| 66 | - <tbody> | ||
| 67 | -<!-- dtl:block:ChangeRow --> | ||
| 68 | - <tr> | ||
| 69 | - <td>$QData{"Name"}</td> | ||
| 70 | - <td class="$QData{"Mark"}"> | ||
| 71 | - <input type="checkbox" name="$QData{"Type"}" title="$Text{"Toggle active state for %s", "$QData{"Name"}"}" value="$QData{"ID"}" $Data{"Selected"}/> | ||
| 72 | - </td> | ||
| 73 | - </tr> | ||
| 74 | -<!-- dtl:block:ChangeRow --> | ||
| 75 | - </tbody> | ||
| 76 | - </table> | ||
| 77 | - <div class="Field SpacingTop"> | ||
| 78 | - <button class="Primary" type="submit" value="$Text{"Submit"}">$Text{"Submit"}</button> | ||
| 79 | - $Text{"or"} | ||
| 80 | - <a href="$Env{"Baselink"}Action=$Env{"Action"}">$Text{"Cancel"}</a> | ||
| 81 | - </div> | ||
| 82 | - <div class="Clear"></div> | ||
| 83 | - </form> | ||
| 84 | - </div> | ||
| 85 | - </div> | ||
| 86 | - </div> | ||
| 87 | - <div class="Clear"></div> | ||
| 88 | -</div> | ||
| 89 | - | ||
| 90 | -<!-- dtl:js_on_document_complete --> | ||
| 91 | -<script type="text/javascript">//<![CDATA[ | ||
| 92 | - Core.UI.Table.InitTableFilter($('#Filter'), $('#ServicesQueues')); | ||
| 93 | - Core.Form.HideSelectAllCheckboxes($('#ServicesQueues'), '#SelectAll$QData{"Type"}'); | ||
| 94 | -//]]></script> | ||
| 95 | -<!-- dtl:js_on_document_complete --> |
| @@ -0,0 +1,103 @@ | @@ -0,0 +1,103 @@ | ||
| 1 | +# -- | ||
| 2 | +# Kernel/Output/HTML/Standard/QueueServiceChange.tt - edit | ||
| 3 | +# Copyright (C) (2014) SeTIC - UFSC - http://setic.ufsc.br/ | ||
| 4 | +# Version 06/01/2015 - Adjusts for OTRS 4 | ||
| 5 | +# | ||
| 6 | +# This software comes with ABSOLUTELY NO WARRANTY. For details, see | ||
| 7 | +# the enclosed file COPYING for license information (AGPL). If you | ||
| 8 | +# did not receive this file, see http://www.gnu.org/licenses/agpl.txt. | ||
| 9 | +# -- | ||
| 10 | +<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst"> | ||
| 11 | + <h1>[% Translate("Services and queues") | html %]</h1> | ||
| 12 | + <div class="SidebarColumn"> | ||
| 13 | + <div class="WidgetSimple"> | ||
| 14 | + <div class="Header"> | ||
| 15 | + <h2>[% Translate("Actions") | html %]</h2> | ||
| 16 | + </div> | ||
| 17 | + <div class="Content"> | ||
| 18 | + <ul class="ActionList"> | ||
| 19 | + <li> | ||
| 20 | + <a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction"><span>[% Translate("Go to overview") | html %]</span></a> | ||
| 21 | + </li> | ||
| 22 | + </ul> | ||
| 23 | + </div> | ||
| 24 | + </div> | ||
| 25 | + <div class="WidgetSimple"> | ||
| 26 | + <div class="Header"> | ||
| 27 | + <h2> | ||
| 28 | + <label for="Filter">[% Translate("Filter") | html %]</label> | ||
| 29 | + </h2> | ||
| 30 | + </div> | ||
| 31 | + <div class="Content"> | ||
| 32 | + <input type="text" id="Filter" class="W50pc" name="Filter" value="" title="[% Translate("Filter") | html %]" /> | ||
| 33 | + </div> | ||
| 34 | + </div> | ||
| 35 | + </div> | ||
| 36 | + | ||
| 37 | + <div class="ContentColumn"> | ||
| 38 | + <div class="WidgetSimple"> | ||
| 39 | + <div class="Header"> | ||
| 40 | + <h2> | ||
| 41 | +[% RenderBlockStart("ChangeHeaderService") %] | ||
| 42 | + [% Translate("Select queues for the service") | html %] | ||
| 43 | +[% RenderBlockEnd("ChangeHeaderService") %] | ||
| 44 | +[% RenderBlockStart("ChangeHeaderQueue") %] | ||
| 45 | + [% Translate("Select services for the queue") | html %] | ||
| 46 | +[% RenderBlockEnd("ChangeHeaderQueue") %] | ||
| 47 | + [% Data.Name | html %] | ||
| 48 | + </h2> | ||
| 49 | + </div> | ||
| 50 | + <div class="Content "> | ||
| 51 | + <form action="[% Env("CGIHandle") %]" method="post" name="matrix"> | ||
| 52 | + <input type="hidden" name="Action" value="[% Env("Action") %]"/> | ||
| 53 | + <input type="hidden" name="Subaction" value="Change[% Data.VisibleNeType | html %]"/> | ||
| 54 | + <input type="hidden" name="ID" value="[% Data.ID | html %]"/> | ||
| 55 | + <table class="DataTable VariableWidth" id="ServicesQueues"> | ||
| 56 | + <thead> | ||
| 57 | + <tr> | ||
| 58 | + <th>[% Translate(Data.VisibleNeType) | html %]</th> | ||
| 59 | +[% RenderBlockStart("ChangeHeader") %] | ||
| 60 | + <th class="Center [% Data.Mark | html %]"> | ||
| 61 | + <input type="checkbox" name="[% Data.Type | html %]" id="SelectAll[% Data.Type | html %]" title="[% Translate("Toggle active state for all") | html %]" value="" /> | ||
| 62 | + [% Translate("Active") | html %] | ||
| 63 | + </th> | ||
| 64 | +[% WRAPPER JSOnDocumentComplete %] | ||
| 65 | +<script type="text/javascript">//<![CDATA[ | ||
| 66 | + Core.Form.InitSelectAllCheckboxes($('table td input:checkbox[name=[% Data.Type | html %]]'), $('#SelectAll[% Data.Type | html %]')); | ||
| 67 | + $('input:checkbox[name=[% Data.Type | html %]]').bind('click', function () { | ||
| 68 | + Core.Form.SelectAllCheckboxes($(this), $('#SelectAll[% Data.Type | html %]')); | ||
| 69 | + }); | ||
| 70 | +//]]></script> | ||
| 71 | +[% END %] | ||
| 72 | +[% RenderBlockEnd("ChangeHeader") %] | ||
| 73 | + </tr> | ||
| 74 | + </thead> | ||
| 75 | + <tbody> | ||
| 76 | +[% RenderBlockStart("ChangeRow") %] | ||
| 77 | + <tr> | ||
| 78 | + <td>[% Data.Name | html %]</td> | ||
| 79 | + <td class="[% Data.Mark | html %]"> | ||
| 80 | + <input type="checkbox" name="[% Data.Type | html %]" title="[% Translate("Toggle active state for %s", Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/> | ||
| 81 | + </td> | ||
| 82 | + </tr> | ||
| 83 | +[% RenderBlockEnd("ChangeRow") %] | ||
| 84 | + </tbody> | ||
| 85 | + </table> | ||
| 86 | + <div class="Field SpacingTop"> | ||
| 87 | + <button class="Primary" type="submit" value="[% Translate("Submit") | html %]">[% Translate("Submit") | html %]</button> | ||
| 88 | + [% Translate("or") | html %] | ||
| 89 | + <a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a> | ||
| 90 | + </div> | ||
| 91 | + <div class="Clear"></div> | ||
| 92 | + </form> | ||
| 93 | + </div> | ||
| 94 | + </div> | ||
| 95 | + </div> | ||
| 96 | + <div class="Clear"></div> | ||
| 97 | +</div> | ||
| 98 | + | ||
| 99 | +[% WRAPPER JSOnDocumentComplete %] | ||
| 100 | +<script type="text/javascript">//<![CDATA[ | ||
| 101 | + Core.UI.Table.InitTableFilter($('#Filter'), $('#ServicesQueues')); | ||
| 102 | +//]]></script> | ||
| 103 | +[% END %] |
Kernel/System/QueueService.pm
| 1 | # -- | 1 | # -- |
| 2 | # Kernel/System/QueueService.pm - core module | 2 | # Kernel/System/QueueService.pm - core module |
| 3 | -# Managers Queue Services | 3 | +# Manages Queue Services |
| 4 | +# | ||
| 5 | +# Copyright (C) (2014) - SeTIC - UFSC - http://setic.ufsc.br/ | ||
| 6 | +# Version 06/01/2015 - Adjusts for OTRS 4 | ||
| 4 | # | 7 | # |
| 5 | -# Copyright (C) (2014) (Carlos Rebelato, Rodrigo Gonçalves) (rodrigo.g@ufsc.br) | ||
| 6 | -# -- | ||
| 7 | -# $Id: writing-otrs-application.xml,v 1.1 2010/08/13 08:59:28 mg Exp $ | ||
| 8 | -# -- | ||
| 9 | # This software comes with ABSOLUTELY NO WARRANTY. For details, see | 8 | # This software comes with ABSOLUTELY NO WARRANTY. For details, see |
| 10 | # the enclosed file COPYING for license information (AGPL). If you | 9 | # the enclosed file COPYING for license information (AGPL). If you |
| 11 | # did not receive this file, see http://www.gnu.org/licenses/agpl.txt. | 10 | # did not receive this file, see http://www.gnu.org/licenses/agpl.txt. |
| 12 | # -- | 11 | # -- |
| 13 | -# Author: Carlos Rebelato | ||
| 14 | -# Date..: 19/02/2014 - Versão inicial | ||
| 15 | -# Revision: 27/02/2014 - Module creation | ||
| 16 | # | 12 | # |
| 17 | package Kernel::System::QueueService; | 13 | package Kernel::System::QueueService; |
| 18 | 14 | ||
| @@ -20,6 +16,11 @@ use strict; | @@ -20,6 +16,11 @@ use strict; | ||
| 20 | use warnings; | 16 | use warnings; |
| 21 | use Data::Dumper; | 17 | use Data::Dumper; |
| 22 | 18 | ||
| 19 | +our @ObjectDependencies = ( | ||
| 20 | + "Kernel::Output::HTML::Layout", # Old LayoutObject | ||
| 21 | + "Kernel::System::DB" | ||
| 22 | +); | ||
| 23 | + | ||
| 23 | sub new { | 24 | sub new { |
| 24 | my ( $Type, %Param ) = @_; | 25 | my ( $Type, %Param ) = @_; |
| 25 | 26 | ||
| @@ -45,11 +46,11 @@ sub GetServiceList { | @@ -45,11 +46,11 @@ sub GetServiceList { | ||
| 45 | 46 | ||
| 46 | for (qw(QueueID)) { | 47 | for (qw(QueueID)) { |
| 47 | if ( !$Param{$_} ) { | 48 | if ( !$Param{$_} ) { |
| 48 | - $Self->{LayoutObject}->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); | 49 | + $Kernel::OM->Get("Kernel::Output::HTML::Layout")->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); |
| 49 | } | 50 | } |
| 50 | } | 51 | } |
| 51 | 52 | ||
| 52 | - $Self->{DBObject}->Prepare( | 53 | + $Kernel::OM->Get("Kernel::System::DB")->Prepare( |
| 53 | SQL => " | 54 | SQL => " |
| 54 | select | 55 | select |
| 55 | a.service_id id, | 56 | a.service_id id, |
| @@ -62,7 +63,7 @@ sub GetServiceList { | @@ -62,7 +63,7 @@ sub GetServiceList { | ||
| 62 | Bind => [ \$Param{QueueID} ] | 63 | Bind => [ \$Param{QueueID} ] |
| 63 | ); | 64 | ); |
| 64 | 65 | ||
| 65 | - while ( my @row = $Self->{DBObject}->FetchrowArray() ) { | 66 | + while ( my @row = $Kernel::OM->Get("Kernel::System::DB")->FetchrowArray() ) { |
| 66 | $result{ $row[0] } = $row[1]; | 67 | $result{ $row[0] } = $row[1]; |
| 67 | } | 68 | } |
| 68 | 69 | ||
| @@ -84,11 +85,11 @@ sub GetQueueList { | @@ -84,11 +85,11 @@ sub GetQueueList { | ||
| 84 | 85 | ||
| 85 | for (qw(ServiceID)) { | 86 | for (qw(ServiceID)) { |
| 86 | if ( !$Param{$_} ) { | 87 | if ( !$Param{$_} ) { |
| 87 | - $Self->{LayoutObject}->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); | 88 | + $Kernel::OM->Get("Kernel::Output::HTML::Layout")->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); |
| 88 | } | 89 | } |
| 89 | } | 90 | } |
| 90 | 91 | ||
| 91 | - $Self->{DBObject}->Prepare( | 92 | + $Kernel::OM->Get("Kernel::System::DB")->Prepare( |
| 92 | SQL => " | 93 | SQL => " |
| 93 | select | 94 | select |
| 94 | a.queue_id id, | 95 | a.queue_id id, |
| @@ -101,7 +102,7 @@ sub GetQueueList { | @@ -101,7 +102,7 @@ sub GetQueueList { | ||
| 101 | Bind => [ \$Param{ServiceID} ] | 102 | Bind => [ \$Param{ServiceID} ] |
| 102 | ); | 103 | ); |
| 103 | 104 | ||
| 104 | - while ( my @row = $Self->{DBObject}->FetchrowArray() ) { | 105 | + while ( my @row = $Kernel::OM->Get("Kernel::System::DB")->FetchrowArray() ) { |
| 105 | $result{ $row[0] } = $row[1]; | 106 | $result{ $row[0] } = $row[1]; |
| 106 | } | 107 | } |
| 107 | 108 | ||
| @@ -125,20 +126,20 @@ sub SetQueueServices { | @@ -125,20 +126,20 @@ sub SetQueueServices { | ||
| 125 | 126 | ||
| 126 | for (qw(QueueID Services)) { | 127 | for (qw(QueueID Services)) { |
| 127 | if ( !$Param{$_} ) { | 128 | if ( !$Param{$_} ) { |
| 128 | - $Self->{LayoutObject}->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); | 129 | + $Kernel::OM->Get("Kernel::Output::HTML::Layout")->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); |
| 129 | } | 130 | } |
| 130 | } | 131 | } |
| 131 | 132 | ||
| 132 | my $QueueID = $Param{"QueueID"}; | 133 | my $QueueID = $Param{"QueueID"}; |
| 133 | my @Services = @{$Param{"Services"}}; | 134 | my @Services = @{$Param{"Services"}}; |
| 134 | 135 | ||
| 135 | - $Self->{DBObject}->Do( | 136 | + $Kernel::OM->Get("Kernel::System::DB")->Do( |
| 136 | SQL => "delete from queue_service where queue_id = ?", | 137 | SQL => "delete from queue_service where queue_id = ?", |
| 137 | Bind => [ \$Param{QueueID} ] | 138 | Bind => [ \$Param{QueueID} ] |
| 138 | ); | 139 | ); |
| 139 | 140 | ||
| 140 | for my $service (@Services) { | 141 | for my $service (@Services) { |
| 141 | - $Self->{DBObject}->Do( | 142 | + $Kernel::OM->Get("Kernel::System::DB")->Do( |
| 142 | SQL => "insert into queue_service(queue_id,service_id) values (?,?)", | 143 | SQL => "insert into queue_service(queue_id,service_id) values (?,?)", |
| 143 | Bind => [\$Param{QueueID}, \$service] | 144 | Bind => [\$Param{QueueID}, \$service] |
| 144 | ); | 145 | ); |
| @@ -162,20 +163,20 @@ sub SetServiceQueues { | @@ -162,20 +163,20 @@ sub SetServiceQueues { | ||
| 162 | 163 | ||
| 163 | for (qw(ServiceID Queues)) { | 164 | for (qw(ServiceID Queues)) { |
| 164 | if ( !$Param{$_} ) { | 165 | if ( !$Param{$_} ) { |
| 165 | - $Self->{LayoutObject}->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); | 166 | + $Kernel::OM->Get("Kernel::Output::HTML::Layout")->FatalError( Message => Dumper( \%Param ) . "got no $_!" ); |
| 166 | } | 167 | } |
| 167 | } | 168 | } |
| 168 | 169 | ||
| 169 | my $ServiceID = $Param{"ServiceID"}; | 170 | my $ServiceID = $Param{"ServiceID"}; |
| 170 | my @Queues = @{$Param{"Queues"}}; | 171 | my @Queues = @{$Param{"Queues"}}; |
| 171 | 172 | ||
| 172 | - $Self->{DBObject}->Do( | 173 | + $Kernel::OM->Get("Kernel::System::DB")->Do( |
| 173 | SQL => "delete from queue_service where service_id = ?", | 174 | SQL => "delete from queue_service where service_id = ?", |
| 174 | Bind => [ \$Param{ServiceID} ] | 175 | Bind => [ \$Param{ServiceID} ] |
| 175 | ); | 176 | ); |
| 176 | 177 | ||
| 177 | for my $queue (@Queues) { | 178 | for my $queue (@Queues) { |
| 178 | - $Self->{DBObject}->Do( | 179 | + $Kernel::OM->Get("Kernel::System::DB")->Do( |
| 179 | SQL => "insert into queue_service(queue_id,service_id) values (?,?)", | 180 | SQL => "insert into queue_service(queue_id,service_id) values (?,?)", |
| 180 | Bind => [\$queue, \$Param{ServiceID}] | 181 | Bind => [\$queue, \$Param{ServiceID}] |
| 181 | ); | 182 | ); |
QueueService.sopm
| 1 | <?xml version="1.0" encoding="utf-8" ?> | 1 | <?xml version="1.0" encoding="utf-8" ?> |
| 2 | <otrs_package version="1.0"> | 2 | <otrs_package version="1.0"> |
| 3 | <Name>QueueService</Name> | 3 | <Name>QueueService</Name> |
| 4 | - <Version>1.0.0</Version> | ||
| 5 | - <Framework>3.x.x</Framework> | 4 | + <Version>1.1.0</Version> |
| 5 | + <Framework>4.0.3</Framework> | ||
| 6 | <Vendor>SeTIC</Vendor> | 6 | <Vendor>SeTIC</Vendor> |
| 7 | - <URL>http://www.setic.ufsc.br</URL> | ||
| 8 | - <License>Free</License> | ||
| 9 | - <Description Lang="pt-br">Associação de serviços a filas | ||
| 10 | - | ||
| 11 | - Versão 1.0.0 - Inicial | ||
| 12 | - | ||
| 13 | - </Description> | ||
| 14 | - <IntroInstall Type="post" Lang="pt-br" Title="Obrigado">Módulo instalado com sucesso!</IntroInstall> | ||
| 15 | - <Description Lang="en">New Ticket Wizard</Description> | ||
| 16 | - <IntroInstall Type="post" Lang="en" Title="Thank you">Queue services module installed successfully!</IntroInstall> | 7 | + <URL>http://setic.ufsc.br</URL> |
| 8 | + <License>GPLv2</License> | ||
| 9 | + | ||
| 10 | + <ChangeLog Version="1.0.0" Date="2014-06-01">First Version</ChangeLog> | ||
| 11 | + <ChangeLog Version="1.1.0" Date="2014-01-06">Support for OTRS 4</ChangeLog> | ||
| 12 | + | ||
| 13 | + <Description>Services per queue association</Description> | ||
| 14 | + | ||
| 17 | <BuildDate>?</BuildDate> | 15 | <BuildDate>?</BuildDate> |
| 18 | <BuildHost>?</BuildHost> | 16 | <BuildHost>?</BuildHost> |
| 17 | + | ||
| 18 | + <IntroInstall Type="post" Title="Thank you"><![CDATA[ | ||
| 19 | + Module installed successfully!<BR/><BR/> | ||
| 20 | + ]]></IntroInstall> | ||
| 21 | + | ||
| 19 | <Filelist> | 22 | <Filelist> |
| 20 | <File Permission="644" Location="Kernel/Config/Files/QueueService.xml"></File> | 23 | <File Permission="644" Location="Kernel/Config/Files/QueueService.xml"></File> |
| 21 | <File Permission="644" Location="Kernel/Language/pt_BR_QueueService.pm"></File> | 24 | <File Permission="644" Location="Kernel/Language/pt_BR_QueueService.pm"></File> |
| 22 | <File Permission="644" Location="Kernel/Modules/QueueService.pm"></File> | 25 | <File Permission="644" Location="Kernel/Modules/QueueService.pm"></File> |
| 23 | - <File Permission="644" Location="Kernel/Output/HTML/Standard/QueueService.dtl"></File> | ||
| 24 | - <File Permission="644" Location="Kernel/Output/HTML/Standard/QueueServiceChange.dtl"></File> | 26 | + <File Permission="644" Location="Kernel/Output/HTML/Standard/QueueService.tt"></File> |
| 27 | + <File Permission="644" Location="Kernel/Output/HTML/Standard/QueueServiceChange.tt"></File> | ||
| 25 | <File Permission="644" Location="Kernel/System/QueueService.pm"></File> | 28 | <File Permission="644" Location="Kernel/System/QueueService.pm"></File> |
| 26 | </Filelist> | 29 | </Filelist> |
| 27 | <DatabaseInstall> | 30 | <DatabaseInstall> |