Gagdget FileSearch Outbar
Dieses Skript enthält Callbacks für den Mappentyp eFile .

tipp
Zum Aktivieren der Callbacks muss das Skript ou.tmpl.eFiles.callbacks.GadgetOutbarFileSearch in ou.cust.eFiles.callbacks.GadgetOutbarFileSearch umbenannt werden.
Verwendung
Für was kann ich diese Callbacks verwenden?
- Standard-Gadget Konfiguration beeinflussen
- Archiv (EEx oder EAS) in die Schnellsuche anbinden
- Die Standard-Such-Logik überschreiben / aussetzen
- Anpassungen am öffentlichen Such-Ordner setzen
Welche Callbacks sind definiert?
getSettings: Konfiguration des Gadgets können hier beeinflusst werden.beforeSearch: Standard-Such-Logik überschreiben.afterSearch: Anpassungen am öffentlichen Such-Ordner setzen
Callbacks
getSettings
In diesem Callback können die Einstellungen für das Gadget überschrieben werden.
getSettings(settings: {
/**
* (Optional) Portalskript / Clientskript, welches ausgelöst wird, wenn die Suche beginnt
*/
searchScript?: string | ((params: FileSearchCallbackSearchOptions) => TableDialogOptions | void);
searchScriptFallback?: string;
/**
* (Optional) Portalskript / Clientskript, welches ausgelöst wird, wenn der User eine Zeile ausgewählt hat
*/
callbackScript?: string | ((selectedRow: any) => void);
/**
* (Optional) Eine eindeutige Id für das Gadget
*/
id?: string;
/**
* (Optional) Aktiviert den Kachelmodus. Das Gadget wird mit Rahmen und Überschrift angezeigt.
* @default false
*/
tile?: boolean;
/**
* (Optional) Überschrift, wenn im Kachelmodus
* @default "Wo ist mein Beleg?"
*/
title?: string;
/**
* (Optional) Platzhalter in Eingabemaskse
* @default "Wo ist mein Beleg?"
*/
placeholder?: string;
/**
* (Optional) Icon neben Eingabemaske
* @default "entypo search"
*/
iconClass?: string;
/**
* (Optional) Such-Schaltfläche anzeigen?
* @default false
*/
showButton?: boolean;
/**
* (Optional) Leeren-Schaltfläche anzeigen?
* @default false
*/
showClearButton?: boolean;
/**
* (Optional) Leeren-Schaltfläche Anzeigetext
* @default "Leeren"
*/
clearButtonText?: string;
/**
* (Optional) Leeren-Schaltfläche Callback
* @default null
*/
clearButtonScript?: string | ((options: FileSearchOptions) => void);
/**
* (Optional) One Unity Logo einblenden?
* @default true
*/
brand?: boolean;
/**
* (Optional) Such-Schaltfläche Anzeigetext
* @default "Suchen"
*/
searchButtonText?: string;
/**
* (Optional) Suchfelder
*/
searchFields?: FileSearchFieldOption[] | string[];
/**
* (Optional) Mappentypen
*/
fileTypes?: string[];
/**
* (Optional) EEx Views
*/
archiveViews?: string[];
/**
* (Optional) Filter für Erstelldatum, Anzahl Tage rückwirkend
*/
maxPastDays?: number;
/**
* (Optional) Vordefinierte Sucheingabe
*/
searchValue?: string;
/**
* (Optional) Zusätzliche Eingabemöglichkeiten
*/
params?: {
[key: string]: CustomSearchOptionsParam;
};
}): void;
Beispiel ein EEx Archiv anbinden:
getSettings: function(settings) {
settings.archiveViews = ["Unit=Default/Instance=Default/View=eFile"];
}
beforeSearch
In diesem Callback kann die Standard-Such-Logik überschrieben werden.
beforeSearch: (data: { params: FileSearchCallbackSearchOptions; filter: string }): false | void;
tipp
Gibt man false zurück, so wird die Standard-Logik umgegangen und nicht ausgeführt.
Beispiel Standard-Logik über return false aussetzen und eigene Suche ausführen.
beforeSearch: function(data) {
var deleteExistingFolder = context.getFoldersByName(FileSearch.folderName + "-" + data.params.id).first();
if (deleteExistingFolder && !deleteExistingFolder.deleteFolder()) {
throw new Error("Konnte den temporären Ordner nicht löschen");
}
context.returnValue = FileSearch.showSearchFolder({
gadgetId: data.params.id,
title: data.params.title,
filter: data.filter,
fileTypes: data.params.fileTypes,
archiveViews: data.params.archiveViews,
});
// Standard Logik aussetzen
return false;
}
afterSearch
Dieser Callback wird ausgeführt, wenn der öffentliche Such-Ordner erstellt wurde.
afterSearch: (folder: Folder): void;
afterSearch: function(folder) {
// Am neuem Ordner Attribute setzen
folder.setAttribute("DefaultStandardSortField", "CustomField");
folder.setAttribute("DefaultCustomSortField", "myField1");
}