Hardcodierte Änderungen auch nach Update verfügbar

Hilfe zu Znuny Problemen aller Art
Locked
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

Hallo zusammen,

meine Frage ist ob ich folgende Hardcodierte Änderungen auch anders umsetzen kann, sodass diese auch nach einem Update noch bestehen, ohne dass ich die Dateien wieder manuell Anpassen muss.

DashboardTicketGeneric.pm
Feld für Unternehmen des Kunden erstellen

Code: Select all

+++

use Kernel::System::CustomerCompany;

+++

$Self->{CustomerCompanyObject} = Kernel::System::CustomerCompany->new(%Param);

+++

my %Company = $Self->{CustomerCompanyObject}->CustomerCompanyGet(CustomerID => $Ticket{CustomerID});

$Ticket{CustomerName}  = $Company{CustomerCompanyName};
TicketOverviewSmall.pm
Feld für Unternehmen des Kunden erstellen

Code: Select all

+++

# $Self->{CustomerCompanyObject} = Kernel::System::CustomerCompany->new(%Param);
  
  
	
# get current filter
	

$Self->{CustomerCompanyObject} = Kernel::System::CustomerCompany->new(%Param);
	
my $Name = $Self->{ParamObject}->GetParam( Param => 'Name' ) || '';
	
my $PreferencesKey = 'UserDashboardTicketGenericFilter' . $Self->{Name};

	
if ( $Self->{Name} eq $Name ) {
	    
	$Self->{Filter} = $Self->{ParamObject}->GetParam( Param => 'Filter' ) || '';
    
}
AgentDashboardTicketGeneric.dtl
Agenten Standard Anzeige ändern (mit Stripes)

Code: Select all

+++

<td>$QData{"CustomerID"}</td>
            
<td class="W15pc">
                 
	<div title="$QData{"CustomerName"}">$QData{"CustomerName","15"}</div>
            
</td>            
<td>
                
	<div title="$QData{"CustomerUserID"}">$QData{"CustomerUserID","20"}</div>
            
</td>

#<td class="W50pc">

#	<div title="$QData{"Title"}">$QData{"Title","70"}</div>

#</td>
             
<td>
                
	<div title="$QData{"Title"}">$QData{"Title","50"}</div>
            
</td>

#<td>$QData{"Queue"}</td>
             
<td>
                
	<div title="$QData{"Queue"}">$QData{"Queue","19"}</div>
            
</td>
            
<td>$QData{"Responsible"}</td>
            
<td>$QData{"Owner"}</td>

#<td>$QData{"State"}</td>
             
<td>
                
	<div title="$QData{"State"}">$QData{"State","10"}</div>
            
</td>
Ich danke euch im Voraus!
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
NancyL
Znuny expert
Posts: 247
Joined: 05 Aug 2014, 08:13
Znuny Version: 6.0.30
Real Name: Nancy

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by NancyL »

nein.
sicher dir die dateien und schiebe sie nach dem update entsprechend zurück.
ich habe mir ein script geschrieben, eins für vors update, eins für dannach wo diese ganze dienste gestoppe, kopieren, usw drin steht.
ich kopiere mittlerweile 10 dateien und einen ordner. mit dem update bin ich in 5 min durch.
OTRS 6.0.30 /OS: Ubuntu/ Mysql
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by reneeb »

Mache am besten eine richtige "Erweiterung" daraus, so dass Du nicht einzelne Dateien vergisst...
http://otrs.github.io/doc/manual/develo ... sions.html
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by RStraub »

Reneebs Vorschlag ist auf Dauer sicher der beste, wenn du allerdings keine Pakete willst, dann erstelle dir eine Ordnerstruktur unter:
~otrs/Custom/

die mit dem originalen Pfad identisch ist. Dateien darin werden (bis auf Kernel/Config/Files) statt der Standarddateien genutzt.
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
NancyL
Znuny expert
Posts: 247
Joined: 05 Aug 2014, 08:13
Znuny Version: 6.0.30
Real Name: Nancy

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by NancyL »

