Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Hilfe zu Znuny Problemen aller Art
Locked
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

Hallo liebes Froum,

seit dem Update auf OTRS 4.0.1 funktioniert das einlesen meiner Client IP's aus dem Cusomer Frontend beim Erstellen eines neuen Tickets nicht mehr.
Hier ist mal der alte Code aus der CustomerTicketMessage...

Code: Select all

############################################
# Einlesen der IP des Clients
############################################

<script type="text/javascript">
$(function() {
var ip = '$Env{"HTTP_X_FORWARDED_FOR"}' ? '$Env{"HTTP_X_FORWARDED_FOR"}' : '$Env{"REMOTE_ADDR"}';
$('.Row_DynamicField_ClientIP').hide();
$('#DynamicField_ClientIP').val(ip);
});
</script>
ich habe inzwischen herausgefunden, dass

Code: Select all

var ip = '$Env{"HTTP_X_FORWARDED_FOR"}' ? '$Env{"HTTP_X_FORWARDED_FOR"}' : '$Env{"REMOTE_ADDR"}';
duch

Code: Select all

var ip = '[% Env("HTTP_X_FORWARDED_FOR") | html %]' ? '[% Env("HTTP_X_FORWARDED_FOR") | html %]' : '[% Env("REMOTE_ADDR") | html %]';
ersetzt werden muss.
Aber wie siehts mit dem Rest des Codes aus. Wie muss dieser angepasst werden??

Liebe Grüße

Manfred
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by jojo »

warum die 4.0.1? Aktuell ist die 4.0.13
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

der Update ist in 2 Wochen geplant...
Jetzt ist erst mal Urlaub angesagt ... :D
Dann nehme ich mir dafür ein wenig mehr Zeit ...
Oder ändert sicht der Code in den *.tt Dateien so wie beim Update von 3.9 auf 4.x?

Manfred
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by jojo »

Nein der Code ändert sich nicht. Ich bin allerdings immer etwas verwundert wenn keine Patchlevel eingespielt werden.... Nächste Woche gibt es schon die OTRS5
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

Hallo Jojo,

wenn der Code sich nicht geändert hat warum funktioniert dei Abfrage mit der Zeile

Code: Select all

var ip = '$Env{"HTTP_X_FORWARDED_FOR"}' ? '$Env{"HTTP_X_FORWARDED_FOR"}' : '$Env{"REMOTE_ADDR"}';
aus otrs 3.9 nicht??

die geänderte Zeile

Code: Select all

var ip = '[% Env("HTTP_X_FORWARDED_FOR") | html %]' ? '[% Env("HTTP_X_FORWARDED_FOR") | html %]' : '[% Env("REMOTE_ADDR") | html %]';
higegen zeigt die IP-Adresse im quelltext der Zeite problemlos an...

Mir geht es ja drum, dass der Rest des Codes

Code: Select all

$('.Row_DynamicField_ClientIP').hide();
das Feld ClientIp wird nicht versteckt obwohl hier hide gesetzt ist

Code: Select all

$('#DynamicField_ClientIP').val(ip);
Das Felde ClientIP wird nicht mit dem Wert den var ip abfragt befüllt.

Manfred
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by jojo »

der Code hat sich zwischen 3.3. und 4 geändert aber nicht zwischen 4.0.1 und 4.0.13
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

jaja du hast ja Recht ;)
Ich hatte das zuetzt mit der 3.3. ? Weiß nicht glaube 9 (3.3.9) im Einsatz,
Ist ja aber auch egal. Fakt ist: Der Obige Code passt nicht zur 4.0.1x..
Und meine Frage war jetzt wie dieser für die OTRS Version > 4 umgeschrieben werden muss.

Manfred
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by RStraub »

Naja.. Was funktioniert denn und was funktioniert nicht?
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

Also...
die Clientip wird zwar im Quelltext angezeigt. (das Funktioniert schon mal)
Das gleichnamige Dynamische Feld wird aber nicht mit der IP Adresse befüllt (Das Funktioniert nicht)
Das Feld wird nicht versteckt im Customer Frontend (Das Funktioniert auch nicht)
Also wie oben beschrieben
Mir geht es ja drum, dass der Rest des Codes

