Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

SharePoint-Suche: Integration von File Shares aufgepeppt (Teil 4 - Display Templates)

Meine kleine Beitragsserie zum Thema SharePoint-Suche: Integration von File Shares auf­ge­peppt wid­met sich der Steigerung des Nutzungserlebnisses durch geschickte Präsentation der Suchergebnisse sowie kon­kre­ten Umsetzungsvorschlägen, bezo­gen auf die Suche in File Shares.

In den bis­he­ri­gen drei Beiträgen haben wir uns mit fol­gen­den Techniken aus­ein­an­der­ge­setzt:

Der letzte Blogeintrag befasst sich, wie­derum am kon­kre­ten Anwendungsfall "Integration von File Shares in die SharePoint-Suche", mit der Erstellung und Verwendung von Display Templates für die Ergebnisanzeige.

Ausgangssituation

Am Ende des drit­ten Beitrages hat­ten wir fol­gende Situation:

  • In die SharePoint-Suche inte­griert ist eine Netzwerkfreigabe “Fileshare for Search” mit vier Ordnern auf obers­ter Ebene, in denen sich jeweils meh­rere Dateien unter­schied­li­cher Dateitypen (PDF, Visio, Word, …), teils in Unterordnern, befin­den.
    Fileshare
  • Es wurde eine ver­ti­kale Einschränkung mit­tels Ergebnisquelle kon­fi­gu­riert: Im Such-Center wird auf der Ergebnisseite ein Reiter “Fileshare” ange­zeigt, durch Klick auf die­sen Reiter wer­den die Suchergebnisse auf das File Share ein­ge­schränkt.
  • Im Reiter "Alle Ergebnisse (Everything)" gibt es nun einen Refiner nach Herkunft (Inhaltsquelle), damit kön­nen die Suchergebnisse auch hori­zon­tal ein­ge­schränkt wer­den nach Treffern aus dem File Share oder aus SharePoint.
  • Für den Reiter "Fileshare" wur­den zwei zusätz­li­che Refiner nach Typ (Datei oder Ordner) sowie nach Kategorie (Hauptordner) erstellt. Hierdurch ist eine Filterung der FileShare-Suchergebnisse nach Dateien oder Ordnern bzw. nach den ein­zel­nen Kategorien mög­lich.

Herausforderung

Auch wenn das Sucherlebnis durch die vor­an­ge­gan­ge­nen Maßnahmen schon deut­lich ver­bes­sert wurde, gibt es doch noch ein paar Phänomene bzgl. der Ergebnisanzeige, die unvor­teil­haft ins Auge fal­len:

SharePoint-Suche (File Share): Herausforderungen

  • Der Titel der Dokumente ist oft­mals leer. Hier wäre ein akzep­ta­bler Workaround, wenn in die­sem Fall der Dateiname ange­zeigt würde.
  • Der voll­stän­dige Pfad zum Speicherort ist nicht sicht­bar, da die­ser auto­ma­tisch ein­ge­kürzt wird. Das ist prin­zi­pi­ell ok, aber ins­be­son­dere wird dadurch in der Regel der Hauptordner (Kategorie) nicht ange­zeigt.
  • Zum Schluss noch ein Wunsch: Es wäre schön, wenn ana­log zum Windows Explorer die Dateigröße im Tooltipp ange­zeigt würde.

Lösungsansatz

Die Antwort auf alle oben auf­ge­führ­ten Anforderungen sind Ergebnistypen (Result Types) und benut­zer­de­fi­nierte Anzeigevorlagen (Display Templates) für die Ergebnisanzeige (bzw. beim 3. Punkt für das Hover Panel der Ergebnisanzeige).

Umsetzung

Dateiname (Titel) und Hauptordner (Kategorie) anzeigen

Eine gut ver­ständ­li­che TechNet-Anleitung dazu fin­den wir unter Anpassen von Suchergebnistypen in SharePoint 2013. Folgende Schritte sind durch­zu­füh­ren:

  1. Erstellung eines benut­zer­de­fi­nier­ten Display Templates
  2. Erstellen eines Ergebnistypes (Result Types), der das benut­zer­de­fi­nierte Display Template ver­wen­det

Erstellung eines benutzerdefinierten Display Templates

