@@ -134,7 +134,7 @@ qx.Class.define("osparc.data.model.Workbench", {
134134 const nodeData = nodeDatas [ nodeId ] ;
135135 const nodeUiData = nodeUiDatas [ nodeId ] ;
136136 const node = this . __createNode ( nodeData [ "key" ] , nodeData [ "version" ] , nodeId ) ;
137- nodesPromises . push ( this . __populateNode ( node , nodeData , nodeUiData ) ) ;
137+ nodesPromises . push ( node . fetchMetadataAndPopulate ( nodeData , nodeUiData ) ) ;
138138 }
139139 return Promise . allSettled ( nodesPromises ) ;
140140 } ,
@@ -147,19 +147,6 @@ qx.Class.define("osparc.data.model.Workbench", {
147147 return node ;
148148 } ,
149149
150- __populateNode : function ( node , nodeData , nodeUiData ) {
151- return node . fetchMetadataAndPopulate ( nodeData , nodeUiData )
152- . then ( ( ) => {
153- if ( osparc . utils . Utils . eventDrivenPatch ( ) ) {
154- node . listenToChanges ( ) ;
155- node . addListener ( "projectDocumentChanged" , e => this . fireDataEvent ( "projectDocumentChanged" , e . getData ( ) ) , this ) ;
156- }
157- node . addListener ( "keyChanged" , ( ) => this . fireEvent ( "reloadModel" ) , this ) ;
158- node . addListener ( "changeInputNodes" , ( ) => this . fireDataEvent ( "pipelineChanged" ) , this ) ;
159- node . addListener ( "reloadModel" , ( ) => this . fireEvent ( "reloadModel" ) , this ) ;
160- node . addListener ( "updateStudyDocument" , ( ) => this . fireEvent ( "updateStudyDocument" ) , this ) ;
161- } ) ;
162- } ,
163150
164151 __deserializeEdges : function ( workbenchData ) {
165152 for ( const nodeId in workbenchData ) {
@@ -382,7 +369,7 @@ qx.Class.define("osparc.data.model.Workbench", {
382369
383370 this . fireEvent ( "restartAutoSaveTimer" ) ;
384371 const node = this . __createNode ( key , version , nodeId ) ;
385- this . __populateNode ( node ) ;
372+ node . fetchMetadataAndPopulate ( ) ;
386373 // OM here: then maybe
387374 this . __giveUniqueNameToNode ( node , node . getLabel ( ) ) ;
388375 node . checkState ( ) ;
@@ -406,50 +393,57 @@ qx.Class.define("osparc.data.model.Workbench", {
406393 } ,
407394
408395 __initNodeSignals : function ( node ) {
409- if ( node ) {
410- node . addListener ( "showInLogger" , e => this . fireDataEvent ( "showInLogger" , e . getData ( ) ) , this ) ;
411- node . addListener ( "retrieveInputs" , e => this . fireDataEvent ( "retrieveInputs" , e . getData ( ) ) , this ) ;
412- node . addListener ( "fileRequested" , e => this . fireDataEvent ( "fileRequested" , e . getData ( ) ) , this ) ;
413- node . addListener ( "filePickerRequested" , e => {
414- const {
415- portId,
416- nodeId,
417- file
418- } = e . getData ( ) ;
419- this . __filePickerNodeRequested ( nodeId , portId , file ) ;
420- } , this ) ;
421- node . addListener ( "parameterRequested" , e => {
422- const {
423- portId,
424- nodeId
425- } = e . getData ( ) ;
426- this . __parameterNodeRequested ( nodeId , portId ) ;
427- } , this ) ;
428- node . addListener ( "probeRequested" , e => {
429- const {
430- portId,
431- nodeId
432- } = e . getData ( ) ;
433- this . __probeNodeRequested ( nodeId , portId ) ;
434- } , this ) ;
435- node . addListener ( "fileUploaded" , ( ) => {
436- // downstream nodes might have started downloading file picker's output.
437- // show feedback to the user
438- const downstreamNodes = this . __getDownstreamNodes ( node ) ;
439- downstreamNodes . forEach ( downstreamNode => {
440- downstreamNode . getPortIds ( ) . forEach ( portId => {
441- const link = downstreamNode . getLink ( portId ) ;
442- if ( link && link [ "nodeUuid" ] === node . getNodeId ( ) && link [ "output" ] === "outFile" ) {
443- // connected to file picker's output
444- setTimeout ( ( ) => {
445- // start retrieving state after 2"
446- downstreamNode . retrieveInputs ( portId ) ;
447- } , 2000 ) ;
448- }
449- } ) ;
450- } ) ;
451- } , this ) ;
396+ if ( osparc . utils . Utils . eventDrivenPatch ( ) ) {
397+ node . listenToChanges ( ) ;
398+ node . addListener ( "projectDocumentChanged" , e => this . fireDataEvent ( "projectDocumentChanged" , e . getData ( ) ) , this ) ;
452399 }
400+ node . addListener ( "keyChanged" , ( ) => this . fireEvent ( "reloadModel" ) , this ) ;
401+ node . addListener ( "changeInputNodes" , ( ) => this . fireDataEvent ( "pipelineChanged" ) , this ) ;
402+ node . addListener ( "reloadModel" , ( ) => this . fireEvent ( "reloadModel" ) , this ) ;
403+ node . addListener ( "updateStudyDocument" , ( ) => this . fireEvent ( "updateStudyDocument" ) , this ) ;
404+
405+ node . addListener ( "showInLogger" , e => this . fireDataEvent ( "showInLogger" , e . getData ( ) ) , this ) ;
406+ node . addListener ( "retrieveInputs" , e => this . fireDataEvent ( "retrieveInputs" , e . getData ( ) ) , this ) ;
407+ node . addListener ( "fileRequested" , e => this . fireDataEvent ( "fileRequested" , e . getData ( ) ) , this ) ;
408+ node . addListener ( "filePickerRequested" , e => {
409+ const {
410+ portId,
411+ nodeId,
412+ file
413+ } = e . getData ( ) ;
414+ this . __filePickerNodeRequested ( nodeId , portId , file ) ;
415+ } , this ) ;
416+ node . addListener ( "parameterRequested" , e => {
417+ const {
418+ portId,
419+ nodeId
420+ } = e . getData ( ) ;
421+ this . __parameterNodeRequested ( nodeId , portId ) ;
422+ } , this ) ;
423+ node . addListener ( "probeRequested" , e => {
424+ const {
425+ portId,
426+ nodeId
427+ } = e . getData ( ) ;
428+ this . __probeNodeRequested ( nodeId , portId ) ;
429+ } , this ) ;
430+ node . addListener ( "fileUploaded" , ( ) => {
431+ // downstream nodes might have started downloading file picker's output.
432+ // show feedback to the user
433+ const downstreamNodes = this . __getDownstreamNodes ( node ) ;
434+ downstreamNodes . forEach ( downstreamNode => {
435+ downstreamNode . getPortIds ( ) . forEach ( portId => {
436+ const link = downstreamNode . getLink ( portId ) ;
437+ if ( link && link [ "nodeUuid" ] === node . getNodeId ( ) && link [ "output" ] === "outFile" ) {
438+ // connected to file picker's output
439+ setTimeout ( ( ) => {
440+ // start retrieving state after 2"
441+ downstreamNode . retrieveInputs ( portId ) ;
442+ } , 2000 ) ;
443+ }
444+ } ) ;
445+ } ) ;
446+ } , this ) ;
453447 } ,
454448
455449 getFreePosition : function ( node , toTheLeft = true ) {
@@ -879,11 +873,13 @@ qx.Class.define("osparc.data.model.Workbench", {
879873 } ,
880874
881875 __addNodesFromPatches : function ( nodesAdded , workbenchPatchesByNode ) {
876+ console . log ( "Adding nodes from patches:" , nodesAdded , workbenchPatchesByNode ) ;
877+
882878 // not solved yet, log the user out to avoid issues
883879 qx . core . Init . getApplication ( ) . logout ( qx . locale . Manager . tr ( "Potentially conflicting updates coming from a collaborator" ) ) ;
884880 return ;
885881
886- const promises = nodesAdded . map ( nodeId => {
882+ nodesAdded . forEach ( nodeId => {
887883 const addNodePatch = workbenchPatchesByNode [ nodeId ] . find ( workbenchPatch => {
888884 const pathParts = workbenchPatch . path . split ( "/" ) ;
889885 return pathParts . length === 3 && workbenchPatch . op === "add" ;
@@ -894,18 +890,11 @@ qx.Class.define("osparc.data.model.Workbench", {
894890 if ( index > - 1 ) {
895891 workbenchPatchesByNode [ nodeId ] . splice ( index , 1 ) ;
896892 }
897- // this is an async operation with an await
898- return this . createNode ( nodeData [ "key" ] , nodeData [ "version" ] ) ;
893+ const node = this . __createNode ( nodeData [ "key" ] , nodeData [ "version" ] , nodeId ) ;
894+ node . fetchMetadataAndPopulate ( nodeData , null ) ;
895+ // OM here: then maybe
896+ node . checkState ( ) ;
899897 } ) ;
900- return Promise . all ( promises )
901- . then ( nodes => {
902- // may populate it
903- // after adding nodes, we can apply the patches
904- this . __updateNodesFromPatches ( workbenchPatchesByNode ) ;
905- } )
906- . catch ( err => {
907- console . error ( "Error adding nodes from patches:" , err ) ;
908- } ) ;
909898 } ,
910899
911900 __updateNodesFromPatches : function ( workbenchPatchesByNode ) {
0 commit comments