OTRS 7-Tages Statistik auf dem Dashboard auf 14 Tage erweitern

Da gibt es zwar im OTRS Ticketsystem auf dem Agent Dashboard eine kleine Ticketstatistik aber die zeigt nur die letzen 7 Tage an.
Ich hätte aber gerne eine Ansicht, die die letzten 14 Tage auswertet, damit ich den Unterschied zwischen den Wochen sehen kann.

Umsetzbar ist das effektiv recht einfach mit einer kleinen Änderung in der Datei  kernel\output\html\DashboardTicketsStatsGeneric.pm

 

 

 

Die Zeilen in rot müssen durch die Zeilen in grün ersetzt werden:

# --
# Kernel/Output/HTML/DashboardTicketStatsGeneric.pm
# Copyright (C) 2001-2010 OTRS AG, http://otrs.org/
# --
# $Id: DashboardTicketStatsGeneric.pm,v 1.18 2010/11/01 15:41:28 mb Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

package Kernel::Output::HTML::DashboardTicketStatsGeneric;

use strict;
use warnings;

use vars qw($VERSION);
$VERSION = qw($Revision: 1.18 $) [1];

sub new {
 my ( $Type, %Param ) = @_;

 # allocate new hash for object
 my $Self = {%Param};
 bless( $Self, $Type );

 # get needed objects
 for (
 qw(Config Name ConfigObject LogObject DBObject LayoutObject ParamObject TicketObject UserID)
 )
 {
 die "Got no $_!" if !$Self->{$_};
 }

 return $Self;
}

sub Preferences {
 my ( $Self, %Param ) = @_;

 return;
}

sub Config {
 my ( $Self, %Param ) = @_;

 my $Key = $Self->{LayoutObject}->{UserLanguage} . '-' . $Self->{Name};
 return (
 %{ $Self->{Config} },
 CacheKey => 'TicketStats' . '-' . $Self->{UserID} . '-' . $Key,
 );

}

