Files
OpenNoodl/packages/noodl-runtime/src/nodes/std-library/data/newmodelnode.js
Michael Cartner b9c60b07dc Initial commit
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
2024-01-26 11:52:55 +01:00

52 lines
1.2 KiB
JavaScript

'use strict';
var Model = require('../../../model');
var ModelCRUDBase = require('./modelcrudbase');
var NewModelNodeDefinition = {
node: {
name: 'NewModel',
docs: 'https://docs.noodl.net/nodes/data/object/create-new-object',
displayNodeName: 'Create New Object',
inputs: {
new: {
displayName: 'Do',
group: 'Actions',
valueChangedToTrue: function () {
this.scheduleNew();
}
}
},
outputs: {
created: {
type: 'signal',
displayName: 'Done',
group: 'Events'
}
},
methods: {
scheduleNew: function () {
if (this.hasScheduledNew) return;
this.hasScheduledNew = true;
this.scheduleAfterInputsHaveUpdated(() => {
this.hasScheduledNew = false;
const newModel = (this.nodeScope.modelScope || Model).get();
this._pushInputValues(newModel);
this.setModel(newModel);
this.sendSignalOnOutput('created');
});
}
}
}
};
ModelCRUDBase.addBaseInfo(NewModelNodeDefinition);
ModelCRUDBase.addModelId(NewModelNodeDefinition, { includeOutputs: true });
ModelCRUDBase.addInputProperties(NewModelNodeDefinition);
module.exports = NewModelNodeDefinition;