datastore
Description
Eine Sammlung von datastore-Methoden
datastore: DatastoreMethods
Details
Hinweis, dass Tasks und Links über die gemeinsame API von Gantt geändert werden sollten. Das Ändern von Tasks oder Links direkt im datastore kann zu unerwarteten Ergebnissen führen. Datastores sollten für Ressourcen oder andere benutzerdefinierte Objekte verwendet werden.
Eine neue Datastore kann mithilfe der Methode createDatastore erstellt werden. Das datastore-Objekt besitzt die folgenden Methoden und Events:
Methoden
parse (data): void
Lädt Daten aus einem Array
Parametere:
data- (Array<object>) - die zu ladenden Daten
Beispiel:
gantt.$resourcesStore.parse([
{ id: 1, text: "QA", parent: null },
{ id: 2, text: "Development", parent: null },
{ id: 3, text: "Sales", parent: null },
{ id: 4, text: "Other", parent: null },
{ id: 5, text: "Unassigned", parent: 4 },
{ id: 6, text: "John", parent: 1 },
{ id: 7, text: "Mike", parent: 2 },
{ id: 8, text: "Anna", parent: 2 },
{ id: 9, text: "Bill", parent: 3 },
{ id: 10, text: "Floe", parent: 3 }
]);
sample Ressourcen-Lade-Diagramm
Der Zwilling von datastore.parse() ist gantt.parse().
Ruft die Events onBeforeParse , onItemLoading, onParse, und onStoreUpdated auf.
getItem (id)
Gibt den Eintrag anhand seiner id zurück
Parameter:
id- (string | number) - die ID des Elements
Rückgabe: Objekt | void - das Element-Objekt
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const resource = store.getItem(resourceId);
sample Ressourcen-Lade-Diagramm
Die Zwillinge von datastore.getItem() sind gantt.getTask() und gantt.getLink().
updateItem (id, item)
Aktualisiert den angegebenen Eintrag
Parametere:
id- (string | number) - die ID des Elementsitem- (object) - das Objekt des Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const resource = store.getItem(resourceId);
resource.text = "modified";
store.updateItem(resourceId);
// oder
store.updateItem(resourceId, { text: "modified" });
Die Zwillinge von datastore.updateItem() sind gantt.updateTask() und gantt.updateLink().
Ruft die Events onBeforeUpdate, onAfterUpdate und onStoreUpdated auf.
removeItem (id)
Löscht den angegebenen Eintrag
Parametere:
id- (string | number) - die ID des Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.removeItem(resourceId);
Die Zwillinge von datastore.removeItem() sind gantt.deleteTask() und gantt.deleteLink().
Ruft die Events onBeforeDelete, onAfterDelete und onStoreUpdated auf.
isVisible (id)
Prüft, ob der angegebene Eintrag sichtbar ist oder durch Filter verborgen wurde
Parametere:
id- (string | number) - die ID des Elements
Rückgabe: boolean - true, wenn sichtbar, andernfalls false
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
if(store.isVisible(resourceId)){
console.log(resourceId);
}
Die Zwillinge von datastore.isVisible() sind gantt.isTaskVisible().
getVisibleItems ()
Gibt das Array der sichtbaren Einträge zurück
Rückgabe: Array<object> - Array der sichtbaren Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const items = store.getVisibleItems();
addItem (item, index)
Fügt der datastore einen neuen Eintrag hinzu
Parametere:
item- (object) - das Item-Objektindex- (number) - die Position, an der das Item eingefügt wird (0 oder größer)
Rückgabe: number | string - die ID des Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const itemId = store.addItem({
text: "Unassigned",
parent:4
});
Die Zwillinge von datastore.addItem() sind gantt.addTask() und gantt.addLink().
Ruft die Events onBeforeAdd, onAfterAdd und onStoreUpdated auf.
changeId (oldId, newId)
Ändert die ID des Elements
Parametere:
oldId- (string | number) - die aktuelle ID des ElementsnewId- (string | number) - die neue ID des Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const itemId = store.addItem({
text: "Unassigned",
parent:4
});
// itemId - temporäre Client-seitige ID des neuen Elements
// sobald das Item in der Datenbank gespeichert ist - aktualisieren Sie den Client mit der neuen ID:
store.changeId(itemId, "databaseId");
Die Zwillinge von datastore.changeId() sind gantt.changeTaskId() und gantt.changeLinkId().
Ruft das Event onIdChange auf.
exists (id)
Prüft, ob das angegebene Element im datastore existiert
Parametere:
id- (string | number) - die ID des Elements
Rückgabe: boolean - true, wenn vorhanden, sonst false
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
if(store.exists(resourceId)){
console.log(resourceId);
}
Die Zwillinge von datastore.exists() sind gantt.isTaskExists() und gantt.isLinkExists().
move (sindex, tindex)
Verschiebt ein Item an eine neue Position
Parametere:
sindex- (number) - der Index der aktuellen Position der Aufgabetindex- (number) - der Index der Position, in die das Element verschoben wird
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
// vertausche zwei Items
const idA = 1;
const idB = 5;
const indexA = store.getIndexById(idA);
const indexB = store.getIndexById(idB);
store.move(indexB, indexA);
indexA = store.getIndexById(idA);
store.move(indexA, indexB);
Der Zwilling von datastore.move() ist gantt.moveTask().
Ruft das Event onStoreUpdated auf.
clearAll ()
Löscht die datastore
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.clearAll();
Der Zwilling von datastore.clearAll() ist gantt.clearAll().
Ruft die Events onClearAll, onBeforeStoreUpdate und onStoreUpdated auf.
silent (callback)
Führt den Code aus, ohne API-Ereignisse des datastore auszulösen
Parametere:
callback- (Function) - die Callback-Funktion
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.silent(function(){
store.eachItem(function(item){
item.text += " modified";
store.updateItem(item.id);
});
});
store.refresh();
Der Zwilling von datastore.silent() ist gantt.silent().
refresh (id)
Löst das Neuteuern der Ereignisse des angegebenen Datensatzes aus und führt Filter aus
Parametere:
id- (string | number) - optional, die ID des Datensatzes
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.refresh(itemId); // malt ein Item neu
store.refresh(); // malt alle Items neu
Die Zwillinge von datastore.refresh() sind gantt.refreshTask() und gantt.refreshLink().
Ruft die Events onBeforeStoreUpdate, onBeforeFilter, onFilterItem, onFilter und onStoreUpdated auf.
count ()
Gibt die Anzahl der aktuell in den datastore geladenen Items zurück
Rückgabe: number - Anzahl der Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onParse", function(){
alert(store.count() + " items loaded");
});
Die Zwillinge von datastore.count() sind gantt.getTaskCount() und gantt.getLinkCount().
countVisible ()
Gibt die Anzahl der aktuell sichtbaren Items zurück
Rückgabe: number - Anzahl der sichtbaren Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
alert(store.countVisible() + " items are visible");
Die Zwilling von datastore.countVisible() ist gantt.getVisibleTaskCount().
eachItem (callback)
Iteriert über alle Items des datastore
Parametere:
callback- (Function) - Die Callback-Funktion
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
let searchItems = [];
store.eachItem(function(item){
if(!item.value){
searchItems.push(item);
}
});
Die Zwilling von datastore.eachItem() ist gantt.eachTask().
filter ()
Führt die Filter aus und aktualisiert das sichtbare Array der Items
Normalerweise müssen Sie diese Methode nicht aufrufen, sie wird automatisch von der store.refresh() Methode aufgerufen.
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.filter();
sort (field, desc, parent, silent)
Sortiert Items im Ressourcen-Gitter
Parametere:
field- (string | Function) - der Name der Spalte oder eine benutzerdefinierte Sortierfunktiondesc- (boolean) - gibt die Sortierreihenfolge an: true - absteigend, false - aufsteigendparent- (string | number) - die ID des übergeordneten Elementssilent- (boolean) - gibt an, ob nach dem Neuanordnen das Rendering ausgelöst werden soll
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.parse([
{ id: 1, text: "QA", parent: null },
{ id: 2, text: "Development", parent: null },
{ id: 3, text: "Sales", parent: null },
{ id: 4, text: "Other", parent: null },
{ id: 5, text: "Unassigned", parent: 4 },
{ id: 6, text: "John", parent: 1 },
{ id: 7, text: "Mike", parent: 2 },
{ id: 8, text: "Anna", parent: 2 },
{ id: 9, text: "Bill", parent: 3 },
{ id: 10, text: "Floe", parent: 3 }
]);
// sortiere das Ressourcen-Gitter nach der Spalte
let resourceSortDirection = false;
function sortResources(){
resourceSortDirection = !resourceSortDirection;
gantt.getDatastore("resource").sort("text", resourceSortDirection)
gantt.render();
}
oder Sie können eine benutzerdefinierte Funktion zum Sortieren verwenden:
let resourceSortDirection = false;
function sortResources(){
resourceSortDirection = !resourceSortDirection;
gantt.getDatastore("resource").sort(function (resource1, resource2){
return resource1.id - resource2.id;
}, resourceSortDirection)
gantt.render();
}
Der Zwilling von datastore.sort() ist gantt.sort().
getIndexRange (from, to)
Gibt Datensätze zwischen den angegebenen Indizes zurück
Parametere:
from- (number) - die Startpositionto- (number) - die Endposition
Rückgabe: Array<object> - Array der Elemente
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const itemsInViewPort = store.getIndexRange(5, 10);// holt Items von 5. bis 10. Position
getItems ()
Gibt alle Einträge des datastore zurück
Rückgabe: Array<object> - Array aller Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const items = store.getItems();
Die Zwillinge von datastore.getItems() sind gantt.getTaskByTime() und gantt.getLinks().
getIdByIndex (index)
Gibt die ID des Elements anhand seines Index zurück
Parametere:
index- (number) - die Position des Elements
Rückgabe: string | number | void - Item-ID oder undefined
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const firstItem = store.getIdByIndex(0);
Der Zwilling von datastore.getIdByIndex() ist gantt.getTaskByIndex().
getIndexById (id)
Gibt den Index des Elements anhand seiner ID zurück
Parametere:
id- (string | number) - die ID des Elements
Rückgabe: number - Element-Index oder -1, wenn nicht gefunden
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const itemIndex = store.getIndexById(5);
Der Zwilling von datastore.getIndexById() ist gantt.getTaskIndex().
getFirst ()
Gibt die ID des ersten Elements des datastore zurück
Rückgabe: string | number | null - ID des ersten Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const firstId = store.getFirst();
getLast ()
Gibt die ID des letzten Elements des datastore zurück
Rückgabe: string | number | null - ID des letzten Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const lastId = store.getLast();
getNext (id)
Gibt die ID des nächsten Elements des datastore zurück
Parametere:
id- (string | number) - die ID des Elements
Rückgabe: string | number | null - ID des nächsten Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const firstId = store.getFirst();
const secondId = store.getNext(firstId);
Der Zwilling von datastore.getNext() ist gantt.getNext().
getPrev (id)
Gibt die ID des vorherigen Elements des datastore zurück
Parametere:
id- (string | number) - die ID des Elements
Rückgabe: string | number | null - ID des vorherigen Elements
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const prevId = store.getPrev(itemId);
Der Zwilling von datastore.getPrev() ist gantt.getPrev().
destructor ()
Löscht den datastore und entfernt alle angehängten Event-Handler
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.destructor();
Der Zwilling von datastore.destructor() ist gantt.destructor().
attachEvent (name, handler, settings)
Befestigt den Handler an einem internen Event des DataStore
Parametere:
name- (string) - der Name des Events, case-insensitivehandler- (Function) - die Handler-Funktionsettings- (object) - optional, ein Objekt mit Einstellungen für den Event-Handler
Rückgabe: string - Event-ID
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterSelect", function(id){
gantt.refreshData();
});
Der Zwilling von datastore.attachEvent() ist gantt.attachEvent().
callEvent (name, params)
Ruft ein internes Event auf
Parametere:
name- (string) - der Name des Events, case-insensitiveparams- (Array<any>) - ein Array der Event-bezogenen Daten
Rückgabe: boolean - true, wenn das Event erfolgreich abgeschlossen wurde
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.callEvent("CustomEvent", [param1, param2]);
Der Zwilling von datastore.callEvent() ist gantt.callEvent().
detachEvent (id)
Löst einen Handler von einem Event
Parametere:
id- (string) - die Event-ID
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
const handlerId = store.attachEvent("onAfterSelect", function(id){
gantt.refreshData();
});
// Listener lösen
store.detachEvent(handlerId);
Der Zwilling von datastore.detachEvent() ist gantt.detachEvent().
Events
onItemLoading (item)
Löst aus, wenn ein Item aus der Datenquelle geladen wird
Parametere:
item- (object) - das Objekt eines Items
Rückgabe: boolean - Rückgabe false, um die Standardaktion zu verhindern
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onItemLoading", function(item){
if(item.valid){ // filter Items beim Laden nach eigener Eigenschaft
return true;
}
return false;
});
Der Zwilling des onItemLoading-Ereignisses des datastore ist das onTaskLoading Ereignis von Gantt.
onBeforeParse (data)
Löst aus, bevor Daten geparst werden
Parametere:
data- (Array<any>) - das Array mit den geladenen Daten
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeParse", function(item){
console.time("StoreParse");
});
store.attachEvent("onParse", function(item){
console.timeEnd("StoreParse");
});
Der Zwilling des onBeforeParse-Ereignisses des datastore ist das onBeforeParse Ereignis von Gantt.
onParse (data)
Löst aus, nachdem die Daten geparst wurden, aber bevor sie gerendert wurden
Parametere:
data- (Array<any>) - das Array mit den geladenen Daten
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeParse", function(item){
console.time("StoreParse");
});
store.attachEvent("onParse", function(item){
console.timeEnd("StoreParse");
});
Das Zwilling-Ereignis onParse des datastore entspricht dem onParse-Ereignis von Gantt.
onBeforeUpdate (id, item)
Tritt auf, bevor ein Item aktualisiert wird
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das neue (aktualisierte) Objekt des Items
Rückgabe: boolean - Return false, um die Standardaktion zu verhindern
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeUpdate", function(id, item){
// your code here
return true;
});
Die Zwillinge des onBeforeUpdate-Ereignisses des datastore sind die onBeforeTaskUpdate und onBeforeLinkUpdate Ereignisse von Gantt.
onAfterUpdate (id, item)
Löst aus, nachdem ein Item aktualisiert wurde
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das Objekt des Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterUpdate", function(id, item){
// your code here
});
Die Zwillinge des onAfterUpdate-Ereignisses des datastore sind die onAfterTaskUpdate und onAfterLinkUpdate Ereignisse von Gantt.
onBeforeDelete (id, item)
Löst aus vor der Löschung eines Items
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das Objekt des Items
Rückgabe: boolean - Return false, um die Standardaktion zu verhindern
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeDelete", function(id, item){
// your code here
return true;
});
Die Zwillinge des onBeforeDelete-Ereignisses des datastore sind die onBeforeTaskDelete und onBeforeLinkDelete Ereignisse von Gantt.
onAfterDelete (id, item)
Löst aus, nachdem ein Item gelöscht wurde
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das Objekt des Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterDelete", function(id, item){
// your code here
});
Die Zwillinge des onAfterDelete-Ereignisses des datastore sind die onAfterTaskDelete und onAfterLinkDelete Ereignisse von Gantt.
onBeforeAdd (id, item)
Löst aus, bevor ein neuer Eintrag zum datastore hinzugefügt wird
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das Objekt des Items
Rückgabe: boolean - Return false, um die Standardaktion zu verhindern
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeAdd", function(id, item){
// your code here
return true;
});
Die Zwillinge des onBeforeAdd-Ereignisses des datastore sind die onBeforeTaskAdd und onBeforeLinkAdd Ereignisse von Gantt.
onAfterAdd (id, item)
Löst aus, nachdem ein Item zum datastore hinzugefügt wurde
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das Objekt des Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterAdd", function(id, item){
// your code here
});
Die Zwillinge des onAfterAdd-Ereignisses des datastore sind die onAfterTaskAdd und onAfterLinkAdd Ereignisse von Gantt.
onIdChange (id, newId)
Löst aus, wenn die ID eines Items geändert wird
Parametere:
id- (string | number) - die ID des ItemsnewId- (string | number) - die neue ID des Items
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onIdChange", function(oldId, newId){
// your code here
});
Der Zwilling des onIdChange-Ereignisses des datastore ist das onTaskIdChange Ereignis von Gantt.
onClearAll ()
Löst aus, nachdem alle Items aus dem datastore entfernt wurden
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onClearAll", function(){
// your code here
});
Der Zwilling des onClearAll-Ereignisses des datastore ist das onClear Ereignis von Gantt.
onBeforeStoreUpdate (id, item, action)
Löst aus, bevor der datastore aktualisiert wird
Parametere:
id- (string | number | null) - die ID eines Items oder nullitem- (object | null) - das Item-Objekt oder nullaction- (string | null) - der Aktionstyp ("paint", "move", "add", "delete", null)
Rückgabe: boolean - Return false, um die Standardaktion zu verhindern
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeStoreUpdate", function(id, item, action){
// your code here
return true;
});
onStoreUpdated (id, item, action)
Löst aus, nachdem der datastore aktualisiert wurde
Parametere:
id- (string | number | null) - die ID eines Items oder nullitem- (object | null) - das Item-Objekt oder nullaction- (string | null) - der Aktionstyp ("paint", "move", "add", "delete", null)
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onStoreUpdated", function(id, item, action){
// your code here
});
onBeforeFilter ()
Löst aus, bevor Filter angewendet werden
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeFilter", function(){
console.time("filtering");
});
store.attachEvent("onFilter", function(){
console.timeEnd("filtering");
});
onFilter ()
Löst aus, nachdem der datastore den Filterstatus aktualisiert hat
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeFilter", function(){
console.time("filtering");
});
store.attachEvent("onFilter", function(){
console.timeEnd("filtering");
});
onFilterItem (id, item)
Löst für jedes Item während des Filtervorgangs aus
Parametere:
id- (string | number) - die ID des Itemsitem- (object) - das Item-Objekt
Rückgabe: boolean - Return false, um das Item als nicht sichtbar zu markieren
Beispiel:
const store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onFilterItem", function(id, item){
// your code here
return true;
});
Der Zwilling des onFilterItem-Ereignisses des datastore ist das onBeforeTaskDisplay Ereignis von Gantt.
onDestroy ()
Löst aus, nachdem die destructor() Methode aufgerufen wurde
Beispiel:
const datastore = gantt.createDatastore({
name: gantt.config.resource_store,
type: "treeDatastore",
initItem: function (item) {
item.parent = item.parent || gantt.config.root_id;
item[gantt.config.resource_property] = item.parent;
item.open = true;
return item;
}
});
datastore.attachEvent("onDestroy", function(){
alert("free custom resources");
});
datastore.destructor();