#286 Fixed issues with composition not surviving through create wizard

This commit is contained in:
Henry 2015-11-19 13:11:01 -08:00
parent 2e2b18eaa5
commit f45e236281
5 changed files with 17 additions and 12 deletions

View File

@ -150,7 +150,7 @@
"provides": "actionService",
"type": "provider",
"implementation": "creation/CreateActionProvider.js",
"depends": [ "$injector", "$q", "typeService",
"depends": ["$q", "typeService",
"navigationService"]
},
{

View File

@ -51,7 +51,7 @@ define(
* which handles changes in navigation. It allows the object
* being browsed/edited to be set.
*/
function CreateAction(type, parent, context, $injector, $q, navigationService) {
function CreateAction(type, parent, context, $q, navigationService) {
this.metadata = {
key: 'create',
glyph: type.getGlyph(),

View File

@ -46,10 +46,9 @@ define(
* introduced in this bundle), responsible for handling actual
* object creation.
*/
function CreateActionProvider($injector, $q, typeService, navigationService) {
function CreateActionProvider($q, typeService, navigationService) {
this.typeService = typeService;
this.navigationService = navigationService;
this.$injector = $injector;
this.$q = $q;
}
@ -75,7 +74,6 @@ define(
type,
destination,
context,
self.$injector,
self.$q,
self.navigationService
);

View File

@ -34,9 +34,9 @@ define(
* @memberof platform/commonUI/browse
* @constructor
*/
function CreateWizard(type, parent, policyService) {
function CreateWizard(type, parent, policyService, initialModel) {
this.type = type;
this.model = type.getInitialModel();
this.model = initialModel || type.getInitialModel();
this.properties = type.getProperties();
this.parent = parent;
this.policyService = policyService;

View File

@ -76,19 +76,26 @@ define(
function doWizardSave(parent) {
var context = domainObject.getCapability("context");
var wizard = new CreateWizard(domainObject.useCapability('type'), parent, self.policyService);
var wizard = new CreateWizard(domainObject.useCapability('type'), parent, self.policyService, domainObject.getModel());
function mergeObjects(fromObject, toObject){
Object.keys(fromObject).forEach(function(key) {
toObject[key] = fromObject[key];
});
}
// Create and persist the new object, based on user
// input.
function buildObjectFromInput(formValue) {
var parent = wizard.getLocation(formValue),
newModel = wizard.createModel(formValue);
formModel = wizard.createModel(formValue);
formModel.location = parent.getId();
//Replace domain object model with model collected
// from user form.
domainObject.useCapability("mutation", function(){
newModel.location = parent.getId();
newModel.composition = domainObject.getModel().composition;
return newModel;
//Replace object model with the model from the form
return formModel;
});
return domainObject;
}