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
  • updateItem (id, item): void - aktualisiert das angegebene Element
    • id - (string | number) - die id des Elements
    • item? - (object) - ein Objekt mit aktualisierten Eigenschaften
  • removeItem (id): void - löscht das angegebene Element
    • id - (string | number) - die id des Elements
  • 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.
  • 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.
  • 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
  • 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
  • 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
  • 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