ProjectModel

This class represents a global project of your TaskBoard - a central place for all data.

It holds and links the stores usually used by TaskBoard:

Loading remote data

const taskBoard = new TaskBoard({
    project : {
        // Project configuration
    }
});

Working with inline data

The project provides an inlineData getter/setter that can be used to manage data from all Project stores at once. Populating the stores this way can be useful if you do not want to use the CrudManager for server communication but instead load data using Axios or similar.

Getting data

const data = taskboard.project.inlineData;

// use the data in your application

Setting data

// Get data from server manually
const data = await axios.get('/project?id=12345');

// Feed it to the project
taskboard.project.inlineData = data;

See also loadInlineData

Getting modifications

const taskBoard = new TaskBoard({
    project : {
        // Project configuration
    }
});

Built-in StateTrackingManager

The project also has a built-in StateTrackingManager (STM for short), that handles undo/redo for the project stores (additional stores can also be added). You can enable it to track all project store changes:

// Turn on auto recording when you create your TaskBoard:
const taskBoard = new TaskBoard({
    project : {
        stm : {
            autoRecord : true
        }
    }
});

// Undo a transaction
project.stm.undo();

// Redo
project.stm.redo();

Configs

36

Inline data

The initial data, to fill the taskStore with. Should be an array of TaskModel or its configuration objects.

assignmentsProjectModel
dependenciesProjectModel
eventsProjectModel
resourcesProjectModel
resourceTimeRangesProjectModel
timeRangesProjectModel

Legacy inline data

The initial data, to fill the taskStore with. Should be an array of TaskModel instances or its configuration objects.

assignmentsDataProjectModel
dependenciesDataProjectModel
eventsDataProjectModel
resourcesDataProjectModel
resourceTimeRangesDataProjectModelMixin
timeRangesDataProjectModelMixin

Models & Stores

The constructor of the task model class, to be used in the project. Will be set as the modelClass property of the taskStore.

The constructor to create a task store instance with. Should be a class, subclassing the TaskStore.

assignmentStoreProjectModel
dependencyStoreProjectModel
eventModelClassProjectModel
eventStoreProjectModel
eventStoreClassProjectModel
resourceModelClassProjectModel
resourceStoreProjectModel
resourceStoreClassProjectModel
resourceTimeRangeStoreProjectModelMixin
timeRangeStoreProjectModelMixin
timeRangeStoreClassProjectModelMixin

Advanced

stmProjectModelMixin

Other

Properties

78

Class hierarchy

isProjectModel: Boolean= truereadonly
Identifies an object as an instance of ProjectModel class, or subclass thereof.
isProjectModel: Boolean= truereadonlystatic
Identifies an object as an instance of ProjectModel class, or subclass thereof.
isModelModel
isModelLinkModelLink
isModelStmModelStm
isProjectCrudManagerProjectCrudManager
isProjectModelMixinProjectModelMixin
isTreeNodeTreeNode

Inline data

Get/set taskStore data.

Always returns an array of TaskModel but also accepts an array of its configuration objects as input.

assignmentsProjectModel
dependenciesProjectModel
eventsProjectModel
resourcesProjectModel
resourceTimeRangesProjectModel
timeRangesProjectModel

Models & Stores

The store holding the tasks information.

See also TaskModel

assignmentStoreProjectModel
dependencyStoreProjectModel
eventStoreProjectModel
resourceStoreProjectModel
resourceTimeRangeStoreProjectModelMixin
timeRangeStoreProjectModelMixin

Editing

copyOfModel
isValidModel

Fields

allFieldsstaticModel
autoExposeFieldsstaticModel
childrenFieldstaticModel
defaultsstaticModel
fieldMapstaticModel
fieldsstaticModel
idFieldstaticModel

Grouping

Identification

keyModel

JSON

jsonModel

Lifecycle

configBase

Linked records

hasLinksModelLink
isLinkedModelLink
recordLinksModelLink

Misc

stmModelStm

Other

$namestaticModel
relationsstaticModel

Parent & children

allChildrenTreeNode
childLevelTreeNode
firstChildTreeNode
isLeafTreeNode
isLoadedTreeNode
isParentTreeNode
isRootTreeNode
lastChildTreeNode
nextSiblingTreeNode
parentTreeNode
parentIdTreeNode

Functions

56

Common

commitAsyncProjectModelMixin

JSON

Returns the data from the records of the projects stores, in a format that can be consumed by loadInlineData().

Used by JSON.stringify to correctly convert this project to json.

const project = new ProjectModel({
    tasks       : [...],
    resources   : [...],
    assignments : [...]
});

const json = project.toJSON();

// Result:
{
    tasks : [...],
    resources : [...],
    assignments : [...]
}

The xxData properties are deprecated and will be removed in the future. Use xx instead. For example tasksData is deprecated, use tasks instead. For now, both naming schemes are included in the data object

Output can be consumed by loadInlineData():

const json = project.toJSON();

// Plug it back in later
project.loadInlineData(json);
Returns: Object

Configuration

applyDefaultsstaticBase

Editing

copyModel
getDataModel
removeModel
setModel

Events

Fields

addFieldstaticModel
getModel
processFieldstaticModel
removeFieldstaticModel

Identification

asIdstaticModel
generateIdstaticModel

Inline data

loadInlineDataProjectModelMixin

Lifecycle

destroystaticBase

Misc

equalsModel
initClassstaticBase
isOfTypeNamestaticBase
linkModelLink
mixinstaticBase

Other

Parent & children

appendChildTreeNode
bubbleTreeNode
bubbleWhileTreeNode
containsTreeNode
insertChildTreeNode
isExpandedTreeNode
removeChildTreeNode
traverseTreeNode

Events

2
changeProjectModelMixin
dataReadyProjectModel

Event handlers

2
onChangeProjectModelMixin
onDataReadyProjectModel

Typedefs

1