reneeb wrote:Mache am besten eine richtige "Erweiterung" daraus, so dass Du nicht einzelne Dateien vergisst...
http://otrs.github.io/doc/manual/develo ... sions.html
das probiere ich mal aus!
danke
OTRS 6.0.30 /OS: Ubuntu/ Mysql
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

RStraub wrote:Reneebs Vorschlag ist auf Dauer sicher der beste, wenn du allerdings keine Pakete willst, dann erstelle dir eine Ordnerstruktur unter:
~otrs/Custom/

die mit dem originalen Pfad identisch ist. Dateien darin werden (bis auf Kernel/Config/Files) statt der Standarddateien genutzt.
Hallo RStraub,

super, vielen Dank für diesen Tipp.
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

Eine Frage habe ich aber noch. Wie kann ich nun am besten diese Änderungen für die neue Version implementieren (Das Template Design hat sich ja verändert).

Also das Feld für die Firma und die Stripes?

Ich danke euch im Voraus.
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by RStraub »

Ich weiß nicht was du mit den Stripes meinst.

Beim Upgrade zu 4.0 empfehle ich dir die (neuste) Original datei zu nehmen und deine Änderungen in der neuen Syntax wieder durchzuführen (um größere Differenzen zu vermeiden):

http://otrs.github.io/doc/manual/develo ... rting.html
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

RStraub wrote:Ich weiß nicht was du mit den Stripes meinst.

Beim Upgrade zu 4.0 empfehle ich dir die (neuste) Original datei zu nehmen und deine Änderungen in der neuen Syntax wieder durchzuführen (um größere Differenzen zu vermeiden):

http://otrs.github.io/doc/manual/develo ... rting.html
Mit Stripen meine ich, dass Felder nach einer gewissen Anzahl von Zeichen beschnitten werden (ich glaube bei OTRS 4 'truncate').
Kann ich dies evtl. auch per SysConfig erledigen?
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by RStraub »

Nicht out-of-the-box. Der Wert für den Truncate ist fest im template.

Wenn du dir das für spätere Konfigurationen in den SysConfig legen willst, müsstest du:
1) Einen Eintrag in der SysConfig erstellen, z.B.:

Code: Select all

    <ConfigItem Name="CustomValues::Truncate" Required="0" Valid="1">
    <Description Translatable="1">Hash for custom values</Description>
    <Group>Framework</Group>
    <SubGroup>Custom::Config</SubGroup>
    <Setting>
       <Hash>
          <Item Key="TruncateLength">50</Item>
       </Hash>
    </Setting>
    </ConfigItem>
2) Diesen Wert im Perl-File auslesen:
http://otrs.perl-services.de/docs/otrs/ ... onfig.html
z.B.

Code: Select all

   my %Config = $SysConfigObject->ConfigItemGet(
       Name => 'CustomValues::Truncate',
   );
und dem Templatefile im Data Hash übergeben, z.B.:

Code: Select all

$Data{CustomTruncate} = $Config{TruncateLength};
3) Im Templatefile den festen Wert durch die Variable ersetzen, z.B.:

Code: Select all

[% Data.CustomTruncate %]
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

Hallo RSTraub,

nochmal vielen Dank für deine Hilfe.

Ich verstehe das neue Template System leider noch nicht ganz.
Ich habe es nun geschafft das Firma Feld einzufügen und per Default im Widget zu verteilen.

Meine 2 Fragen noch dazu:

- Ist es möglich die Sortierreihenfolge der Felder per SysConfig vorzugeben (Beispiel: Jetzt -> Ticket#, Age, Title, Owner, Status /// Soll werden -> Ticket#, Titel, Owner, Status, Age)?
- Wie trage ich das im File AgentDashboardTicketGeneric.tt ein wenn ich zum Beispiel nur das Feld 'Status' beschneiden will, aber den Rest unangetastet belassen möchte.

Danke im Voraus.
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by RStraub »

Zu 1)
Nein. Das ist eine Hash-Liste die per loop übergeben wird.

