Entwicklung von Suchanwendungen

Copyright ©

Mindbreeze GmbH, A-4020 Linz, .

Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller.

Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet.

Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.

EinführungPermanenter Link zu dieser Überschrift

Mindbreeze Suchanwendungen gestalten den Zugriff auf die Informationen Ihres Unternehmens und passen ihn maßgeschneidert auf Ihre Bedürfnisse an. Sie können Suchanwendungen verwenden, um wichtige Informationen anzuzeigen, ohne dass der Benutzer suchen muss, eine spezielle Suchmaske erstellen, die für eine Anwendung ideal ist oder einfach eine Suchabfrage nach Personen tätigen. Die Möglichkeiten sind beinahe grenzenlos. Der Mindbreeze Client selbst ist eine solche Suchanwendung.

Beispiele: Personensuche, Ticketsuche, Anzeige der zuletzt geänderten Dokumente, alle Informationen zu einer Person, alle Informationen zu einem Thema, Einbettung in Microsoft SharePoint, Einbettung ins Intranet, Einbettung eine Webseite, usw.

Aus technischer Sicht sind Suchanwendungen HTML-Abschnitte, die auf jeder Webseite verwendet werden können. Wichtig ist, dass die Webseite von einem Webserver geladen werden muss, HTML-Dokumente können nicht einfach mit Doppelklick geöffnet werden. Stellen Sie sicher, dass die Adresse im Browser mit http oder https beginnt.

Benötigte RessourcenPermanenter Link zu dieser Überschrift

StylesPermanenter Link zu dieser Überschrift

Die Styles werden über das File adapted.css geliefert. Es befindet sich unter apps/css/.

<link href="/apps/css/adapted.css" rel="stylesheet">

Zusätzlich wird ein minimales Stylesheet (minimal-adapted) angeboten. Dieses File befindet sich ebenfalls unter apps/css/.

<link href="/apps/css/minimal-adapted.css" rel="stylesheet">

Empfohlen wird, diese Styles innerhalb des <head> im HTML zu laden.

ScriptsPermanenter Link zu dieser Überschrift

Das benötigte JavaScript wird vom client.js geliefert. Es befindet sich unter apps/scripts/.

<script src="/apps/scripts/client.js" data-mindbreeze-lib data-global-export="false"></script>

data-mindbreeze-lib: Ist dieses Attribut gesetzt, bedeutet es, dass der Pfad dieser Ressource für die restlichen zu ladenden Files/Ressourcen verwendet wird.

data-global-export: Gibt an, ob Ressourcen global verwendet werden können oder nicht. Default „false“.

Search App EditorPermanenter Link zu dieser Überschrift

Die einfachste Art, eine Suchanwendung zu erstellen, ist der Search App Editor. Hier fügen Sie Bausteine per Drag & Drop zu einer Suchanwendung zusammen. Als Bausteine stehen Layouts, Suchfelder, Ergebnisse, Navigationselemente und Filter zur Verfügung.