Code: Alles auswählen
$('.Row_DynamicField_ClientIP').hide();
das Feld ClientIp wird nicht versteckt obwohl hier hide gesetzt ist

Code: Alles auswählen
$('#DynamicField_ClientIP').val(ip);
Das Felde ClientIP wird nicht mit dem Wert den var ip abfragt befüllt.
Manfred
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by RStraub »

Zwei Vorschläge hätte ich. Ist das JS in einem "OnDocumentComplete" Block? Ggf. sind die dynamischen Felder noch nicht im DOM registriert, wenn du versuchst sie zu verstecken und zu befüllen. Der Identifier sieht ja schonmal richtig aus.

Als nächstes zum verstecken: Da hat sich wohl die css geändert über die du selektierst. Versuche mal statt "$('.Row_DynamicField..." diesen Code:

Code: Select all

    $('#DynamicField_ClientIP').parent().addClass( 'Hidden' );
    $('#LabelDynamicField_ClientIP').parent().addClass( 'Hidden' );
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

hmm was meinst Du mit
RStraub wrote:Ist das JS in einem "OnDocumentComplete" Block?
der Komplette Eintrag sieht jetzt so aus, aber ich glaube da ist nich was nicht so wie es sein soll...
ich hab so das Geführ, dass ich da was falsch verstanden hab... darum

die ganze Datei sieht so aus:

Code: Select all

# --
# CustomerTicketMessage.tt - provides HTML form for customer message
# Copyright (C) 2001-2014 xxx, http://otrs.com/
# --
# 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.
# --
<div id="MainBox" class="TicketCompose ARIARoleMain">
    <div class="Content">
        <form action="[% Env("CGIHandle") %]" method="post" name="compose" id="NewCustomerTicket" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
            <input type="hidden" name="Action" value="[% Env("Action") %]" />
            <input type="hidden" name="Subaction" value="StoreNew" />
            <input type="hidden" name="Expand" id="Expand" value="" />
            <input type="hidden" name="FormID" value="[% Data.FormID | html %]" />
            <fieldset>

[% RenderBlockStart("TicketType") %]
                <div>
<!--
                    <label for="TicketNumber">[% Config("Ticket::Hook") %]</label>
                    <input title="Ticket#" type="text" name="TicketNumber" size="30" value="[% Data.TicketNumber | html %]" />
                    -->
                    <label for="TypeID" class="Mandatory"><span class="Marker">*</span>[% Translate("Type") | html %]:</label>
                    [% Data.TypeStrg %]
                    <div id="TypeIDError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="TypeIDServerError" class="TooltipErrorMessage NoJavaScriptMessage[% Data.TypeIDInvalid | html %]" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>

