datastore
eine Sammlung von datastore-Methoden
object datastore;
Details
Hinweis, Tasks und Links sollten über die Standard-API von Gantt verwaltet werden. Direkte Änderungen an Tasks oder Links innerhalb des datastore können unvorhergesehene Probleme verursachen. Datastores sind hauptsächlich für Ressourcen oder andere benutzerdefinierte Objekte vorgesehen.
Sie können einen neuen datastore mit der Methode createDatastore erstellen.
Das datastore-Objekt bietet die folgenden Methoden und Events:
Methoden
-
parse (data): void - lädt Daten aus einem Array
- data - (Array<object>) - die zu ladenden Daten
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}
]);
Related sample: Resource load diagram
datastore.parse() ergänzt gantt.parse().
Löst die Events onBeforeParse, onItemLoading, onParse und onStoreUpdated aus.
-
getItem (id): object | void - ruft das Element anhand seiner id ab
- id - (string | number) - die id des Elements
var store = gantt.getDatastore(gantt.config.resource_store);
var resource = store.getItem(resourceId);
Related sample: Resource load diagram
datastore.getItem() entspricht gantt.getTask() und gantt.getLink().
-
updateItem (id, item): void - aktualisiert das angegebene Element
- id - (string | number) - die id des Elements
- item? - (object) - ein Objekt mit aktualisierten Eigenschaften
var store = gantt.getDatastore(gantt.config.resource_store);
var resource = store.getItem(resourceId);
resource.text = "modified";
store.updateItem(resourceId);
// oder
store.updateItem(resourceId, { text: "modified" });
datastore.updateItem() ist ähnlich zu gantt.updateTask() und gantt.updateLink().
Löst die Events onBeforeUpdate, onAfterUpdate und onStoreUpdated aus.
-
removeItem (id): void - löscht das angegebene Element
- id - (string | number) - die id des Elements
var store = gantt.getDatastore(gantt.config.resource_store);
store.removeItem(resourceId);
datastore.removeItem() entspricht gantt.deleteTask() und gantt.deleteLink().
Löst die Events onBeforeDelete, onAfterDelete und onStoreUpdated aus.
-
isVisible (id): boolean - bestimmt, ob das angegebene Element sichtbar oder durch Filter ausgeblendet ist
- id - (string | number) - die id des Elements
Gibt true zurück, wenn das Element sichtbar ist, sonst false.
var store = gantt.getDatastore(gantt.config.resource_store);
if(store.isVisible(resourceId)){
console.log(resourceId);
}
datastore.isVisible() ist vergleichbar mit gantt.isTaskVisible().
-
getVisibleItems (): Array<object> - gibt ein Array der sichtbaren Elemente zurück
var store = gantt.getDatastore(gantt.config.resource_store);
var items = store.getVisibleItems();
-
addItem (item, index): number | string - fügt dem datastore ein neues Element hinzu
- item - (object) - das Element-Objekt
- index? - (number) - die Position, an der das Element eingefügt wird (0 oder größer)
Gibt die id des hinzugefügten Elements zurück.
var store = gantt.getDatastore(gantt.config.resource_store);
var itemId = store.addItem({
text: "Unassigned",
parent:4
});
datastore.addItem() entspricht gantt.addTask() und gantt.addLink().
Löst die Events onBeforeAdd, onAfterAdd und onStoreUpdated aus.
-
changeId (oldId, newId): void - aktualisiert die id eines Elements
- oldId - (string | number) - die aktuelle id des Elements
- newId - (string | number) - die neue zuzuweisende id
var store = gantt.getDatastore(gantt.config.resource_store);
var itemId = store.addItem({
text: "Unassigned",
parent:4
});
// itemId ist eine temporäre clientseitige id für das neue Element
// aktualisieren Sie den Client mit der neuen id, sobald sie in der Datenbank gespeichert ist:
store.changeId(itemId, "databaseId");
datastore.changeId() ist ähnlich zu gantt.changeTaskId() und gantt.changeLinkId().
Löst das Event onIdChange aus.
-
exists (id): boolean - prüft, ob das angegebene Element im datastore existiert
- id - (string | number) - die id des Elements
Gibt true zurück, wenn das Element existiert, sonst false.
var store = gantt.getDatastore(gantt.config.resource_store);
if(store.exists(resourceId)){
console.log(resourceId);
}
datastore.exists() entspricht gantt.isTaskExists() und gantt.isLinkExists().
-
move (sindex, tindex): void - verschiebt ein Element an eine neue Position
- sindex - (number) - der aktuelle Index des Elements
- tindex - (number) - der Zielindex, an den das Element verschoben wird
var store = gantt.getDatastore(gantt.config.resource_store);
// tausche zwei Elemente
var idA = 1;
var idB = 5;
var indexA = store.getIndexById(idA);
var indexB = store.getIndexById(idB);
store.move(indexB, indexA);
indexA = store.getIndexById(idA);
store.move(indexA, indexB);
datastore.move() ergänzt gantt.moveTask().
Löst das Event onStoreUpdated aus.
-
clearAll (): void - leert den datastore
var store = gantt.getDatastore(gantt.config.resource_store);
store.clearAll();
datastore.clearAll() entspricht gantt.clearAll().
Löst die Events onClearAll, onBeforeStoreUpdate und onStoreUpdated aus.
-
silent (callback): void - führt Code aus, ohne datastore API-Events auszulösen
- callback - (Function) - die Callback-Funktion
var store = gantt.getDatastore(gantt.config.resource_store);
store.silent(function(){
store.eachItem(function(item){
item.text += " modified";
store.updateItem(item.id);
});
});
store.refresh();
datastore.silent() ergänzt gantt.silent().
-
refresh (id): void - löst das Neuzeichnen der Events des angegebenen Datensatzes aus und wendet Filter an
- id? - (string | number) - optional, die id des Datensatzes
var store = gantt.getDatastore(gantt.config.resource_store);
store.refresh(itemId); // zeichnet ein bestimmtes Element neu
store.refresh(); // zeichnet alle Elemente neu
datastore.refresh() entspricht gantt.refreshTask() und gantt.refreshLink().
Löst die Events onBeforeStoreUpdate, onBeforeFilter, onFilterItem, onFilter und onStoreUpdated aus.
-
count (): number - gibt die Gesamtanzahl der aktuell im datastore geladenen Elemente zurück
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onParse", function(){
alert(store.count() + " items loaded");
});
datastore.count() entspricht gantt.getTaskCount() und gantt.getLinkCount().
-
countVisible (): number - gibt die Anzahl der aktuell sichtbaren Elemente zurück
var store = gantt.getDatastore(gantt.config.resource_store);
alert(store.countVisible() + " items are visible");
datastore.countVisible() entspricht gantt.getVisibleTaskCount().
-
eachItem (callback): void - iteriert über alle Elemente im datastore
- callback - (Function) - die Callback-Funktion
var store = gantt.getDatastore(gantt.config.resource_store);
var searchItems = [];
store.eachItem(function(item){
if(!item.value){
searchItems.push(item);
}
});
datastore.eachItem() entspricht gantt.eachTask().
-
filter (): void - wendet Filter an und aktualisiert die Liste der sichtbaren Elemente
Normalerweise wird diese Methode automatisch von store.refresh() aufgerufen.
var store = gantt.getDatastore(gantt.config.resource_store);
store.filter();
-
sort (field, desc, parent, silent): void - sortiert Elemente im resource grid
- field - (string | Function) - der Spaltenname zum Sortieren oder eine benutzerdefinierte Sortierfunktion
- desc? - (boolean) - Sortierrichtung: true für absteigend, false für aufsteigend (Standard ist false)
- parent? - (string | number) - id des übergeordneten Elements, um die Sortierung auf dessen Zweig zu beschränken
- silent? - (boolean) - ob das Rendering nach dem Sortieren übersprungen werden soll
var 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}
]);
// Sortierrichtung nach Spalte umschalten
var resourceSortDirection = false;
function sortResources(){
resourceSortDirection = !resourceSortDirection;
gantt.getDatastore("resource").sort("text", resourceSortDirection)
gantt.render();
}
Alternativ können Sie eine benutzerdefinierte Sortierfunktion bereitstellen:
var resourceSortDirection = false;
function sortResources(){
resourceSortDirection = !resourceSortDirection;
gantt.getDatastore("resource").sort(function (resource1, resource2){
return resource1.id - resource2.id;
}, resourceSortDirection)
gantt.render();
}
datastore.sort() ergänzt gantt.sort().
-
getIndexRange (from, to): Array<object> - gibt Elemente zwischen den angegebenen Indizes zurück
- from - (number) - Startposition
- to - (number) - Endposition
var store = gantt.getDatastore(gantt.config.resource_store);
var itemsInViewPort = store.getIndexRange(5, 10); // Elemente vom 5. bis 10.
-
getItems (): Array<object> - gibt alle Elemente im datastore zurück
var store = gantt.getDatastore(gantt.config.resource_store);
var items = store.getItems();
datastore.getItems() entspricht gantt.getTaskByTime() und gantt.getLinks().
-
getIdByIndex (index): string | number | void - gibt die id des Elements am angegebenen Index zurück oder `undefined`, wenn keines vorhanden ist
- index - (number) - die Position des Elements
var store = gantt.getDatastore(gantt.config.resource_store);
var firstItem = store.getIdByIndex(0);
datastore.getIdByIndex() entspricht gantt.getTaskByIndex().
-
getIndexById (id): number - gibt den Index des Elements anhand seiner id zurück oder `-1`, wenn nicht gefunden
- id - (string | number) - die id des Elements
var store = gantt.getDatastore(gantt.config.resource_store);
var itemIndex = store.getIndexById(5);
datastore.getIndexById() entspricht gantt.getTaskIndex().
-
getFirst (): string | number | null - gibt die id des ersten Elements im datastore zurück
var store = gantt.getDatastore(gantt.config.resource_store);
var firstId = store.getFirst();
-
getLast (): string | number | null - gibt die id des letzten Elements im datastore zurück
var store = gantt.getDatastore(gantt.config.resource_store);
var lastId = store.getLast();
-
getNext (id): string | number | null - gibt die id des Elements zurück, das dem angegebenen folgt
- id - (string | number) - die id des aktuellen Elements
var store = gantt.getDatastore(gantt.config.resource_store);
var firstId = store.getFirst();
var secondId = store.getNext(firstId);
datastore.getNext() entspricht gantt.getNext().
-
getPrev (id): string | number | null - gibt die id des Elements zurück, das dem angegebenen vorausgeht
- id - (string | number) - die id des aktuellen Elements
var store = gantt.getDatastore(gantt.config.resource_store);
var prevId = store.getPrev(itemId);
datastore.getPrev() entspricht gantt.getPrev().
-
destructor (): void - leert den datastore und entfernt alle Event-Handler; der datastore ist danach nicht mehr verwendbar
var store = gantt.getDatastore(gantt.config.resource_store);
store.destructor();
datastore.destructor() entspricht gantt.destructor().
-
attachEvent (name, handler, settings): string - hängt einen Handler an ein internes datastore-Event an
- name - (string) - Event-Name, case-insensitive
- handler - (Function) - die Handler-Funktion
- settings? - (object) - optionales Einstellungsobjekt für den Event-Handler
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterSelect", function(id){
gantt.refreshData();
});
datastore.attachEvent() entspricht gantt.attachEvent().
-
callEvent (name, params): boolean - löst ein internes Event aus
- name - (string) - Event-Name, case-insensitive
- params - (Array<any>) - Array mit Event-bezogenen Daten
var store = gantt.getDatastore(gantt.config.resource_store);
store.callEvent("CustomEvent", [param1, param2]);
datastore.callEvent() entspricht gantt.callEvent().
-
detachEvent (id): void - entfernt einen zuvor angehängten Event-Handler
- id - (string) - die id des Event-Handlers
var store = gantt.getDatastore(gantt.config.resource_store);
var handlerId = store.attachEvent("onAfterSelect", function(id){
gantt.refreshData();
});
// entferne den Event-Handler
store.detachEvent(handlerId);
datastore.detachEvent() entspricht gantt.detachEvent().
Events
-
onItemLoading (item) - wird ausgelöst, wenn ein Element aus der Datenquelle geladen wird
- item - (object) - das Element-Objekt
Rückgabe von false verhindert das Standardverhalten des Events, ansonsten true.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onItemLoading", function(item){
if(item.valid){ // filtert Elemente während des Ladens basierend auf einer benutzerdefinierten Eigenschaft
return true;
}
return false;
});
datastore’s onItemLoading-Event entspricht dem Gantt-Event onTaskLoading.
-
onBeforeParse (data) - wird vor Beginn des Datenparsens ausgelöst
- data - (Array <any>) - das geladene Datenarray
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeParse", function(item){
console.time("StoreParse");
});
store.attachEvent("onParse", function(item){
console.timeEnd("StoreParse");
});
datastore’s onBeforeParse-Event entspricht dem Gantt-Event onBeforeParse.
-
onParse (data) - wird nach Abschluss des Parsens, aber vor dem Rendern im Gantt-Diagramm ausgelöst
- data - (Array <any>) - das geladene Datenarray
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeParse", function(item){
console.time("StoreParse");
});
store.attachEvent("onParse", function(item){
console.timeEnd("StoreParse");
});
datastore’s onParse-Event entspricht dem Gantt-Event onParse.
-
onBeforeUpdate (id, item) - wird ausgelöst, bevor ein Element aktualisiert wird
- id - (string | number) - die id des Elements
- item - (object) - das aktualisierte Element-Objekt
Rückgabe von false verhindert die Standardaktion des Events, ansonsten true.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeUpdate", function(id, item){
// eigener Code hier
return true;
});
datastore’s onBeforeUpdate-Event entspricht den Gantt-Events onBeforeTaskUpdate und onBeforeLinkUpdate.
-
onAfterUpdate (id, item) - wird ausgelöst, nachdem ein Element aktualisiert wurde
- id - (string | number) - die id des Elements
- item - (object) - das aktualisierte Element-Objekt
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterUpdate", function(id, item){
// eigener Code hier
});
datastore’s onAfterUpdate-Event entspricht den Gantt-Events onAfterTaskUpdate und onAfterLinkUpdate.
-
onBeforeDelete (id, item) - wird ausgelöst, bevor ein Element gelöscht wird
- id - (string | number) - die id des Elements
- item - (object) - das Element-Objekt
Rückgabe von false verhindert die Standardaktion des Events, ansonsten true.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeDelete", function(id, item){
// eigener Code hier
return true;
});
datastore’s onBeforeDelete-Event entspricht den Gantt-Events onBeforeTaskDelete und onBeforeLinkDelete.
-
onAfterDelete (id, item) - wird ausgelöst, nachdem ein Element gelöscht wurde
- id - (string | number) - die id des Elements
- item - (object) - das Element-Objekt
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterDelete", function(id, item){
// eigener Code hier
});
datastore’s onAfterDelete-Event entspricht den Gantt-Events onAfterTaskDelete und onAfterLinkDelete.
-
onBeforeAdd (id, item) - wird ausgelöst, bevor ein neues Element zum datastore hinzugefügt wird
- id - (string | number) - die id des Elements
- item - (object) - das Element-Objekt
Rückgabe von false verhindert die Standardaktion des Events, ansonsten true.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeAdd", function(id, item){
// eigener Code hier
return true;
});
datastore’s onBeforeAdd-Event entspricht den Gantt-Events onBeforeTaskAdd und onBeforeLinkAdd.
-
onAfterAdd (id, item) - wird ausgelöst, nachdem ein neues Element zum datastore hinzugefügt wurde
- id - (string | number) - die id des Elements
- item - (object) - das Element-Objekt
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onAfterAdd", function(id, item){
// eigener Code hier
});
datastore’s onAfterAdd-Event entspricht den Gantt-Events onAfterTaskAdd und onAfterLinkAdd.
-
onIdChange (id, newId) - wird ausgelöst, wenn sich die id eines Elements ändert
- id - (string | number) - die alte id
- newId - (string | number) - die neue id
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onIdChange", function(oldId, newId){
// eigener Code hier
});
datastore’s onIdChange-Event entspricht dem Gantt-Event onTaskIdChange.
-
onClearAll () - wird ausgelöst, nachdem alle Elemente aus dem datastore entfernt wurden
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onClearAll", function(){
// eigener Code hier
});
datastore’s onClearAll-Event entspricht dem Gantt-Event onClear.
-
onBeforeStoreUpdate (id, item, action) - wird ausgelöst, bevor der datastore aktualisiert wird
- id - (string | number | null) - die id des Elements oder null
- item - (object | null) - das Element-Objekt oder null
- action - (string | null) - der Aktionstyp ("paint", "move", "add", "delete", null)
Rückgabe von false verhindert die Standardaktion des Events, ansonsten true.
Dieses Event signalisiert, dass datastore-Elemente neu gezeichnet werden müssen. Ein `null`-Wert bedeutet, dass der gesamte datastore aktualisiert wird.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeStoreUpdate", function(id, item, action){
// eigener Code hier
return true;
});
-
onStoreUpdated (id, item, action) - wird ausgelöst, nachdem der datastore aktualisiert wurde
- id - (string | number | null) - die id des Elements oder null
- item - (object | null) - das Element-Objekt oder null
- action - (string | null) - der Aktionstyp ("paint", "move", "add", "delete", null)
Dieses Event signalisiert, dass datastore-Elemente neu gezeichnet werden müssen. Ein `null`-Wert bedeutet, dass der gesamte datastore aktualisiert wird.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onStoreUpdated", function(id, item, action){
// eigener Code hier
});
-
onBeforeFilter () - wird ausgelöst, bevor Filter angewendet werden
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeFilter", function(){
console.time("filtering");
});
store.attachEvent("onFilter", function(){
console.timeEnd("filtering");
});
-
onFilter () - wird ausgelöst, nachdem Filter die sichtbaren Elemente aktualisiert haben
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onBeforeFilter", function(){
console.time("filtering");
});
store.attachEvent("onFilter", function(){
console.timeEnd("filtering");
});
-
onFilterItem (id, item) - wird für jedes Element während des Filtervorgangs ausgelöst; Rückgabe von `false` blendet das Element aus
- id - (string | number) - die id des Elements
- item - (object) - das Element-Objekt
Rückgabe von false blendet das Element aus, ansonsten true.
var store = gantt.getDatastore(gantt.config.resource_store);
store.attachEvent("onFilterItem", function(id, item){
// eigener Code hier
return true;
});
datastore’s onFilterItem-Event entspricht dem Gantt-Event onBeforeTaskDisplay.
-
onDestroy () - wird ausgelöst, nachdem die destructor()-Methode des datastore aufgerufen wurde
var 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();
See also
Zurück nach oben