diff --git a/platform/core/bundle.json b/platform/core/bundle.json index 330ac1c2b9..0c68dcfacd 100644 --- a/platform/core/bundle.json +++ b/platform/core/bundle.json @@ -193,6 +193,11 @@ "key": "delegation", "implementation": "capabilities/DelegationCapability.js", "depends": [ "$q" ] + }, + { + "key": "creation", + "implementation": "capabilities/CreationCapability.js", + "depends": [ "$injector" ] } ], "services": [ diff --git a/platform/core/src/capabilities/CreationCapability.js b/platform/core/src/capabilities/CreationCapability.js index 1b19bc106b..ec43d5c071 100644 --- a/platform/core/src/capabilities/CreationCapability.js +++ b/platform/core/src/capabilities/CreationCapability.js @@ -26,17 +26,31 @@ define( function (DomainObjectImpl, uuid) { 'use strict'; - function CreationCapability(capabilityService, domainObject) { - this.capabilityService = capabilityService; + function CreationCapability($injector, domainObject) { + this.$injector = $injector; this.domainObject = domainObject; } + /** + * @private + */ + CreationCapability.prototype.getCapabilities = function (model) { + if (!this.capabilityService) { + this.capabilityService = + this.$injector.get('capabilityService'); + } + return this.capabilityService.getCapabilities(model); + }; + CreationCapability.prototype.create = function (model) { var id = uuid(), capabilities = this.capabilityService.getCapabilities(model); return new DomainObjectImpl(id, model, capabilities); }; + CreationCapability.prototype.invoke = + CreationCapability.prototype.create; + return CreationCapability; } );