# -- # 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::ToolBar::TicketResponsible; use parent 'Kernel::Output::HTML::Base'; use strict; use warnings; use Kernel::Language qw(Translatable); our @ObjectDependencies = ( 'Kernel::Config', 'Kernel::Output::HTML::Layout', 'Kernel::System::Log', 'Kernel::System::Ticket', ); sub Run { my ( $Self, %Param ) = @_; my $ConfigObject = $Kernel::OM->Get('Kernel::Config'); # check responsible feature return if !$ConfigObject->Get('Ticket::Responsible'); # check needed stuff for (qw(Config)) { if ( !$Param{$_} ) { $Kernel::OM->Get('Kernel::System::Log')->Log( Priority => 'error', Message => "Need $_!" ); return; } } return if !$ConfigObject->Get('Frontend::Module')->{AgentTicketResponsibleView}; # get ticket object my $TicketObject = $Kernel::OM->Get('Kernel::System::Ticket'); my $Count = $TicketObject->TicketSearch( Result => 'COUNT', StateType => 'Open', ResponsibleIDs => [ $Self->{UserID} ], UserID => 1, Permission => 'ro', ) || 0; my $CountNew = $TicketObject->TicketSearch( Result => 'COUNT', StateType => 'Open', ResponsibleIDs => [ $Self->{UserID} ], TicketFlag => { Seen => 1, }, TicketFlagUserID => $Self->{UserID}, UserID => 1, Permission => 'ro', ) || 0; $CountNew = $Count - $CountNew; my $CountReached = $TicketObject->TicketSearch( Result => 'COUNT', StateType => ['pending reminder'], ResponsibleIDs => [ $Self->{UserID} ], TicketPendingTimeOlderMinutes => 1, UserID => 1, Permission => 'ro', ) || 0; my $Class = $Param{Config}->{CssClass}; my $ClassNew = $Param{Config}->{CssClassNew}; my $ClassReached = $Param{Config}->{CssClassReached}; my $Icon = $Param{Config}->{Icon}; my $IconNew = $Param{Config}->{IconNew}; my $IconReached = $Param{Config}->{IconReached}; my $URL = $Kernel::OM->Get('Kernel::Output::HTML::Layout')->{Baselink}; my %Return; my $Priority = $Param{Config}->{Priority}; if ($CountNew) { $Return{ $Priority++ } = { Block => 'ToolBarItem', Description => Translatable('Responsible Tickets New'), Count => $CountNew, Class => $ClassNew, Icon => $IconNew, Link => $URL . 'Action=AgentTicketResponsibleView;Filter=New', AccessKey => $Param{Config}->{AccessKeyNew} || '', }; } if ($CountReached) { $Return{ $Priority++ } = { Block => 'ToolBarItem', Description => Translatable('Responsible Tickets Reminder Reached'), Count => $CountReached, Class => $ClassReached, Icon => $IconReached, Link => $URL . 'Action=AgentTicketResponsibleView;Filter=ReminderReached', AccessKey => $Param{Config}->{AccessKeyReached} || '', }; } if ($Count) { $Return{ $Priority++ } = { Block => 'ToolBarItem', Description => Translatable('Responsible Tickets Total'), Count => $Count, Class => $Class, Icon => $Icon, Link => $URL . 'Action=AgentTicketResponsibleView', AccessKey => $Param{Config}->{AccessKey} || '', }; } return %Return; } 1;