[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#TypeID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'TypeID', ['Dest', 'PriorityID', 'ServiceID', 'SLAID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("TicketType") %]

[% RenderBlockStart("Queue") %]
                <div>
                    <label for="Dest" class="Mandatory">
                        <span class="Marker">*</span>
                        [% Translate("To") | html %]:
                    </label>
                    [% Data.ToStrg %]
                    <div id="DestError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="DestServerError" class="TooltipErrorMessage NoJavaScriptMessage[% Data.QueueInvalid | html %]" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#Dest').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'Dest', ['TypeID', 'PriorityID', 'ServiceID', 'SLAID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("Queue") %]

[% RenderBlockStart("TicketService") %]
                <div>
                    <label for="ServiceID">[% Translate("Service") | html %]:</label>
                    [% Data.ServiceStrg %]
                    <div class="Clear"></div>
                </div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#ServiceID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'ServiceID', ['TypeID', 'Dest', 'PriorityID', 'SLAID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("TicketService") %]

[% RenderBlockStart("TicketServiceMandatory") %]
                <div>
                    <label for="ServiceID" class="Mandatory"><span class="Marker">*</span> [% Translate("Service") | html %]:</label>
                    [% Data.ServiceStrg %]
                    <div id="ServiceIDError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="ServiceIDServerError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#ServiceID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'ServiceID', ['TypeID', 'Dest', 'PriorityID', 'SLAID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("TicketServiceMandatory") %]

[% RenderBlockStart("TicketSLA") %]
                <div>
                    <label for="SLAID" title="[% Translate("Service level agreement") | html %]">[% Translate("SLA") | html %]:</label>
                    [% Data.SLAStrg %]
                    <div class="Clear"></div>
                </div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#SLAID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'SLAID', ['TypeID', 'Dest', 'ServiceID', 'PriorityID', 'SignKeyID', 'CryptKeyID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("TicketSLA") %]

[% RenderBlockStart("TicketSLAMandatory") %]
                <div>
                    <label for="SLAID" title="[% Translate("Service level agreement") | html %]" class="Mandatory"><span class="Marker">*</span> [% Translate("SLA") | html %]:</label>
                    [% Data.SLAStrg %]
                    <div id="SLAIDError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="SLAIDServerError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#SLAID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'SLAID', ['TypeID', 'Dest', 'ServiceID', 'PriorityID', 'SignKeyID', 'CryptKeyID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("TicketSLAMandatory") %]

                <div>
                    <label for="Subject" class="Mandatory">
                        <span class="Marker">*</span>
                        [% Translate("Subject") | html %]:
                    </label>
                    <input title="Subject" type="text" id="Subject" name="Subject" value="[% Data.Subject | html %]" class="Validate_Required [% Data.SubjectInvalid | html %]" />
                    <div id="SubjectError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="SubjectServerError" class="TooltipErrorMessage NoJavaScriptMessage[% Data.SubjectInvalid | html %]" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>
                <div class="RichTextHolder">
                    <label for="RichText" class="Mandatory">
                        <span class="Marker">*</span>
                        [% Translate("Text") | html %]:
                    </label>
[% RenderBlockStart("RichText") %]
[% InsertTemplate("CustomerRichTextEditor.tt") %]
[% RenderBlockEnd("RichText") %]
                    <textarea id="RichText" class="RichText Validate_Required [% Data.BodyInvalid | html %]" name="Body" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") %]">[% Data.Body | html %]</textarea>
                    <div id="RichTextError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="RichTextServerError" class="TooltipErrorMessage NoJavaScriptMessage[% Data.BodyInvalid | html %]" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>
                <div>
                    <label for="Attachment">[% Translate("Attachment") | html %]:</label>
                    <input name="file_upload" id="Attachment" title="Attachment" type="file" size="40" />
                    <input type="hidden" id="AttachmentUpload" name="AttachmentUpload" value="0" />
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#Attachment').bind('change', function (Event) {
        var $Form = $('#Attachment').closest('form');
        Core.Form.Validate.DisableValidation($Form);
        $Form.find('#AttachmentUpload').val('1').end().submit();
    });
//]]></script>
[% END %]
[% RenderBlockStart("Attachment") %]
                    <div class="Attachment" title="[% Data.Filename | html %] - [% Data.Filesize | html %]">
                        [% Data.Filename | html %] ([% Data.Filesize | html %])
                        <button type="button" id="AttachmentDeleteButton[% Data.FileID | html %]" name="AttachmentDeleteButton[% Data.FileID | html %]" value="[% Translate("Delete") | html %]">[% Translate("Delete") | html %]</button>
                        <input type="hidden" id="AttachmentDelete[% Data.FileID | html %]" name="AttachmentDelete[% Data.FileID | html %]" />
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#AttachmentDeleteButton[% Data.FileID | html %]').bind('click', function () {
        var $Form = $('#AttachmentDeleteButton[% Data.FileID | html %]').closest('form');
        $('#AttachmentDelete[% Data.FileID | html %]').val(1);
        Core.Form.Validate.DisableValidation($Form);
        $Form.trigger('submit');
    });
//]]></script>
[% END %]
                    </div>
[% RenderBlockEnd("Attachment") %]

                    <div class="Clear"></div>
                </div>
