dmx-api
v3.0.1
Published
API and utilities for DMX 5 based frontends
Downloads
108
Readme
DMX 5 base types and API
Version History
3.0.1 -- Jun 6, 2023
- Improvement:
- In case of a dropped WebSocket connection an alert is shown and the page is reloaded
3.0 -- May 19, 2023
Version 3.0 of the dmx-api
library extends/modifies the API in order to support a wider variety of frontend
applications. Additionally, depending on application type, the launch time is reduced as less data is transferred from
server (#497,
#501). This required some breaking changes in the
library's init()
function.
- BREAKING CHANGES
- changed behavior of the library's
init()
function:- The client-side type cache is not fully pre-populated by default anymore. Instead the application pass
topicTypes
config to pre-populate selectively, or passall
. Depending on application type this results in less data transfer at application launch. - The SVG utility for FontAwesome icons is not initialized by default anymore. Instead an application can
initialize it on-demand (by calling
dmx.icons.init()
). Applications who don't need it launch quicker as downloading the FontAwesome SVG data (450K) is omitted.
- The client-side type cache is not fully pre-populated by default anymore. Instead the application pass
- rename class
Type
->DMXType
- remove
getPosition()
fromViewTopic
. Use the newpos
getter instead.
- changed behavior of the library's
- Improvement:
- The library's
init()
function optionally opens the WebSocket for client-synchronization (ifmessageHandler
config is passed). The application no longer depends on dmx-websocket module then. - Vanilla axios http instance (without error interceptor set by application) is
exported as
rpc._http
.
- The library's
- Model:
- change
Type
'snewFormModel()
:object
parameter is now optional- add
allChildren
parameter (optional)
- add (optional)
level
parameter toCompDef
'semptyChildInstance()
- add
panX
,panY
,zoom
,bgImageUrl
getters toTopicmap
- add
updateTopic()
,updateAssoc()
toTopicmap
(part of dmx-topicmap-panel protocol) - add
pos
getter toViewTopic
- change
- RPC:
- add
getTopicType()
andgetAssocType()
- add
includeChildren
parameter togetTopicmap()
- add
includeChildren
andincludeAssocChildren
parameters togetAssignedWorkspace()
- add
getMemberships()
to get the members of a workspace - add
bulkUpdateUserMemberships()
andbulkUpdateWorkspaceMemberships()
- add
deleteWorkspace()
- change
updateTopic()
: returnsTopic
plus directives (formerly just directives) - change
login()
: returned promise resolves with username (formerly undefined)
- add
- Utils:
- add
stripHtml()
- add
- Fix:
- fixed a bug where nested entities loose their child values while update request (thanks to @gevlish)
2.1 -- Jun 13, 2021
- Model:
- add class
RoleType
- add
isEditable
getter toDMXObject
- add
isRoleType
getter toDMXObject
- add
asRoleType()
toTopic
- add
arrowShape
andhollow
getters toPlayer
- add
isNoneditable
getter toType
- add class
- RPC:
- add
getAllRoleTypes()
- add
getTopicTypeImplicitly()
,getAssocTypeImplicitly()
,getRoleTypeImplicitly()
- add
getConfigDefs()
,getConfigTopic()
,updateConfigTopic()
- add
- Utils:
- add
formatFileSize()
- add
round()
- add
- Fixes:
- Model: fix
TopicType.newTopicModel()
regarding identity attributes - Model:
_newInstance()
fills in0
object value as is (not as''
) - Type cache:
initTypeCache
action returns promise
- Model: fix
2.0 -- Dec 30, 2020
- BREAKING CHANGES
- rename
restClient
->rpc
- various
dm5
->dmx
renamings - Model:
- replace various
DMXObject
,Type
,CompDef
methods by getters - drop various
DMXObject
,Topic
,Type
methods
- replace various
- rename
- Feature:
- SVG icon utility (for FontAwesome 4.7)
- support for
SameSite
cookie attribute
- Model:
- add
newFormModel()
toType
- add
getOtherPlayerId()
toAssoc
- add
- RPC:
- add
query()
- add
- Chore:
- adapt URLs to
github.com/dmx-systems
- remove
/dist
from repo - code run through
eslint
- adapt URLs to
1.0 -- Aug 4, 2020
- Feature: Configurable Icon Renderers
- new config option:
iconRenderers
- new config option:
- Model:
- drop
toExternalForm()
method fromType
class
- drop
- REST client:
- add
getTopicByValue()
,getTopicsByValue()
- add
queryTopics()
- add
getAdminWorkspaceId()
- generic
getPermissions()
method
- add
- Global:
- add
isAdmin()
- add
- Fix:
- Model:
fillChildren()
when multi-value is empty array
- Model:
0.37 -- Mar 30, 2020
- Remove "Geomaps" API
- Model:
- add
assignToWorkspace()
toDMXObject
- add
- REST client:
- add
assignToWorkspace()
method
- add
0.36 -- Nov 21, 2019
- Model:
- add
equals()
toDMXObject
- add
hasObject(id)
andhasVisibleObject()
toTopicmap
- Fix: TopicType's
newTopicModel()
initializestypeUri
of all child topic's (recursively)
- add
- REST client:
- add
getPrivateWorkspace()
method - add
searchChildTopics
boolean param (optional) toqueryTopicsFulltext()
- clears the permission cache on
login()
/logout()
- add
- Type cache: add
getAllTopicTypes()
,getAllAssocTypes()
,getAllDataTypes()
,getAllRoleTypes()
methods - Utils: add
deleteCookie()
0.35 -- Aug 26, 2019
- Utils:
fulltextQuery()
supports single-letter whole-word search
0.34 -- Aug 23, 2019
- Utils: add param
allowSingleLetterSearch
tofulltextQuery()
0.33 -- Aug 15, 2019
- Model: add
getRelatedTopicsWithoutChilds()
to DMXObject - REST client:
- add
getRelatedTopicsWithoutChilds()
- suppress error handler for certain requests
- add
- Utils: add
fulltextQuery()
0.32 -- Jul 22, 2019
- Several API and JSON renamings:
- "AssocDef" -> "CompDef" (composition definition)
- "Role" -> "Player"
- "Childs" -> "Children"
- REST client:
createTopicmap()
: dropisPrivate
param, addviewProps
param- Rename
searchTopics()
->queryTopicsFulltext()
- Change license to
AGPL-3.0
0.31 -- May 27, 2019
- Support for icon color and background color
- Support for role types
- REST client: support for authorization methods
- Model: replace DMXObject
getType()
bytype
getter
0.30 -- Apr 22, 2019
- Model: topic/assoc hide implies unpin
- REST client: Topicmap
setTopicPositions()
does x/y rounding - REST client: adapt to server-side Topicmaps API (
setTopicPositions()
sends object)
0.29 -- Apr 1, 2019
- Support for assoc visibility
- Support for topicmap pan/zoom state
- Support for geomap center/zoom state
0.28 -- Mar 2, 2019
- Support for retrieving topic/assoc meta data (timestamps, creator/modifier, workspace assignment, ...)
0.27 -- Jan 29, 2019
- Model: more support for assocs with assoc players
- Type cache: exported as
dm5.typeCache
- Library is build as UMD and advertised via
unpkg
field (package.json) - Change license to
GPL-3.0-or-later
0.26 -- Jan 5, 2019
- Model: consolidate
DMXObject
,Player
, andTopicmap
0.25 -- Dec 21, 2018
- Various changes in Model, REST client, and Type cache
0.24 -- Nov 24, 2018
- Model:
- add
isTopicType()
,isAssocType()
toType
- adapt
Type.isComposite()
to new data typedmx.core.composite
- drop
indexModes
fromType
- drop
getIdentityAssocDefs()
fromType
- Fix: topicmap
ViewAssoc
reactivity - Fix:
AssocRole
getPlayer()
for topic 0
- add
- REST client:
- add
createUserAccount()
- add
0.23 -- Nov 7, 2018
- Support for geomaps (new model class
Geomap
, new REST client methodsgetGeomap()
andgetDomainTopics()
) - Model: new methods in
Type
:isValue()
,isIdentity()
,getIdentityAssocDefs()
- Utils: new method
debounce()
0.22 -- Oct 21, 2018
- Model:
- new methods in
Topicmap
:filterTopics()
,filterAssocs()
- new method in
Assoc
:getColor()
- dropped method in
Topicmap
:visibleTopicIds()
. Use the more genericfilterTopics()
instead.
- new methods in
0.21 -- Oct 6, 2018
- Model: add
Topicmap.visibleTopicIds()
- Model fix:
Topicmap
reactivity
0.20 -- Aug 18, 2018
- Model:
- Drop assoc types "Aggregation Definition" and "Aggregation"
- "Cardinality" definition makes use of type system
- Drop concept "Parent Cardinality"
- REST client:
- New function:
createAssocType()
createTopic()
andcreateAssoc()
return directives too- Config property
onHttpError
is optional
- New function:
- Type cache: fix synchronization of
UPDATE_TYPE
directives
0.19 -- Jul 31, 2018
- Change type URI prefixes
dm4
->dmx
- Add GitLab CI/CD
0.18 -- Jul 17, 2018
- Model extension:
AssocRole.getPlayerId()
,Topicmap.getObject(id)
,Topicmap.getPosition(id)
- Type cache: process delete-type directives
0.17 -- Jun 20, 2018
- Support for backend "multi" API:
- New in REST client:
hideMulti()
,deleteMulti()
,setTopicPositions()
- New in REST client:
- Model: new in
ViewTopic
/ViewAssoc
:isPinned()
,setPinned()
0.16 -- May 1, 2018
- Distribute in pre-compiled form
0.15 -- Apr 10, 2018
- Init option
onHttpError
allows the host application to handle HTTP errors.
0.14 -- Apr 7, 2018
- Model: class
ViewAssoc
is exported - REST client fix:
createTopicmap()
returns aTopic
object
0.13 -- Mar 25, 2018
- Model:
Topicmap.revealTopic()
'spos
param is optional. If not given it's up to the topicmap renderer to position the topic. - Utils:
clone()
for deep-cloning arbitrary objects - Depends on module
clone
insteadlodash.clonedeep
0.12 -- Mar 10, 2018
- Model + REST client: support for "view props"
- Model: new in
ViewTopic
/ViewAssoc
:fetchObject()
- Utils:
isEmpty()
- Utils fix:
instantiateChilds()
has no side effect
0.11 -- Feb 21, 2018
- Model: new in
DeepaMehtaObject
:isTopic()
,isAssoc()
,clone()
- REST client:
logout()
returns a promise.
0.10 -- Feb 3, 2018
- Support for access control
0.9 -- Jan 13, 2018
- Support for cardinality "many"
0.8 -- Dec 5, 2017
- Support for "relating associations"
0.7 -- Nov 19, 2017
- Client-synchronization for types
0.6 -- Oct 19, 2017
- Create/edit types
0.5 -- Oct 3, 2017
- Create topicmaps/workspaces
0.4 -- Jul 17, 2017
0.3 -- Jun 30, 2017
0.2 -- Jun 14, 2017
0.1 -- Apr 28, 2017
Jörg Richter
Jun 6, 2023