Zum Hauptinhalt springen

Gagdget FileSearch Outbar

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

Screenshot

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");
}