Die Display Templates für die Ergebnisanzeige fin­den wir unter > Site Settings > Master Page Gallery > Display Templates > Search, das Standard-Template ist “Item_Default.html”. Zu jeder HTML-Datei gibt es eine pas­sende Javascript-Datei. Diese wird auto­ma­tisch erstellt, wenn eine neue HTML-Datei hoch­ge­la­den wird.

Da wir nicht das ori­gi­nale Standard-Template anpas­sen wol­len, laden wir zuerst eine Kopie her­un­ter:

SharePoint-Suche: Display Template herunterladen

Die Kopie habe ich “Item_Default_Fileshare.html” benannt. Diese kön­nen wir nun z.B. in einem Text-Editor bear­bei­ten. Es gibt fol­gende Stellen, die anzu­pas­sen sind:

  1. Titel des Display Templates: ich habe “Default Item Fileshare” ver­wen­det
  2. ana­log die Id des Display Templates
  3. Logik für das Ermitteln von Hauptordner (Kategorie) und Dateiname:
    var folders = ctx.CurrentItem.Path.split("/");
    var mainFolder = decodeURI((folders.length > 5 ? folders[4] : "n/a"));
    var fileName = folders[folders.length-1];
  4. Titel mit dem Dateinamen aktua­li­sie­ren (um die Ausgabe müs­sen wir uns nicht küm­mern, da der Titel bereits stan­dard­mä­ßig aus­ge­ge­ben wird):
    ctx.CurrentItem.Title = fileName;
  5. Kategorie aus­ge­ben:
    Kategorie: _#=mainFolder=#_

SharePoint-Suche: Display Template bearbeiten (1) SharePoint-Suche: Display Template bearbeiten (2)

Achtung, Stolperfalle! Wenn wir das Display Template anpas­sen wie oben beschrie­ben, wer­den wir spä­ter beim Begutachten des Resultats fest­stel­len, dass danach unsere Ergebnisanzeige zwar die gewünsch­ten Anpassungen ent­hält, aber dafür kei­ner­lei Icons mehr (außer für Ordner). Das liegt daran, dass die Icons nicht im (von uns kopier­ten) Default Item Template ent­hal­ten sind, son­dern in den dedi­zier­ten Templates für die ein­zel­nen Ergebnistypen. Wir müs­sen noch fol­gen­den Code zu unse­rem Display Template hin­zu­fü­gen, damit die Icons ange­zeigt wer­den:

if (!ctx.CurrentItem.IsContainer) {
ctx.CurrentItem.csr_Icon = Srch.U.getIconUrlByFileExtension(ctx.CurrentItem);
}

Analog zum bereits beschrie­be­nen Vorgehen für Refiner Display Templates müs­sen wir das ange­passte Display Template nun wie­der in die Master Page Gallery hoch­la­den sowie ggf. ein­che­cken und ver­öf­fent­li­chen.

Erstellung eines Result Types

Die Verwaltung der Result Types fin­den wir in den Website-Einstellungen des Such-Centers. Beim Anlegen eines neuen Result Types müs­sen wir außer einer Bezeichnung die Elemente defi­nie­ren, für die der Result Type ange­wen­det wer­den soll (in unse­rem Fall jene aus der Quelle "Fileshare") sowie das Display Template, wel­ches der Result Type für die Darstellung ver­wen­den soll:

SharePoint-Suche: Result Type erstellen

Fertig 🙂 . Das Resultat zeige ich noch gebün­delt mit dem nächs­ten Schritt am Ende des Blogbeitrages.

Dateigröße im Hover Panel anzeigen

Für das Hover Panel gibt es ein sepa­ra­tes Display Template, wel­ches wir wie­derum als Kopiervorlage nut­zen, in die­sem Fall “Item_Default_HoverPanel.html” – die Kopie habe ich umbe­nannt in “Item_Default_Fileshare_HoverPanel.html”.

Die anzu­pas­sen­den Code-Stellen sind ähn­lich wie beim im ers­ten Schritt ange­pass­ten Display Template, mit nach­ste­hen­den Besonderheiten:

  • Für die umzu­set­zende Anforderung benö­ti­gen wir eine Managed Property ("Size"), die noch nicht im Display Template ent­hal­ten ist und die des­halb expli­zit hin­zu­ge­fügt wer­den muss.
  • Wenn ein neues Display Template für ein Hover Panel erstellt wird, so muss im Display Template für den ent­spre­chen­den Result Type die Url zum Hover Template ange­passt wer­den.

