Button zum Erstellen eines Umfragelinks

Allgemein Fragen, deutsche News, Ankündigungen & Events zum OTRS
Post Reply
tommyvonm
Znuny newbie
Posts: 4
Joined: 15 Apr 2024, 14:18
Znuny Version: 7.0.16
Real Name: Thomas von Morandell

Button zum Erstellen eines Umfragelinks

Post by tommyvonm »

Moin,

ich würde gerne einen Button zu meiner Ticket-Close maske hinzufügen, mit dem man einen Umfragelink für das Survey-Modul generieren kann. Die Umfragen sollen nicht automatisch gesendet werden. Wie das Ganze in der Datenbank funktioniert, weiß ich - aber wie kann ich einen Button erstellen der einen entsprechenden Datenbank-Eintrag erstellt?

Vielen Dank!
root
Administrator
Posts: 3982
Joined: 18 Dec 2007, 12:23
Znuny Version: Znuny and Znuny LTS
Real Name: Roy Kaldung
Company: Znuny
Contact:

Re: Button zum Erstellen eines Umfragelinks

Post by root »

Hallo,

dafür ist defintiv etwas Perl-Code notwendig. Ich rate dabei dringend ab irgendetwas direkt in die Datenbank zu schreiben, sonder auf jeden Fall die Perl-API zu nutzen. Durch das Umgehendes Caches in Znuny ist das Risiko für korrupte Daten recht gross.

- Roy
Znuny and Znuny LTS running on CentOS / RHEL / Debian / SLES / MySQL / PostgreSQL / Oracle / OpenLDAP / Active Directory / SSO

Use a test system - always.

Do you need professional services? Check out https://www.znuny.com/

Do you want to contribute or want to know where it goes ?
tommyvonm
Znuny newbie
Posts: 4
Joined: 15 Apr 2024, 14:18
Znuny Version: 7.0.16
Real Name: Thomas von Morandell

Re: Button zum Erstellen eines Umfragelinks

Post by tommyvonm »

Danke @Root.

Ich habe mir mal ein bisschen die Doku angeschaut und es wie folgt gelöst:
Ich habe ein Dynamischs Feld (SendSurvey, Kontrollkästchen) erstellt und dem Ticket-Close Dialog hinzugefügt.

Dann habe ich die /Kernel/System/Ticket/Event/SurveySendRequest.pm bearbeitet und folgendes geändert:

Code: Select all

 #    # get ticket data
    my %Ticket = $TicketObject->TicketGet(
        TicketID => $Param{Data}{TicketID},
        DynamicFields => 1,
    );

    return 1 if $Ticket{StateType} ne 'closed';

    # wenn SendSurvey nicht existiert oder nicht 1 ist, keine Umfrage senden
    return 1  if (!defined $Ticket{DynamicField_SendSurvey} || $Ticket{DynamicField_SendSurvey} ne '1');
Jetzt wird nur noch gesendet, wenn das Kontrollkästchen ausgewählt wurde.
Post Reply