2)
In deinem Beispiel war der State auf 10 gekürzt:

Code: Select all

$QData{"State","10"}
nach dieser Anleitung:
http://otrs.github.io/doc/manual/develo ... .5.4.3.7.4

wäre die neue Syntax:

Code: Select all

[% Data.State | truncate("10") | html %]
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

Hallo RStraub,

Zu 1) Ok, ich dachte evtl wäre es auch in der Datenbank gesichert, dann hätte ich ein einfach SQL Statement für jeden User ausführen können. Wie sieht das nach einem Update von OTRS aus? Ist die Sortierung dann wieder komplett weg?

Zu 2) Ich habe in den Abschnitt

Code: Select all

[% RenderBlockEnd("ContentLargeTicketGenericRowMeta") %]
nur

Code: Select all

[% Data.State | truncate("10") | html %]
eingetragen. Leider scheint dies nicht zu greifen. Was mache ich hier noch falsch?
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by RStraub »

Sorry. Falsch verstanden oder falsch reagiert.

State ist ein generischer Wert und wird hier erzeugt/übergeben:

https://github.com/OTRS/otrs/blob/maste ... c.pm#L1472

Um jetzt z.B. den State wert auf 3 zu kürzen, müsstest du diesen Block ersetzen:

Code: Select all

                elsif (
                    $Column eq 'State'
                    || $Column eq 'Lock'
                    || $Column eq 'Priority'
                    )
                {
                    $BlockType = 'Translatable';
                    $DataValue = $Ticket{$Column};
                }
mit

Code: Select all

                elsif (
                    $Column eq 'Lock'
                    || $Column eq 'Priority'
                    )
                {
                    $BlockType = 'Translatable';
                    $DataValue = $Ticket{$Column};
                }
                elsif (
                    $Column eq 'State'
                    )
                {
                    $BlockType = 'Translatable';
                    $DataValue = substr($Ticket{$Column},0,3) . "[...]";
                }
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

Hallo RStraub,

super, das funktioniert wunderbar!

Kleines Nice to have: Kann ich das realisieren, dass der Tooltip trotzdem ausgeschrieben bleibt?


Danke dir nochmal!
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by RStraub »

Hehe, mal sehen :)

Auf welche Version bist du denn?

Ab 4.x sieht das Template so aus:

Code: Select all

<div title="[% Data.GenericValue | html %]">[% Data.GenericValue | truncate(40) | html %]</div>
d.h. der Titel hat den selben Wert wie der angezeigte Text. Was du nun machen könntest - dafür habe ich aber kein Beispiel - ist:
1) Einen zusätzlichen Wert übergeben (etwa "GenericTitle")
2) Eine Template Toolkit Abfrage machen à la:

Code: Select all

if Data.GenericTitle -> GenericTitle, else Data.GenericValue
Referenz:
http://www.template-toolkit.org/docs/ma ... ELSIF_ELSE
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

Leider habe ich doch noch eine Frage:

Wie kann ich den Spaltennamen, wie z.B. 'Verantwortlicher' kürzen? Leider finde ich die Stelle nicht :(
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
cr1zz
Znuny newbie
Posts: 67
Joined: 03 Sep 2013, 12:14
Znuny Version: 3.2.10

Re: Hardcodierte Änderungen auch nach Update verfügbar

Post by cr1zz »

- Erledigt -

Konnte ich durch Verändern der Spalten in der Datei 'AgentDashboardTicketGeneric.tt' erledigen.
Produktiv: OTRS 3.2.10 - OS: Windows Server 2008 R2 Datacenter - MySQL 5.1.51
Testing: OTRS 4.0.11 - OS: Debian Jessie - MySQL 5.5.43
Locked