sub Run {
 my ( $Self, %Param ) = @_;

 my %Axis = (
 '7Day' => {
 0 => 'Sun',
 1 => 'Mon',
 2 => 'Tue',
 3 => 'Wed',
 4 => 'Thu',
 5 => 'Fri',
 6 => 'Sat',
 },
 );

 my @TicketsCreated = ();
 my @TicketsClosed = ();
 my @TicketWeekdays = ();
 my @TicketYAxis = ();
 my $Max = 0;

 for my $Key ( 0 .. 6 ) {
 my $today = 14;

 for my $Key ( 0 .. $today ) {


 my $TimeNow = $Self->{TimeObject}->SystemTime();
 if ($Key) {
 $TimeNow = $TimeNow - ( 60 * 60 * 24 * $Key );
 }
 my ( $Sec, $Min, $Hour, $Day, $Month, $Year, $WeekDay )
 = $Self->{TimeObject}->SystemTime2Date(
 SystemTime => $TimeNow,
 );

 unshift(
 @TicketWeekdays,

 [ $today - $Key, $Self->{LayoutObject}->{LanguageObject}->Get( $Axis{'7Day'}->{$WeekDay} ) ] ## org
 [ $today - $Key, $Self->{LayoutObject}->{LanguageObject}->Get( $Axis{'7Day'}->{$WeekDay} ) ] ## 6 -> today
 [ $today - $Key, $Day ] ## Monatstage

 );

 my $CountCreated = $Self->{TicketObject}->TicketSearch(

 # cache search result 30 min
 CacheTTL => 60 * 30,

 # tickets with create time after ... (ticket newer than this date) (optional)
 TicketCreateTimeNewerDate => "$Year-$Month-$Day 00:00:00",

 # tickets with created time before ... (ticket older than this date) (optional)
 TicketCreateTimeOlderDate => "$Year-$Month-$Day 23:59:59",

 CustomerID => $Param{Data}->{UserCustomerID},
 Result => 'COUNT',

 # search with user permissions
 Permission => $Self->{Config}->{Permission} || 'ro',
 UserID => $Self->{UserID},
 );
 if ( $CountCreated > $Max ) {
 $Max = $CountCreated;
 }
 push @TicketsCreated, [ $today - $Key, $CountCreated ]; ## 6 -> today

 my $CountClosed = $Self->{TicketObject}->TicketSearch(

 # cache search result 30 min
 CacheTTL => 60 * 30,

 # tickets with create time after ... (ticket newer than this date) (optional)
 TicketCloseTimeNewerDate => "$Year-$Month-$Day 00:00:00",

 # tickets with created time before ... (ticket older than this date) (optional)
 TicketCloseTimeOlderDate => "$Year-$Month-$Day 23:59:59",

 CustomerID => $Param{Data}->{UserCustomerID},
 Result => 'COUNT',

 # search with user permissions
 Permission => $Self->{Config}->{Permission} || 'ro',
 UserID => $Self->{UserID},
 );
 if ( $CountClosed > $Max ) {
 $Max = $CountClosed;
 }
 push @TicketsClosed, [ $today - $Key, $CountClosed ]; ## 6 -> today
 }

 # calculate the maximum height and the tick steps of y axis
 if ( $Max <= 10 ) {
 for ( my $i = 0; $i <= 10; $i += 2 ) {
 push @TicketYAxis, $i
 }
 }
 elsif ( $Max <= 20 ) {
 for ( my $i = 0; $i <= 20; $i += 4 ) {
 push @TicketYAxis, $i
 }
 }
 elsif ( $Max <= 100 ) {
 for ( my $i = 0; $i <= ( ( ( $Max - $Max % 10 ) / 10 ) + 1 ) * 10; $i += 10 ) {
 push @TicketYAxis, $i
 }
 }
 elsif ( $Max <= 1000 ) {
 for ( my $i = 0; $i <= ( ( ( $Max - $Max % 100 ) / 100 ) + 1 ) * 100; $i += 100 ) {
 push @TicketYAxis, $i
 }
 }
 else {
 for ( my $i = 0; $i <= ( ( ( $Max - $Max % 1000 ) / 1000 ) + 1 ) * 1000; $i += 1000 ) {
 push @TicketYAxis, $i
 }
 }
 my $ClosedText = $Self->{LayoutObject}->{LanguageObject}->Get('Closed');
 my $CreatedText = $Self->{LayoutObject}->{LanguageObject}->Get('Created');

 my @ChartData = (
 {
 data => \@TicketsClosed,
 label => $ClosedText,
 color => "#BF8A2F"
 },
 {
 data => \@TicketsCreated,
 label => $CreatedText,
 color => "#6F98DF"
 }
 );

 my $ChartDataJSON = $Self->{LayoutObject}->JSONEncode(
 Data => \@ChartData,
 );

 my $TicketWeekdaysJSON = $Self->{LayoutObject}->JSONEncode(
 Data => \@TicketWeekdays,
 );

 my $TicketYAxisJSON = $Self->{LayoutObject}->JSONEncode(
 Data => \@TicketYAxis,
 );

 my $Content = $Self->{LayoutObject}->Output(
 TemplateFile => 'AgentDashboardTicketStats',
 Data => {
 %{ $Self->{Config} },
 Key => int rand 99999,
 ChartData => $ChartDataJSON,
 TicketWeekdays => $TicketWeekdaysJSON,
 TicketYAxis => $TicketYAxisJSON
 },
 KeepScriptTags => 1,
 );

 return $Content;
}

1;

Am Ende noch den Fenstertitel anpassen, denn die Überschrift heißt weiterhin “7 Tage Statistik”. Das geht recht einfach über die SysConfig in OTRS selbst. Einfach nach “0250-TicketStats” suchen und das Feld ganz unten anpassen.

 

Ach ja, diese Anleitung ist für OTRS 3.1.1


Ausblick vom Hringvegur auf die mystische Vogelinsel

Insel vor Islands Küste

Insel vor Islands Küste

 

Wenn man so entlang der Ringstraße 1 Islands fährt kommt man immer wieder an Orten vorbei die einem einfach zum anhalten und verweilen zwingen. So auch dieser Vogelfelsen vor der Süd-Ost Küste Islands. Hier tummeln sich tausende Vögel und leben ungestört vom Mensch. Einer der wenigen Flecken auf dieser Erde an denen das noch möglich ist. Durch den fast nicht vorhandenen Verkehr in der Gegend Islands braucht man nicht mal warten bis eine Ausbuchtung oder ein Parkplatz auf der Straße auftaucht, nein. Hier hält man einfach auf der “Hauptstraße” am Fahrbahnrand an setzt sich an die Klippe. Wahnsinns Ausblick!
Während wir da so 30 min verweilt haben, kam nur ein Auto an uns vorbei :-)



tausendjähriges Eis

Einer der schönsten Plätze dieser Erde!

Der See Jökulsárlón ist der bekannteste Gletschersee auf Island. In ihn kalbt Europas größter Gletscher, der Vatnajökull.

Der See mündet direkt im nahegelegenen Atlantik. Durch den Kanal fließt je nach Wasserstand und Jahreszeit Meerwasser in den See oder Schmelzwasser der Eisberge ins Meer. Zwischen den langsam umhertreibenden, stellenweise 15m aus dem Wasser ragenden Eisbergen tauchen immer wieder Robben auf, welche mit den Fotografen am See ein lustiges Spielchen spielen: Abtauchen sobald man die Kamera vor dem Gesicht hat. So zumindest kommt man sich vor wenn man am Rand steht und versucht welche der lustigen Gesellen abzulichten.

tausendjähriges Eis by Benjamin (leckermojito)) on 500px.com
tausendjähriges Eis by Benjamin

