Re: [otrs-de] OTRS 2.4.6 - Dashboard zeigt gesperrte Tickets anderer Agenten

okay, hier ist ein Patch dazu, doch nicht so schwer, wenn man sich
erstmal zurechtgefunden hat ;-)
(for english users which may find this with a search engine: this
patch hides locked tickets of other agents in the dashboard when "My
Queues" is selected)
--- /opt/otrs-old/Kernel/Output/HTML/DashboardTicketGeneric.pm 2009-08-28
01:35:33.000000000 +0200
+++ Output/HTML/DashboardTicketGeneric.pm 2010-01-23 22:41:15.000000000 +0100
@@ -32,6 +32,9 @@
die "Got no $_!" if ( !$Self->{$_} );
}
+ # some new objects
+ $Self->{LockObject} = Kernel::System::Lock->new(%Param);
+
# get current filter
my $Name = $Self->{ParamObject}->GetParam( Param => 'Name' ) || '';
my $PreferencesKey = 'UserDashboardTicketGenericFilter' . $Self->{Name};
@@ -153,6 +156,9 @@
UserID => $Self->{UserID},
);
+ # viewable locks
+ my @ViewableLockIDs = $Self->{LockObject}->LockViewableLock( Type
=> 'ID' );
+
# define filter attributes
my @MyQueues = $Self->{QueueObject}->GetAllCustomQueues(
UserID => $Self->{UserID},
@@ -175,6 +181,7 @@
},
MyQueues => {
QueueIDs => \@MyQueues,
+ LockIDs => \@ViewableLockIDs,
Locks => undef,
},
All => {
Am 23. Januar 2010 17:12 schrieb Max Lindner
Hallo!
Wir verwenden OTRS zu viert und haben ziemlich viel überschneidende Bereiche, deswegen bleiben die Tickets meistens in der Raw Queue, wo sie bearbeitet werden.
Wenn dort allerdings ein Agent ein Ticket bearbeitet und es im Zuge dessen gesperrt ist, wird es bei den anderen Agenten immer noch unter "Neue Tickets" bzw. "Offene Tickets / Zur Beantwortung" angezeigt. Das ist ziemlich lästig, weil so der erste Blick immer sein muss, ob an dem Ticket nicht doch schon jemand dran ist.
Im SysConfig zu drehen bringt ja nichts, weil sich das nicht so einfach in eine Suchabfrage abbilden lässt.
Also habe ich in die Kernel/Output/HTML/DashboardTicketGeneric.pm geschaut und sehe zwar, dass ich in der for()-Schleife ab Zeile 301 etwas bräuchte wie:
if ( $Ticket{Locked} && ( $Ticket{UserID} != $Self->{UserID} ) { continue; }
allerdings weiß ich nicht, wie $Ticket aussieht und auch nicht genug Ahnung von Perl, um das selber rauszufinden.
Wäre super, wenn mir jemand einen Tipp in die richtige Richtung geben könnte.
Grüße und schönes Wochenende, Max

Hi, On 23.01.2010, at 22:46, Max Lindner wrote:
okay, hier ist ein Patch dazu, doch nicht so schwer, wenn man sich erstmal zurechtgefunden hat ;-)
(for english users which may find this with a search engine: this patch hides locked tickets of other agents in the dashboard when "My Queues" is selected)
--- /opt/otrs-old/Kernel/Output/HTML/DashboardTicketGeneric.pm 2009-08-28 01:35:33.000000000 +0200 +++ Output/HTML/DashboardTicketGeneric.pm 2010-01-23 22:41:15.000000000 +0100 @@ -32,6 +32,9 @@ die "Got no $_!" if ( !$Self->{$_} ); }
+ # some new objects + $Self->{LockObject} = Kernel::System::Lock->new(%Param); + # get current filter my $Name = $Self->{ParamObject}->GetParam( Param => 'Name' ) || ''; my $PreferencesKey = 'UserDashboardTicketGenericFilter' . $Self->{Name}; @@ -153,6 +156,9 @@ UserID => $Self->{UserID}, );
+ # viewable locks + my @ViewableLockIDs = $Self->{LockObject}->LockViewableLock( Type => 'ID' ); + # define filter attributes my @MyQueues = $Self->{QueueObject}->GetAllCustomQueues( UserID => $Self->{UserID}, @@ -175,6 +181,7 @@ }, MyQueues => { QueueIDs => \@MyQueues, + LockIDs => \@ViewableLockIDs, Locks => undef, }, All => {
Am 23. Januar 2010 17:12 schrieb Max Lindner
: Hallo!
Wir verwenden OTRS zu viert und haben ziemlich viel überschneidende Bereiche, deswegen bleiben die Tickets meistens in der Raw Queue, wo sie bearbeitet werden.
Wenn dort allerdings ein Agent ein Ticket bearbeitet und es im Zuge dessen gesperrt ist, wird es bei den anderen Agenten immer noch unter "Neue Tickets" bzw. "Offene Tickets / Zur Beantwortung" angezeigt. Das ist ziemlich lästig, weil so der erste Blick immer sein muss, ob an dem Ticket nicht doch schon jemand dran ist.
Im SysConfig zu drehen bringt ja nichts, weil sich das nicht so einfach in eine Suchabfrage abbilden lässt.
Also habe ich in die Kernel/Output/HTML/DashboardTicketGeneric.pm geschaut und sehe zwar, dass ich in der for()-Schleife ab Zeile 301 etwas bräuchte wie:
if ( $Ticket{Locked} && ( $Ticket{UserID} != $Self->{UserID} ) { continue; }
allerdings weiß ich nicht, wie $Ticket aussieht und auch nicht genug Ahnung von Perl, um das selber rauszufinden.
Wäre super, wenn mir jemand einen Tipp in die richtige Richtung geben könnte.
Grüße und schönes Wochenende, Max
wozu braucht Ihr das? Bei jedem Dashlet bei dem es um die Anzeige von Tickets geht habt Ihr über den Tickets Filter im Dashlet. Hier könnt Ihr bequem wählen zwischen "Meine gesperrten", "Meine beobachten", "Meine verantwortlichen", "Meine Queues" und "Alle" ... Was Ihr sucht ist der erste Filter "Meine gesperrten". Nils Leideck -- Nils Leideck Senior Consultant nils.leideck@leidex.net nils.leideck@otrs.com http://webint.cryptonode.de / a Fractal project CU @ CeBIT 2010 in Hannover, Germany and get to know more about OTRS at booth no. C37 in hall 2 from March 2-6, 2010!

Am 24. Januar 2010 16:12 schrieb Nils Leideck - ITSM
Was Ihr sucht ist der erste Filter "Meine gesperrten".
Nicht ganz, wir suchen "nicht von anderen Agenten gesperrt". Es geht darum, das bei uns Tickets im Dashboard angezeigt werden, die nicht bearbeitet werden dürfen. Grüße, Max
participants (2)
-
Max Lindner
-
Nils Leideck - ITSM