Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core für Entwickler > Konfigurationen zum agorum core explorer
Das Widget agorum.explorer steuert, wie Ordner und Dateien angezeigt werden, wenn Sie im Navigationsbaum im Explorer einen Ordner auswählen. Mithilfe des Widgets können Sie etwa festlegen,
Wenn Sie den Explorer ohne weitere Einstellungen aufrufen, werden alle vorhandenen Wurzelordner angezeigt.
Sie verwenden das Widget agorum.explorer wie folgt, um zu steuern, welche Ordner angezeigt werden:
let aguila = require('common/aguila');
let widget = aguila.create({
type: 'agorum.explorer',
// --- Properties
// UUID des geöffneten Ordners (wird konvertiert, wenn nötig)
id: '/agorum/roi/Files/Demo/Projekte',
roots: ['/agorum/roi/Files/Demo'],
});
widget;
Die Property roots dient dazu, einen oder mehrere Ordner anzugeben, die in der Navigation als Wurzelordner angezeigt werden. Die id steuert, welcher Ordnerinhalt angezeigt wird. In diesem Beispiel ist der Wurzelordner für die Navigation der Ordner Demo, im Detailfenster werden die Inhalte aus dem Unterordner Projekte angezeigt. Alternativ können Sie auch mit config einen smart assistant konfigurator-Einsprungspunkt als Wurzelordner festlegen.
Mit der Funktion expand() können Sie einen Ordner angeben, bis zu dem die Ordnerstruktur aufgeklappt dargestellt werden soll.
let aguila = require('common/aguila');
let objects = require('common/objects');
let target = objects.find('ee7574f0-62f5-11f0-a328-00007f000101');
let widget = aguila.create({
type: 'agorum.explorer',
roots: ['home:MyFiles'],
});
widget.id = target.UUID;
widget.expand(target.UUID);
widget;
Sie können angeben, welche Ansicht geöffnet werden soll. Zudem können Sie einen bestimmten Suchfilter für die Anzeige in der Suchansicht verwenden.
let aguila = require('common/aguila');
let objects = require('common/objects');
let target = objects.find('24c0cec0-6c6f-11ef-b01a-00007f000101');
let widget = aguila.create({
type: 'agorum.explorer',
roots: ['714f1580-ce62-11e0-b47a-0800276e2399'],
view: {
type: 'search',
parameters: {
settingName: 'inbox-all',
},
},
});
widget.id = target.UUID;
widget.expand(target.UUID);
widget;
Sie können den Explorer-Aufruf durch folgende Eigenschaften anpassen. Diese Eigenschaften können nachträglich durch den Benutzer geändert werden.
| Eigenschaft | Beschreibung | Mögliche Werte |
|---|---|---|
| id | Gibt den Ordner an, dessen Inhalt angezeigt wird. Die Angabe ist optional. | Pfad oder ID des Ordners |
| roots | Gibt einen oder mehrere Ordner an, die als Wurzelordner im Navigationsbaum angezeigt werden. Die Angabe ist optional. | Array von Ordnerangaben (Pfade oder IDs der Ordner) roots: ['/agorum/roi/Files/Demo', '/agorum/roi/Files/DemoWorkflows'], |
| sort | Initiale Sortierung der Objekte in der Anzeigeliste. Der Benutzer kann die Sortierung verändern. Sie können mehrere Sortierkriterien angeben, die in absteigender Reihenfolge angewendet werden. Die Angabe ist optional. | Array von Sortierangaben bestehend aus dem Sortierkriterium und der Sortierreihenfolge sort: [
{
property: 'name',
descending: true,
},
], |
| view | Definiert optional Kriterien für die Anzeige der Ordnerdetails über Suchkritieren. | Die Suchkriterien werden für baseQuery angegeben. Mit dem settingName können Sie kontrollieren, welcher Filter in der Suche aktiv ist. Dabei bezieht sich settingName auf den internen Namen aus der Konfiguration (z. B. 'inbox-current' für Eingang (aktuell)). view: {
type: 'search',
// zusätzlich immer eingeschränkt über inpath_uuid:<id>
baseQuery: 'isfolder:false',
parameters: {
settingName: 'inbox-all',
},
}, |
| displayName | Anzeigename des Ordners | - (nur lesbar) |
| pageSize | Legt die Anzahl der Objekte fest, die pro Seite in der Listenansicht angezeigt werden. Der Standardwert beträgt 50 Objekte pro Seite. Diese Einstellung kann vom Benutzer nachträglich geändert werden und wird in den Benutzereinstellungen gespeichert. | Ganzzahl, Standardwert: 50 pageSize: 100, |
| selection | Informationen zu den Selektionskriterien. | - (nur lesbar) |
Zusätzlich können Sie folgende Parameter angeben, die nachträglich nicht geändert werden können.
| Parameter | Beschreibung | Mögliche Werte |
|---|---|---|
| config | Verweist auf einen smart assistant konfigurator-Einsprungspunkt. | Name des Einsprungspunkts wie in smart assistant konfigurator definiert |
| initiallyVisibleDepth | Definiert die Anzahl der Ordnerebenen, die im Navigationsbaum angezeigt werden.
Hinweis: Die Einstellung sollte nur nach sorgfältiger Prüfung auf 1 oder höher gesetzt werden. Abhängig von der Zahl der enthaltenen Objekte kann es zu Performance-Einbußen kommen. |
Ganzzahl, Standardwert: 0 |
| noHistory | Gibt an, dass die Benutzerhistorie nicht beim Öffnen der Ansicht berücksichtigt werden soll. | Boolescher Wert, Standardwert: false |
| showDetails | Legt fest, dass das Detailfenster zusätzlich zum Ordnerinhalt angezeigt wird. | Boolescher Wert, Standardwert: false |
Die Funktion expand() dient dazu, den Ordnerbaum automatisch von roots aus bis zum angegebenen Ordner aufzuklappen. Sie erwartet entweder eine komplette Pfad-ID (<uuid1>|<uuid2>|…) oder eine einzelne Ordner-ID, zu der der kürzeste sichtbare Pfad automatisch ermittelt wird. Die Funktion wird typischerweise kombiniert mit dem id-Attribut verwendet, das auf denselben Wert gesetzt wird, damit der geöffnete Ordner direkt selektiert ist und ggf. automatisch dorthin gescrollt wird.
widget.id = target.UUID; widget.expand(target.UUID);
Die Funktion itemOverride wird verwendet, um eine oder mehrere Callback-Funktionen zu registrieren, die auf die angezeigten Objekte angewendet werden. So können Sie mit itemOverride die Darstellung der Objekte basierend auf Ihrer spezifischen Logik oder dem Anwendungskontext anpassen. Sie könnten etwa Objekte mit verschiedenfarbigem Hintergrund darstellen, abhängig davon, ob der Benutzer Lese- oder Schreibzugriff auf ein Objekt hat.
widget.itemOverride(item => {
item.cls += ' custom-class'; // adds a custom CSS class to all objects
});
In diesem Beispiel wird jede Strukturanzeige um die CSS-Klasse custom-class erweitert. Für Informationen, wie Sie die Styles ergänzen können, siehe Styles von agorum core. anpassen.
Die Funktion menuOverride wird verwendet, um Kontextmenüs anzupassen oder zu erweitern. Sie können damit zusätzliche Menüeinträge hinzufügen und bestehende Menüeinträge ändern oder entfernen. Die Funktion wird auf die Kontextmenüs sowohl im Navigationsbaum als auch in der Listenansicht angewendet.
Die Callback-Funktion erhält ein Array von Menüeinträgen, das Sie nach Bedarf anpassen können.
Jeder Menüeintrag hat Eigenschaften wie text (Anzeigetext), icon (Symbol), action (Funktion, die beim Klick ausgeführt wird) und weitere.
widget.menuOverride(items => {
// Adds a new menu entry
items.push({
text: 'Eigene Aktion',
icon: 'aguila-icon sentiment_satisfied',
action: () => {
console.log('Eigene Aktion wurde ausgeführt');
},
});
return items;
});
Events, die Sie zum Widget senden können.
Aktualisiert das Widget.
Beispiel
widget.fire('refresh');
Das folgende Beispiel zeigt, wie das Widget in zwei aufeinanderfolgenden Phasen aktualisiert werden kann. Nach einer Sekunde ändert sich der Zustand des Widgets auf 'refresh-1', und nach zwei Sekunden auf 'refresh-2'. Bei jeder dieser Aktualisierungen wird eine spezielle CSS-Klasse zu den Elementen des Widgets hinzugefügt, die den aktuellen Zustand widerspiegelt.
let aguila = require('common/aguila');
let widget = aguila.create({
type: 'agorum.explorer',
roots: [9999],
});
let stage = 'initial';
widget.itemOverride(item => {
item.cls += ' test-' + stage;
console.log('itemOverride', item);
});
widget.setTimeout(() => {
stage = 'refresh-1';
widget.fire('refresh');
}, 1000);
widget.setTimeout(() => {
stage = 'refresh-2';
widget.fire('refresh');
}, 2000);
widget;
Sie können durch Angabe von showDetails steuern, dass das Detailfenster angezeigt wird.
let aguila = require('common/aguila');
let widget = aguila.create({
type: 'agorum.explorer',
// --- Properties
// UUID des geöffneten Ordners (wird konvertiert, wenn nötig)
id: '/agorum/roi/Files/Demo',
roots: ['/agorum/roi/Files'],
// --- Parameter
showDetails: true,
});
widget;
Sie können die Anzeige der Ordnerdetails anpassen, indem Sie die Suche anpassen. In diesem Beispiel werden Ordner nicht in den Ordnerdetails angezeigt, sondern nur die beiden vorhandenen Dateien:
let aguila = require('common/aguila');
let widget = aguila.create({
type: 'agorum.explorer',
// --- Properties
// UUID des geöffneten Ordners (wird konvertiert, wenn nötig)
id: '/agorum/roi/Files/Demo',
roots: ['/agorum/roi/Files'],
view: {
type: 'search',
// zusätzlich immer eingeschränkt über inpath_uuid:<id>
baseQuery: 'isfolder:false',
}
});
widget;
Das Widget agorum.explorer kann in einer Form verwendet werden, etwa wie folgt:
let aguila = require('common/aguila');
let form = aguila.create({
type: 'agorum.border',
width: 600,
height: 400,
docked: {
top: {
type: 'agorum.toolBar',
items: [
{
type: 'agorum.button',
text: '',
},
],
},
bottom: {
type: 'agorum.toolBar',
items: [
{
type: 'agorum.button',
text: '',
},
],
},
left: {
type: 'agorum.toolBar',
items: [
{
type: 'agorum.button',
text: '',
},
],
},
right: {
type: 'agorum.toolBar',
items: [
{
type: 'agorum.button',
text: '',
},
],
},
center: {
type: 'agorum.explorer',
name: 'explorer',
showDetails: true,
},
},
});
form.down('explorer').roots = ['/agorum/roi/Files/Demo'];
form;
Sie können die Anzahl der Objekte festlegen, die pro Seite angezeigt werden. Dies ist besonders nützlich, wenn Sie viele Objekte haben und die Ladezeiten optimieren oder wenn Sie mehr Objekte auf einmal sehen möchten.
let aguila = require('common/aguila');
let widget = aguila.create({
type: 'agorum.explorer',
// --- Properties
id: '/agorum/roi/Files/Demo',
roots: ['/agorum/roi/Files'],
// displays 10 objects per page (instead of the default 50)
pageSize: 10,
});
widget;
Hinweis: Die Einstellung wird in den Benutzereinstellungen gespeichert. Ändert der Benutzer die Seitengröße über die Oberfläche, wird dieser Wert für zukünftige Aufrufe verwendet.
Mit der Funktion menuOverride können Sie eigene Menüeinträge zum Kontextmenü hinzufügen. Dies ist nützlich, um anwendungsspezifische Aktionen bereitzustellen.
let aguila = require('common/aguila');
let objects = require('common/objects');
let widget = aguila.create({
type: 'agorum.explorer',
id: '/agorum/roi/Files/Demo',
roots: ['/agorum/roi/Files'],
});
// Adds a custom context menu entry
widget.menuOverride((items, objects, parent) => {
items.push({
// Shows the menu item as inactive (true/false)
disabled: false,
// The handler that is called when the menu item is clicked
handler: () => {
let names = '';
let parentName = '';
if (objects) names = objects.map(item => item.name).join(', ');
if (parent) parentName = parent.name;
console.log('The following menu item was clicked: Objects: ' + names + ', Parent: ' + parentName);
},
// Icon for the menu entry
icon: 'aguila-icon sentiment_satisfied',
// Unique name for the menu entry
name: 'my-menu-entry-1',
// The text of the menu entry
text: 'My new menu entry',
});
return items;
});
widget;
Hinweis: Die Menüanpassung wird sowohl im Navigationsbaum als auch in der Listenansicht angewendet.