Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Beantwortet
Rückfrage Funktion befüllen / Feldvalidierung deaktivieren

Hallo zusammen,

google hat mich durch Zufall auf dieses Forum gebracht und ich konnte schon den ein oder anderen interessanten Beitrag finden.

Ich bin beim Durchschauen der Fragen auf das Thema Rückfrage gestoßen, welches uns aktuell selbst beschäftigt, da wir mit der Standardfunktionalität nicht so recht zufrieden sind.

Wir würden gerne z.B. Benutzer oder Rolle direkt beim Aufruf vorbefüllen, jedoch schießen hier anscheinend JobRouter eigenen Funktionen quer.

//Listener
function addPopupListener()  {
    jQuery('html').on('DOMNodeInserted', function(e) {
        if (jQuery(e.target).hasClass('jr-step-action-layer')) {
            reshapeControlsForStepActions();
        }
    });
}

//Reshaper
function reshapeControlsForStepActions() {
    jQuery("[for='id_popup_request_jobfunction']").css("display", "none");
    jQuery("[for='id_popup_assign_job']").css("display", "none");
}

Nehme ich dieses Beispiel aus der in der Vergangenheit gestellten Frage und erweiterte den Aufruf zum die Funktion
document.getElementById('display_user_request').value = 'Jan'

setzt JobRouter mir zwar den Wert korrekt und verollständigt diesen auch, jedoch wird beim Wechseln des Fokus das Feld nicht korrekt validiert. Die Validierung konnte ich bereits umgehen, indem ich das class Attribut "required" entfernt habe, jedoch läuft die Rückfrage dann ins Leere. Hat hier jemand eine Idee?

Viele Grüße
Jan

1
1
Gepostet vor 3 Jahren
Bearbeitet vor 3 Jahren
pic
Gelöschter Benutzer
Stimmen Neuste

Antworten 3


Hallo Dominic,

vielen Dank für deine schnelle Antwort. Hab mit deinem Beispiel gestern mal rumgespielt und es funktioniert alles einwandfrei, so dass wir unsere Use-Cases darauf aufbauen können.

Viele Grüße
Jan

1
1
Gepostet vor 3 Jahren
pic
Gelöschter Benutzer

Hey Jan,

Dominic kam mir zuvor aber ja, es gibt noch ein verstecktes User-Feld, welches an dieser Stelle befüllt werden muss. Etwas fies:

file

  
  
Gepostet vor 3 Jahren
Stefan Köngeter
309 × 7 Administrator

Hallo Jan,

das class Attribut required musst du nicht entfernen. Wenn mann die Benutzereingaben simuliert scheint es zu klappen.
Es gibt jeweils noch ein verstecktes Feld welches den eigentlichen Benutzernamen hält welches auch gefüllt sein muss.

function addPopupListener() {
    document.addEventListener("DOMNodeInserted", (event) => {
        if (event.target?.classList?.contains("jr-step-action-layer")) {
            reshapeControlsForStepActions(event);
        }
    })
}

function reshapeControlsForStepActions(event) {
    if (!event?.target) {
        console.warn("No event target?");
        return;
    }

    const action = event.target.querySelector(".jr-step-action-layer-content form")?.name;
    const username = "Jan";
    const notice = "This is just a test";

    if (!action && action !== "assign" && action !== "request") {
        console.warn("Unkown step action form");
        return;
    }

    let radio = "";
    if (action === "assign") {
        radio = "id_popup_assign_job"
    }

    if (action === "request") {
        radio = "id_popup_request_jobfunction";
    }

    event.target.querySelector(`label[for='${radio}']`).getElementsByClassName.display = "none";
    jr_set_value(`display_user_${action}`, username);
    jr_set_value(`user_${action}`, username);
    jr_set_value(`jr_${action}_notice`, notice);

    setTimeout(() => {
        document.getElementById(`display_user_${action}`).dispatchEvent(new Event('change'));
        setTimeout(() => {
            document.getElementById(`jr_${action}_notice`).focus();
        }, 1);
    }, 1);
}
1
1
Gepostet vor 3 Jahren
5K Ansichten
3 Antworten
vor 3 Jahren
vor 3 Jahren
Stichwörter