Folgende Anpassungen habe ich bei “Item_Default_Fileshare_HoverPanel.html” vor­ge­nom­men:

  1. Titel des Display Templates: ich habe “Default Fileshare Hover Panel” ver­wen­det, ana­log die Id des Hover Panels
  2. Managed Property "Size" zum Template hin­zu­fü­gen
  3. Dateigröße ermit­teln
  4. Dateigröße aus­ge­ben

SharePoint-Suche: Display Template für Hover Panel bearbeiten (1)SharePoint-Suche: Display Template für Hover Panel bearbeiten (2)

Anpassung der Url des Hover Panels in “Item_Default_Fileshare.html”:

SharePoint-Suche: Display Template bearbeiten (Hover Panel)

Die bei­den Display Templates müs­sen nun wie­der in die Master Page Gallery hoch­ge­la­den sowie ggf. ein­checkt und ver­öf­fent­licht wer­den.

Achtung, Stolperfalle! Wenn wir die Schritte wie oben beschrie­ben durch­füh­ren, wer­den wir fest­stel­len, dass die Dateigröße ent­ge­gen unse­rer Erwartung nicht ange­zeigt wird. Das liegt daran, dass unser Result Type "Fileshare" die neu zum Template gemappte Managed Property "Size" noch nicht ent­hält. Um dies nach­zu­ho­len, müs­sen wir nur zur Verwaltung der Result Types wech­seln und in der dort ange­zeig­ten Warnung auf "Update" kli­cken, denn prak­ti­scher­weise stellt SharePoint diese Diskrepanz von selbst fest und bie­tet uns deren Behebung an:

SharePoint-Suche: Update Result Types

Ergebnis

Abschließend kön­nen wir das Resultat unse­rer Anpassungen bewun­dern – alle ein­gangs defi­nier­ten Anforderungen sind umge­setzt:

SharePoint-Suche: Ergebnisanzeige mit Display Templates

 

Fazit

Am Ende mei­ner klei­nen Blogserie "SharePoint-Suche: Integration von File Shares auf­ge­peppt" fasse ich die erziel­ten Verbesserungen noch­mals kurz zusam­men:

  • Die Ergebnisse aus dem SharePoint selbst und aus dem File Share wer­den im Suchergebnis im Reiter "Alle Ergebnisse (Everything)" in bun­ter Mischung ange­zeigt. (Das ist aller­dings nicht unser Verdienst, son­dern SharePoint Standard 😉 )
  •  Wenn der Anwender schon weiß, dass eine Datei auf dem File Share liegt und er des­halb auch nur dort suchen möchte, kann er dies im zusätz­li­chen Reiter "Fileshare" tun.
  • Zusätzlich ermög­licht im Reiter "Alle Ergebnisse (Everything)" ein Refiner nach Herkunft (Inhaltsquelle), die Suchergebnisse auch hori­zon­tal ein­zu­schrän­ken nach Treffern aus dem File Share oder aus SharePoint.
  • Für den Reiter "Fileshare" wur­den zwei zusätz­li­che Refiner nach Typ (Datei oder Ordner) sowie nach Kategorie (Hauptordner) erstellt. Hierdurch ist eine Filterung der FileShare-Suchergebnisse nach Dateien oder Ordnern bzw. nach den ein­zel­nen Kategorien mög­lich.
  • Pro Suchergebnis-Treffer für ein Fileshare-Dokument:
    • Für Dokumente, deren Titel nicht gepflegt ist, wird anstelle eines lee­ren Titels der Dateiname dar­ge­stellt.
    • Es wird zusätz­lich der Hauptordner (Kategorie) ange­zeigt.
    • Im Tooltipp (Hover Panel) wird ana­log zum Windows Explorer die Dateigröße ange­zeigt.

Abschließend gibt es hier noch ein­mal alle Beiträge der Serie zusam­men­ge­fasst:

Sie wol­len gleich mit der Integration von File Shares anfan­gen?

>> Hier gelan­gen Sie zu den SharePoint-Lizenzen <<

Related Posts

Pin It on Pinterest