new Client(gmeConfig)
The Client class represents the Client API which is the way to communicate with your project from your user-defined UI pieces. It allows project selection, project tracking, model interpretation and model manipulation.
!! Documentation of the class is incomplete !!
What is mainly missing are the node setters. Until added here use the Core documentation and simply replace any Core nodes in the arguments with the id/path of the nodes instead.
Parameters:
Name | Type | Description |
---|---|---|
gmeConfig |
GmeConfig | the main configuration of the WebGME that holds information about the server and other options. |
Methods
-
abortPlugin(executionId)
-
Initiates the abort of the given plugin execution.
Parameters:
Name Type Description executionId
string unique identifier that identifies the plugin execution
-
addLibrary(name, blobHashLibraryInfoOrSeedName, callback)
-
Sends a server request to add specified library to the current project and branch.
Parameters:
Name Type Description name
string Name of new library (cannot contain dots or exist already)
blobHashLibraryInfoOrSeedName
string | object If blobHash string given will import library from blob, if string will import from seed, otherwise project at info (will also be added to info at library).
Properties
Name Type Argument Description projectId
string The projectId of your library.
branchName
string <optional>
The branch that your library follows in the origin project.
commitHash
string <optional>
The commit-hash of your library.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If request failed.
result
module:Storage~CommitResult Result from the commit made.
-
addMember(path, memberPath, setId [, msg])
-
Add a new member node to the given set of the specified node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
memberPath
string the path/id of the member node.
setId
string the name of the set to expand.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
addMixin(path, addMixin [, msg])
-
Creates a mixin connection to the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
addMixin
string the path/id of the mixin node.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
addUI( [ui], eventHandler [, guid])
-
Adds a "user" for receiving events regarding nodes in a specified territory.
Parameters:
Name Type Argument Description ui
object <optional>
Object with additional methods to be invoked.
Properties
Name Type Argument Description reLaunch
function <optional>
Triggered when active project/branch is switched.
eventHandler
function Function invoked at changes for, or initial loading of, nodes within the "user's" territory.
Properties
Name Type Description events
Array.<object> Array of event data for affected nodes within the territory.
guid
string <optional>
Unique id of user (if not provided one will be generated).
Returns:
The id (guid) of the newly added "user".
- Type
- string
Example
// The eventHandler is invoked whenever there are changes to the nodes // matching any of the patterns. // There are three cases when it is triggered: // 1) updateTerritory was invoked by us. // 2) Another client made changes to nodes within the territory. // 3) We made changes to any of the nodes (via the setters). function eventHandler(events) { var i, nodeObj; for (i = 0; i < events.length; i += 1) { if (events[i].etype === 'load') { // The node is loaded and we have access to it. // It was either just created or this is the initial // updateTerritory we invoked. nodeObj = client.getNode(events[i].eid); } else if (events[i].etype === 'update') { // There were changes made to the node (or any of its bases, meta-types and/or reverse relationships). // The node is still loaded and we have access to it. nodeObj = client.getNode(events[i].eid); } else if (events[i].etype === 'unload') { // The node was removed from the model (we can no longer access it). // We still get the path/id via events[i].eid } else { // "Technical events" not used. } } } var userId = client.addUI(null, eventHandler);
-
canRedo(branchName)
-
Returns true if the provided branchName matches the selected and if there were no commits after the previous undo.
Parameters:
Name Type Description branchName
string Must match the active branch.
Returns:
True if it's fine to call client.redo()
- Type
- boolean
-
canUndo(branchName)
-
Returns true if the provided branchName matches the selected and if the current user did made the latest change.
Parameters:
Name Type Description branchName
string Must match the active branch.
Returns:
True if it's fine to call client.undo()
- Type
- boolean
-
clearMetaRules(path [, msg])
-
Removes all Meta rules from the node (does not have effect on the inherited rules).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
closeProject(callback)
-
Closes the currently selected project. If a branch is opened it will be closed as well. Will resolve with error if no project is opened.
Parameters:
Name Type Description callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
Fires:
-
completeTransaction( [msg] [, callback])
-
Completes any open transaction and persists the changes to server.
Parameters:
Name Type Argument Default Description msg
string <optional>
']' End of commit-message.
callback
function <optional>
Optional callback that's invoked when the commit has reached the server.
Example
var nodeId = 'someIdToANodeThatIsLoaded'; client.startTransaction('start of commitMessage'); // While transaction is open nothing will be committed to the server. client.setAttributes(nodeId, 'name', 'newName', 'changes within the transaction'); client.setRegistry(nodeId, 'position', {x: 100, y:200}, 'some more changes'); // When we have made all of our changes we make a single commit. client.completeTransaction('end of commitMessage', function (err, result) { // Here we have the option to get notified when the commit has reached the server // and been persisted in the database. // The commit hash of the new state of our model. console.log(result.hash); // If we are working in a branch - this is the status of our commit. // 'SYNCED', 'FORKED'. console.log(result.status); });
-
connectToDatabase(callback)
-
Establishes a websocket-connection to the storage/database on the server. If already connected - it will resolve immediately. Note that the client itself attempts to reconnect on unintended disconnections. To monitor the status register for the client.CONSTANTS.NETWORK_STATUS_CHANGED event.
Parameters:
Name Type Description callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
Fires:
-
copyMoreNodes(parameters [, msg])
-
Copies the given nodes into the parent (does not enforce meta-rules and requires all participating nodes to be loaded in the client)
Parameters:
Name Type Argument Description parameters
object the parameters holding parentId and nodes to be copied indexed by their ids/paths (see example)
Properties
Name Type Description parentId
string the id/path of the parent where the new copies should be created
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Example
client.copyMoreNodes({ parentId: '', '/4': {}, '/5': { attributes: { name: 'MyNamedCopy' }, registry: { position: {x: 100, y:100} } } }, 'Copied two nodes with some additional init data.');
-
copyNode(path, parentId [, desc] [, msg])
-
Copies the given node into parent (does not enforce meta-rules and requires all participating nodes to be loaded in the client)
Parameters:
Name Type Argument Default Description path
string the id/path of the node to copy
parentId
string the id/path of the parent where the new copy should be created
desc
object <optional>
{} named attributes and/or registries to set for the new node (see example)
Properties
Name Type Argument Default Description attributes
object <optional>
{} named attributes to set for the new node
registry
object <optional>
{} named registries to set for the new node
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Returns:
- the newly created node if it could be copied
Example
var nodeCopy1 = client.copyNode('/4', ''); var nodeCopy2 = client.copyNode('/4', '', { attributes: { name: 'CopiedNode' }, registry: { position: {x: 100, y: 100} } }, 'Created node with specific name and position.');
-
copyNodes(paths, parentId [, msg])
-
Copies the given nodes into the parent (does not enforce meta-rules and requires all participating nodes to be loaded in the client)
Parameters:
Name Type Argument Description paths
Array.<string> array of the ids/paths of the nodes to copy
parentId
string the id/path of the parent where the new copies should be created
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function copyNodes
Returns:
- the newly created nodes if all could be copied
Example
var nodeCopies1 = client.copyNodes(['/4', '/3'], ''); var nodeCopies2 = client.copyNodes('/4', '/3'], '', 'Copied two nodes');
-
createChildren(parameters [, msg])
-
Creates instances as children of the parent node based on the list of nodes among the parameters (does not enforce meta-rules and requires all participating nodes to be loaded in the client).
Parameters:
Name Type Argument Description parameters
object the parameters holding parentId and nodes to be instantiated indexed by their ids/paths (see example)
Properties
Name Type Description parentId
string the id/path of the parent where the new nodes should be created
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Example
client.createChildren({ parentId: '', '/4': {}, '/5': { attributes: { name: 'MyVeryOwnName' }, registry: { position: {x: 100, y:100} } } }, 'Created new children of the root based on the list of existing nodes.');
-
createNode(parameters [, msg])
-
Creates a new node based on the given parameters.
Parameters:
Name Type Argument Description parameters
object the parameters holding necessary information for the creation.
Properties
Name Type Argument Description parentId
string the path/id of the container of the new node.
baseId
string the path/id of the prototype of the new node.
parentId
string the id/path of the parent where the new nodes should be created
guid
string <optional>
the unique identifier of the node we will create.
relid
string <optional>
the relative id of the node we will create.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Example
client.createNode({ parentId: '', baseId:'/1', guid:, relid:'/aaa' }, { attributes: { name: 'MyVeryOwnName' }, registry: { position: {x: 100, y:100} } }, 'Created new node as the child of the root and instance of the FCO.');
-
createSet(path, setId [, msg])
-
Creates a set that belongs to the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
setId
string the name of the set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delAspectMeta(path, name [, msg])
-
Removes a complete aspect rule set (filtered contaiment).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the aspect.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delAspectMetaTarget(path, name, targetPath [, msg])
-
Removes an element from an aspect rule set (filtered contaiment).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the aspect.
targetPath
string the path/id of the member.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delAttribute(path, name, msg)
-
Method to remove an attribute from a given node.
Parameters:
Name Type Description path
string The path of the node in question.
name
string The name of the attribute.
msg
string The message that should be attached to the commit that covers this update.
-
delAttributeMeta(path, name [, msg])
-
Removes an attribute rule from the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delBase(path [, msg])
-
Removes teh prototype ofd the node. Do not use this function as it is very dangerous!
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delChildMeta(path, typeId [, msg])
-
Removes a containment rule from the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
typeId
string the path/id of the child node.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
deleteNode(path [, msg])
-
Delete the given node.
Parameters:
Name Type Argument Description path
string the path/id of the node to be deleted from the model.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
deleteNodes(paths [, msg])
-
Delete the given node.
Parameters:
Name Type Argument Description paths
Array.<string> the path/id list of the nodes to be deleted from the model.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delMemberAttribute(path, memberPath, setId, name [, msg])
-
Removes the given attribute that is connected to the membership from the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
memberPath
string the path/id of the member node.
setId
string the name of the set to expand.
name
string the name of the attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delMemberRegistry(path, memberPath, setId, name [, msg])
-
Removes the given registry that is connected to the membership from the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
memberPath
string the path/id of the member node.
setId
string the name of the set to expand.
name
string the name of the registry.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delMixin(path, addMixin [, msg])
-
Removes a mixin connection from the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
addMixin
string the path/id of the mixin node.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delPointer(path, name [, msg])
-
Removes the pointer of the given node. Setting a pointer to null and deleting it is different! (one is a value, the other means the absence of value)
Parameters:
Name Type Argument Description path
string the path/id of the node that we will modify.
name
string the name of the pointer to set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delPointerMeta(path, name [, msg])
-
Removes a complete pointer/set rule including all target/member rules.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the pointer/set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delPointerMetaTarget(path, name, targetPath [, msg])
-
Removes a target/member from a pointer/set rule.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the pointer/set.
targetPath
string the path/id of the pointer target/member.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delRegistry(path, name, msg)
-
Method to remove a registry entry of a given node.
Parameters:
Name Type Description path
string The path of the node in question.
name
string The name of the registry.
msg
string The message that should be attached to the commit that covers this update.
-
delSet(path, setId [, msg])
-
Removes a set that belongs to the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
setId
string the name of the set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delSetAttribute(path, setName, attrName [, msg])
-
Removes the given attribute that is connected to set of the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
setName
string the name of the set to change.
attrName
string the name of the attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
delSetRegistry(path, setName, attrName [, msg])
-
Removes the given registry that is connected to set of the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
setName
string the name of the set to change.
attrName
string the name of the registry.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
disconnectFromDatabase(callback)
-
Ends the websocket-connection to the storage/database on the server.
Parameters:
Name Type Description callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
Fires:
-
filterPlugins(pluginIds [, nodePath])
-
Helper method for filtering out the registered plugins from the available ones.
Parameters:
Name Type Argument Default Description pluginIds
Array.<string> Typically all available plugins on the server.
nodePath
string <optional>
'' Node to get the validPlugins from.
Returns:
Filtered plugin ids.
-
filterValidTarget(path, name, paths)
-
Filters out potential pointer targets based on wether they would be valid targets. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node that hold the pointer rule (the source of the pointer).
name
string the name of the pointer to check.
paths
Array.<string> the path/id of the target nodes.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of path/id of valid target nodes.
-
getActiveBranchName()
-
Returns the name of currently selected branch. Returns null if no branch is open.
Returns:
The name of the selected branch.
-
getActiveCommitHash()
-
Returns the current commit-hash of either the opened branch or the selected commit. Return null if none is selected.
Returns:
The active commit-hash.
-
getActiveProjectId()
-
Returns the id of currently selected project. Returns null if no project is opened.
Returns:
The project-id of the selected project.
-
getActiveProjectKind()
-
Returns the kind of currently selected project at the time it was opened. Returns null if no project is opened and returns undefined if the field is not specified for the project. (To get the latest info from the server use client.getProjectObject() followed by project.getProjectInfo.)
Returns:
The project-kind of the selected project.
-
getActiveProjectName()
-
Returns the name of currently selected project. Returns null if no project is opened.
Returns:
The project-name of the selected project.
-
getActiveRootHash()
-
Returns the current root-hash the client is at. If there are changes inside a transaction the root-hash will correspond to the state that is being updated. Returns null if no no branch or commit selected is selected.
Returns:
The active root-hash.
-
getAllMetaNodes(asObject)
-
Returns all meta-nodes as GMENodes.
Parameters:
Name Type Description asObject
boolean If true return an object with ids/path as keys and nodes as values.
Returns:
If the node is loaded it will be returned, otherwise null.
-
getAspectTerritoryPattern(path, name)
-
Returns a client pattern that covers the given aspect of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
name
string the name of the aspect.
Returns:
- object representing the client territory
- Type
- object
-
getAttributeSchema(path, name)
-
Collects and returns the meta rules related to an attribute of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
name
string the name of the attribute.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- structured collection of the rules of the attribute.
- Type
- object
-
getBranchStatus()
-
Returns the current status of the opened branch. Returns null if no branch is opened.
Returns:
One of client.CONSTANTS.BRANCH_STATUS. SYNC/AHEAD_SYNC/AHEAD_NOT_SYNC/PULLING/ERROR.
-
getChildrenMeta(path)
-
Collects and returns the meta rules related to containment of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
- See:
-
For reference check the correspondent Core function getChildrenMeta
Returns:
- structured collection of the rules of the containment.
- Type
- object
-
getConnectedStorageVersion()
-
Returns the version (package.json version of webgme-engine) of the server the initial connection was established to.
Returns:
null if it was never connected.
-
getCoreInstance( [options], callback)
-
Creates a new core instance using the state of the client and loads a new root node. Resolves with error if no project or root-hash is active.
Parameters:
Name Type Argument Description options
object <optional>
Properties
Name Type Argument Default Description commitHash
string <optional>
%state.commitHash% If a different commit-hash should be loaded.
logger
GmeLogger <optional>
%clientLogger% Logger passed to the core instance.
callback
function Properties
Name Type Description err
Error | null Non-null if failed to retrieve result.
result
object The result object
Properties
Name Type Description core
Core Newly created core instance
rootNode
Core~Node The root-node that was loaded.
commitHash
string The commitHash used as basis for loading the root-node.
project
Project A reference to the project.
Returns:
The core instance.
-
getCurrentPluginContext(pluginId [, activeNodeId] [, activeSelectionIds])
-
Helper method for obtaining the context for a plugin execution. If WebGMEGlobal is defined it is used to get the activeNode and activeSelection (if not specified). The model context, that is project, branch, commitHash is obtained using the state of the client. If there is an activeNode - the namespace will be the namespace of the first base that defines the pluginId at the "validPlugins" registry.
Parameters:
Name Type Argument Default Description pluginId
string Id of plugin.
activeNodeId
string <optional>
WebGMEGlobal.State.getActiveObject() || '' Specific id for active node.
activeSelectionIds
Array.<string> <optional>
WebGMEGlobal.State.getActiveSelection() || [] Specific ids for active-selection.
Returns:
The context needed for runBrowserPlugin/runServerPlugin.
- Type
- object
-
getLibraryInfo(libraryName)
-
Returns the info associated with the library in the current project and commit/branch.
Parameters:
Name Type Description libraryName
string Name of library.
Returns:
- Info stored at library.
- Type
- object
-
getLibraryNames()
-
Returns an array of all libraries at the current project and commit/branch.
Returns:
- Fully qualified names of libraries (including libraries of libraries)
-
getMeta(path [, msg])
-
Returns the JSON based meta description of the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
getMetaAspect(path, name)
-
Collects and returns the meta rules related to an aspect of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
name
string the name of the aspect.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- structured collection of the rules of the aspect.
- Type
- object
-
getMetaAspectNames(path)
-
Collect and returns a list of aspects defined for the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of valid aspect names.
-
getNetworkStatus()
-
Returns the current connection state or null if connectToDatabase was never invoked.
Returns:
One of client.CONSTANTS.STORAGE. CONNECTED/DISCONNECTED/RECONNECTED/INCOMPATIBLE_CONNECTION/CONNECTION_ERROR
-
getNode(path)
-
Returns the GMENode of the given node if it has been loaded.
Parameters:
Name Type Description path
string the path of the node in question.
Returns:
If the node is loaded it will be returned, otherwise null.
-
getOwnMetaAspectNames(path)
-
Collect and returns a list of aspects defined for the node. Additionally, it filters out those aspects that are inherited for the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of valid aspect names.
-
getOwnValidAttributeNames(path)
-
Collects the names of the valid attributes of the node. Additionally, it filters out those names that are inherited for the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of valid attribute names.
-
getOwnValidChildrenTypes(path)
-
Collects and returns the list of containment rules of the node. Additionally the list filters out elements that are inherited. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- structured collection of children types of the containment with cardinality information.
- Type
- object
-
getOwnValidTargetItems()
-
Identical to getOwnValidTargetTypes.
-
getOwnValidTargetTypes(path, name)
-
Collects the meta node ids, that can be instantiated for a valid target of the given pointer of the node. Additionaly it filters out those that only valid due to inherioted rules. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node that hold the pointer rule (the source of the pointer).
name
string the name of the pointer to check.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of path/id of valid target meta-nodes.
-
getPointerMeta(path, name)
-
Collects and returns the meta rules related to a pointer/set of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node that hold the pointer rule (the source of the pointer).
name
string the name of the pointer/set.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- structured object of the rules related to the pointer/set.
- Type
- object
-
getProjectAccess()
-
Returns the access the current user had to the selected project when it was opened. Returns null if no project is open. (To get the latest info from the server use client.getProjectObject() followed by project.getProjectInfo.)
Returns:
The access levels to the project.
Example
{ read: true, write: false, delete: false }
-
getProjectInfo()
-
Returns the info of the selected project when it was opened. Returns null if no project is open. (To get the latest info from the server use client.getProjectObject() followed by project.getProjectInfo.)
Returns:
The project info - see project.getProjectInfo
-
getProjectObject()
-
Returns the project object of the selected project. Returns null if no project is open.
Returns:
The project instance.
- Type
- ProjectInterface | null
-
getRunningPlugins()
-
Gathers the list of running plugins and information about them.
-
getUserId()
-
Get the identity of the current user of the client/storage.
Returns:
the userId
- Type
- string
-
getValidAttributeNames(path)
-
Collects the names of the valid attributes of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of valid attribute names.
-
getValidChildrenItems(path)
-
Collects and returns the list of containment rules of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- structured collection of children types of the containment with cardinality information.
- Type
- object
-
getValidChildrenTypes(parentPath, path)
-
Checks if the node would be a valid child of the given parent. All participant nodes have to be loaded to the client
Parameters:
Name Type Description parentPath
string the path/id of the parent node.
path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- true if the node would be a valid child of the parent, false otherwise (or if any of the nodes is missing).
- Type
- boolean
-
getValidChildrenTypes(path)
-
Collects the meta node ids, that can be instantiated for a valid child of the given node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of path/id of valid target meta-nodes.
-
getValidTargetItems()
-
Identical to getValidTargetTypes.
-
getValidTargetTypes(path, name)
-
Collects the meta node ids, that can be instantiated for a valid target of the given pointer of the node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node that hold the pointer rule (the source of the pointer).
name
string the name of the pointer to check.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- list of path/id of valid target meta-nodes.
-
hasOwnMetaRules(path, name)
-
Checks if the node has meta rules of its own (not inherited). All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
name
string the name of the aspect.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- true if the node has some rule of its own, false if it only has inherited rules.
- Type
- boolean
-
isCommitReadOnly()
-
Returns true if a specific commit is selected (no branch opened).
Returns:
True if a commit is selected
- Type
- boolean
-
isConnected()
-
Returns true if a connection to the database/storage has been established and is not in a disconnected state.
Returns:
True if connected to the database/storage.
- Type
- boolean
-
isProjectReadOnly()
-
Returns true if the selected project is read-only for the connected user.
Returns:
True if the user only has read-access to the project.
- Type
- boolean
-
isReadOnly()
-
Returns true if either the selected project is read-only for the connected user or if a commit is selected, i.e. if either isReadOnlyCommit or isProjectReadOnly return true.
Returns:
True if in read-only state.
- Type
- boolean
-
isTypeOf(path, typePath)
-
Check if the given node is an instance of the type node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node.
typePath
string the path/id of the type node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- true if the node inherits from the type node, false otherwise (or if one of the nodes is not accessible).
- Type
- boolean
-
isValidTarget(path, name, targetPath)
-
Check if the given node is valid target for the pointer of the other node. All participant nodes have to be loaded to the client
Parameters:
Name Type Description path
string the path/id of the node that hold the pointer rule (the source of the pointer).
name
string the name of the pointer to check.
targetPath
string the path/id of the target node.
- Deprecated:
-
- The function provided in GMENode class should be used! (this one will be removed at the next major release)
Returns:
- true if the target node is a valid target for the pointer of the node, false otherwise (or if one of the nodes is not accessible).
- Type
- boolean
-
moveAspectMetaTarget(path, targetPath, oldName, newName [, msg])
-
Moves an aspect target rule to a new aspect. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
targetPath
string the path/id of the target to be moved.
oldName
string the name of the current aspect.
newName
string the name of the new aspect.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function moveAspectMetaTarget
-
moveMember(path, memberPath, oldSetName, newSetName [, msg])
-
Moves a set member to a new set. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
memberPath
string the path/id of the member to be moved.
oldSetName
string the name of the current set.
newSetName
string the name of the new set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function moveMember
-
moveMoreNodes(parameters [, msg])
-
Moves the given nodes into the parent (does not enforce meta-rules and requires all participating nodes to be loaded in the client)
Parameters:
Name Type Argument Description parameters
object the parameters holding parentId and nodes to be copied indexed by their ids/paths (see example)
Properties
Name Type Description parentId
string the id/path of the parent where the new copies should be created
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Example
client.moveMoreNodes({ parentId: '', '/4': {}, '/5': { attributes: { name: 'MyNamedCopy' }, registry: { position: {x: 100, y:100} } } }, 'Copied two nodes with some additional init data.');
-
moveNode(path, parentPath [, msg])
-
Moves a node into a new container.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
parentPath
string the path/id of the new container node.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
movePointerMetaTarget(path, name, targetPath, oldName, newName [, msg])
-
Moves a potential target/member to a pointer/set rule from another.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the pointer/set.
targetPath
string the path/id of the pointer target/member.
oldName
string the name of the current pointer rule.
newName
integer the name of the new pointer/set rule.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
notifyUser( [notification])
-
Trigger the client to dispatch a NOTIFICATION (in the generic UI the notification widget listens to these).
Parameters:
Name Type Argument Description notification
object | string <optional>
Notification to user (if string given will be set at notification.message)
Properties
Name Type Argument Default Description message
string Message of notification
severity
string <optional>
'info' Notification severity level ('success', 'info', 'warn', 'error')
-
redo(branchName, callback)
-
Redo the latest undo. Will immediately resolve with error if the provided branchName is not the same as the selected or if there were commits after the previous undo (see canRedo).
Parameters:
Name Type Description branchName
string Must match the active branch.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
commitResult
module:Storage~CommitResult The status of the commit made.
-
removeLibrary(libraryName)
-
Remove the library from the current project and branch.
Parameters:
Name Type Description libraryName
string Name of library to remove.
-
removeMember(path, memberPath, setId [, msg])
-
Removes a member node from the given set of the specified node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
memberPath
string the path/id of the member node.
setId
string the name of the set to expand.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
removeUI(guid)
-
Removes the user at guid and no more events will be triggered at its event-handler.
Parameters:
Name Type Description guid
string The unique id of the "user" to remove.
Example
var id = client.addUI(null, function (events) { // Say we only wanted the initial updateTerritory event. client.removeUI(id); }); client.updateTerritory(id);
-
renameAttribute(path, oldName, newName [, msg])
-
Renames an attribute of the node. Effectively, it moves the value of one attribute to another. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
oldName
string the name of the current attribute.
newName
string the name of the new attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function renameAttribute
-
renameAttributeMeta(path, oldName, newName [, msg])
-
Renames an attribute meta rule. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
oldName
string the name of the current attribute.
newName
string the name of the new attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function renameAttributeMeta
-
renameLibrary(oldName, newName)
-
Rename the library in the current project and branch.
Parameters:
Name Type Description oldName
string Name of library to rename.
newName
string New name of library.
-
renamePointer(path, oldName, newName [, msg])
-
Renames a pointer of the node. Effectively, it moves the target of one pointer to another. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
oldName
string the name of the current pointer.
newName
string the name of the new pointer.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function renamePointer
-
renameRegistry(path, oldName, newName [, msg])
-
Renames an registry of the node. Effectively, it moves the value of one registry to another. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
oldName
string the name of the current registry.
newName
string the name of the new registry.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function renameRegistry
-
renameSet(path, oldName, newName [, msg])
-
Renames a set of the node. Effectively, it moves the members of one set to another. All participant nodes have to be loaded to the client
Parameters:
Name Type Argument Description path
string the path/id of the node.
oldName
string the name of the current set.
newName
string the name of the new set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
- See:
-
For reference check the correspondent Core function renameSet
-
runBrowserPlugin(pluginId, context, callback)
-
Execute the specified plugin inside the browser at the provided context.
Parameters:
Name Type Description pluginId
string Id of plugin.
context
object Properties
Name Type Argument Default Description managerConfig
object Where the plugin should execute.
Properties
Name Type Argument Default Description project
ProjectInterface Project (can be obtained via client.getProjectObject()).
activeNode
string <optional>
'' Path to activeNode.
activeSelection
string <optional>
[] Paths to selected nodes.
commitHash
string Commit hash to start the plugin from.
branchName
string <optional>
Branch which to save to.
namespace
string <optional>
'' Used namespace ('' represents root namespace).
pluginConfig
object <optional>
%defaultForPlugin% Specific configuration for the plugin.
callback
function Fires:
-
runServerPlugin(pluginId, context, callback)
-
Execute the specified plugin on the server at the provided context. Before invoking a plugin on the server you need to make sure that the given commitHash has been persisted in the database.
Parameters:
Name Type Description pluginId
string Id of plugin.
context
object Properties
Name Type Argument Default Description managerConfig
object Where the plugin should execute.
Properties
Name Type Argument Default Description project
ProjectInterface | string Project or id of project.
activeNode
string <optional>
'' Path to activeNode.
activeSelection
string <optional>
[] Paths to selected nodes.
commitHash
string Commit hash to start the plugin from.
branchName
string <optional>
Branch which to save to.
namespace
string <optional>
'' Used namespace ('' represents root namespace).
pluginConfig
object <optional>
%defaultForPlugin% Specific configuration for the plugin.
callback
function Fires:
-
selectBranch(branchName, callback)
-
Selects a branch in the currently opened project. It will close any currently opened branch. If the same branch is opened it will close and reselect it (this differs from how selectProject works).
Parameters:
Name Type Description branchName
string Name of branch to open.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
Fires:
-
selectCommit(commitHash, callback)
-
Selects a specific commit and enters "read-only" mode see isReadOnly and isReadOnlyCommit. If a branch is opened it will be closed. Will resolve with error if the commit does not exist.
Parameters:
Name Type Description commitHash
string Unique id for the commit to select.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
Fires:
-
selectProject(projectId [, branchName], callback)
-
Selects a new project and opens a branch for monitoring. Any previously opened project/branch will be closed. If the same project is already open - it will resolve immediately and keep that project open. (To only change the branch use selectBranch instead). If branchName is given and it does not exist, the project will be closed and the callback will resolve with an error. If branchName is NOT given it will attempt proceed in the following in order and break if successful at any step:
- Select the 'master' if available.
- Select any available branch.
- Select the latest commit.
- Close the project and resolve with an error.
Parameters:
Name Type Argument Default Description projectId
string Id of project to be selected
branchName
string <optional>
'master' branch to open
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
Fires:
-
sendMessageToPlugin(executionId, messageId, content)
-
Sends a message to a running plugin.
Parameters:
Name Type Description executionId
string unique identifier that identifies the plugin execution
messageId
string the identifier of the message which has been specified by the plugin
content
any the content of the message
-
setAspectMetaTarget(path, name, targetPath [, msg])
-
Creates/extends an aspect rule set (filtered contaiment).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the aspect.
targetPath
string the path/id of the new member.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setAspectMetaTargets(path, name, targetPaths [, msg])
-
Creates/extends an aspect rule set (filtered contaiment) with multiple new targets.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the aspect.
targetPaths
Array.<string> array of path/id of the new members.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setAttribute(path, name, value, msg)
-
Method to set an attribute of a given node.
Parameters:
Name Type Description path
string The path of the node in question.
name
string The name of the attribute.
value
any The value of the attribute to be set.
msg
string The message that should be attached to the commit that covers this update.
-
setAttributeMeta(path, name, schema [, enum] [, default], multiline, multilineType, isPassword [, msg])
-
Creates an attribute meta rule for the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the attribute.
schema
object the description of the attribute rule.
Properties
Name Type Description type
'string' | 'integer' | 'float' | 'boolean' | 'asset' the type of the attribute.
enum
Array.<string> <optional>
valid choices if the attrubite is an enumeration.
default
string | number | boolean <optional>
the default value of the attribute.
multiline
boolean shows if the string attribute is a multiline one and should be edited in a code-editor style.
multilineType
string show the style of the multiline (c, js, java, ...). helps in functions like syntax highlighting.
isPassword
boolean shows if the attribute should be handled sensitively on the UI.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setBase(path, basePath [, msg])
-
Changes the prototype node of the node. This function should only be used with care!
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
basePath
string the path/id of the new prototype node.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setChildMeta(path, childPath, min, max [, msg])
-
Creates a containment rule for the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
childPath
string the path/id of the child node.
min
number the minimum allowed number of children of this type. -1 means that there is no lower limit.
max
number the maximum allowed number of children of this type. -1 ,eams there is no upper limit.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setChildMeta(path, meta [, msg])
-
Creates multiple containment rules for the node.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
meta
object the collection of containment rules.
Properties
Name Type Argument Description items
Array.<object> array of containment rules with child type identification and cardinality rules.
items[i].id
string the path/id of the child.
items[i].min
string the lower bound of the cardinality for the given child type.
items[i].max
string the upper bound of the cardinality for the given child type.
min
number <optional>
global lower limit on the number of children of the node.
min
number <optional>
global lower limit on the number of children of the node.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Example
client.setChildMeta( '/a/b/c', { min: 0, max: 10, items:[ { id: 'a/b/dd', min: 0, max: 1 }, { id: 'a/b/ee', min: 4, max: 10 }, ] }, 'Adding containment rules to the node and setting global cardinality.');
-
setMemberAttribute(path, memberPath, setId, name, value [, msg])
-
Set the given attribute value that is connected to the membership (not the member node, so it only has a meaning in the context of the membership).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
memberPath
string the path/id of the member node.
setId
string the name of the set where the member exists.
name
string the name of the attribute.
value
object | string | null the value of the attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setMemberRegistry(path, memberPath, setId, name, value [, msg])
-
Set the given registry value that is connected to the membership (not the member node, so it only has a meaning in the context of the membership).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
memberPath
string the path/id of the member node.
setId
string the name of the set to expand.
name
string the name of the registry.
value
object | string | null the value of the registry.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setMeta(path, meta [, msg])
-
Set all the meta rules of a node based on a JSON. It has no effect on the inherited rules!
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
meta
object the directory of rules to be set.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setPointer(path, name, target [, msg])
-
Sets the value of the pointer of the given node.
Parameters:
Name Type Argument Description path
string the path/id of the node that we will modify.
name
string the name of the pointer to set.
target
string | null the id/path of the target node of the pointer. If the value is null, there will be no target for the pointer.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setPointerMeta(path, meta [, msg])
-
Creates a pointer/set meta rule with multiple potential target/member.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
meta
object the collection of pointer/set rules.
Properties
Name Type Argument Description items
Array.<object> array of target/member rules.
items[i].id
string the path/id of the target/member.
items[i].min
string the lower bound of the cardinality for the given target/member.
items[i].max
string the upper bound of the cardinality for the given target/member.
min
number <optional>
global lower limit on the number of target/member of the node. should be 0 for pointer!
max
number <optional>
global upper limit on the number of target/member of the node. should be 1 for pointer!
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
Examples
client.setPointerMeta( '/a/b/c', 'myPointer', { min: 0, max: 1, items:[ { id: 'a/b/dd', min: 0, max: 1 }, { id: 'a/b/ee', min: 0, max: 1 }, ] }, 'Adding pointer rules to the node.');
* client.setPointerMeta( '/a/b/c', 'mySet', { items:[ { id: 'a/b/dd'}, { id: 'a/b/ee'}, ] }, 'Adding set rules to the node.');
-
setPointerMetaTarget(path, name, targetPath, min, max [, msg])
-
Add a potential target/member to a pointer/set rule.
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
name
string the name of the pointer/set.
targetPath
string the path/id of the new pointer target/member.
min
integer the lower bound of the cardinality of the rule (for pointer it should be always 0).
max
integer the upper bound of the cardinality of the rule (for pointer it should be always 1).
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setRegistry(path, name, value, msg)
-
Method to set a registry entry of a given node.
Parameters:
Name Type Description path
string The path of the node in question.
name
string The name of the registry.
value
any The value of the registry to be set.
msg
string The message that should be attached to the commit that covers this update.
-
setSetAttribute(path, setName, attrName, attrValue [, msg])
-
Set the given attribute value of the set of the node (the value is connected to the node, but only in the context of the set).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
setName
string the name of the set where the member exists.
attrName
string the name of the attribute.
attrValue
object | string | null the value of the attribute.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
setSetRegistry(path, setName, regName, regValue [, msg])
-
Set the given registry value of the set of the node (the value is connected to the node, but only in the context of the set).
Parameters:
Name Type Argument Description path
string the path/id of the node that will be modified.
setName
string the name of the set where the member exists.
regName
string the name of the registry.
regValue
object | string | null the value of the registry.
msg
string <optional>
optional commit message, if not supplied a default one with the function name and input parameters will be used
-
startTransaction( [msg])
-
Starts a transaction where all changes to nodes are bundled into a single commit. All commit-messages for each change will be joined and separated by '\n'.
Parameters:
Name Type Argument Default Description msg
string <optional>
'[' Start of commit-message.
Example
var nodeId = 'someIdToANodeThatIsLoaded'; client.startTransaction('start of commitMessage'); // While transaction is open nothing will be committed to the server. client.setAttributes(nodeId, 'name', 'newName', 'changes within the transaction'); client.setRegistry(nodeId, 'position', {x: 100, y:200}, 'some more changes'); // When we have made all of our changes we make a single commit. client.completeTransaction('end of commitMessage', function (err, result) { // Here we have the option to get notified when the commit has reached the server // and been persisted in the database. // The commit hash of the new state of our model. console.log(result.hash); // If we are working in a branch - this is the status of our commit. // 'SYNCED', 'FORKED'. console.log(result.status); });
-
undo(branchName, callback)
-
Undo the latest change/commit, i.e. sets the branch-hash to point to the previous commit. Will immediately resolve with error if the provided branchName is not the same as the selected or if the current user did not make the latest change (see canRedo).
Parameters:
Name Type Description branchName
string Must match the active branch.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If the request failed.
commitResult
module:Storage~CommitResult The status of the commit made.
-
updateLibrary(name, blobHashLibraryInfoOrSeedName, callback)
-
Sends a server request to update the specified library at the current project and branch.
Parameters:
Name Type Argument Description name
string Name of library to update.
blobHashLibraryInfoOrSeedName
string | object If blobHash string given will update library from blob, if string will update from seed, otherwise project at info (will also be added to info at library).
blobHashOrLibraryInfo.projectId
string The projectId of your library.
blobHashOrLibraryInfo.branchName
string <optional>
The branch that your library follows in the origin project.
blobHashOrLibraryInfo.commitHash
string <optional>
The commit-hash of your library.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If request failed.
result
module:Storage~CommitResult Result from the commit made.
-
updateProjectFromFile(projectId, branchName, blobHashOrSeedName, callback)
-
Updates the given project and branch name with the provided context.
Parameters:
Name Type Description projectId
string Id of project to update.
branchName
string Branch that should be updated.
blobHashOrSeedName
string If blobHash string will update from the webgmex at the blob, if string will update from the webgmex seed.
callback
function Invoked when request completed.
Properties
Name Type Description err
null | Error If request failed.
result
module:Storage~CommitResult Result from the commit made.
-
updateTerritory(guid, patterns)
-
Updates the patterns for the territories defined for the "user" at guid.
Parameters:
Name Type Description guid
string The unique id of the added "user".
patterns
object The definition for the new territory.
Example
// The patterns are defined by using the ids of the nodes and optionally specifying a depth in the containment- hierarchy from that node client.updateTerritory('ae1b4f8e-32ea-f26f-93b3-ab9c8daa8a42', { '/a/b': { children: 0 // Will only add '/a/b' to the territory }, '/a/c': { // children can be left out, implies 0 }, '/a/d': { children: 1 // '/a/d' and all its children are included }, '/a/e': { children: 3 // We can go arbitrarily deep down (note in large models too big territories can be slow!) } });
Events
-
BRANCH_CHANGED
-
Fired when the open branch changed. The event could either return the name of the newly opened branch or null if there no longer is a branch opened.
Type: string | null
-
BRANCH_CLOSED
-
Fired when the currently opened branch is closed.
Type: string
-
BRANCH_OPENED
-
Fired when a branch is opened.
Type: string
-
BRANCH_STATUS_CHANGED
-
Fired when the branch status changes. The returned value is one of:
'SYNC'
- The local branch is in sync with the server.'AHEAD_SYNC'
- There are changes in the local branch that has not been sent to the server. The latest commit was synchronized.'AHEAD_NOT_SYNC'
- There are changes in the local branch that has not been sent to the server. The latest commit did not update the branch head. An action is required.'PULLING'
- External changes to the branch are being pulled into the branch.'ERROR'
- Some unexpected error happened.- (
'MERGING'
- a forked commit is attempted to be merged by the server (this is disabled by default))
Type: object
-
CONNECTED_USERS_CHANGED
-
Fired when there are changes among the users connected to the same branch-room (have the same project and branch opened).
Type: object
Properties:
Name Type Argument Description type
string 'BRANCH_ROOM_SOCKETS', 'CLIENT_STATE_NOTIFICATION'
projectId
string The id of the project
branchName
string The name of the branch
userId
string The user-id of the user who joined or left
socketId
string The unique socket-id of the user who joined or left (this can become hashed)
join
boolean | undefined <optional>
Whether or not the user joined or left the room (undefined -> false) this only applies to the 'BRANCH_ROOM_SOCKETS' event.
state
object | null <optional>
This only applies to the 'CLIENT_STATE_NOTIFICATION' event and is defined by the return value of the function passed in at client.registerUIStateGetter. Behind the scenes this emitted by the client when it receives a 'BRANCH_ROOM_SOCKETS' event in order to notify that new client that it has a user in the same room. But can also be emitted from the GUI by invoking client.emitStateNotification() (which is invoked by the generic webgme UI whenever its state changes). The state in the example below is specific for the generic webgme UI.
Examples
{ "type": "CLIENT_STATE_NOTIFICATION", "state": { "activeAspect": "All", "activeTab": 0, "layout": "DefaultLayout", "activeVisualizer": "ModelEditor", "activeProjectName": "demo+SignalFlowSystem", "activeBranchName": "master", "activeCommit": null, "_toBeActiveObject": "/682825457/607500954", "activeObject": "/682825457/607500954", "activeSelection": [ "/682825457/607500954" ] }, "projectId": "demo+SignalFlowSystem", "branchName": "master", "userId": "demo", "socketId": "nczll3cDYPfoK7IeAAAT" }
{ "projectId": "demo+SignalFlowSystem", "branchName": "master", "userId": "demo", "socketId": "nczll3cDYPfoK7IeAAAT", "type": "BRANCH_ROOM_SOCKETS", "join": true }
-
NETWORK_STATUS_CHANGED
-
Fired when the network status changes. The returned value is one of:
'CONNECTED'
- The websocket connection has been established (a project can be selected)'DISCONNECTED'
- The websocket connection is broken, the user can continue offline and any commits will be pushed automatically by the client when reconnected.'RECONNECTED'
- After a disconnect, the connection has been established again.'INCOMPATIBLE_CONNECTION'
- If the version of webgme-engine the server is different from the one loaded in the client at this point the browser must be refreshed.'CONNECTION_ERROR'
- Some unexpected error happened and the browser needs to be refreshed.
Type: string
-
NOTIFICATION
-
A notification with a message to the end-user. Could be generated by plugins or add-ons, but also by GUI widgets.
Type: object
-
PLUGIN_FINISHED
-
Fired when the execution of a plugin - initiated by this given client - finished. The event data contains information about the executed plugin.
Type: object
Properties:
Name Type Description id
string the id of the plugin
name
string the name of the plugin
executionId
string unique identifier that can be used for managing the execution and communicating with the running plugin
metadata
object the original metadata of the plugin
context
object the context of the plugin that has information about the project, active object, and configuration settings for the run
canBeAborted
boolean flag that show if the plugin can be aborted
start
string the exact time of the initiation of the plugin
clientSide
boolean flag showing if the execution is done on the client or the server side
result
object the result of the plugin - once it became available
-
PLUGIN_INITIATED
-
Fired when the client initiates a plugin execution. The event data contains information about the executed plugin.
Type: object
Properties:
Name Type Description id
string the id of the plugin
name
string the name of the plugin
executionId
string unique identifier that can be used for managing the execution and communicating with the running plugin
metadata
object the original metadata of the plugin
context
object the context of the plugin that has information about the project, active object, and configuration settings for the run
canBeAborted
boolean flag that show if the plugin can be aborted
start
string the exact time of the initiation of the plugin
clientSide
boolean flag showing if the execution is done on the client or the server side
result
object the result of the plugin - once it became available
-
PLUGIN_NOTIFICATION
-
Fired when the plugin sends a notification to the initiating client. The event data contains information about the executed plugin.
Type: object
Properties:
Name Type Argument Description pluginId
string the id of the plugin
pluginName
string the name of the plugin
pluginVersion
string the version of the plugin normally in the form of x.y.z
executionId
string unique identifier that can be used for managing the execution and communicating with the running plugin
projectId
string the id of the project context the plugin uses
branchName
string <optional>
the name of the branch the plugin runs in.
commitHash
string <optional>
the hash of the commit that represent the version that the plugin runs at.
notification
object the content of the notification, as the plugin control the content there are no mandatory fields
Properties
Name Type Argument Description message
string <optional>
the text content of the notification
severity
string <optional>
the severity of the notification ('debug', 'info' (default), 'warning', 'error').
type
string the exact type of the notification which should always be 'PLUGIN_NOTIFICATION'.
-
PROJECT_CLOSED
-
Fired when the currently opened project is closed.
Type: string
-
PROJECT_OPENED
-
Fired when a project is opened.
Type: string