Durch die einfache Bedienbarkeit ist der Editor speziell für Fachbereichsmitarbeiter geeignet, damit die Personen, die die Informationen benötigen, das Maximum aus den Daten herausholen können.

      1. Öffnen Sie den Editor: Der Editor ist unter der gleichen Adresse wie der Client, unter dem Pfad apps/editor verfügbar (z.B. https://example.com/apps/editor/).
      2. Klicken Sie die "Widget hinzufügen"-Schaltfläche: Die Schaltfläche steht an allen Stellen zur Verfügung, wo Sie Widgets einfügen können (mehr dazu bei Layouts).
      3. Wählen Sie ein Widget aus: Am rechten Fensterrand erscheint die Widgetauswahl. Die einzelnen Widgets sind in thematische Gruppen gegliedert. Hinzufügen können Sie das Widget mit einem einfachen Klick oder per Drag & Drop.

      4. Passen Sie die Einstellungen an: Nach dem Hinzufügen eines Widgets können Sie dessen Einstellungen am rechten Fensterrand (1) anpassen. Hier stehen unter anderem Suchbegriff, Ergebnisanzahl und Darstellungsvorlage zur Auswahl.

      1

      2

    1. Um die Einstellungen später erneut zu bearbeiten, klicken Sie auf die Bearbeiten-Schaltfläche (2).

    Snippet fehlt!

    Verwenden der Suchanwendung: Klicken Sie auf die "Exportieren"-Schaltfläche und kopieren Sie das erzeugte Snippet in eine beliebige Webseite.

  1. Fertig!: Zeigen Sie die neue Suchanwendung Ihren Kolleginnen und Kollegen.

BausteinePermanenter Link zu dieser Überschrift

LayoutPermanenter Link zu dieser Überschrift

Verwenden Sie Layout-Bausteine, um die weiteren Abschnitte zu gliedern. So können Sie Spalten in unterschiedlichen Aufteilungen oder einen Kopfbereich hinzufügen. Sämtliche Layouts werden mittels „Responsive Webdesign“ sowohl auf Arbeitsplatzrechnern als auch auf Mobilgeräten optimal dargestellt.

SuchfeldPermanenter Link zu dieser Überschrift

In das Suchfeld kann der Benutzer eigene Suchbegriffe eingeben.

Bildschirmfoto:

ErgebnissePermanenter Link zu dieser Überschrift

Für die Darstellung von Ergebnissen stehen Listen-, Bilder-, Karten- und Zeitleistenansicht zur Verfügung.

EinstellungenPermanenter Link zu dieser Überschrift

  • Sucheinschränkung: Es werden nur Ergebnisse angezeigt, die einer vorgegebenen Einschränkung entsprechen, z.B. extension:pdf, um nur PDF-Dokumente anzuzeigen.
  • Ergebnisse: die Anzahl der angezeigten Ergebnisse
  • Sortieren nach: Ergebnisse können nach den für die Ergebnisse zur Verfügung stehenden Kriterien sortiert werden
  • Sortierreihenfolge: die Ergebnisse werden aufsteigend oder absteigend sortiert

Bei Listen- und Bilderansicht stehen zusätzlich folgende Optionen zur Verfügung:

  • Ergebnisse beim Scrollen anzeigen: Es werden automatisch zusätzliche Ergebnisse geladen, wenn der Benutzer nach unten scrollt. Wichtig: Aktivieren Sie diese Einstellung nur, wenn die Ergebnisanzeige das letzte Element auf der Seite ist, andernfalls können die Benutzer die Elemente unter den Ergebnissen nicht erreichen.

Bei der Zeitleistenansicht stehen zusätzlich folgende Optionen zur Verfügung:

  • Höhe: Höhe der Zeitleiste, auto für automatische Anpassung an die angezeigten Treffer oder Höhenangabe laut CSS, z.B. 200px. Standardwert: auto
  • Startdatum & Enddatum: Begrenzung der Zeitleiste auf einen Zeitraum
  • Bei Listen-, Bilder- und Zeitleistenansicht steht zusätzlich folgende Option zur Verfügung:
  • Vorlage: Sie können die Darstellung der Ergebnisse mittels mustache-Templates anpassen. Somit können Sie z.B.:
    • Metadaten ein- und ausblenden,
    • die Darstellung von z.B. Personen anpassen,
    • die HTML-Struktur der Zielseite verwenden.

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage stehen alle Metadaten, das Vorschaubild und alle Aktionen der Dokumente zur Verfügung. Die folgende Vorlage zeigt das Vorschaubild und den Titel als Überschrift und darunter den Inhalt des Dokuments an:

<h3>{{{icon}}} {{{title}}}</h3>

<p>

  {{{content}}}

</p>

Schreiben sie den Namen eines Metadatums in {{{ }}}, um das Metadatum anzuzeigen, z.B.:

{{{Author}}}

oder

Autor: {{{Author}}}

Wenn das Metadatum nicht vorhanden ist, soll auch "Autor:" nicht angezeigt werden? Mit einer Bedingung machen Sie die Ausgabe optional:

{{#Author?}}Autor: {{{Author}}}{{/Author?}}

Die komplette Vorlage:

<h3>{{{icon}}} {{{title}}}</h3>

{{#Author?}}Autor: {{{Author}}}{{/Author?}}

{{#content?}}

  <p>

    {{{content}}}

  </p>

{{/content?}}

Die Ausgabe könnte dann wie folgt aussehen:

<div>

  <h3><img src="..."> Dokument</h3>

  Autor: Max Mustermann

  <p>

    Lorem impsum ...

  </p>

</div>

<div>

  <h3><img src="..."> Max Mustermann</h3>

</div>

Mit {{#actions.data}}{{{html}}}{{/actions.data}} geben Sie alle Aktionen aus. Um nur auf die erste Aktion zuzugreifen, können Sie {{actions.data[0].value.href}} verwenden.

Die komplette Vorlage mit der ersten Aktion als Link:

<h3>

  {{#actions.data[0].value.href?}}

    <a href="{{actions.data[0].value.href}}">

  {{/actions.data[0].value.href?}}

  {{{icon}}} {{{title}}}

  {{#actions.data[0].value.href?}}

    </a>

  {{/actions.data[0].value.href?}}

</h3>

{{#Author?}}Autor: {{{Author}}}{{/Author?}}

{{#content?}}

  <p>

    {{{content}}}

  </p>

{{/content?}}

Die Ausgabe könnte dann wie folgt aussehen:

<div>

  <h3><a href="http://..."><img src="..."> Dokument</a></h3>

  Autor: Max Mustermann

  <p>

    Lorem impsum ...

  </p>

</div>

<div>

  <h3><a href="http://..."><img src="..."> Max Mustermann</a></h3>

</div>

LinkPermanenter Link zu dieser Überschrift

Mit einem Link kann die Suche in einer externen Suchmaschine fortgesetzt werden.

Bildschirmfoto:

Einstellungen:

  • Adresse: die Adresse der externen Suche mit Platzhaltern, z.B. https://duckduckgo.com/?q={searchTerms}. {searchTerms} wird mit dem Suchbegriff ersetzt, {language} mit der Sprache der Suchanwendung.
  • Text: Der Text des Links

BlätternPermanenter Link zu dieser Überschrift

Mit dem Blättern-Widget können die Benutzer weitere Suchergebnisse anzeigen. Verwenden Sie dieses Widget, falls Sie bei den Ergebnissen die Option Ergebnisse beim Scrollen anzeigen nicht aktiviert haben.

Bildschirmfoto:


Detailinformation für Anpassungen finden Sie beim pagination-Widget.

SeitenPermanenter Link zu dieser Überschrift

Mit dem Seiten-Widget kann seitenweisen in den Suchresultaten navigiert werden. Bei den Ergebnissen sollte die OptionErgebnisse beim Scrollen anzeigen deaktivert sein, damit nur eine Variante zum Blättern zur Verfügung steht.

Bildschirmfoto:

Detailinformation für Anpassungen finden Sie beim pages-Widget.

FilterPermanenter Link zu dieser Überschrift

Filter dienen zum Einschränken der Suchergebnisse. Beim Hinzufügen des Widgets stehen alle Filter zur Auswahl, die für die aktuelle Suche möglich sind.

Bildschirmfoto:

Einstellungen:

  • Filter: das Metadatum, das für den Filter verwendet wird
  • Titel: falls Sie nicht die Standardübersetzung des Metadatennamens anzeigen möchten, geben Sie hier den gewünschten Titel an (Vorsicht wenn der Suchclient in unterschiedlichen Sprachen verwendet wird).
  • Benutzereingaben zulassen: mit „Widget automatisch auswählen“ wird die Benutzereingabe unter dem Filter an dessen Typ angepasst, z.B. Datumseingabe für Datumswerte, Autovervollständigung für Textwerte. „Deaktiviert“ blendet die Benutzereingabe aus. Mit „Widget verwenden“ wird die Option „Widget für Benutzereingaben“ angezeigt .
  • Widget für Benutzereingaben: Wählen sie das Widget aus, das für die Benutzereingabe verwendet wird.
  • Benutzereingabe immer anzeigen: Soll die Benutzereingabe auch angezeigt werden, wenn noch kein Suchbegriff eingegeben wurde?
  • Anzahl der angezeigten Filterwerte: Die angegebene Anzahl wird standardmäßig angezeigt, weitere Werte können mit "Mehr anzeigen“ und „Weniger anzeigen“ ein- oder ausgeblendet werden.
  • Aufklappbar: Der Benutzer kann den Filter zuklappen, somit wird nur noch die Titelzeile angezeigt.
  • standardmäßig aufgeklappt: Der Filter wird zu Beginn aufgeklappt dargestellt.
  • Verknüpfung von ausgewählten Filterwerten: Muss ein Treffer alle ausgewählten Werte besitzen (AND) oder genügt einer (OR). Standardwert: OR
  • Kombinationen von Filterwerten erlauben: Aktiviert eine Schaltfläche „+“ neben einem Filterwert, mit dem eine Und-Verknüpfung gemacht werden kann.
  • Sortieren nach: „Anzahl Filterwerte“ sortiert nach Häufigkeit des Auftretens, „Titel“ nach dem Filterwert, „Angepasst“ sortiert nach Titel in aufsteigender Reihenfolge und es können die ersten Werte angegeben werden.
  • Sortierreihenfolge: „Aufsteigend“ und „Absteigend“ legen die Richtung direkt fest. Standardwert: Aufsteigend
  • Angepasste Reihenfolge: Liste der zu Beginn anzuzeigenden Werte, beistrichgetrennt.
  • Vorlage: Sie können die Darstellung der Filter mittels mustache-Templates anpassen.

Verfügbare WidgetsPermanenter Link zu dieser Überschrift

Der folgende Teil enthält die Beschreibung aller zur Verfügung stehenden Widgets. Widgets sind HTML-Tags, die in beliebige HTML-Dateien eingefügt werden. HTML-Tags mit dem Attribut data-template="<Widget-ID>" werden zu Widgets. Einstellungen und Vorlagen können entweder als weitere Attribute oder als Inhalt des Tags definiert werden. Beispiele:

<div data-template="map"></div>

 

<div data-template="view" data-count="5">...</div>

 

<div data-template="view" data-count="5">

  <div data-template="results" data-appendonscroll="true">

    <script type="text/x-mustache-template">

      <h3>{{{icon}}} {{{title}}}</h3>

      <p>

        {{{content}}}

      </p>

    </script>

  </div>

</div>


accordionPermanenter Link zu dieser Überschrift

Das Accordion-Widget ist ein Element zur Einfassung von auf- und zuklappbaren Bereichen.

Enthaltene Elemente mit role=tab werden als auf- und zuklappbar dargestellt und können mit der Tastatur bedient werden. Das Widget verwendet die ARIA-role tablist (http://www.w3.org/TR/wai-aria/roles#tablist), die Unterelemente müssen der definierten Struktur entsprechen.

Beispiele:

<div data-template="accordion" data-enabled="true" data-default-open="true" aria-label="Filter">

  <div data-template="datasources" data-model="userSourceInfo" data-path="sources.data_sources" role="presentation"></div>                                                                                                          

  <div data-template="constraints" data-model="userSourceInfo" data-path="sources.constraints" role="presentation"></div>                                                                                          

  <div data-template="filteredfacet" data-name="mes:date "></div>

  <div data-template="filteredfacets" data-name="mes:configuredfacets" role="presentation"></div>

</div>

Einstellungen:

  • data-enabled: bei true können die Bereiche geöffnet und geschlossen werden. Standardwert: false
  • data-default-open: gibt an, ob die enthaltenen Bereiche standardmäßig geöffnet oder geschlossen sind. Standardwert: false

alertPermanenter Link zu dieser Überschrift

Ein „alert“ zeigt Fehler an, die bei der Suche aufgetreten sind.

Bildschirmfoto:

Modell: application.models.channels.alerts

Beispiele:

<div data-template="alert"></div>

 

<div data-template="alert">

  <script type="text/x-mustache-template">

    <div class="alert alert-{{level}}">

      <button type="button" class="close" data-action-object="{&quot;destroyModel&quot;: {}}" title="{{i18n.Close}}">&times;</button>

      {{{message}}}

      {{{error}}}

      {{{warning}}}

      {{{info}}}

      {{#service_ids?}}

        ({{{service_ids}}})

      {{/service_ids?}}

    </div>

  </script>

</div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

Werte:

  • level: info, warning, error
  • message: Fehlermeldung
  • error: Fehlermeldung
  • warning: Warnmeldung
  • info: Informationsmeldung
  • service_ids: Serivces, die die Meldung verursacht haben

alertcenterPermanenter Link zu dieser Überschrift

Das alertcenter-Widget ist ein Element zum Anzeigen von beliebigen Alerts. Diese Alerts können entweder vom User angelegt oder auch als Template von Administratoren hinterlegt worden sein. Dazu wird pro User eine E-Mail-Adresse hinterlegt, an welche diese Alerts (bei Änderungen von Treffern) im gewünschten Abstand versendet werden. Somit ist diese Komponente eine Erweiterung der „alertedsearches“ Komponente, welche damit abgelöst wird.

Beispiel:
<div data-template="alertedsearches"></div>

Konfiguration
Um dieses Widget verwenden zu können, sind im Konfigurator Einstellungen nötig.

annotationPopupPermanenter Link zu dieser Überschrift

Das annotationPopup-Widget ist ein Element zum Anzeigen von Eigenschaften in der Preview-Komponente via mousehover über einer Annotation. Dabei werden sämtliche Eigenschaften aus der URL verwendet, welche als URL-Parameter angegeben werden. Werden nicht alle Eigenschaften gewünscht, können die gewünschten Eigenschaften im Mustache-Template explizit angegeben werden (Achtung: Diese müssen als URL-Parameter verfügbar sein).

Beispiel:
https://entity.yourcompany.com/?type=Search&code=J01FA09&term=Mindbreeze%20InSpire

Zusätzlich kann zu jeder Annotation ein Feedback abgegeben werden, welches in App.Telemetry ersichtlich ist:

Final eingebettet sieht es in der PDF-Vorschau wie folgt aus:

Beispiel:

Um dieses Feature verwenden zu können, muss im Client folgender Container hinzugefügt werden:

<div data-template="annotationPopup" data-enable-feedback="true">

</div>

Weiteres Beispiel:

<div data-template="annotationPopup" data-enable-feedback="true">

  <script type="text/x-mustache-template">

    {{#term?}} <div><b>{{term}}</b></div> {{/term?}}

    {{#code?}} <div>Code: {{code}}</div> {{/code?}}

    {{#type?}} <div>Type: {{type}}</div> {{/type?}}

    </script>

</div>

Einstellungen:

data-enable-feedback: Aktiviert die Feedbackfunktionalität am Client. Default: false

applistsPermanenter Link zu dieser Überschrift

Bietet eine Auswahl an föderierbaren Quellen.

Bildschirmfoto:

Modell: application.models.applists

Beispiel:

<div data-template="applists"></div>

breadcrumbPermanenter Link zu dieser Überschrift

Wenn Aktionen die Ergebnisse einschränken, stehen diese Einschränkungen im breadcrumb-Widget zur Verfügung und können dort wieder deaktiviert werden.

Bildschirmfoto:

Modell: application.models.search.user.constraints

Beispiele:

<ul data-template="breadcrumb" class="nav nav-stacked nav-pills"></ul>

 

<ul data-template="breadcrumb" class="nav nav-stacked nav-pills">

  <script type="text/x-mustache-template" data-tag-name="li">

    <div>

      <label class="checkbox">

        <input type="checkbox" checked data-action-object="{ &quot;removeConstraint&quot;: {} }">

        <span title="{{{description}}}">{{{description}}}</span>

      </label>

    </div>

  </script>

</ul>

Einstellungen:

  • data-display-filteredfacets: bei true werden ausgewählte Filterwerte auch angezeigt. Standardwert: false

collectPermanenter Link zu dieser Überschrift

Widget für Ergebnisse, die mit der "Sammeln"-Aktion gesammelt wurden.

Bildschirmfoto:

Modell: application.models.collected

Beispiel:

<div data-template="collect"></div>

Einstellungen:

  • data-favorites-collection-path: Persisted Collection Pfad zum Speichern der gesammelten Ergebnisse. Muss mit favorites/ beginnen. Standardwert: leer
  • data-results-shortcut: Beschreibung der Tastenkombination, die verwendet wird, um zu den Resultaten zu navigieren. Beispiel: Alt+2, Standardwert: leer

constraintsPermanenter Link zu dieser Überschrift

Zeigt einen Filter für die Einschränkungen der Datenquellen an. Bei Microsoft Exchange stehen beispielsweise E-Mail, Anhang, Kalender, Kontakt, Aufgabe, Notiz und Post zur Auswahl.

Bildschirmfoto:

Modell: application.models.userSourceInfo

Beispiel:

<div data-template="constraints" data-model="userSourceInfo" data-path="sources.constraints"></div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

Siehe mustache-Templates unter filteredfacet.

datasourcesPermanenter Link zu dieser Überschrift

Zeigt einen Filter für die Datenquellen an. Hier können Datenquellen, wie Microsoft Exchange, Fabasoft Folio, Microsoft SharePoint ausgewählt werden.

Bildschirmfoto:

Modell: application.models.userSourceInfo

Beispiel:

<div data-template="datasources" data-model="userSourceInfo" data-path="sources.data_sources"></div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

Siehe mustache-Templates unter filteredfacet.

inputdatePermanenter Link zu dieser Überschrift

Bietet eine Datumsauswahl für ein Eingabefeld an. Das Template muss auf einem input-Element verwendet werden. Das name-Attribut gibt an, welches Metadatum eingeschränkt wird.

Beispiele:

<input name="mydate" data-template="inputdate" data-isrange="true" placeholder="Datum" >

<input name="mydate" data-template="inputdate">

Einstellungen:

  • name: Name des Metadatums für die Einschränkung
  • data-isrange: bei true kann ein Zeitbereich angegeben werden. Standardwert: false

DatumsfilterPermanenter Link zu dieser Überschrift

Der Datumsfilter kann auch auf Monatsebene beginnen. Die Reihenfolge ist vom neuesten zum ältesten Datum.

Diese Einstellung findet man in den Client Services unter „Filter Settings. Dazu wird folgende Einstellung benötigt:

Flat Date Filter Values (Month Year): „true“

feedbackbuttonPermanenter Link zu dieser Überschrift

Zeigt den app.telemetry-Feedback-Button an. Der Feedback-Button ist nur sichtbar, wenn app.telemetry für den Client aktiviert und der URL im Clientservice angegeben ist.

Bildschirmfoto:

Beispiel:

<span data-template="feedbackbutton" data-check-if-enabled-in-profile="true"></span>

Einstellungen:

  • data-check-if-enabled-in-profile: der Feedback-Button kann im Profil aktiviert/deaktiviert werden. Mit dieser Option legen Sie fest, ob die Profileinstellung berücksichtigt wird. Werte: true, false

Der URL muss im Manager unter Clientservice beim Punkt: Fabasoft app.telemetry Web API URL eingetragen werden. (http://yourdomain.com/web.telemetry)

filteredfacetPermanenter Link zu dieser Überschrift

Bildschirmfoto:

Modell: application.models.search + FacetValueCollection + FacetValueCollection.Entry

Beispiele:

<div data-template="filteredfacet" data-name="mes:date" data-user-input="disabled"></div>

 

<div data-template="filteredfacet">

  <script type="text/x-mustache-template"

    data-tag-name="span"

    data-attr-title="{{name}}{{^name?}}{{html}}{{/name?}}"

  >

    {{{html}}}

    <span class="pull-right">{{^count?}}-{{/count?}}{{count}}</span>

    {{^excluded}}

      {{#count?}}

        <span class="pull-right">{{count}}</span>

      {{/count?}}

    {{/excluded}}

    {{#excluded}}

      <span class="pull-right">&ndash;</span>

    {{/excluded}}

  </script>

</div>

 

<div data-template="filteredfacet"

     data-name="Author"

     data-container-tag-name="div"

     data-container-class-name="filter"

     data-entry-tag-name="div"

     data-entry-class-name="entry">

</div>

Ausgabe:

<div data-template="filteredfacet"

     data-name="Author"

     data-title-tag-name="h3"

     data-title-class-name="title"

     data-container-tag-name="div"

     data-container-class-name="filter"

     data-entry-tag-name="div"

     data-entry-class-name="entry">

  <h3 class="title">Autor</h3>

  <div class="filter">

    <div class="entry">

      ...

    </div>

    ...

  </div>

</div>

Einstellungen:

  • data-name: das Metadatum, das für den Filter verwendet wird
  • data-user-input: mit disabled kann die Benutzereingabe unter dem Filter deaktiviert werden. Mit auto wird die Benutzereingabe an den Typ des Filters angepasst, z.B. Datumseingabe für Datumswerte, Autovervollständigung für Textwerte. Ohne Angabe wird auto verwendet.
  • Die Einstellung ersetzt data-suggest:
  • data-suggest="false" => data-user-input="disabled"

      data-suggest="true" => data-user-input="auto"

  • data-user-input-template: Widget, das für die Benutzereingabe verwendet wird. Mit suggest wird die Autovervollständigung angezeigt, inputdate zeigt die Datumseingabe. Damit der Wert verwendet wird, darf data-user-input nicht gesetzt sein.
  • data-user-input-<Einstellung>: übergeben Sie Einstellungen an das Benutzereingabe-Widget. Z.B. data-user-input-isrange="true" beim inputdate-Widget.
  • data-always-visible: mit true wird der Filter auch angezeigt, wenn noch keine Suche abgesetzt wurde. Da der Typ eines Filters ohne Suche nicht bekannt ist, muss data-user-input-template definiert sein. Standardwert: false
  • data-title: falls Sie nicht die Standardübersetzung des Metadatennamens anzeigen möchten, geben Sie hier den gewünschten Titel an
  • data-title-tag-name: HTML-Tag, das für die Überschriften der Filter verwendet wird. Standardwert: h3
  • data-title-class-name: CSS-Klassenname, der für die Überschriften der Filter verwendet wird. Standardwert: leer
  • data-title-template: Mustache-Template zur Darstellung des Titels. Verfügbare Werte: title, isOpen. Standardwert: leer
  • data-container-tag-name: HTML-Tag für das Element, das die Filtereinträge enthält. Standardwert: ul
  • data-container-class-name: CSS-Klassenname für das Element, das die Filtereinträge enthält. Standardwert: leer
  • data-entry-tag-name: HTML-Tag für einen Filtereintrag. Standardwert: li
  • data-entry-class-name: CSS-Klassenname für einen Filtereintrag. Standardwert: leer
  • data-entry-role: ARIA-role-Attribut für einen Filtereintrag. Standardwert: leer
  • data-collapsible: bei true kann der Filter geöffnet und geschlossen werden. Standardwert: false
  • data-default-open: gibt an, ob der Filter standardmäßig geöffnet oder geschlossen ist. Standardwert: false
  • data-displayed: Anzahl der angezeigten Filterwerte. Schränkt die Anzeige der am Client Service konfigurierten Anzahl weiter ein. Sind mehr Einträge vorhanden, können diese mit einer Schaltfläche angezeigt werden.
  • data-and-available: Aktiviert eine Schaltfläche „+“ neben einem Filterwert, mit dem eine Und-Verknüpfung gemacht werden kann. Standardwert: false
  • data-intersect-values: Verwendet für die Verknüpfung der ausgewählten Werte AND, somit müssen Treffer alle ausgewählten Werte enthalten. Standardwert: false
  • data-order-criteria: COUNT sortiert nach Häufigkeit des Auftretens, VALUE nach dem Filterwert, PREDEFINED sortiert nach Titel in aufsteigender Reihenfolge und es können die ersten Werte in data-predefined-order angegeben werden.
  • data-order-direction: ASCENDING und DESCENDING legen die Richtung direkt fest. Standardwert: ASCENDING
  • data-predefined-order: Liste der zu Beginn anzuzeigenden Werte, beistrichgetrennt oder JSON. Z.B. pdf, gif oder ["pdf", "gif"]
  • data-restore-focus: Setzt den Fokus nach Auswahl eines Wertes wieder auf die Checkbox. Standardwert: true
  • data-show-checkbox: Soll eine Checkbox angezeigt werden? Standardwert: true
  • data-show-all: Soll die Option „Alle“ angezeigt werden? Standardwert: true

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage steht der Wert eines Filtereintrags, die Anzahl der Dokumente, sowie ob der Eintrag aktuell bei der Suche berücksichtigt wird oder nicht.

Standardvorlage:

{{{html}}}

<span class="pull-right">{{^count?}}-{{/count?}}{{count}}</span>

{{^excluded}}

  {{#count?}}

    <span class="pull-right">{{count}}</span>

  {{/count?}}

{{/excluded}}

{{#excluded}}

  <span class="pull-right">&ndash;</span>

{{/excluded}}

Werte:

  • html: der formatierte Wert des Filtereintrages, z.B. pdf, Max Mustermann, 2014
  • value: der Wert des Filtereintrages (z.B. bei Datumswerten)
  • count: die Anzahl der gefundenen Dokumente für diesen Eintrag
  • excluded: ist der Eintrag nicht ausgewählt, obwohl andere ausgewählt sind

filteredfacetsPermanenter Link zu dieser Überschrift

Zeigt eine Gruppe von Filtern an. Aktuell steht die Gruppe "mes:configuredfacets" zur Verfügung, die alle in der Client Service-Konfiguration ausgewählten Filter enthält.

Für die Darstellung der einzelnen Filter wird das filteredfacet-Widget verwendet. Eine Darstellungsvorlage dafür kann in filteredfacets hinterlegt werden. Die Möglichkeiten für diese Vorlage finden Sie unter mustache-Templates bei filteredfacet. Zusätzlich können die Filter per Option als Comboboxen angezeigt werden.  

Bildschirmfoto:

Modell: application.models.search + application.models.search.facets + FacetValueCollection + FacetValueCollection.Entry

Beispiele:

<div data-template="filteredfacets" data-name="mes:configuredfacets"></div>

 

<div data-template="filteredfacets" data-name="mes:configuredfacets">

  <div style="display: none">

    <div data-template="filteredfacet">

      <script type="text/x-mustache-template"

        data-tag-name="span"

        data-attr-title="{{name}}{{^name?}}{{html}}{{/name?}}"

      >

        {{{html}}}

        <span class="pull-right">{{^count?}}-{{/count?}}{{count}}</span>

        {{^excluded}}

          {{#count?}}

            <span class="pull-right">{{count}}</span>

          {{/count?}}

        {{/excluded}}

        {{#excluded}}

          <span class="pull-right">&ndash;</span>

        {{/excluded}}

      </script>

    </div>

  </div>

</div>

Einstellungen:

  • data-name: die Filtergruppe, die angezeigt wird
  • data-user-input: mit disabled kann die Benutzereingabe unter dem Filter deaktiviert werden. Mit auto wird die Benutzereingabe an den Typ des Filters angepasst, z.B. Datumseingabe für Datumswerte, Autovervollständigung für Textwerte. Ohne Angabe wird auto verwendet.
  • Die Einstellung ersetzt data-suggest:
  • data-suggest="false" => data-user-input="disabled"

      data-suggest="true" => data-user-input="auto"

  • data-user-input-template: Widget, das für die Benutzereingabe verwendet wird. Mit suggest wird die Autovervollständigung angezeigt, inputdate zeigt die Datumseingabe. Damit der Wert verwendet wird, darf data-user-input nicht gesetzt sein.
  • data-user-input-<Einstellung>: übergeben Sie Einstellungen an das Benutzereingabe-Widget. Z.B. data-user-input-isrange="true" beim inputdate-Widget.
  • data-title-tag-name: HTML-Tag, das für die Überschriften der Filter verwendet wird. Standardwert: h5
  • data-title-class-name: CSS-Klassenname, der für die Überschriften der Filter verwendet wird. Standardwert: leer
  • data-facet-container-tag-name: HTML-Tag für das Element, das die Filtereinträge enthält. Standardwert: ul
  • data-facet-container-class-name: CSS-Klassenname für das Element, das die Filtereinträge enthält. Standardwert: leer
  • data-facet-entry-tag-name: HTML-Tag für einen Filtereintrag. Standardwert: li
  • data-facet-entry-class-name: CSS-Klassenname für einen Filtereintrag. Standardwert: leer
  • data-collapsible: bei true kann der Filter geöffnet und geschlossen werden. Standardwert: false
  • data-default-open: gibt an, ob der Filter standardmäßig geöffnet oder geschlossen ist. Standardwert: false
  • data-displayed: Anzahl der angezeigten Filterwerte. Schränkt die Anzeige der am Client Service konfigurierten Anzahl weiter ein. Sind mehr Einträge vorhanden, können diese mit einer Schaltfläche angezeigt werden.
  • data-dropdownfilter: Bei „true“ werden die Filter als Dropdown bzw. Combobox dargestellt. Standardwert: false

mustache-TemplatesPermanenter Link zu dieser Überschrift

Die Vorlage für das filteredfacet-widget wird wie folgt definiert:

<div data-template="filteredfacets" data-name="mes:configuredfacets">

  <div style="display: none">

    <div data-template="filteredfacet">

      ...

    </div>

  </div>

</div>

Siehe mustache-Templates unter filteredfacet.

mapPermanenter Link zu dieser Überschrift

Zeigt Ergebnisse, die Geodaten enthalten, in einer Karte. Gibt es kein Ergebnis mit Geodaten wird die Karte nicht angezeigt. Geodaten müssen in den Metadaten geolatitude und geolongitude enthalten sein.

Bildschirmfoto:

Modell: application.models.search + ResultCollection + ResultCollection.Entry

Beispiel:

<div data-template="map"></div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

Der Inhalt des Markers kann mittels Mustache-Template angepasst werden. Die Vorlage für das Map-widget wird wie folgt definiert (Hifle siehe ):

<div data-template="map”>

  <script type="text/x-mustache-template" data-tag-name="span">

    <a target="_blank" href="{{actions[0].href}}">{{{title}}}</a>

  </script>

</div>

mustachePermanenter Link zu dieser Überschrift

Mit dem mustache-Widget können beliebige JavaScript-Objekte mit mustache-Templates angezeigt werden.

Spezialverhalten: {{#...?}}{{/...?}} {{..}} vs. {{{...}}}

Beispiele:

<script type="text/x-mustache-template">

  <h3>{{{icon}}} {{{title}}}</h3>

  <p>

    {{{content}}}

  </p>

</script>

 

<script type="text/x-mustache-template" data-tag-name="span" data-class-name="myclass">

  <h3>{{{icon}}} {{{title}}}</h3>

  <p>

    {{{content}}}

  </p>

</script>

 

<script type="text/x-mustache-template" data-attr-id="{{myId}}" data-attr-title="{{title}}">

  <h3>{{{icon}}} {{{title}}}</h3>

  <p>

    {{{content}}}

  </p>

</script>

Einstellungen:

  • data-tag-name: HTML-Tag für die Vorlage. Standardwert: div
  • data-class-name: CSS-Klassenname für die Vorlage. Standardwert: leer
  • data-use-output-only: wenn aktiviert, wird der Input-Teil des Modells nicht für die Darstellung verwendet. Standardwert: false
  • data-attr-*: Attribute können mit mustache-Templates berechnet werden, z.B. data-attr-id="{{myId}}" <... id="valueOfMyId">.

Werte:

Die Werte hängen vom verwendeten Model, also dem umgebenden Widget ab. Für Übersetzungen steht immer i18n zur Verfügung, z.B.

{{i18n.Close}}

Events:

  • afterRender:modelType:
    • Parameters: application, widget, model
    • Eventziel: application.views

pagesPermanenter Link zu dieser Überschrift

Zur seitenweisen Navigation der Suchresultate. Verwenden Sie dieses Widget, falls Sie bei den Ergebnissen die OptionErgebnisse beim Scrollen anzeigen nicht aktiviert haben und nicht nur nach vorne und zurück navigieren möchten.

Bildschirmfoto:

Beispiele:

<div data-template="pages"></div>

<div data-template="pages" data-max-page-count="15"></div>

<div data-template="pages">

<script type="text/x-mustache-template" data-class-name="mypaging" data-tag-name="ul">

  {{#pages?}}

     {{#pages}}

        <li class="{{#current_page?}}active{{/current_page?}}"><a href="#" data-action-name="setPage" data-page="{{page}}">{{page}}</a></li>

      {{/pages}}

  {{/pages?}}

</script>

</div>

Einstellungen:

  • data-max-page-count: Anzahl der maximal angezeigten Seiten. Gibt es mehr Seiten, wird im Standardtemplate „…“ ausgegeben (siehe Bildschirmfoto).

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage stehen folgende Eigenschaften zur Verfügung:

pages: eine Liste der verfügbaren Seiten. Die aktuell ausgewählte Seite liefert current_page true. Mit page kann auf die Seitenzahl zugegriffen werden.

onFirstPage: enthält true, wenn die erste Seite ausgewählt ist

onLastPage: enthält true, wenn die letzte Seite ausgewählt ist

more_avail: enthält true, wenn mehr als die angeforderten Seiten verfügbar sind

Die Standardvorlage:

<script type="text/x-mustache-template" data-class-name="pagination">

  {{#pages?}}

    <ul>

      {{#onFirstPage?}}

        <li class="disabled"><span>&laquo;</span><li>

      {{/onFirstPage?}}

      {{^onFirstPage?}}

        <li><a href="#" data-action-name="previousPage">&laquo;</a><li>

      {{/onFirstPage?}}

      {{#pages}}

        <li class="{{#current_page?}}active{{/current_page?}}"><a href="#" data-action-name="setPage" data-page="{{page}}">{{page}}</a></li>

      {{/pages}}

      {{#more_avail?}}

        <li class="disabled"><span>&hellip;</span></li>

      {{/more_avail?}}

      {{#onLastPage?}}

        <li class="disabled"><span>&raquo;</span><li>

      {{/onLastPage?}}

      {{^onLastPage?}}

        <li><a href="#" data-action-name="nextPage">&raquo;</a><li>

      {{/onLastPage?}}

    </ul>

  {{/pages?}}

</script>

paginationPermanenter Link zu dieser Überschrift

Mit dem pagination-Widget können die Benutzer weitere Suchergebnisse anzeigen. Verwenden Sie dieses Widget, falls Sie bei den Ergebnissen die Option Ergebnisse beim Scrollen anzeigen nicht aktiviert haben.

Bildschirmfoto:

Beispiele:

<div data-template="pagination"></div>

 

<div data-template="pagination">

  <a href="#" style="display:none" class="mb-next action" data-action="this.nextPage({ append: true })">

    Weitere Ergebnisse laden

  </a>

</div>

 

<div data-template="pagination">

  <a href="#" style="display:none" class="mb-previous action" data-action="this.previousPage()">

    Zurück

  </a>

  <a href="#" style="display:none" class="mb-next action" data-action="this.nextPage()">

    Weiter

  </a>

</div>

Das pagination-Widget zeigt Elemente mit CSS-Klassenname mb-next an, wenn weitergeblättert werden kann. Falls zurückgeblättert werden kann, wird der CSS-Klassenname mb-previous verwendet.

Für das Auslösen der Aktionen verwenden Sie class="... action" data-action="<Aktion>". Mit der Aktion this.nextPage() können Sie weiterblättern, mit this.previousPage() zurück. Wenn die Ergebnisse am Ende der Liste hinzugefügt werden sollen, verwenden Sie this.nextPage({ append: true }).

previewPermanenter Link zu dieser Überschrift

Zeigt die Vorschau eines Dokuments an, wenn die Preview-Aktion ausgeführt wurde.

Bildschirmfoto:

Modell: preview

Beispiele:

<div data-template="preview" id="mb_preview"></div>

 

<div data-template="preview" id="mb_preview">

  <script type="text/x-mustache-template">

    <h3>

      {{#actions.data[0].value.href?}}

        <a href="{{actions.data[0].value.href}}">

      {{/actions.data[0].value.href?}}

      {{{icon}}} {{{title}}}

      {{#actions.data[0].value.href?}}

        </a>

      {{/actions.data[0].value.href?}}

    </h3>

    {{#Author?}}Autor: {{{Author}}}{{/Author?}}

    {{#content?}}

      <p>

        {{{content}}}

      </p>

    {{/content?}}

  </script>

</div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

Die Möglichkeiten für diese Vorlage finden Sie unter mustache-Templates bei results.

resultsPermanenter Link zu dieser Überschrift

Zeigt Ergebnisse an.

Bildschirmfoto:

Modell: application.models.search + ResultCollection + ResultCollection.Entry

Beispiele:

<div data-template="results" data-appendonscroll="true">

</div>

Einstellungen:

  • data-appendonscroll: Es werden automatisch zusätzliche Ergebnisse geladen, wenn der Benutzer nach unten scrollt. Aktivieren Sie diese Einstellung nur, wenn die Ergebnisanzeige das letzte Element auf der Seite ist, andernfalls können die Benutzer die Elemente unter den Ergebnissen nicht erreichen.

Events:

this.options.application.views.trigger("afterRender:Result", this.options.application, view, model);

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage stehen alle Metadaten, das Vorschaubild und alle Aktionen der Dokumente zur Verfügung. Die folgende Vorlage zeigt das Vorschaubild und den Titel als Überschrift und darunter den Inhalt des Dokuments an:

<h3>{{{icon}}} {{{title}}}</h3>

<p>

  {{{content}}}

</p>

Schreiben Sie den Namen eines Metadatums in {{{ }}}, um das Metadatum anzuzeigen, z.B.:

{{{Author}}}

oder

Autor: {{{Author}}}

Wenn das Metadatum nicht vorhanden ist, soll auch "Autor:" nicht angezeigt werden? Mit einer Bedingung machen Sie die Ausgabe optional:

{{#Author?}}Autor: {{{Author}}}{{/Author?}}

Die komplette Vorlage:

<h3>{{{icon}}} {{{title}}}</h3>

{{#Author?}}Autor: {{{Author}}}{{/Author?}}

{{#content?}}

  <p>

    {{{content}}}

  </p>

{{/content?}}

Die Ausgabe könnte dann wie folgt aussehen:

<div>

  <h3><img src="..."> Dokument</h3>

  Autor: Max Mustermann

  <p>

    Lorem impsum ...

  </p>

</div>

<div>

  <h3><img src="..."> Max Mustermann</h3>

</div>

Mit {{#actions.data}}{{{html}}}{{/actions.data}} geben Sie alle Aktionen aus. Um nur auf die erste Aktion zuzugreifen, können Sie {{actions.data[0].value.href}} verwenden.

Die komplette Vorlage mit der ersten Aktion als Link:

<h3>

  {{#actions.data[0].value.href?}}

    <a href="{{actions.data[0].value.href}}">

  {{/actions.data[0].value.href?}}

  {{{icon}}} {{{title}}}

  {{#actions.data[0].value.href?}}

    </a>

  {{/actions.data[0].value.href?}}

</h3>

{{#Author?}}Autor: {{{Author}}}{{/Author?}}

{{#content?}}

  <p>

    {{{content}}}

  </p>

{{/content?}}

Die Ausgabe könnte dann wie folgt aussehen:

<div>

  <h3><a href="http://..."><img src="..."> Dokument</a></h3>

  Autor: Max Mustermann

  <p>

    Lorem impsum ...

  </p>

</div>

<div>

  <h3><a href="http://..."><img src="..."> Max Mustermann</a></h3>

</div>

resultsprogressPermanenter Link zu dieser Überschrift

Das resultsprogress-Widget zeigt in einem Fortschrittsbalken wie viele der verfügbaren Resultate bereits geladen wurden.

Beispiel:

<div data-template="resultsprogress"></div>

savedsearchesPermanenter Link zu dieser Überschrift

Zeigt die gespeicherten Suchen an.

Modell: application.models.savedSearches

Beispiele:

<div data-template="savedsearches" aria-controls="main"></div>

<div data-template="savedsearches" aria-controls="main" data-title-class-name="subhead" data-title-tag-name="h3">

Einstellungen:

  • aria-controls: enthält das Attribut die Id eines anderen Elements, wird dieses Element fokussiert, nachdem eine Suche abgesetzt wurde. Standardwert: leer
  • data-title-tag-name: HTML-Tag, das für die Überschrift verwendet wird. Standardwert: h2
  • data-title-class-name: CSS-Klassenname, der für die Überschrift verwendet wird. Standardwert: leer
  • data-serversaved: Speichert die Suche am Server. Standardwert: false

searchPermanenter Link zu dieser Überschrift

Das search-Widget dient zum Darstellen mehrerer Suchen in einer Applikation bzw. auf einer Seite. Verwenden Sie die template-refid, um einen Platzhalter dafür anzulegen (siehe Beispiel unten). Bei allen Suchen kann die Anzahl der Treffer angepasst werden (data-count). Somit eignet sich dieses Widget sehr gut, um z.B. neben den gewöhnlichen Treffern auch noch Personen oder bestimmte Filetypen anzuzeigen.

Beispiele:

Das Beispiel zeigt 3 Resultate mit der Extension „txt“ sowie direkt darunter 5 Resultate an Personen.

<div data-template="search" data-name="show-txt" data-constraint="extension:txt" data-template-refid="show-all-txt-files"></div>

<div data-template="search" data-name="persons" data-constraint="categoryclass:person" data-template-refid="show-persons"></div>

<div data-mb-exclude="true">

  <div id="show-all-txt-files">

    <div data-template="results" data-count="3">

      <script type="text/x-mustache-template">

       <div class="title">

   {{{title}}}

  </div>

      </script>

    </div>

  </div>

</div>

<div data-mb-exclude="true">

  <div id="show-persons">

    <div data-template="results" data-count="5">

      <script type="text/x-mustache-template">

        <div class="title">

   {{{title}}}

  </div>

   {{{person.name}}}

      </script>

    </div>

  </div>

</div>

Einstellungen:

data-template-refid: Der Verweis zum Container mit dem data-template=“results“. Der Container muss von einem <div data-mb-exclude="true"> umschlossen sein.

data-count: Anzahl der Resultate in den jeweiligen Search-Templates.

data-constraint: Einschränkung für die jeweilige Suche (z.B. Files, Personen, Bilder,…)

searchformPermanenter Link zu dieser Überschrift

Das searchform-Widget dient zur Eingabe von Suchbegriffen. Es kann mehrere Eingabeelemente (input, select) enthalten. Verwenden Sie das name-Attribut, um den Suchbegriff nur in einem Metadatum zu suchen. Ohne name-Attribut oder bei name="query" wird die Eingabe als genereller Suchbegriff verwendet.

Bildschirmfoto:

Modell: application.models.search.input

Beispiele:

<form data-template="searchform">

  <input autofocus>

  <input name="extension"> <!-- Suchbegriffe in diesem Eingabefeld werden nur im Metadatum extension gesucht -->

  <button type="submit" tabindex="-1">Suchen</button>

</form>

 

<form class="center search-field mb-print-left" data-template="searchform" data-requires-user-input="true">

  <input data-template="suggest"        

         data-disabled="$$DISABLE_MAIN_SUGGEST$$"

         data-placeholder="search"

         class="mb-query" name="query" type="search"

         data-aria-label="search"

         autofocus

  >

  <button class="btn btn-link mb-no-print" type="submit" tabindex="-1"><i class="icon-search"></i></button>

</form>

Einstellungen:

  • data-requires-user-input: ist die Option aktiviert, muss ein Suchbegriff eingegeben werden, damit eine Suche gestartet wird (es genügt nicht, dass ein Karteireiter oder ein Filter ausgewählt ist). Standardwert: false
  • aria-controls: enthält das Attribut die Id eines anderen Elements, wird dieses Element fokussiert, nachdem eine Suche abgesetzt wurde. Standardwert: leer

Das Attribut data-query-template legt die Suche fest, die für ein Eingabefeld verwendet wird. Verwenden Sie {{value}} als Platzhalter für den eingegebenen Wert.

<input data-query-template="{ &quot;label&quot;: &quot;extension&quot;, &quot;regex&quot;: &quot;{{value}}&quot; }" name="extension">

<!-- Der eingegebene Wert ersetzt {{value}} in der Vorlage, z.B. Eingabe: doc.* Suche: { "label": "extension", "regex": "doc.*" } -->

searchinfoPermanenter Link zu dieser Überschrift

Zeigt Informationen zu den Suchergebnissen an. Die Standardvorlage zeigt Suchtimeouts, "Keine Ergebnisse gefunden" und Alternative Suchbegriffe an.

Bildschirmfoto:

Modell: application.models.search

Beispiele:

<div data-template="searchinfo"></div>

 

<div data-template="searchinfo">

  <script type="text/x-mustache-template">

    {{^computing?}}

      {{#status_messages.timeout}}

        <div class="alert">

          <button type="button" class="close" data-dismiss="alert" title="{{i18n.Close}}">&times;</button>

          {{error}}

          {{warning}}

          {{info}}

        </div>

      {{/status_messages.timeout}}

      {{#status_messages.no_results?}}

        <h5>

          {{status_messages.no_results.error}}

          {{status_messages.no_results.warning}}

          {{status_messages.no_results.info}}

        </h5>

        {{#alternatives.query_spelling.entries[0]?}}

          <p>

            {{{i18n.client_did_you_mean}}}:

            <a href="#" class="action" data-action-object="{&quot;setDidYouMean&quot;: {&quot;query&quot;: {{alternatives.query_spelling.entries[0].query_expr}} }}">

              {{{alternatives.query_spelling.entries[0].html}}}

            </a>

          </p>

        {{/alternatives.query_spelling.entries[0]?}}

      {{/status_messages.no_results?}}

    {{/computing?}}

  </script>

</div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage steht das gesamte Search-Modell zur Verfügung.

Standardvorlage:

{{^computing?}}

  {{#status_messages.timeout}}

    <div class="alert">

      <button type="button" class="close" data-dismiss="alert" title="{{i18n.Close}}">&times;</button>

      {{error}}

      {{warning}}

      {{info}}

    </div>

  {{/status_messages.timeout}}

  {{#status_messages.no_results?}}

    <h2 tabindex="-1">

      {{status_messages.no_results.error}}

      {{status_messages.no_results.warning}}

      {{status_messages.no_results.info}}

    </h2>

  {{/status_messages.no_results?}}

  {{#show_query_spelling_alternatives?}}

  {{#alternatives.query_spelling.entries[0]?}}

    <p>

      {{{i18n.client_did_you_mean}}}:

      <a href="#" class="action" data-action-object="{&quot;setDidYouMean&quot;: {&quot;query&quot;: {{alternatives.query_spelling.entries[0].query_expr}} }}">

        {{{alternatives.query_spelling.entries[0].html}}}                                                                     </a>

    </p>

  {{/alternatives.query_spelling.entries[0]?}}

  {{/show_query_spelling_alternatives?}}

{{/computing?}}

Werte:

  • alternatives: Vorschläge zum eingegebenen Suchbegriff, aktuell führt query_spelling.entries[0] zum ersten Korrekturvorschlag
  • computing: true, wenn gerade eine Suche durchgeführt wird
  • status_messages: Statusnachrichten zur Suche (z.B. status_messages.timeout oder status_messages.no_results)
  • estimated_count: Anzahl der Treffer für die abgesetzte Suche
  • orderable: eine Liste von verfügbaren Sortierkriterien, enthält localized_name für die Anzeige und name für die Auswahl in der API. isSelected enthält true, falls das Sortierkriterium ausgewählt ist.

sortswitchPermanenter Link zu dieser Überschrift

Zeigt die für die Suche zur Verfügung stehenden Sortierkriterien an.

Bildschirmfoto:

Modell: application.models.search

Beispiele:

<div data-template="sortswitch" class="pull-right">

</div>

 

<div data-template="sortswitch" class="pull-right">

  {{#orderable?}}

    <ul>

      {{#orderable}}

        <li class="{{#isSelected?}}selected{{/isSelected?}}">

          <a class="action" tabindex="0" data-name="orderby" data-value="{{name}}">{{localized_name}}</a>

        </li>

      {{/orderable}}

   </ul>

  {{/orderable?}}

</div>

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage steht das gesamte Search-Modell zur Verfügung.

Standardvorlage:

{{#orderable?}}

  <h2>{{{i18n.client_toolbar_sortingalgorithm_label}}}</h2>

  <div class="mb-line-item">

    <select data-bind="orderby" data-action-object="{&quot;changeOrderBy&quot;:{}}" data-event-mask="change" aria-label="{{{i18n.client_toolbar_sortingalgorithm_label}}}">

      {{#orderable}}

        <option {{#isSelected?}}selected{{/isSelected?}} value="{{name}}">{{localized_name}}</option>

      {{/orderable}}

    </select>

    {{#order_direction_available?}}

      <fieldset class="pull-right" style="margin-left: 0;">

        <legend class="mb-acc">{{i18n.order_direction}}</legend>

        <label class="mb-hidden-radio">

          <input type="radio" name="sortswitch" value="ASCENDING" class="action" data-bind="resultset.order_direction" data-name="order_direction" data-value="ASCENDING">

          <span>

            <i class="icon-sort-by-alphabet"></i>

            <span class="mb-acc">{{i18n.sort_ascending}}</span>

          </span>

        </label>

        <label class="mb-hidden-radio">

          <input type="radio" name="sortswitch" value="DESCENDING" class="action" data-bind="resultset.order_direction" data-name="order_direction" data-value="DESCENDING">                                                                            

          <span>

            <i class="icon-sort-by-alphabet-alt"></i>                                                                                

            <span class="mb-acc">{{i18n.sort_descending}}</span>

          </span>

        </label>

      </fieldset>

    {{/order_direction_available?}}

  </div>

{{/orderable?}}

Werte:

Siehe mustache-Templates searchinfo.

stackPermanenter Link zu dieser Überschrift

Mit dem stack-Widget können Benutzer Aktionen ausführen, die eine neue Suchanwendung als neue Suche ausführen. Optisch liegt die ausgeführte Aktion dann über der zuletzt ausgeführten. Dadurch kann einfach im Navigationspfad zurückgesprungen werden.

Bildschirmfoto:

+--------------+    +--------------+     +--------------+

| Resultate    |    | Resultate o------> | Resultate    |

|              |    |+--------------+    |              |

|              |    || Vorschau     |    |              |

|              |    ||              |    |              |

|              |    ||              |    |              |

| Aktion o--------> ||              |    |              |

| ------       |    ||              |    |              |

|              |    ||              |    |              |

|              |    ||              |    |              |

|              |    ||              |    |              |

+--------------+    +|              |    +--------------+

                     |              |

                     +--------------+

Beispiele:

 <div class="mb-stack" data-template="stack" data-model="stack">

  <div class="mb-stack-title">

    Ergebnisse

  </div>

  <div class="mb-stack-content">

    <a href="#"

       data-action-object="{

         &quot;pushStack&quot;: {

         &quot;title&quot;: &quot;PDF-Dokumente&quot;,

         &quot;template-ref&quot;: &quot;pdfAppTemplate&quot;,

         &quot;applicationOptions&quot;: {

           &quot;startSearch&quot;: true

         }}}">

      PDF-Dokumente

    </a>

    <div data-template="view" data-count="5">

      <div data-template="results"></div>

    </div>

  </div>

</div>

<div style="display: none" data-mb-exclude="true">

  <div id="pdfAppTemplate">

    <div data-template="view" data-count="5" data-constraint="extension:pdf">

      <div data-template="results"></div>

    </div>

  </div>

</div>

Beispiel: Anzeige aller Informationen zu einer PersonPermanenter Link zu dieser Überschrift

<div data-template="results">

  ...

  <a href="#"

     data-action-object="{

       &quot;pushStack&quot;: {

       &quot;title&quot;: &quot;{{name}}&quot;,

       &quot;template-ref&quot;: &quot;personTemplate&quot;,

       &quot;action&quot;: &quot;showPerson&quot;

       }}">

    Alles zu {{{name}}}

  </a>

  ...

</div>

...

<div style="display: none" data-mb-exclude="true">

  <div id="personTemplate">

    <div data-template="view" data-count="5">

      <div data-template="results"></div>

    </div>

  </div>

</div>

...

<script>

  var MyApplication = Application.extend({

    showPerson: function (options) {

      var personId = options.model.get("id");

      this.models.search.set("constraint", {unparsed:'(categoryclass:person AND id:"' + personId + '") OR lastmodifiedby:"' + personId +'"'});

    }

  });

</script>

Parameter der Aktion pushStack:

  • template-ref: die id des HTML-Elements, das die Vorlage für den Stack enthält.
  • title: der Titel des Stack-Elements. Standardwert: Titel des Links
  • applicationOptions: die Initialisierungsoptionen für die Suchanwendung
  • action: eine Aktion, die nach dem Initialisieren der neuen Suchanwendung ausgeführt wird

suggestPermanenter Link zu dieser Überschrift

Erlaubt die Verwendung der Autovervollständigung in einem Eingabefeld. Ab sofort können neben Suchtreffern aus Metadaten beliebte Suchen, die zuletzt durchgeführten Suchen und Begriffe aus Taxonomien vorgeschlagen werden. Zusätzlich können alle verfügbaren Tabs mit dem jeweiligen Suchbegriff durchsucht werden.

Bildschirmfoto – Vorschläge bei leerem Suchstring der letzten Suchen.

Bildschirmfoto – Vorschläge mit dem Suchbegriff „Mindbreeze“ aus Metadaten und Tabs.

Suggest Default Beispiel (im jeweiligen HTML zu finden):

<input data-template="suggest"        

                   data-disabled="$$DISABLE_MAIN_SUGGEST$$"

                   data-placeholder="search"

                   data-shortcut="alt+1"

                   id="query"

                   data-aria-describedby="search-description"

                   data-source-id-pattern="$$SUGGEST_SOURCE_ID_PATTERN$$"

                   data-initial-source-id-pattern="$$SUGGEST_INITIAL_SOURCE_ID_PATTERN$$"

                   data-grouped="true"

                   class="mb-query mb-role" name="query" type="search"

                   autofocus

            >

Dieses HTML-Snippet kann mit allen verfügbaren Einstellungen angepasst werden. Beispiel:

<input data-template="suggest"        

data-placeholder="search"

class="mb-query"

name="query"

type="search"

data-source-id-pattern="document_property|tabs"

data-initial-source-id-pattern="recent_query|document_property"

data-grouped="true"

data-show-onfocus="true"

>

Einstellungen:

  • property: das Metadatum, das für die Vervollständigung verwendet werden soll. Standardwert: title
  • property-constraint: ein Suchbegriff zur Einschränkung der möglichen Werte. Standardwert: leer
  • count: die Anzahl der Vorschläge. Standardwert: 4
  • source-id-pattern: Angabe der Suggest-Quellen (z.B.: document_property|recent_query|tabs)
    Standardwert: $$SUGGEST_SOURCE_ID_PATTERN$$. Wird diese Einstellung geändert, werden die Einstellungen im Konfigurator (Checkboxen zum Aktivieren der Vorschläge) nicht mehr berücksichtigt und überschrieben.
  • document_property – liefert Vorschläge aus Metadaten
  • popularsearches – liefert Vorschläge aus der Datenbank (Einstellungen in der Konfiguration nötig)
  • words_and_terms – liefert Vorschläge aus einem Konzeptindex (CSV-File)
    (Einstellungen in der Konfiguration nötig)
  • recent_query – liefert Vorschläge der letzten Suchen
  • tabs – listet die verfügbaren Tabs auf, um in allen Tabs suchen zu können
  • initial-source-id-pattern: Einstellungen sind identisch zu source-id-pattern mit dem Unterschied, dass die Treffer von diesen Quellen angezeigt werden, wenn der Suchbegriff leer ist.
    Standardwert: $$SUGGEST_INITIAL_SOURCE_ID_PATTERN$$. Wird diese Einstellung geändert, werden die Einstellungen im Konfigurator (Checkboxen zum Aktivieren der Vorschläge) nicht mehr berücksichtigt und überschrieben.
  • service: URL zu einem Suggest-Service. Standardwert: leer - gleich wie Suche
  • disabled: Vorschläge sind deaktiviert. Standardwert: false
  • grouped: Gruppiert die Autocomplete-Treffer zusammen (true/false)
  • initial-grouped: Gruppierung der Treffer bei der Initialsuche (true/false) - Standardwert: true
  • show-onfocus: Zeigt das Autocomplete beim Fokussieren des Textfeldes an (true/false) – Standardwert: false*1
  • suggest-timeout: Setzt ein Timeout für den Request. Angabe in Sekunden.
  • source-id-document_property-title: Setzt den Titel der “document_property” Quelle.*1
  • source-id-popularsearches-title: Setzt den Titel der “popularsearches” Quelle.*1
  • source-id-word_and_terms-title: Setzt den Titel der “word_and_term” Quelle.*1
  • source-id-recent_query-title: Setzt den Titel der “recent_query” Quelle.*1
  • default-tab-title: Ist kein Tab vorhanden, wird als Titel dieser Wert herangezogen.*1
  • source-id-order: Legt die Reihenfolge im Suggest fest:*1
    Beispiel: „document_property,words_and_terms,tabs,recent_query“ (Beistrichgetrennt)
  • initial-source-id-order: Legt die Reihenfolge im Suggest fest, welche beim Fokussieren des  Suchfeldes angezeigt wird (Einstellung identisch wie bei source-id-order).*1
  • *1 Diese Einstellungen müssen auf Wunsch direkt im HTML-File angepasst werden.

Einstellen lassen sich die vorgeschlagenen Suchbegriffe im Konfigurator wie folgt:

  1. Suggest Settings (Similar Terms):
  2. ID: Die ID „popularsearches“ muss vergeben werden (Kann zum Stylen verwendet werden).
  3. Source Name: Der Source Name kann z.B. „Popular Searches“ also beliebte Suchen, sein
  4. Database JDBC URL: URL zur App.Telemetry Datenbank (Anlegen einer Datenbank wird unten erklärt).
  5. Table Name: Tabellenname aus der App.Telementry-Konfiguration
  6. Table Column for Query: Auswahl der Anzahl der Ergebnisse – App Telemetry-Konfiguration
  7. Table Column for Score: Auswahl des Spaltennamen der Ergebnisse aus der App Telemetry-Konfiguration
  8. Table Column for View ID: Auswahl des Spaltennamen der Abfragen aus der App Telemetry-Konfiguration
  9. Additional WHERE Clause: Hier haben Sie die Möglichkeit, verschiedene „WHERE“-Klauseln zu erstellen und hinzuzufügen.
  10. Suggest If User Query Is Empty: wenn „true“ aktiviert ist, werden Vorschläge ausgegeben, auch wenn der User noch nicht gesucht hat.

Suggest Settings (Concept CSV):

  • ID: Die ID „words_and_terms“ muss vergeben werden (Kann zum Stylen verwendet werden).
  • Source Name: Der Source Name kann z.B. „Words and Terms“ also Worte und Begriffe, sein
  • CSV File Path: Der Pfad zum CSV-File

    Die CSV-Datei muss die Spalten Disabled, PrefLabel, AltLabel und Definition enthalten. Die Spalten werden wird folgt verwendet:

Name

Funktion

Suchbegriff wird geprüft

Muss gesetzt sein

Disabled

TRUE: Zeile wird ignoriert

Nein

Nein

PrefLabel

Hauptteil des Vorschlags

Ja

Ja

AltLabel

Wird in Klammern hinter Preflabel angezeigt

Ja

Nein

Definition

Wird unter dem Vorschlag angezeigt

Nein

Nein

Beispiel: Die Zeile

Disabled

PrefLabel

AltLabel

Definition

Example

Sample

A Definition

wird in der Autovervollständigung so angezeigt:

Suggest Settings und Initial Suggest Settings:

Grundsätzlich gilt: Die Einstellungen unter „Suggest Settings“ werden verwendet, sobald ein Suchbegriff eingegeben wurde – „Initial Suggest Settings“ werden verwendet, wenn der Suchbegriff leer ist (Siehe Bildschirmfoto- Vorschläge bei leerem Suchstring der letzten Suchen).

  • Enable Suggesting from CSV File: Wenn angehakt, wird das Suggest über die ähnlichen Suchbegriffe aus einem CSV-File gelesen
  • Enable Suggesting of Similar Queries: Wenn angehakt, wird das Suggest über die ähnlichen Suchbegriffe aus der App.Telemetry Datenbank gelesen.
  • Enable Suggesting of Tabs: Wenn angehakt, wird das Suggest über die ähnlichen Suchbegriffe aus der App.Telemetry Datenbank gelesen.
  • Enable Suggesting of Document Property: Wenn angehakt, wird das Suggest über die ähnlichen Suchbegriffe aus der App.Telemetry Datenbank gelesen.
  • Enable Suggesting of Recent Queries: Wenn angehakt, wird das Suggest über die ähnlichen Suchbegriffe aus der App.Telemetry Datenbank gelesen.

Tipp: Einfache Anleitung für das Anlegen der Datenbank für „Similar Terms“:
- create database similarterms;
- CREATE USER mindbreeze WITH PASSWORD 'Mindbreeze123';
- grant all privileges on database " similarterms" to mindbreeze;

suggestlistPermanenter Link zu dieser Überschrift

Erlaubt die Verwendung der Suggest-Sourcen (beliebte Suchen, Begriffe und Wörter) als eigene Komponente.  

Settings:

  • count: die Anzahl der Vorschläge. Standardwert: 4
  • title: Titel der Überschrift (Default: Popular Searches)
  • property: das Metadatum, das für die Vervollständigung verwendet werden soll. Standardwert: title
  • source-id-pattern: Angabe der Suggest-Quellen (Äquivalent zur Suggest-Komponente)

Bildschirmfoto:

Beispiele:

<div data-template=”suggestlist” data-count=”4” data-source-id-pattern=”words_and_terms”></div>

summarizePermanenter Link zu dieser Überschrift

Erlaubt das Zusammenfassen bzw. Gruppieren von ähnlichen Ergebnissen.

Konfiguration:

Aktiviert bzw. deaktiviert wird diese Komponente im Client-Service:

Ist diese Komponente aktiv, erhält man im Client einen neuen Abschnitt „Zusammenfassen nach“.


Beispiel:

<div data-template="summarize" data-enabled="true"></div>

Einstellungen:

  • data-enabled: Aktiviert bzw. deaktiviert das Feature (Default true).

tabsPermanenter Link zu dieser Überschrift

Karteireiter, die Sucheinschränkungen zur Auswahl bieten. Die Karteireiter sind im Benutzerprofil hinterlegt, kommen von den Quellen und können auch im Element festgelegt werden.

Bildschirmfoto:

Modell: application.models.tabs, application.models.userSourceInfo

Beispiele:

<ul data-template="tabs" data-model="tabs" data-datasourcetabs="true">

</ul>

 

<ul class="nav" data-template="tabs" data-model="tabs" data-datasourcetabs="true">

  <script type="text/x-mustache-template" data-tabconfig="true" data-name="PDF-Dokumente" data-constraint="extension:pdf"></script>

  <script type="text/x-mustache-template" data-tabconfig="true" data-name="Everything"></script>

</ul>

 

<ul class="nav" data-template="tabs" data-model="tabs" data-datasourcetabs="true">

  <script type="text/x-mustache-template" data-tabconfig="true" data-name="PDF-Dokumente" data-constraint="extension:pdf"></script>

  <script type="text/x-mustache-template" data-tabconfig="true" data-name="Everything"></script>

  <script type="text/x-mustache-template"

          data-tag-name="a"

          data-attr-role="tab"

          data-attr-tabindex="{{#selected?}}-1{{/selected?}}{{^selected?}}0{{/selected?}}"

          data-attr-class="action {{#selected?}}mb-selected{{/selected?}}"

          data-attr-data-action-object="{&quot;changeView&quot;:{&quot;constraints.view&quot;: {{^constraint?}}null{{/constraint?}}{{{constraint}}} } }"

          aria-hidden="true">

    {{{name}}}

  </script>

</ul>

Einstellungen:

  • data-model: tabs
  • data-editable: bei true können Tabs vom Benutzer hinzugefügt und bearbeitet werden.
  • data-datasourcetabs: falls true werden Karteireiter für die aktivierten Quellen angezeigt
  • data-role: ARIA-role der tabs. Standardwert: tablist
  • data-entry-role: ARIA-role der Listeneinträge. Standardwert: presentation

Eigene Karteireiter anlegenPermanenter Link zu dieser Überschrift

Sie können in der Vorlage eigene Karteireiter anlegen. Verwenden Sie dazu folgendes HTML:

<script type="text/x-mustache-template" data-tabconfig="true" data-name="PDF-Dokumente" data-constraint="extension:pdf"></script>

 

<script type="text/x-mustache-template" data-tabconfig="true" data-name="Everything"></script>

Einstellungen:

  • data-tabconfig: true
  • data-name: Name des Karteireiters. Falls es eine Übersetzung für den Namen gibt, wird er in der aktuellen Sprache angezeigt
  • data-constraint: der Suchbegriff, der als Einschränkung verwendet wird. Gibt es keine Einschränkung, werden alle Einschränkungen entfernt; so können Sie einen "Alles"-Karteireiter machen

mustache-TemplatesPermanenter Link zu dieser Überschrift

In der Vorlage steht der Wert eines Filtereintrags, die Anzahl der Dokumente, sowie ob der Eintrag aktuell bei der Suche berücksichtigt wird oder nicht.

Standardvorlage:

<script type="text/x-mustache-template"

        data-tag-name="a"

        data-attr-tabindex="{{#selected?}}-1{{/selected?}}{{^selected?}}0{{/selected?}}"

        data-attr-class="action {{#selected?}}mb-selected{{/selected?}}"

        data-attr-data-action-object="{&quot;changeView&quot;:{&quot;constraints.view&quot;: {{^constraint?}}null{{/constraint?}}{{{constraint}}} } }"

        aria-hidden="true">

{{{name}}}

Werte:

  • selected: liefert true falls der Karteireiter ausgewählt ist
  • constraint: die Einschränkung
  • name: der übersetzte Name

timelinePermanenter Link zu dieser Überschrift

Zeigt Ergebnisse auf einer Zeitleiste an. In der Zeitleiste kann mittels Mausrad und Drag&Drop navigert werden.

Bildschirmfoto:

Modell: application.models.search + ResultCollection + ResultCollection.Entry

Beispiele:

<div data-template="timeline"></div>

<div data-template="timeline"

     data-height="50px"

     data-range-start="2015-01-01"

     data-range-end="2015-12-31"

     data-date="mes:date">

</div>

Einstellungen:

  • data-height: Höhe der Zeitleiste, auto für automatische Anpassung an die angezeigten Treffer oder Höhenangabe laut CSS, z.B. 200px. Standardwert: auto
  • data-range-start & data-range-end: Begrenzung der Zeitleiste auf einen Zeitraum. Die Angaben werden mit new Date(<Attributwert>) in ein Datum umgewandelt.
  • data-date: Legt fest welches Metadatum zur Positionierung herangezogen werden soll (Standardwert: mes:date).
  • data-padding-right: Legt den freizuhaltenden Bereich rechts fest. (Sollte der Titel des Resultats nicht mehr sichtbar sein)
  • data-padding-left: Legt den freizuhaltenden Bereich links fest. (Sollte der Titel des Resultats nicht mehr sichtbar sein)

mustache-TemplatesPermanenter Link zu dieser Überschrift

Für die Darstellung der Einträge in der Zeitleiste können mustache-Templates verwendet werden. Mehr Information finden Sie unter results.

viewPermanenter Link zu dieser Überschrift

Das view-Widget legt die Basiseinstellung für die Suche fest. Es ändert die Darstellung der Seite nicht.

Modell: application.models.search.input

Beispiele:

<div data-template="view" data-count="5">...</div>

 

<div data-template="view" data-count="5" data-constraint="extension:pdf">...</div>

Werte:

  • constraint: Einschränkung für die Suche
  • count: Anzahl der Suchtreffer
  • orderby: Sortierkriterium - aktuell mes:relevance oder mes:date
  • count_filtered_facet_values: Zeigt die Anzahl bei nicht ausgewählten Filterwerten an. Dieses Setting kann im Editor bei der Komponente „filteredfacet“ gesetzt werden (Checkbox bei „Anzahl bei nicht ausgewählten Filterwerten anzeigen“) - Default: true

chartsPermanenter Link zu dieser Überschrift

Zeigt Filter in Form von Charts an und besitzt somit eine Ähnliche Funktion wie die Komponente .

Verfügbare Chart-TypenPermanenter Link zu dieser Überschrift

PiePermanenter Link zu dieser Überschrift

Wählt man den Chart-Type „pie“ aus, erhält man eine Grafik wie in folgender Grafik angezeigt. Die möglichen Einstellungen findet man im .

Beispiel:

<div data-template="charts"

data-charttype="pie"

data-chartSourceName="extension"

data-chartTitle="Erweiterung"

data-showlegend="true"

></div>

BarPermanenter Link zu dieser Überschrift

Wählt man den Chart-Type „bar“ aus, erhält man eine Grafik wie in folgender Grafik angezeigt. Die möglichen Einstellungen findet man im .

Beispiel:

<div data-template="charts"

data-charttype="bar"

data-chartSourceName="extension"

data-chartTitle="Erweiterung"

></div>

LinePermanenter Link zu dieser Überschrift

Wählt man den Chart-Type „line“ aus, erhält man eine Grafik wie in folgender Grafik angezeigt. Die möglichen Einstellungen findet man im .

Beispiel:

<div data-template="charts"

data-charttype="line"

data-chartSourceName="extension"

data-chartTitle="Erweiterung"

></div>

Einstellungen der ChartsPermanenter Link zu dieser Überschrift

data-template: Als Template wird “charts” angegeben.

data-charttype: Gibt den Type des Charts an. In diesem Fall wird „pie“ verwendet.

data-chartsourcename: Gibt den zu verwendenen Filter an (Bsp.: „extension“, „mes:size“, etc.).

data-charttitle: Setzt eine Überschrift bzw. den Titel. Beispiel: „Erweiterung“.

data-showlegend: Zeigt die Werte in der Legende an („true“ or „false“ – Default: „false“).

data-chartheight: Setzt die Höhe des Charts (default “200”).

data-chartwidth: Setzt die Breite des Charts (default 100 Prozent).

data-titlealign: Ausrichtung der Überschrift (“left”,”center”,”right” – Default: „center“).

Das Application-ObjektPermanenter Link zu dieser Überschrift

Der Application-Konstruktor erzeugt eine Suchanwendung mit den im HTML enthaltenen Widgets. Als Argument werden Einstellungen als Namen-Wert-Paare erwartet.

Einstellungen:

  • apiRequestHeaders: Durch diese Einstellung können bei Suchanfragen Header übergeben werden. Typ: Objekt. Z.B: apiRequestHeaders: headers["x-mes-auth-token"]
  • callback: Funktion, die nach der Initialisierung der Application aufgerufen wird. Erhält als Argument das Application-Objekt.
  • datasourcesCategoryOrder: Liste der Datenquellen-Categories, die für die Sortierung der Datenquellen verwendet wird. Für nicht angegebene Categories wird die alphabetische Standardsortierung verwendet. Z.B.: ["Web", "Microsoft Exchange"]
  • datasourcesGroupByCategory: Datenquellen nach Datenquellen-Category gruppiert anzeigen. Werte: true, false, Standardwert: true
  • datasourcesNameOrder: Liste der Datenquellen-Name, die für die Sortierung der Datenquellen verwendet wird. Ist datasourcesGroupByCategory aktiviert, werden die Datenquellen in den Gruppen sortiert. Für nicht angegebene Datenquellen wird die alphabetische Standardsortierung verwendet. Z.B. ["Benutzerlaufwerk","Intranet"]
  • enableProfile: aktiviert das Benutzerprofil. Werte: true, false, Standartwert: false
  • enableRemoteSources: aktiviert in der Konfiguration eingetragene föderierte Datenquellen. Werte: true, false, Standardwert: true
  • loginAsError: Login-Aufforderungen werden als Fehler behandelt. Es wird kein Login angezeigt. Werte: true, false, Standardwert: false
  • queryURLParameter: Name des URL-Parameters für Suchbegriffe (z.B. wird beim Öffnen der Seite http://www.example.com/?query=test eine Suche nach test gestartet). Standardwert: query
  • rootEl: DOM-Element in dem die Suchanwendung enthalten ist. Standardwert: document.body
  • rootEls: Liste von DOM-Element in welchen die Suchanwendung enthalten ist. Überschreibt die Einstellung rootEl. Standardwert: document.body
  • sources: Liste der Such-Adressen, z.B. ["<Client Service URL>/api/v2/"]. Standardwert: Adresse des Client Services, von dem die JavaScript-Datei geladen wurde. Optional kann anstelle der Liste ein AjaxChannel angegeben werden, z.B. new AjaxChannel({ url: "<Client Service URL>/api/v2/"}), um crossDomain Request zuzulassen.
    AjaxChannel kann via "service/ajax_channel" required werden.
  • linkOpenTarget: Default Target Option um Links zu öffnen. Werte: „_blank“, „_parent“, „_self“, „_top“. Standardwert: „_blank“
  • enableImmediateDisplayOfFederatedResults: Sollen bei föderierten Datenquellen immer alle Resultate, die von den einzelnen Services angefordert wurden, angezeigt werden? Dadurch kann es sein, dass weniger relevante Resultate bereits auf der ersten Seite angezeigt werden. Werte: true, false, Standardwert: false
  • startSearch: Soll bei der Initialisierung eine Suche gestartet werden, falls Einschränkungen hinterlegt sind? Werte: true, false, Standardwert: true
  • updateTitle: Soll bei der Initialisierung eine Suche gestartet werden, falls Einschränkungen hinterlegt sind? Werte: true, false, Standardwert: true
  • titleTemplate: Für den Titel kann ein mustache-Template hinterlegt werden, um den Suchbegriff (unparsedUserQuery), den Titel des aktuellen Stack-Elements (stackTitle) und den Status, ob gerade gesucht wird (computing), anzuzeigen. Standardwert:
  • {{#stackTitle}}{{stackTitle}} - {{/stackTitle}}{{^stackTitle}}{{#unparsedUserQuery?}}{{unparsedUserQuery}} - {{/unparsedUserQuery?}}{{/stackTitle}}" + document.title + "{{#computing?}} ...{{/computing?}}

Beispiele:

new Application({});

new Application({

  callback: function (application) {

    …

  },

  rootEl: document.getElementById("mySearchApp")

});

Funktionen:

  • getUserConstraints(): liefert die aktuellen Einschränkungen (zur Verwendung mit setUserConstraints)
  • setUserConstraints(userConstraints, options): setzt die Einschränkungen (zur Verwendung mit getUserConstraints)
  • getUnparsedUserQuery(): liefert den aktuellen Suchbegriff
  • setUnparsedUserQuery(unparsedUserQuery, options): setzt den Suchbegriff
  • getConstraint(): liefert zusätzlich hinzugefügte Einschränkungen (zur Verwendung mit setConstraint)
  • getACLConstraint(): liefert zusätzlich hinzugefügte ACL Einschränkungen (zur Verwendung mit setACLConstraint)

Beispiele:

application.setConstraint({ unparsed: "extension:PDF" });

application.setACLConstraint({ unparsed: "%ID:123456" });

Events:

Sie können sich bei den einzelnen Modellen für Events registrieren. Hier finden Sie die unterstützen Events.

  • Beginn einer Suche:

application.models.search.on("computing", function () {

});

  • Ende einer Suche:

application.models.search.on("computed", function () {

});

  • Nach dem Rendern eines Resultats

application.views.on("afterRender:Result", function (application, view, resultModel) {

});

Mit view.el können Sie auf das gerenderte DOM-Element zugreifen.

AktionenPermanenter Link zu dieser Überschrift

Links und Schaltflächen können mit dem Attribut data-action-object Aktionen in der Suchanwendung auslösen. Z.B.

<a data-action-object="{&quot;openSearch&quot;:{}}"

   data-href="https://duckduckgo.com/?q={searchTerms}">

     Bei DuckDuckGo suchen

</a>

openSearchPermanenter Link zu dieser Überschrift

Die openSearch-Aktion sucht den aktuellen Suchbegriff mit einer externen Suchmaschine, wie z.B. Bing, DuckDuckGo, Google oder Yahoo.

Attribute:

  • data-href: die Adresse der externen Suchmaschine mit Platzhaltern für Suchbegriff {searchTerms} und Sprache {language}.
  • Optionen:
  • searchTerms: damit können zuätzliche Einschränkungen zu den searchTerms hinzugefügt werden, z.B. „{searchTerms} Bild“ sucht nach dem aktuellen Suchbegriff und dem Wort Bild.
  • Beispiele:

<a data-action-object="{&quot;openSearch&quot;:{}}"

   data-href="https://duckduckgo.com/?q={searchTerms}">

     Bei DuckDuckGo suchen

</a>

<a data-action-object="{&quot;openSearch&quot;:{}}"

   data-href="https://www.bing.com/search?cc={language}&q={searchTerms}">

     Bei Bing suchen

</a>

<a data-action-object="{&quot;openSearch&quot;:{&quot;searchTerms&quot;: &quot;{searchTerms} Bild&quot;}}"

   data-href="https://duckduckgo.com/?q={searchTerms}">

     Bei DuckDuckGo suchen

</a>

exportResultsPermanenter Link zu dieser Überschrift

Die exportResults-Aktion öffnet einen neuen Stack, um die Suchtreffer zu exportieren.

Attribute:

data-properties: Gibt die Eigenschaften an, welche exportiert werden sollen

data-export-enabled: Gibt an, ob der Export aktiv sein soll oder nicht

  • Beispiele:

<button

    class="btn hidden-when-mb-stack-has-child btn-export mb-no-print

    name="export"

    data-action-name="exportResults"

    data-properties="title,mes:date,mes:size,action_0"

    data-export-enabled="true">Exportieren

</button>

PDF Vorschau Interaktionen Permanenter Link zu dieser Überschrift

Eine Erweiterung der Vorschau-Schnittstelle erlaubt es Entwicklern, auf Hyperlinks in der PDF Vorschau reagieren zu können (Mouseover, Mouseleave, Klick).

Beispielsweise kann somit ein Tooltip zu jedem Link mit erweiterten Informationen angezeigt werden.

Events:

application.views.on("preview:annotation:mouseover", function(obj){});

application.views.on("preview:annotation:mouseleave", function(obj){});

application.views.on("preview:annoation:click", function(obj){});

application.views.on("preview:text:selected", function (obj){});

Beispiel:

<div data-mb-exclude="true">

    <script type="text/x-mustache-template" id="linkoverlayinfo">

        <div>{{name}}</div>

    </script>

</div>

application.views.on("preview:annotation:mouseover", function(obj){

    dataObject = {

        name: “My Value”

    }

    var model = new Backbone.Model(dataObject);

    var innerHTML = document.querySelector('#linkoverlayinfo').innerHTML;

    var mustacheTemplate = new Mustache(innerHTML);

    var str = mustacheTemplate.render(model);

});

Um die Möglichkeit einer Anpassung (z.B. Style der Annotations) bieten zu können, ist es über die Applikation möglich, das Annoation-Objekt zu manipulieren.

Event:

application.views._events["annotation:transform"] = function (annObj, _) {

  annObj.style = …

};

TastenkombinationenPermanenter Link zu dieser Überschrift

Mit dem Attribut data-shortcut können Tastenkombinationen für Bereiche und Aktionen hinterlegt werden. Wird das Attribut auf einen Button oder Link gesetzt, wird dieser beim Drücken der Tastenkombination ausgeführt. Bei allen anderen Elementen wird das Element fokussiert. Ist das Element selbst nicht fokussierbar, wird das erste fokussierbare enthaltene Element fokussiert.

Für die Tastenkombination stehen folgende Tasten, in angegebener Reihenfolge, zur Verfügung:

  • alt
  • ctrl
  • meta
  • shift
  • Zeichen

  • Beispiele:

<div data-shortcut="alt+5">

  …

</div>

<button data-shortcut="alt+shift+s">Aktion</button>

<button data-shortcut=" ctrl+meta+shift+x">Aktion</button>

CSSPermanenter Link zu dieser Überschrift

Der Mindbreeze InSpire Client verwendet Bootstrap Version 2.2.2 (http://getbootstrap.com/2.2.2/) für die Gestaltung der Benutzeroberfläche.

Das Grundgerüst bildet ein zweispaltiges Layout mit folgende Struktur (http://getbootstrap.com/2.2.2/scaffolding.html#fluidGridSystem):

.container .row-fluid

.span9

.span3

Icons, wie die Lupe im Suchfeld, sind mit einem Icon Font umgesetzt. Dadurch können Farben einfach verändert werden. Die Icons werden mit Elementen, wie z.B. <i class="icon-search"></i> eingebunden, damit ist es auch möglich den Icon Font gegen eine eigene Implementierung zu tauschen. Die verwendete Bibliothek ist Font Awesome (http://fortawesome.github.io/Font-Awesome/3.2.1/).

Für die Hauptbereiche werden h2-Elemente als Überschriften verwendet.

2

4

3

5

1

SuchfeldPermanenter Link zu dieser Überschrift

Für die Gestaltung des Suchfeldes stehen folgende Elemente zur Verfügung

form.search-field

input

button

ErgebnissePermanenter Link zu dieser Überschrift

Für die Ergebnisse wird die Struktur der Media object-Komponente (http://getbootstrap.com/2.2.2/components.html#media) verwendet:

.media

.media-heading

.media-object

.media-body

Die Titel der Ergebnisse sind h3-Elemente.

FilterPermanenter Link zu dieser Überschrift

Für Filter wird die Struktur der Stacked pills-Komponente (http://getbootstrap.com/2.2.2/components.html#navs) verwendet:

.nav.nav-stacked.nav-pills

Die Titel der einzelnen Filter, z.B. Datum sind h3-Elemente.

Aufklappbare ElementePermanenter Link zu dieser Überschrift

Für Elemente, die auf- und zugeklappt werden können, wird die Struktur für dir ARIA-Rolle tablist + multiselectable verwendet (http://www.w3.org/TR/wai-aria/roles#tablist):

Titel zugeklapptPermanenter Link zu dieser Überschrift

.mb-role[role=tablist][aria-multiselectable=true] [role=tab]

Titel aufgeklapptPermanenter Link zu dieser Überschrift

.mb-role[role=tablist][aria-multiselectable=true] [role=tab][aria-expanded=true]

SuchreiterPermanenter Link zu dieser Überschrift

Für die Suchreiter wird die Struktur der Basic Navbar-Komponente (http://getbootstrap.com/2.2.2/components.html#navbar) mit Nav links verwendet:

.navbar .nav

KopfleistePermanenter Link zu dieser Überschrift

Für die Kopfleiste wird die Struktur der Basic Navbar-Komponente (http://getbootstrap.com/2.2.2/components.html#navbar) mit Nav links verwendet:

.mb-header.navbar.navbar-inverse .mb-top-menu .nav

mb-computingPermanenter Link zu dieser Überschrift

Während eine Suche durchgeführt wird, erhalten die Widgets die CSS-Klasse mb-computing. Verwenden Sie diese CSS-Klasse, um die Aktivität darzustellen.

Beispiele:

<div class="mb-progress-indicator mb-absolute mb-center"><i class="icon-spinner icon-large"></i></div>

.mb-progress-indicator {

  display: none;

}

.mb-computing .mb-progress-indicator {

  display: block;

}

Entwicklung eigener WidgetsPermanenter Link zu dieser Überschrift

Eigene Widgets können als Plugin installiert werden und stehen für eigene Suchanwendungen und im Search App Editor zur Verfügung.

BeispielpluginPermanenter Link zu dieser Überschrift

Nachdem das Plugin heruntergeladen wurde, kann es angepasst (siehe ab ) und unter „Plugins“ wieder hochgeladen werden. Nachdem das Plugin unter „Client-Service“ > „Client Resources“ aktiviert wurde, steht es im Editor zur Verfügung.

Plugin-AufbauPermanenter Link zu dieser Überschrift

Mindbreeze Plugins sind zip-Dateien, die im plugins.xml eine Beschreibung enthalten. Das Element id enthält eine eindeutige Zeichenkette für das Plugin und als Extension Point wird mindbreeze.webapp.Resources verwendet. resource_path gibt den Pfad innerhalb des Plugins an, an dem die Dateien abgelegt sind.

<?xml version="1.0" encoding="utf-8"?>

<Plugins>

  <version>

    <major>1</major>

    <minor>0</minor>

    <micro>0</micro>

    <id>0</id>

  </version>

  

  <id>mycompany.example</id>

  <plugins>

    <Plugin>

      <kind>RESOURCE</kind>

      <extension>

        <Extension>

          <point>mindbreeze.webapp.Resources</point>

        </Extension>

      </extension>

      <resource_path>resources</resource_path>

    </Plugin>

  </plugins>

</Plugins>

Resource ProxyingPermanenter Link zu dieser Überschrift

Mithilfe von Mindbreeze Resource Plugins kann der Mindbreeze Client Service auch als Proxy für entfernte Web Resources agieren.

Um entfernte Resources für Suchanwendungen erreichbar zu machen, muss ein <resource_destination> Element in die Plugin-Konfiguration eingefügt werden:

<?xml version="1.0" encoding="utf-8"?>

<Plugins>

  <version>

    <major>1</major>

    <minor>0</minor>

    <micro>3</micro>

    <id>0</id>

  </version>

  <id>remote.resource</id>

  <plugins>

    <Plugin>

      <kind>RESOURCE</kind>

      <extension>

        <Extension>

          <point>mindbreeze.webapp.Resources</point>

        </Extension>

      </extension>

      <resource_destination>

        <base_url>https://www.myserver.com</base_url>

        <request_headers>

          <KeyValuePair>

            <key>User-Agent</key>

            <value>curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.50.0 OpenSSL/1.0.1e zlib/1.2.3 libidn/1.18</value>

          </KeyValuePair>

          <KeyValuePair>

            <key>CustomHeader</key>

            <value>CustomValue</value>

          </KeyValuePair>

        </request_headers>

        <request_query_parameters>

          <KeyValuePair>

            <key>QueryParam1</key>

            <value>Value1</value>

          </KeyValuePair>

        </request_query_parameters>

      </resource_destination>

    </Plugin>

  </plugins>

</Plugins>

Ein „resource_destination“ Element enthält ein „base_url“ Element. Hier ist die Basis-URL für die entfernte Resources konfiguriert.

HTTP-Anfragen im Form von <InSpire_searchapp_base_url>/resource/<plugin_id>/path werden auf <base_url>/path weitergeleitet.

Mit dem „remote.resource“ Plugin (siehe Plugin Konfiguration oben) werden z.B. Anfragen an https://inspire.mindbreeze.com/searchapp/resource/remote.resource/api an https://myserver.com/api geschickt.

Mit dem <request_headers> Element kann auch bestimmt werden, welche HTTP-Header in den weitergeleiteten HTTP-Anfragen gesetzt werden sollen. HTTP-Header-Namen und -Werte können als „KeyValuePair“ Elemente hinterlegt werden, wie in unserem Beispiel die User-Agent- bzw. CustomHeader-Headers.

Analog zu Headers, können auch HTTP-Query-Parameters mit KeyValuePair Elementen konfiguriert werden. Diese müssen sich in einem „request_query_parameters“ Element befinden.

Anlegen eigener WidgetsPermanenter Link zu dieser Überschrift

Templates.View.extend erzeugt eine neue View. Es handelt sind dabei um Backbone.Views mit Erweiterungen. Zum Erzeugen einer eigenen View wird Templates.View.extend verwendet:

var MyView = Templates.View.extend({ … });

An extend werden die angepassten Funktionen übergeben. Die wichtigsten Funktionen im Überblick:

initialize

Wird beim Anlegen der View aufgerufen. Zu Beginn immer Templates.View.prototype.initialize.apply(this, arguments) aufrufen, damit die Basisarbeiten erledigt werden.

setModel

Wird beim Ändern des Modells aufgerufen. Kann im Designer auch während des Betriebs aufgerufen werden. Beim Löschen einer View wird setModel mit einem null-Modell aufgerufen. Der Ablauf besteht aus

Abhängigkeiten zu aktuellem Modell aufräumen

Templates.View.prototype.setModel.apply(this, arguments)

Event-Handler und andere Abhängigkeiten für das neue Modell anlegen

render

Wird zum Anpassen des HTML verwendet. Das DOM-Element steht unter this.el zur Verfügung als jQuery-Object unter this.$el.

remove

Wird beim Löschen der View aufgerufen. Am Ende immer Templates.View.prototype.remove.apply(this, arguments) aufrufen, damit die Basisarbeiten erledigt werden.

Registrieren eigener WidgetsPermanenter Link zu dieser Überschrift

Nach Anlegen eigener Widgets muss es noch registriert werden, damit es in Suchanwendungen und im Designer zur Verfügung steht. Dazu wird Templates.add verwendet:

  Templates.add({

    name: "exampleresults",

    view: MyView,          

    attributes: {

      size: {

        title: "mycompany_results_size",

        type: "string",

        defaultValue: "test"

      }

    },

    designer_menu: [{

        name: "mycompany_results",

        icon: Mindbreeze.require.toUrl("mycompany.example/example.png"),

        description: "mycompany_results_description",

        group: {

          name: "mygroup",

          description: "mygroup_description"

        }

    }]

  });

});

Optionen:

name

Name des Widgets. Dadurch kann in Suchanwendungen data-template="exampleresults" verwendet werden. Pflichtfeld

view

View-Objekt, siehe Abschnitt . Pflichtfeld

attributes

Beschreibung der zur Verfügung stehenden Optionen. Wird im Designer und für die Optionen der View verwendet. Details im Abschnitt .

designer_menu

Menüeinträge für den Designer. Details im Abschnitt .

AttributePermanenter Link zu dieser Überschrift

Beim Registrieren eigener Widgets können mit attributes Optionen an das Widget übergeben werden, z.B.

attributes: {

  size: {

    title: "mycompany_results_size",

    type: "string",

    defaultValue: "test"

  }

}

- Ist im HTML als data-size verwendbar:

<div data-template="exampleresults" data-size="mysize"></div>

- Steht im Widget automatisch in den Optionen zur Verfügung:

var MyView = Templates.View.extend({

  …

  initialize: function () {

    console.log(this.options.size); // logs mysize

  },

  …

});

Der Titel für den Designer wird mit title angegeben. Ist der Text in den Übersetzungen enthalten, wird er automatisch übersetzt.

Folgende Typen stehen bei types zur Verfügung:

string

Zeichenketten

boolean

true/false

int

Ganzzahlen

date

Datumswerte, die mit new Date(<value>) geparst werden können. Z.B. 25 Dec 1995 13:30:00 GMT

list

JSON-Array oder Beistrich getrennte Liste von String-Werten.

["a", "b", 1] oder a, b

i18nString

Werte, die mit i18n. beginnen, werden übersetzt.

QueryExpr

Zeichenkette wird als Unstrukturierte Suche übernommen.

Mit defaultValue kann ein Standardwert angegeben werden, der verwendet wird, wenn die Option nicht gesetzt wurde.

Im Designer anzeigenPermanenter Link zu dieser Überschrift

Beim Registrieren eigener Widgets können mit designer_menu Menüeinträge für das Widget im Designer hinterlegt werden, z.B.

designer_menu: [{

  name: "mycompany_results",

  icon: Mindbreeze.require.toUrl("mycompany.example/example.png"),

  description: "mycompany_results_description",

  group: {

    name: "mygroup",

    description: "mygroup_description"

  }

}]

Mit folgenden Übersetzungen:

i18n.loadExtension({

    mygroup: {

      "de": "Meine Gruppe",

      "en": "My Group"

    },

    mygroup_description: {

      "de": "Meine Gruppe macht ...",

      "en": "My Group takes care of...."

    },

    mycompany_results: {

      "de": "Resultate",

      "en": "Results"

    },

    mycompany_results_description: {

      "de": "Anzeige von Resultaten",

      "en": "Result Display"

    },

    mycompany_results_size: {

      "de": "Größe",

      "en": "Size"

    }

  });

wird dieses Menü angezeigt:

Optionen:

name

Automatisch übersetzter Name

icon

Adresse eines Bildes. Mindbreeze.require("<plugin-id>/<Pfad>") liefert den Pfad einer Datei im Plugin

description

Erweiterte Beschreibung des Widgets

group

Name (name) und Beschreibung (description) der Gruppe, in der das Widget einsortiert wird.

Hinzufügen von ÜbersetzungenPermanenter Link zu dieser Überschrift

Mit i18n.loadExtension können eigene Übersetzungen hinzugefügt werden:

Mindbreeze.require(["i18n/i18n"], function(i18n) {

  i18n.loadExtension({

    mygroup: {

      "de": "Meine Gruppe",

      "en": "My Group"

    }

  });

});

EntwicklungsumgebungPermanenter Link zu dieser Überschrift

Voraussetzungen:

Apache Ant

https://ant.apache.org/

Node JS

https://nodejs.org/

Ordnerstruktur:

build.xml

Wird mit ant aufgerufen. Kombiniert alle Abhängigkeiten in eine neue JavaScript-Datei und paketiert das Plugin.

build.js

Konfiguration zum Paktieren des Plugins. Verwendet require.js

src/css/plugin.css

lib

lib/r.js

Optimier-Skript

lib/text.js

Um das Plugin ohne Installation zu entwickeln kann es auf einem Webserver abgelegt und mit folgendem JavaScript geladen werden:

<script src="https://demo.mindbreeze.com/public/apps/scripts/client.js"></script>

<!-- load plugin during development -->

<script>

  window.define = Mindbreeze.define;

  Mindbreeze.require.config({ paths: { "mycompany.example": "/plugins/mycompany.example/src" }});

  Mindbreeze.require(["mycompany.example/init"]);

</script>

<!-- load plugin during development (end) -->

<script>

  Mindbreeze.require(["client/application"], function (Application) {

    new Application({

      …

    })

  });

</script>

Wichtig hierbei ist, dass das Plugin sowie das Client.js vom gleichen Server stammen.

CMIS RSS Feed InterfacePermanenter Link zu dieser Überschrift

Mindbreeze bietet Ihnen die Möglichkeit die Suche in Form eines dynamischen RSS-Feeds durchzuführen. Dazu muss die nachstehende URL aufgerufen werden:

https://YourAppliance/mindbreeze/cmis/content/query?q=ALL&qtype=mes:sanskrit&maxItems=5&skipCount=5&language=de_DE

Im nachstehenden Abschnitt werden die URL-Parameter und deren Funktion beschrieben

Parameter

Optional

Beschreibung

q

Nein

Suchbegriff - es kann die gesamte Suchsprache verwendet werden.

maxItems

Ja

Anzahl der Suchergebnisse. Standardwert: 5

skipCount

Ja

Anzahl der zu überspringenden Ergebnisse. Dieser Parameter kann zum Blättern verwendet werden. Z.B. skipCount=5, um bei maxItems 5 auf die zweite Seite zu kommen. Standarwert: 0

language

Ja

Dieser Parameter steuert die Übersetzung der Metadaten. Beispiel: language=de Standardwert: Sprache des Browsers

Betreiben von Suchanwendungen über das Client Service und Ändern der StandardsuchanwendungPermanenter Link zu dieser Überschrift

Um eigene Suchanwendungen direkt über das Client Service zu betreiben und dort auch als Standard zu hinterlegen, kann dem Menüpunkt „Web Application Contexts Settings“ in der Client Service Konfiguration folgende Parameter hinterlegt werden. Die entsprechenden Dateien sollten dann via dem InSpire File-Uploader auf die entsprechende Stelle kopiert werden.

URL Path

URL Pfad der Suchanwendung.

File Path

URL Pfad der Suchanwendung.

Override Existing Path

Wenn aktiviert können Pfäde, die normalerwiese im Standard-Client existieren, überschrieben werden. Diese Einstellung kann zu Folge haben, dass Standard-Anwendungen nicht mehr wie gewohnt funktionieren.

Allow Symlinks

Wenn aktiviert können in den eingeblendeten Pfäden auch symbolische Links exisiteren.

Authenticated URL pattern

Das Pattern bestimmt die Anfrage-URLs, für die Filter (welche unter anderem Authentisierung durchführen) angewendet werden. Üblicherweise enthält das Patter die gesamte Suchanwendung (Standard-Pattern: /* ). Aus Performanzgründen sollen jedoch URLs mit statischen Inhalten (z. B. Bilder, CSS oder Javascript-Bibliotheken) nicht im Pattern enthalten sein.

Das Pattern muss relativ zum URL Path sein und dem Tomcat web.xml URL Pattern entsprechen. [Servlet 3.0 Spezifikation]

Ist das Pattern leer, werden keine Filter angewendet und die Suchanwendung kann nur ohne Benutzerauthentisierung verwendet werden.

Login URL pattern

Wenn im „Require Authentication“ Feld „Optional“ ausgewählt ist, werden für alle Anfrage URLs, die diesem Pattern entsprechen (das Pattern muss relativ zum URL Path sein.) eine Benutzer Authentisierung angefordert.

Das Pattern muss den Tomcat web.xml URL Pattern entsprechen.

[Servlet 3.0 Spezifikation]

[Servlet 3.0 Spezifikation] http://download.oracle.com/otn-pub/jcp/servlet-3.0-fr-oth-JSpec/servlet-3_0-final-spec.pdf

Als Vorlage ist die Standardsuchanwendung unter /data/apps/client/index.html verfügbar.

Im Folgenden Beispiel sind zwei Suchanwendungen (marketing und sales) am Client Service der unter https://search.mycompany.com erreichbar ist konfiguriert. Die Suchanwendung marketing ist dann unter https://search.mycompany.com und https://search.mycompany.com/apps/marketing erreichbar und die Suchanwendung sales unter https://search.mycompany.com/apps/sales erreichbar.