Home
Home
Englische Version
Support
Impressum
20.5 Release ►

    Main Navigation

    • Vorbereitung
      • Einrichten InSpire G7 Primärsystem und Standby Appliances
      • Initiale Inbetriebnahme für G6 Appliances (vor Jänner 2018 ausgeliefert)
      • Initiale Inbetriebnahme für G7 Appliances
      • Konnektoren
    • Datenquellen
      • Anleitung zur Datenintegration mithilfe eines SQL Datenbank-Beispiels
      • Indizierung benutzerspezifischer Eigenschaften (SharePoint 2013 Connector)
      • Indizierung benutzerspezifischer Objekttypen (Documentum)
      • Installation & Konfiguration - Atlassian Confluence Sitemap Generator Add-On
      • Installation & Konfiguration - Caching Principal Resolution Service
      • Installation & Konfiguration - Jive Sitemap Generator
      • Konfiguration - Atlassian Confluence Connector
      • Konfiguration - Best Bets Connector
      • Konfiguration - Data Integration Connector
      • Konfiguration - Documentum Connector
      • Konfiguration - Dropbox Connector
      • Konfiguration - Egnyte Connector
      • Konfiguration - GitHub Connector
      • Konfiguration - Google Drive Connector
      • Konfiguration - GSA Adapter Service
      • Konfiguration - HL7 Connector
      • Konfiguration - IBM Connections Connector
      • Konfiguration - IBM Lotus Connector
      • Konfiguration - Jira Connector
      • Konfiguration - JiveSoftware Jive Connector
      • Konfiguration - JVM Launcher Service
      • Konfiguration - LDAP Connector
      • Konfiguration - Microsoft Dynamics CRM Connector
      • Konfiguration - Microsoft Exchange Connector
      • Konfiguration - Microsoft File Connector (Legacy)
      • Konfiguration - Microsoft File Connector
      • Konfiguration - Microsoft SharePoint Connector
      • Konfiguration - Salesforce Connector
      • Konfiguration - SAP KMC Connector
      • Konfiguration - SemanticWeb Connector
      • Konfiguration - ServiceNow Connector
      • Konfiguration - SharePoint Online Connector
      • Konfiguration - Web Connector
      • Mindbreeze InSpire Insight Apps in Microsoft SharePoint Online
      • Mindbreeze InSpire Suchanwendungen in Microsoft SharePoint 2010
      • Mindbreeze InSpire Suchanwendungen in Microsoft SharePoint 2013
      • Mindbreeze Web Parts in Microsoft SharePoint
    • Konfiguration
      • CAS Authentifizierung
      • Cognito JWT Authentifizierung
      • Cookie Authentifizierung
      • I18n Item Transformation
      • Konfiguration - Alternative Suchvorschläge und automatische Sucherweiterung
      • Konfiguration - Backend Credentials
      • Konfiguration - Benachrichtigungen
      • Konfiguration - CJK Tokenizer Plugin
      • Konfiguration - CSV Metadata Mapping Item Transformation Service
      • Konfiguration - Entity Recognition
      • Konfiguration - Export Funktionalität
      • Konfiguration - Gesammelte Ergebnisse
      • Konfiguration - GSA Late Binding Authorization
      • Konfiguration - Index-Servlets
      • Konfiguration - Item Property Generator
      • Konfiguration - Kerberos Authentfizierung
      • Konfiguration - Management Center Menü
      • Konfiguration - Metadata Reference Builder Plugin
      • Konfiguration - Metadaten Anreicherung
      • Konfiguration - Microsoft SharePoint Connector
      • Konfiguration - Mindbreeze InSpire
      • Konfiguration - Outlook Add-In
      • Konfiguration - Personalisierte Relevanz
      • Konfiguration - Plugin Installation
      • Konfiguration - Principal Validation Plugin
      • Konfiguration - Profile
      • Konfiguration - Reporting Query Log
      • Konfiguration - Reporting Query Performance Tests
      • Konfiguration - Request Header Session Authentisierung
      • Konfiguration - Vokabulare für Synonyme und Autovervollständigung
      • Konfiguration von Vorschaubildern
      • Mindbreeze Personalization
      • Mindbreeze Prediction Service mit Beispiel Textklassifizierung
      • Mindbreeze Property Expression Language
      • Mindbreeze Query Expression Transformation
      • Non-Inverted Metadata Item Transformer
      • SAML Authentifizierung
      • Spracherkennung mit dem LanguageDetector Plugin
      • Trusted Peer Authentication für Mindbreeze InSpire
      • Verwendung von InSpire-Snapshots in einer CI_CD-Umgebung
    • Betrieb
      • app.telemetry Statistiken zu Suchanfragen
      • Bereitstellen von app.telemetry Informationen mittels SNMPv3 auf G7 Appliances
      • Handbuch - Filemanager
      • Handbuch - Indizierungs- und Suchlogs
      • Handbuch - Kommandozeilenwerkzeuge
      • Handbuch - Sichern & Wiederherstellen
      • Handbuch - Synchronisierter Betrieb (G6)
      • Handbuch - Verteilter Betrieb (G7)
      • Index Betriebskonzepte
      • Inspire Diagnose und Ressourcen Monitoring
      • Konfiguration - Nutzungsanalyse
      • Löschung der Festplatten
      • Mindbreeze InSpire SFX Update
      • Wiederherstellen des Lieferzustandes
    • Anwenderhandbuch
      • Cheat Sheet
      • iOS App
      • Tastaturbedienung
    • SDK
      • api.v2.alertstrigger Schnittstellenbeschreibung
      • api.v2.export Schnittstellenbeschreibung
      • api.v2.personalization Schnittstellenbeschreibung
      • api.v2.search Schnittstellenbeschreibung
      • api.v2.suggest Schnittstellenbeschreibung
      • api.v3.admin.SnapshotService Schnittstellenbeschreibung
      • Entwicklung eines API V2 Search Request Response Transformer
      • Entwicklung von Insight Apps
      • Java API Schnittstellenbeschreibung
      • SDK Übersicht
    • Release Notes
      • Release Notes 20.1 Release - Mindbreeze InSpire
      • Release Notes 20.2 Release - Mindbreeze InSpire
      • Release Notes 20.3 Release - Mindbreeze InSpire
      • Release Notes 20.4 Release - Mindbreeze InSpire
      • Release Notes 20.5 Release - Mindbreeze InSpire
      • Release Notes 2018 Spring - Mindbreeze InSpire
      • Release Notes 2018 Winter - Mindbreeze InSpire
      • Release Notes 2019 Fall - Mindbreeze InSpire
      • Release Notes 2019 Winter - Mindbreeze InSpire
    • Sicherheit
      • Bekannte Schwachstellen
    • Produktinformation
      • Produktinformation - Mindbreeze InSpire - Standby
      • Produktinformation - Mindbreeze InSpire
    Home

    Path

    Entwicklung von Insight Apps

    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.

    Tutorial Video „Creating an Insight App“Permanenter Link zu dieser Überschrift

    Dieses Video zeigt Ihnen, wie Sie Ihre eigene Mindbreeze InSpire Insight App mit dem integrierten Insight App-Designer erstellen können. Alle Funktionen des Standard-Clients werden ausführlich erläutert, wie z.B. die Verbesserung der Ergebnisliste durch Filter und die Mindbreeze InSpire Query Language.

    Link zum Video: https://www.youtube.com/watch?v=2X0Ot3oXZwQ

    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

    HeadPermanenter Link zu dieser Überschrift

    Meta-TagsPermanenter Link zu dieser Überschrift

    Es wird empfohlen, folgende Meta-Tags im <head> Bereich der Suchanwendung anzugeben und zu verwenden:

    <meta name="mes:user" content="$$USERNAME$$">

    <meta name="display:mes:user" content="$$IS_USERNAME_DISPLAYED$$">

    <meta name="mes:emailaddress" content="$$EMAILADDRESS$$">

    <meta name="mes:loginstatus" content="$$LOGIN_ACTION$$">

    <meta name="mes:logoutdisabled" content="$$LOGOUTDISABLED$$">

    <meta name="mes:decrypted:user" content="$$DECRYPTEDUSERNAME$$">

    <meta name="app:telemetry:enabled" content="$$APP_TELEMETRY_ENABLED$$">

    <meta name="app:telemetry:application:id" content="$$APP_TELEMETRY_APPLICATION_ID$$">

    <meta name="app:telemetry:application:tier:id" content="$$APP_TELEMETRY_APPLICATION_TIER_ID$$">

    <meta name="enablePersonalization" content="$$ENABLE_PERSONALIZATION$$">

    mes:user

    Username des aktuell eingeloggten Users

    display:mes:user

    Gibt an, ob der Username am Client angezeigt werden soll

    mes:emailaddress

    Emailadresse des aktuell eingeloggten Users

    mes:loginstatus

    Gibt an, welche Aktion für den User aktuell verfügbar ist (login oder logout)

    mes:logoutdisabled

    Gibt an, ob sicher der User abmelden kann

    mes:decrypted:user

    Entschlüsselte Username des aktuell eingeloggten Users

    app:telemetry:enabled

    Gibt an, ob App.Telemetry aktiviert sein soll

    app:telemetry:application:id

    Gibt die App.Telemetry-Application-ID an

    app:telemetry:application:tier:id

    Gibt die App.Telemetry-Application-Tier-ID an

    enablePersonalization

    Gibt an, ob Personalization aktiv ist

    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“.

    StandardbibliothekenPermanenter Link zu dieser Überschrift

    Das client.js wird mit folgenden Bibliotheken ausgeliefert:

    Bibliothek

    Key

    Version

    Webseite

    Patches

    jQuery

    jquery

    1.12.4

    http://jquery.com/

    CVE-2015-9251

    CVE-2019-11358

    CVE-2020-11022

    CVE-2020-11023

    Underscorejs

    underscore

    1.4.3

    https://underscorejs.org/

    Backbone

    backbone

    0.9.9

    https://backbonejs.org/

    MomentJS

    moment

    2.8.3

    https://momentjs.com/

    Highcharts

    highcharts

    8.1.2

    https://www.highcharts.com/

    CVE-2018-20801

    Mustache

    mustache

    0.7.1

    https://mustache.github.io/

    RequireJS

    require

    2.1.8

    https://requirejs.org/

    Bootstrap

    bootstrap

    2.2.2

    https://getbootstrap.com/

    Die Bibliotheken können nun mit Hilfe von require() verwendet werden siehe Beispiel:

    Mindbreeze.require(["jquery","moment"], function($,moment) {

      var body = $("body");

      var now =  moment().toDate();  

    });

    Insight App DesignerPermanenter Link zu dieser Überschrift

    Die einfachste Art, eine Insight App zu erstellen, ist der Insight App Designer. 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 Designer speziell für Fachbereichsmitarbeiter geeignet, damit die Personen, die die Informationen benötigen, das Maximum aus den Daten herausholen können.

    AllgemeinPermanenter Link zu dieser Überschrift

    1. Öffnen Sie den Designer: Der Designer ist unter der gleichen Adresse wie der Client, unter dem Pfad apps/designer verfügbar (z.B. https://example.com/apps/designer/).
    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 linken Fensterrand anpassen. Hier stehen unter anderem Suchbegriff, Ergebnisanzahl und Darstellungsvorlage zur Auswahl.
    5. Um die Einstellungen später erneut zu bearbeiten, klicken Sie auf die Bearbeiten-Schaltfläche

        

    1. Snippet fehlt!

      Verwenden der Insight Application: Klicken Sie auf den "HTML Code Generieren"-Button und kopieren Sie das erzeugte Snippet in eine beliebige Webseite.

    2. Fertig!: Zeigen Sie die neue Insight Application Ihren Kolleginnen und Kollegen.

    Änderungen und Anpassungen im generierten HTMLPermanenter Link zu dieser Überschrift

    LoaderPermanenter Link zu dieser Überschrift

    Mit dem Mindbreeze-Loader kann das erstellte Snippet geladen und in das HTML eingefügt werden.  

    Loader.loadAppFromResource(options, additionalOptions);

    EinstellungenPermanenter Link zu dieser Überschrift

    options

    • appid: Die App-ID kann aus dem Managementcenter – InSight Apps kopiert werden.

    • sourceURL: Wird eine spezielle Source-URL benötigt, kann diese hier angegeben werden.
    • sources: Wird eine spezielle Sources benötigt, kann diese hier angegeben werden.
    • target: Das Element im DOM, in dem das geladene Snippet eingefügt werden soll.

    additionalOptions:

    • useMessageFrameForNonBuiltinSources: Wenn true, verwendet die Anwendung den MessageFrame-Channel für die Sources. Werte: true oder falsch. Default: true.

    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 Option „Ergebnisse beim Scrollen anzeigen“ deaktiviert 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
    • data-format: Datumsformat. Default Wert: “DD.MM.YYYY”
      Andere Werte:
      "DD.MM.YYYY", "DD-MM-YYYY", "MM.DD.YYYY", "MM-DD-YYYY",
      "D. MMMM YYYY", "DD. MMMM YYYY", "DD MMMM YYYY"

    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-incomplete-class: Diese Klasse wird dem HTML Element gesetzt, wenn der Filter „incomplete“ liefert. Default „mb-incomplete“.
    • 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
    • data-all-descendants: Soll die komplette Hierarchie ohne Einschränkung zurückgeliefert werden? Standardwert: false

    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 geo_latitude und geo_longitude enthalten sein (als Float, Integer oder String, wobei das Dezimaltrennzeichen in diesem Fall ein Punkt sein muss).

    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>

    Mehrere Markierungen zu einem Resultat anzeigenPermanenter Link zu dieser Überschrift

    Mit folgendem Beispiel können für nur ein einziges Resultat mit mehreren geo_latitude/geo_longitude Weten mehrere Marker in der Map angezeigt werden.

    Folgender Aufbau ist notwendig:

    "geo_latitude": { data: [ {"value": 15.3343 ], {"value": 14.11111}, … ] }

    "geo_longitude": { data: [ {"value": 48.1234 ], {"value": 57.1234}, … ] }

    "customProperty ": { data: [ {"value”: “Title 1”], {"value": “Title 2 }, … ] }

    <div data-template="map” data-allow-symbolic-path=”true” >

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

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

            {{{customProperty[geo_index]}}}

        </a>

      </script>

    </div>

    Einstellungen:

    data-allow-symbolic-path: Um dynamische Eigenschaften zu aktivieren - Beispiel ‘myProp[index]’. Default false.

    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 Option „Ergebnisse 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" data-loading-message="Please wait while your file loads. Large documents may take up to 60 seconds to preview." data-loading-message-styles="font-size: 14px; background-color: green; color:white"></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>

    Einstellungen:

    data-loading-message: Kann verwendet werden um wärend des ladens von Dokumenten im Vorschaufenster eine Nachricht anzuzeigen.

    data-loading-message-styles: Kann verwendet werden, um den Stil der Nachricht anzupassen.

    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,…)

    data-name: Um Suchen zu unterscheiden und den Request.Name in app.telemetry einsehen zu können.

    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-words-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
    • before-submit-action – Löst eine eine Funktion der Application aus um beispielsweise den Searchrequest transformieren zu können und wird vor der ‘submit’ Aktion aufgerufen: “application.transformQuery(view)” *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. Max Number Of Database Connections: Maximale Anzahl der Datenbankverbindungen. Standardwert: 10, Minimalwert: 2.
    6. Table Name: Tabellenname aus der App.Telementry-Konfiguration
    7. Table Column for Query: Auswahl der Anzahl der Ergebnisse – App Telemetry-Konfiguration
    8. Table Column for Score: Auswahl des Spaltennamen der Ergebnisse aus der App Telemetry-Konfiguration
    9. Table Column for View ID: Auswahl des Spaltennamen der Abfragen aus der App Telemetry-Konfiguration
    10. Additional WHERE Clause: Hier haben Sie die Möglichkeit, verschiedene „WHERE“-Klauseln zu erstellen und hinzuzufügen.
    11. 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

    treeviewPermanenter Link zu dieser Überschrift

    Rendert eine aus Modellen bestehende Collection.

    Diese Collection wird idealerweise im initializeModels der Application erstellt und im „computed“ Event der Suche angereichert.

    Im folgenden Beispiel wird eine Collection erstellt und im „computed“ Event der Suche mit den Eigenschaften „title“ und „mes:key“ befüllt und gerendert.

    HTML:

    <ul data-template="treeview" data-model="treeViewCollection">

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

        <span>{{title}}</span>

      </script>

    </ul>

    JavaScript:

    var application = new Application({

      startSearch: false,

      initializeModels: function (application) {

        application.models.treeViewCollection = new Backbone.Collection();

        application.listenTo(

          application.models.search,

          "computed",

          function(options) {

            _.each(application.models.search.get("resultset.results"),

              function (result) {

                application.models.treeViewCollection.add({

                  'title': result.properties.title.data[0].value,

                  'mes:key': result.properties['mes:key'].data[0].value,

                });

            });

        });

      }

    });

    Erweitert man das HTML mit einer Aktion (data-action-name, data-action-object, …), kann beispielsweise via Klick auf das Resultat ein Stack geöffnet und eine 360° Ansicht auf ein bestimmtes Resultat angezeigt werden. Die dafür notwendige neue Suche kann mit Eigenschaften des geklickten Resultates bzw. des geklickten Modelles (options.model) angepasst werden.

    Weiters ist es möglich, die Resultate weiter einzuschränken und eine Hierarchische Resultatsliste zu erstellen.

    Dazu wird ein Suchmodell angelegt, welches die Detailsuche absetzt und die anschließenden Treffer in den „children“ des Modelles befüllt und anzeigt.

    Tipp: In den Arguments der „exampleAction“ wird das geklickte Resultat/Model mitübergeben (options.model). Damit kann auf sämtliche Eigenschaften (title, mes:key, …) des Resultates zugegriffen werden.

    HTML:

    <ul data-template="treeview" data-model="treeViewCollection">

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

        <span data-action-name="exampleAction">{{title}}</span>

      </script>

    </ul>

    JavaScript:

    /* require api via "api/v2/api" */

    var searchModel = api.search.createModel(application.models.channels);

    searchModel.once("computed", function () {

      var children = new Backbone.Collection();

      _.each(searchModel.get("resultset.results"), function (result) {

        children.add({

          title: result.properties.title.data[0].value,

          'mes:key': result.properties['mes:key'].data[0].value,

        });

      });

      options.model.set("children", children);

      searchModel.destroy();

    }

    searchModel.set("count", 5, { silent: true });

    searchModel.set("source_context.constraints.view_base", {

      unparsed: "ALL",

    });

    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
    • computed_properties: Liefert zur Laufzeit neu erstellte Properties mittles Expression. Beispiel: [{"name": "my_new_property", "expr": "extension"}] - Default: nicht gesetzt

    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
    • enablePersonalization: de-/aktiviert die Personalization am Client. Werte: true, false, Standartwert: 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/CrossDomainAjaxChannel angegeben werden, z.B. new AjaxChannel({ url: "<Client Service URL>/api/v2/"}), um crossDomain Request zuzulassen.
      AjaxChannel kann via "service/ajax_channel" required werden. Bei der Definition einer ‚Source‘ durch ein Objekt {url: "<Client Service URL>/api/v2/", channelType: "AjaxChannel"} gibt die channelType-Eigenschaft an, welcher Channel verwendet werden soll. Die Werte: MessageFrameChannel, AjaxChannel, CrossDomainAjaxChannel sind verfügbar. Default: CrossAjaxDomainChannel.
    • 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?}}
    • enableUserSourceInfo: Sollen benutzerabhängige Einschränkungen verfügbar sein, muss diese Option aktiviert werden, z.B. um das Constraint-Widget verwenden zu können:
      <div data-template="constraints" data-model="userSourceInfo" data-path="sources.constraints"></div>
      Anzumerken ist, dass das Aktivieren dieser Option unter gewissen Umständen Auswirkungen auf die Performance haben kann.

      Werte: true, false, Standardwert: false
    • crossDomainAjax: Liste von Eigenschaften, die vom CrossDomainAjaxChannel verwendet werden. Typ: Object.

    Properties:

    • loggedInHandlerBasePath: Der relative URL-Pfad zur HTML-Seite des Login-Handlers. Typ: string. Default: “apps/client/loggedin.html”

    loginWindowName: Der Parameter windowName des Loginfensters wie in Window.open() documentation beschrieben. Standardwert: _blank.loginWindowFeatures: Eine kommagetrennte Liste von Features für das Loginfenster wie in Window.open() documentation beschrieben. Standardwert: "menubar=no,width=800,height=600,top=100,left=100".

    onLoginAsErrorTreat403as401: Wenn die Eigenschaft „loginAsError“ und diese Eigenschaft true ist, werden Responses mit HTTP-Status 403 als Status 401 behandelt. Werte: true, false, Standardwert: true.

    treatBasicAuth401as403ForBrowser: Legt fest, ob eine 401-Antwort auf eine Basic-Auth-Anfrage wie ein Fehlercode 403 behandelt werden soll. Typ: Function. Standardwert: Aktiv nur für Safari-Browser. Return: Boolean.

    function(browserName) { return Boolean; }

    onLoginFailed: Diese Rückruffunktion (Callback) wird aufgerufen, wenn eine Anfrage aufgrund einer fehlgeschlagenen Authentisierung nicht erfolgreich ist, weil der Login-Dialog von einem Popup-Blocker blockiert wurde. Wenn diese Funktion definiert ist, werden in diesem Fall keine modalen Fehlerdialoge angezeigt.

    onLoginFailed function (reason, loginURL, serviceUrl, failedRequest) {}

    Parameter:

                reason: Der Grund für den fehlgeschlagenen Login (aktuell nur PopupBlocker)

                loginUrl: Adresse and der ein manueller Login stattfinden kann

                serviceUrl: Adresse des Service für das der Login fehlgeschlagen ist

                failedRequest: {url: string, retryCallback: function() }:

                            url: Die Adresse der Fehlgeschlagenen Anfrage

                            retryCallback: Eine Rückruffunktion (Callback) mit der die Anfrage erneut gesendet werden kann

    Ablauf bei Fehlern im Login-Prozess (Popup Blocker):

    Wenn „onLoginFailed“ gesetzt ist wird die Funktion zur Behandlung verwendet.

    Wenn weder onLoginFailed noch „onLoginFailedErrorComponent“  gesetzt ist, wird der Standard Bootstrap Modaldialog verwendet.

    Wenn „onLoginFailedErrorComponent“ auf „alertComponent“ gesetzt ist werden die Fehler in der Alert-Komponente angezeigt

    onLoginFailedErrorComponent: Legt fest wir Fehler beim Login-Prozess behandelt werden sollen (aktuell nur bei Problemen mit Popup-Blockern). Ist die Eigenschaft nicht gesetzt, do wird der Standard Bootstrap Modaldialog verwendet. Alternativ kann auch Alert-Komponente verwendet werden dazu muss die Eigenschaft auf: alertComponent gesetzt und ein Alert-Template im Search Client definiert werden.

    • ajaxOptions: Eine Liste von Eingeschaften, welche beim Ajax Channel verwendet werden. Typ: Object.

    Eigenschaften:

    • requestHeaders: Zusätzliche Header die im Ajax Request enthalten sein sollen. Type: Object oder Function.

    Object:

    {

      “https://appliance.com”: {

          key: value, …

      }

    Function: function(channelURL) { return { key: value, …}

    requestHeadersAsync: Benutzerdefinierte Header, die in Ajax-Anfragen asynchron übergeben werden sollen. Typ: Function.

    function(url: string, callback: function):

    url: Aktuelle Request-URL

    callback(error: Objekt, data: Objekt): Eine Callback-Funktion, die in einer asynchronen Funktion mit folgenden Argumenten aufgerufen wird:

    error: Sollte auf {message: 'Some error message'} gesetzt werden, falls ein Fehler auftritt, ansonsten auf NULL.

    data: Ist die Liste der Header als Objekt mit key:value.

    • requestTimeoutInSec: Timeouts für verschiedene API Methoden (in Sekunden). Typ: Object.

    Eigenschaften:

    • search, suggest, preview, export, asyncExport, sourceinfo, usersourceinfo, getprofile, persistedresources, persistedcollections, persistedcollectionschema, personalization, resource.
    • genericFallbackTimeout: Ein benutzerdefiniertes Fallback-Timeout, das auf Methoden angewendet wird, die nicht in der obigen Liste aufgeführt sind.
    • useLegacyMessageFrameChannel: Wenn true, wird für built-in sources der Legacy-MessageFrame-Channel verwenden. Diese Eigenschaft setzt die Backend-Option "Use Legacy Messageframe Channel" außer Kraft. Werte: true oder false. Standardwert: false.
    • useMessageFrameForNonBuiltinSources: Wenn true, verwendet die Anwendung den MessageFrame-Channel für non-built-in-Sources. Werte: true or falsch. Default: true.
    • useAvailablePropertiesAsFilters: Standardmäßig werden im Designer alle verfügbaren ‚Facets‘ angezeigt. Mit dieser Einstellung ist es möglich, anstelle der verfügbaren ‚Facets‘ alle verfügbaren ‚Properties‘ anzuzeigen.
    • onRequestFailed: Eine Funktion, welche aufgerufen wird, wenn Requests einen Fehler liefern. Typ: Funktion.
    • function(errorStatus, requestInfo, retryCallRequest, defaultHandler)

    errorStatus: Dieses Argument beinhaltet Fehlerinformationen wie folgt:

    status: HTTP response status

    reason: Der Grund wie Authentifizierung, RequestFail oder PopupBlocker. Typ: String

    retryCount: Der Counter gibt die Anzahl der Wiederholungen an. Wichtig: errorStatus.retryCount muss verwendet werden, um das Auslösen von retryCallRequest oder defaultHandler zu stoppen. Ansonsten könnte Ihre Anwendung in eine Endlosschleife geraten.

    requestInfo: Objekt mit Requst-Informationen wie: requestUrl, loginUrl oder serviceUrl.

    retryCallRequest: Der Callback zur Wiederholung der letzten fehlgeschlagenen Anfrage. Typ: Funktion.

    function(headers)

    Der Parameter beinhaltet die neune/überarbeiteten Header, welche im neuen Request verwendet werden sollen.

    defaultHandler: Callback, um mit der standardmäßigen internen Fehlerbehandlung der Anwendung fortzufahren. Typ: Funktion.

    Verwendung von onRequestFailed:

    Wichtige Information: errorStatus.retryCount muss überprüft und die Wiederholungsversuche durch den Aufruf von defaultHandler gestoppt werden oder durch eine eigenen Handler implementiert werden. Andernfalls wird die Anfrage unendlich oft erneut versucht.

    onRequestFailed: function (errorStatus, requestInfo, retryCallRequest, defaultHandler) {

          if (errorStatus.retryCount > 5) {

                    defaultHandler(); // Oder der eigene Handler

                    return;

                  }

                  retryCallRequest({'Authorization': 'abc123'});

           },

    Beispiele:

    new Application({});

    new Application({

      callback: function (application) {

        …

      },

      rootEl: document.getElementById("mySearchApp"),

      crossDomainAjax: {

        loggedInHandlerBasePath:”apps/client/handle-login.html”

      }

    });

    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, welcher vom User eingegeben wurde
    • setUnparsedUserQuery(unparsedUserQuery, options): setzt den Suchbegriff und fügt diesen im Suchefeld automatisch ein
    • 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)

    Der Unterschied zwischen „UnparsedUserQuery“ und „Constraints“ besteht darin, dass die „UnparsedUserQuery“ die Suche grundlegend (über das Suchefeld) einschränkt. Mit Hilfe der Constraints wird die Suche verfeinert, das Suchefeld wird dadurch aber nicht upgedatet.

    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 = …

    };

    Standard Aktion-Type bei eigenen Aktionen: Permanenter Link zu dieser Überschrift

    Als Argument kann, wenn die jeweilige Aktion in App.Telemetry sichtbar sein soll, der Wert „actionType“ angegeben werden. Folgende Werte sind dabei zulässig: “preview”, “openHref”, “vote”, “sendFeedback”:

    <a data-action-object="{&quot;myCustomAction&quot;:{ &quot;actionType&quot;: &quot;preview&quot; }}">

      Open custom preview

    </a>

    Ein Klick auf „Open custom preview“ führt die Funktion „myCustomAction“ aus und setzt dabei einen „personalization“ Request ab.

    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 Insight 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

    1. Abhängigkeiten zu aktuellem Modell aufräumen

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

    3. 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. Pflichtfeld

    attributes

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

    designer_menu

    Menüeinträge für den Designer

    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]

    Not Cached MIME-Types Pattern

    Grundsätzlich werden alle Ressourcen im "Authenticated URL pattern“ vom Browser gecached. Mit dieser Option können gewisse Resourcen explizit ausgenommen werden. Diese Option definiert einen regulären Ausdruck, der auf die MIME-Type der Resource angewendet wird. Resourcen mit übereinstimmenden MIME-Types werden explizit nicht gecached. Standardmäßig wird z.B. das index.html nicht gecached, da das index.html personalisierte Werte enthalten kann. Standardwert: text/plain|text/html|application/json

    [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.

    AppendixPermanenter Link zu dieser Überschrift

    Source-Info CachePermanenter Link zu dieser Überschrift

    Die Source-Info wird beim Laden der Suchanwendung mittels POST-Request an /api/v2/sourceinfo abgeholt. Diese enthält Informationen zu Datenquellen und API-Endpunkten. Aus Performance-Gründen wird diese serverseitig gecached. Um den Cache zu erneuern, muss der HTTP-Header „x-mes-refresh-cache“ gesetzt werden, z.B.:

    curl -k -H "x-mes-refresh-cache:refresh" -X POST --data "{}" https://<your_appliance>:<your_client_port>/api/v2/sourceinfo

    Einbettung von Insight Apps mit Iframes und Content Security PolicyPermanenter Link zu dieser Überschrift

    Falls auf einem Webserver Content Security Policy verwendet wird und Ressourcen von einer Mindbreeze InSpire mittels beispielsweise eines Iframes eingebunden werden, ist es notwendig, mögliche Content-Security-Policy Header anzupassen, damit die Ressource vom Webbrowser geladen werden dürfen.

    Folgender Content Security Policy Header ist sehr restriktiv. Hier muss ein frame-src Parameter angegeben werden, um den Zugriff auf die Ressourcen der Mindbreeze InSpire, erreichbar unter https://search.mindbreeze.com zu erlauben. Z.B.

    Content-Security-Policy: default-src 'none'; frame-src https://search.mycompany.com

    oder

    Content-Security-Policy: default-src 'none'; frame-src https://*.mycompany.com

    PDF herunterladen

    • Entwicklung von Insight Apps

    Inhalt

    • Tutorial Video „Creating an Insight App“
    • Einführung
    • Benötigte Ressourcen
    • Insight App Designer
    • Verfügbare Widgets
    • Das Application-Objekt
    • Aktionen
    • Tastenkombinationen
    • CSS
    • Entwicklung eigener Widgets
    • CMIS RSS Feed Interface
    • Betreiben von Suchanwendungen über das Client Service und Ändern der Standardsuchanwendung
    • Appendix

    PDF herunterladen

    • Entwicklung von Insight Apps