Inhalt
Integration per “xs-loader” Widget
Alle Widgets werden über den “xs-loader” eingebunden. Bitte machen Sie sich mit der Dokumentation https://itek-wissen.atlassian.net/wiki/spaces/SOF/pages/2841313293 vertraut.
Parameter “xs-documents“
Dieses Widget startet eine Suche mit den übergebenen Parametern und stellt die Treffer in Verkaufsdokumenten als Einzelseiten dar. Es werden nur PDF Dokumente berücksichtigt.
Eingang | |||
---|---|---|---|
Parameter | Pflicht | Beschreibung | Beispielwert |
channelid | Ja | Kanalid die als Grundlage für die Suche verwendet werden soll. | 2 |
searchRequest | nein Es muss entweder der Parameter searchRequest oder die Kombination von searchterm und manufacturerid übergeben werden | Struktur zur Übergabe von lieferantenspezifischen Suchbegriffen.
| { "searchRequest": [{ "searchTerms": [ "Suchbegriff 1" ], "manufacturerid": [ "Lieferant 1", "Lieferant 2" ] }, { "searchTerms": [ "Suchbegriff 2", "Suchbegriff 3" ], "manufacturerid": [ "Lieferant 2" ] } ] } |
searchterm | nein Es muss entweder der Parameter searchRequest oder searchterm übergeben werden. | Suchbegriff der zum Durchsuchen der Dokumente im Kanal verwendet wird. | test |
manufacturerid | Nein Wird der Parameter searchRequest verwendet, so darf dieser Parameter nicht verwendet werden. | Liste von HerstellerID’s zum einschränken der Suche. Wenn keine ID’s angegeben wurden, werden alle Dokumente nach dem “searchterm” innerhalb des Kanals durchsucht. | [“COSMO”,”Oventrop”] |
manufactureridtype | Nein | Der Id-Typ, welcher bei einer Anfrage verwendet wird. Das Feld muss nur gesetzt werden, wenn die manufacturerid von einem anderen System verwendet werden soll. Dabei müssen alle manufacturerids vom selben Typ sein. Diese Funktionalität steht nur zur Verfügung, wenn eine IDHUB Integration beauftragt wurde. Wird dieser Parameter nicht übertragen, so werden die übergebenen manufacturerid vom angefragten System verwendet. Der manufactureridtype bezieht sich sowohl auf den Parameter manufacturerid als auch auf die Property manufacturerid in dem Objekt des Parameters searchRequest. | odc |
maxsize | Nein | Maximale Anzahl der Einzelseiten die angezeigt werden sollen. | 100 |
maxpagesperdocument | Nein | Maximale Anzahl der Einzelseiten die pro Dokument zurückgeliefert werden. Wenn nicht angegeben wird 5 als Defaultwert verwendet. | 5 |
style | Nein | JSON-Objekt zur Definition der Primär- und Sekundär-Farbe des Widgets. Das Objekt hat zwei Felder:
| "style":{ "primarycolor": "#616161", "secondarycolor": "#D3D3D3" } |
pdfviewer | nein | Das Objekt dient als Konfigurationsobjekt für den PDF-Viewer Aktuell gibt es nur eine Oberkategorie
Alle Werte werden als Pixel-Werte implementiert. Eine Einheit muss nicht zwingend angegeben werden. | "pdfviewer":{ "position":{ "top": "150px", "right": "20px", "bottom": "50px", "left": "20px" } } |
downloadinnewtab | Nein | Wird der Parameter auf true gesetzt, so öffnet sich beim klick auf den Downloadbutton ein neuer Tab und die Datei wird heruntergeladen | { ... "downloadinnewtab": true } |
downloadinnewtabtarget | Nein | In Verbindung mit “downloadinnewtab” zu verwenden. Wird nur verwendet, wenn “downloadinnewtab” auf true gesetzt ist Gibt das Ziel an, das die Download-URL öffnen soll Im Standard oder wenn kein Wert gesetzt ist, wird “_blank“ verwendet | { ... "downloadinnewtabtarget": "_parent" } |
showArchivedDocs | Nein | Der Parameter sorgt dafür, je nachdem welchen String man übergibt, ob nur Archivierte oder keine Archivierte oder alle angezeigt werden. Folgende Werte können angegeben werden:
Hinweis: Wert “all“ ist nicht zwingend notwendig, da dieser Wert defaultmäßig gesetzt wird, wenn der Parameter nicht bzw. leer übergeben wird | { ... “showArchivedDocs“: “archived“ } |
widgetstate | Nein | Alle GET-Parameter des XS-Documents-Widget als Base64 String. Damit kann eine bestimmte Ansicht sofort beim Öffnen der Deep-Search geladen werden. In Kombination mit dem “pdflinkextended“-Event verwendbar | { ... "widgetstate": "eyJzZWFyY2hUZXJtIjoid2Fzc2VyeuRobGVyIHdhc3NlcnphZWhsZXIgd2HfZXJ65GhsZXIiLCJzZWxlY3RlZFBhZ2UiOjc3LCJ1cGxvYWRJRCI6MzEsImV4dGVybmFsVXBsb2FkSUQiOiI1NDlmZDIxNi0zYTJkLTQ3MmQtODgyOS0yOGFkN2EyNTc3MGIiLCJtYW51ZmFjdHVyZXJJZCI6WyJKUC1UZXN0bGllZmVyYW50IiwiYWRtaW5sZnIxIiwiU0FJTjAxIl0sImNoYW5uZWxJRCI6Miwib3B0aW9ucyI6W10sImhhc0RlZXBzZWFyY2giOnRydWUsImNoYW5uZWxTZXR0aW5nSGFzU2hvcGNhcnQiOmZhbHNlLCJjaGFubmVsU2V0dGluZ0hhc0NsaXBwaW5nIjpmYWxzZSwiY2hhbm5lbFNldHRpbmdIYXNDbGlwcGluZ0RpYWxvZyI6ZmFsc2UsImNoYW5uZWxTZXR0aW5nSGFzU2hvcFNlYXJjaCI6ZmFsc2UsImNoYW5uZWxTZXR0aW5nU2hvd0V4dGVybmFsU2VhcmNoIjpmYWxzZSwidGh1bWJuYWlsUGF0aCI6Imh0dHBzOi8veHNwb3J0YWwtaW50ZWdyYXRpb24uaXRlay5kZS93ZWJzZXJ2aWNlaHViL0RhdGVpYWJydWZPTUQ/dHlwZT1MTyZmaWxlSUQ9YzJsMFpYTXZaR1ZtWVhWc2RDOW1hV3hsY3k5cGJtWnZjR0ZqYTJGblpTOHhMekV2TVRZMk5qTTBPREE1T0M5MGFIVnRZbTVoYVd4ekwwTER0bkp1WlhJdFVISmxhWE5zYVhOMFpTMUlaV2w2ZFc1bkxUQTFMVEl3TWpJdWNHUm1MbXB3WldjPSZ0a249MTA3Mjc0ODZmZjAyZmMyZWYyNzY0ZTUzZjFhOTE2MGFkN2VhYjAzMyIsInVwbG9hZERlc2NyaXB0aW9uIjoiQvZybmVyIFByZWlzbGxpc3RlIn0=" } |
disableMetaTag | Nein | Das XS-Documents-Widget bindet ein meta-Tag ein. Dieses meta-Tag ist wie folgt definiert: <meta name="viewport" content="width=device-width, initial-scale=1"> Das Tag ist essenziell für die Darstellung des Widgets auf mobilen Endgeräten. Bei der Einbindung des Widgets in Apps kann der Tag zu Problemen führen. Mit diesem Parameter lässt sich steuern, ob der meta-Tag angelegt wird. Der meta-Tag kann dann beispielsweise von der einbinden Webseite zur Verfügung gestellt werden. Zu beachten ist, dass, falls der Tag abgeschaltet wird, für eine korrekte Darstellung auf mobilen Endgeräten keine Gewähr übernommen wird. Standardwert ist false. | true |
Ausgang | |||
status | ja | Dieses Event wird immer beim Initialisieren ausgegeben.
|
|
shopsearch | Nein | Dieses Event wird nur ausgegeben, wenn diese Funktion für den entsprechenden Kanal angeschaltet wurde. Das Event beinhaltet folgende zwei Informationen.
| { "searchterm":"test", "manufacturerid":"testid" "callback": { "searchterm":"test", "manufacturerid":"testid", "thumbnailurl": "https://2.0.open-datacheck.de/webservicehub/DateiabrufOMD?type=LO&fileID=c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi90aHVtYm5haWxzLzEwMzE5MjY0LnBkZi5qcGVn" "uploaddescription": "Installation 2021" "widgetstate": "c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn" } } |
shopcart | Nein | Dieses Event wird nur ausgegeben, wenn diese Funktion für den entsprechenden Kanal angeschaltet wurde.
| { "searchterm":"test", "manufacturerid":"testid" "thumbnailurl": "https://2.0.open-datacheck.de/webservicehub/DateiabrufOMD?type=LO&fileID=c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi90aHVtYm5haWxzLzEwMzE5MjY0LnBkZi5qcGVn" "uploaddescription": "Installation 2021" "widgetstate": "c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn" }
|
dialogstatus | Nein | Dieses Event wird beim öffnen und schließen eines Dialoges ausgegeben. Werte:
| |
pdflink | Nein | Dieses Event wird bei einem Klick auf einen externen Link in einem PDF Dokument ausgegeben. | Ausgabe des im PDF Dokument angegebene Wert für den externen Link als String |
pdflinkextended | Nein | Dieses Event wird zusätzlich zum Event “pdflink” ausgelöst und beinhaltet ein callback-Attribut, das für den Rücksprung ins Widget verwendet werden kann. Die Attribute in des Callback-Events sind:
| Beispielausgabe des Events: { link: "article://502151000" callback: { { "searchterm":"test", "manufacturerid":"testid" "thumbnailurl": "https://2.0.open-datacheck.de/webservicehub/DateiabrufOMD?type=LO&fileID=c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi90aHVtYm5haWxzLzEwMzE5MjY0LnBkZi5qcGVn" "uploaddescription": "Installation 2021" "widgetstate": "c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn" } } } |
Eingangsevents | |||
closeAlldialogs | Dieses Event kann an das Widget emittet werden. Das Widget fängt das Event und schließt daraufhin alle zu Zeit geöffneten Dialogfenster. | Beispielaufruf: document.querySelector("xs-documents").dispatchEvent(new Event("closeAllDialogs")) |
Logik Suche
Fall 1 nur Parameter searchterm
angegeben:
Der Suchbegriff wird bei Leerzeichen aufgetrennt und mittels Oder-Operator zusammengeführt.
Gefundene Dokumente enthalten mindestens einen der Teilsuchbegriffe enthalten.
Fall 2 Parameter searchterm
und manufacturerid
angegeben:
Der Suchbegriff wird wie in Fall 1 aufbereitet.
Das Feld
manufacturerid
dient als zusätzlicher Filter. Die einzelnen IDs werden Oder verknüpft.manufacturerid
undsearchterm
werden mittels Und-Operator verknüpft.Gefundene Dokumente enthalten mindestens einen der Teilsuchbegriffe und von einem der angegebene Lieferanten stammen.
Fall 3 Parameter searchRequest
angegeben:
Aufbereitung der einzelnen Suchbegriffe in
searchTerms
wie in Fall 1Die Aufbereiteten Suchbegriffe werden mittels Oder-Operator verknüpft.
Das Feld
manufacturerid
dient als zusätzlicher Filter. Die einzelnen IDs werden Oder verknüpft.manufacturerid
undsearchterm
werden mittels Und-Operator verknüpft.Die Suchrequests im Array
searchRequest
werden Oder verknüpft.Gefundene Dokumente die auf mindestens einen der Suchrequests passen.
Beispielparameter
{ "channelid":2, "searchterm":"test", "manufacturerid":"testid", "manufactureridtype":"opendatacheck_shk", "maxsize":100, "style":{ "primarycolor": "#616161", "secondarycolor": "#D3D3D3" }, "pdfviewer":{ "position":{ "top": "150px", "right": "20px", "bottom": "50px", "left": "20px" } } }
Beispielintegration
Folgendes Codesnippet in den HTML DOM einbetten.
Widget-Loader V1.x.x
<!-- Widget --> <xs-loader accesstoken="[acccesstoken]" refreshtoken="[acccesstoken]" targeturl="https://2.0.open-datacheck.de" widget="xs-documents" widgetmode="true" language="de" parameter="ewogICAiY2hhbm5lbGlkIjoyLAogICAic2VhcmNodGVybSI6InRlc3QiLAogICAibWFudWZhY3R1cmVyaWQiOiJ0ZXN0aWQiLAogICAibWFudWZhY3R1cmVyaWR0eXBlIjoib3BlbmRhdGFjaGVja19zaGsiLAogICAibWF4c2l6ZSI6MTAwCn0="> </xs-loader> <!-- Widget Resourcen --> <script src="https://widget.itek.de/xs-loader/1.0.1/runtime.js" defer></script> <script src="https://widget.itek.de/xs-loader/1.0.1/polyfills.js" defer></script> <script src="https://widget.itek.de/xs-loader/1.0.1/main.js" defer></script>
Widget-Loader V2.x.x
<!-- Widget --> <xs-loader accesstoken="[acccesstoken]" refreshtoken="[acccesstoken]" targeturl="https://2.0.open-datacheck.de" widget="xs-documents" widgetmode="true" language="de" parameter="ewogICAiY2hhbm5lbGlkIjoyLAogICAic2VhcmNodGVybSI6InRlc3QiLAogICAibWFudWZhY3R1cmVyaWQiOiJ0ZXN0aWQiLAogICAibWFudWZhY3R1cmVyaWR0eXBlIjoib3BlbmRhdGFjaGVja19zaGsiLAogICAibWF4c2l6ZSI6MTAwCn0="> </xs-loader> <!-- Widget Resourcen --> <link rel="stylesheet" href="https://widget.itek.de/xs-loader/2.0.0/styles.css"> <noscript><link rel="stylesheet" href="https://widget.itek.de/xs-loader/2.0.0/styles.css"></noscript> <script src="https://widget.itek.de/xs-loader/2.0.0/xs-loader.js" defer></script>
Beispielevent “status”
Folgendes Codebeispiel wartet auf das Rückgabevent “status” von dem Documents Widget.
<script defer> // Auf ein Event vom Widget "xs-loader" warten. //Wenn das Event "true" ist, kann ein Eventlistener für die DeepSearch registriert werden const loader_element = document.querySelector('xs-loader'); loader_element.addEventListener('loadfinished', (loadEvent) => { console.log("Load finished: " + loadEvent.detail); // Auf ein Event vom Widget warten. const widget_status = document.querySelector('xs-documents'); widget_status.addEventListener('status', (statusEvent) => { console.log('"status" emitted: ' + statusEvent.detail) }); }); </script>