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
Direktaufruf von Dateien aus JobArchive

Guten Tag zusammen,

wir würden gerne Dokumente aus JobArchive dynamisch über entsprechende Filter direkt per Klick aus dem aufrufen können.

Im Dialog gibt es ja die Möglichkeit ein Dokument mit dem Element JOBARCHIVE_SHOW_DOCUMENT anzuzeigen oder alternativ eine Ergebnisliste aufzurufen.
Um die Ergebnisliste aufzurufen muss man jedoch erst auf den Button klicken um diese zu öffnen.

Alternativ hatten wir uns eine Einbindung der Ergebnisliste per Iframe angeschaut. Dies ist doch auch aus verschiedenen Gründen auch nicht optimal aus Sicht der User-Experience.

In den Ergebnislisten werden ja die Dokumente über den Pfad modules/jobviewer/viewers/redirecttoviewer.php?filters%5Bdocumentrevision_id%5D=5&authentication=eyJ0eXAiOiJKV....

Hat jemand eine Idee wie man die Aufruf-URL zu einem Document generieren kann? In der Dokumentation gibt es ja zwar verschiedene Möglichkeiten für URL's zu generieren, jedoch ist der Aufruf von JobArchive Dokumenten nirgends beschrieben.

Eine Möglichkeit wäre ggf. noch per AJAX-Request über die REST-Route /application/jobarchive/archives/:archive/documents/:revisionId/file Dokumente abzurufen, jedoch haben wir aktuell noch keine Möglichkeit gefunden die Response Content-Type: application/octet-streamBinary data (document file) zu öffnen.

Für eure Hilfe vielen Dank!

Viele Grüße
Jan

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

Antworten


Hallo,
ich würde es hier wahrscheinlich tatsächlich über die API machen. Der korrekte Weg den iframe zu befüllen ist folgendermaßen:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https:// . . ./api/rest/v2/application/jobarchive/archives/ARCHIVNAME/documents/" . $revId . "/file");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                   
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'C:\\Temp\\cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
 
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
if ($code == 200) {
   $documentData = json_decode($response, true);
 
header('Cache-Control: public');
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="new.pdf"');
header('Content-Length: '.strlen($response));
echo $response;
 
} else {
    echo "Abfrage nach RevisionId fehlerhaft: Code - " . $code . ", ";
}
  
  
Gepostet vor 3 Jahren
Stefan Köngeter
309 × 7 Administrator
5K Ansichten
1 Antwort
vor 3 Jahren
vor 3 Jahren
Stichwörter