Gletscherlagune in Island - Jökulsárlón by Benjamin (leckermojito)) on 500px.com
Gletscherlagune in Island – Jökulsárlón by Benjamin

the blue ice - glacierlake Jökulsárlón by Benjamin (leckermojito)) on 500px.com
the blue ice – glacierlake Jökulsárlón by Benjamin

blue and black - Jökulsárlón by Benjamin (leckermojito)) on 500px.com
blue and black – Jökulsárlón by Benjamin

Der Gletscher kalbt - Jökulsárlón by Benjamin (leckermojito)) on 500px.com
Der Gletscher kalbt – Jökulsárlón by Benjamin

blue Ice - Jökulsárlón by Benjamin (leckermojito)) on 500px.com
blue Ice – Jökulsárlón by Benjamin


Update: Blackberry Z10 mit Apples iCloud syncronisieren

Um eure iCloud Kontakte und Kalender auf andere Mobiltelefone zu bekommen würde sich ein Sync mit der iCloud anbieten. Nach ein wenig Suche im Netz war mir klar: Apple war mal wieder clever. Warum etwas neu erfinden, wenn es das gut funktionierend schon längst gibt: Die iCloud setzt auf CalDAV und CardDAV. Alles absoluter Standard!

Um eure iCloud Kontakte auf ein CardDAV kompatibles Gerät wie in meinem Falle auf den neuen BlackBerry Z10 zu bekommen müsst ihr nur mit eurem Mobiltelefon oder Tablet gegen den Server contacts.icloud.com syncronisieren.

Für den Kalender synct ihr gegen den Server caldav.icloud.com 

Benutzername ist eure Apple-ID und das Kennwort solltet ihr kennen :-)

 

Viel Spaß beim Syncen eurer Kontakte auch über die Grenzen der Apple-Welt hinaus

 

Update:

Leider scheint es Blackberry (ehemals RIM) nicht so mit ihren Firmwareupdates zu haben. Die neue Version 10.1.0.2312 hat die Funktion CardDAV einem solchen Update unterzogen, dass es derzeit überhaupt nicht nutzbar ist. Es kommt jeden Tag die Meldung “Kennwort nicht korrekt”





Hrunalaug – Hot Pot in Island

Mein neuer Lieblingsplatz auf dieser Welt: Hrunalaug im Süden von Island.

Ein wunderbar wohltemperierter 35 Grad warmer natürlicher Hot Pot.

Das geothermal Wasser strömt dort einfach aus dem Boden und erzeugt in einer wunderschönen grünen Hügellandschaft einen warmen Fluss in den man sich hineinsetzen kann. Selbst bei Regen, wie man auf dem Foto erkennen kann :-)

20121116-132608.jpg


Macro ohne Macroobjektiv

Vor einiger Zeit habe ich mich ein wenig eingelesen, wie man mit einem normalen Objektiv recht passable Macroaufnahmen machen kann. Aus Zeitgründen habe ich es nie weiter verfolgt und somit bliebt es bis zur letzten Woche bei einem “kann man in einer ruhigen Minute mal testen”. Jetzt war diese “ruhige Minute”.

der Trick: einfach das Objektiv umdrehen

Am Anfang war ich etwas skeptisch was da wohl rauskommen mag, wenn man seiner Kamera im Betrieb das Objektiv entreißt um es dann mit der Hand! einfach vor die Kamera zu halten. Stichwörter wie “Fremdlicht” und “Präzision” schwirrten mir durch den Kopf.
Um so überraschter war ich, als ich die Bilder auf dem Display der Kamera gesehen habe. Man hat zwar nur einen sehr kleinen Schärfebereich aber man bekommt aus den einfachsten und alltäglichsten Sachen super Aufnahmen. Ein einfaches Blatt an einer Zimmerpflanze erscheint in einem ganz neuen Licht, wenn man es mal durch ein Macroobjektiv umgedrehtes Objektiv begutachtet.

Die Blüte einer Orchidee sieht mit einer Macroaufnahme sehr interessant und Alienartig zu gleich aus

Ich hatte schon mehrfach mit der Idee gespielt mir einen Retroadapter zu besorgen mit dem man seine Objektive eben andersrum auf die Kamera basteln und bequem nutzen. Gemacht habe ich es aus diversen Gründen noch nicht. Erstens hatte ich Angst, dass etwas am Objektiv oder der Kamera kaputt gehen kann und andererseits dachte ich mir, dass man eh schon einen ganzen Haufen an Fotomaterial zu Hause liegen hat welches man nur selten nutzt. Also habe ich den kauf bis jetzt hinausgezögert. Nachdem ich jetzt allerdings weiß, welche Aufnahmen man nur mit einem Stativ und einem mit der Hand vor die Kamera gehaltenen Objektiv machen kann, juckt es wieder im “Sofortkauf-Finger”.

Ich werde aber erstmal noch ein bisschen mit dem Retroadapter “Hand” spielen bevor ich Geld ausgebe.