[% RenderBlockStart("Priority") %]
                <div>
                    <label for="PriorityID">[% Translate("Priority") | html %]:</label>
                    [% Data.PriorityStrg %]
                    <div class="Clear"></div>
                </div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#PriorityID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'PriorityID', [ 'TypeID', 'Dest', 'ServiceID', 'SLAID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("Priority") %]

[% RenderBlockStart("DynamicField") %]
                <div class="Row Row_DynamicField_[% Data.Name | html %]">
                    [% Data.Label %]
                    <div class="Field">
                        [% Data.Field %]
                    </div>
                    <div class="Clear"></div>
                </div>
[% RenderBlockEnd("DynamicField") %]

# example of how to use fixed dynamic field blocks for customizations
# Note: Field1 and Field2 are the names of the fields and had to be replaced with the actual
# field names
#
############################################
# Einlesen der IP des Clients
############################################

<script type="text/javascript">
$(function() {
var ip = '[% Env("HTTP_X_FORWARDED_FOR") | html %]' ? '[% Env("HTTP_X_FORWARDED_FOR") | html %]' : '[% Env("REMOTE_ADDR") | html %]';
$('#DynamicField_ClientIP').parent().addClass( 'Hidden' );
$('#LabelDynamicField_ClientIP').parent().addClass( 'Hidden' );
$('#DynamicField_ClientIP').val(ip);
});
</script>

############################################

#[% RenderBlockStart("DynamicField_Field1") %]
#                <div class="Row Row_DynamicField_[% Data.Name | html %]">
#                    [% Data.Label %]
#                    <div class="Field">
#                        [% Data.Field %]
#                    </div>
#                    <div class="Clear"></div>
#                </div>
#[% RenderBlockEnd("DynamicField_Field1") %]
#[% RenderBlockStart("DynamicField_Field2") %]
#                <div class="Row Row_DynamicField_[% Data.Name | html %]">
#                    [% Data.Label %]
#                    <div class="Field">
#                        [% Data.Field %]
#                    </div>
#                    <div class="Clear"></div>
#                </div>
#[% RenderBlockEnd("DynamicField_Field2") %]

            </fieldset>
            <div id="BottomActionRow" class="ActionRow">
                <button id="submitRichText" accesskey="g" title="[% Translate("Submit") | html %] (g)" type="submit" value="[% Translate("Submit") | html %]">[% Translate("Submit") | html %]</button>
            </div>
        </form>
    </div>
</div>
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">
    Core.Customer.InitFocus();
</script>
[% END %]
Last edited by Manfred on 16 Oct 2015, 13:03, edited 1 time in total.
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by RStraub »

Setze mal über dein Skript (also noch vor <script type=...) diese Zeile:

Code: Select all

[% WRAPPER JSOnDocumentComplete %]
und hinter das skript (also nach </script>) diese Zeile:

Code: Select all

[% END %]
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
Manfred
Znuny newbie
Posts: 50
Joined: 23 Nov 2011, 11:49
Znuny Version: 4.0.14
Real Name: Manfred Werner
Company: Volkswagen Automobile

Re: Client IP an Ticket übergeben ab OTRS 4.x aber wie....

Post by Manfred »

Viiiiiilen Dank Rolf
Jetzt geht 's
Hier noch mal für alle interessierten der Code

Code: Select all

############################################
# Einlesen der IP des Clients
############################################
[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">
$(function() {
var ip = '[% Env("HTTP_X_FORWARDED_FOR") | html %]' ? '[% Env("HTTP_X_FORWARDED_FOR") | html %]' : '[% Env("REMOTE_ADDR") | html %]';
$('#DynamicField_ClientIP').parent().addClass( 'Hidden' );
$('#LabelDynamicField_ClientIP').parent().addClass( 'Hidden' );
$('#DynamicField_ClientIP').val(ip);
});
</script>
[% END %]
Ich bin Root...
Ich darf das... :D

Zur Zeit im Einsatz: SuSE Linux Enterprise Server 11 SP3 --- OTRS 4.0.1 --- MySQL 5.5.31 ---
Locked