Commit a0b3d64eed334fc579fa5b73aec3b72458f1cfdc
1 parent
5d15649f
Exists in
master
and in
112 other branches
Derived parameter compilation after a save
Showing
4 changed files
with
65 additions
and
5 deletions
Show diff stats
js/app/models/InteractiveNode.js
@@ -602,8 +602,8 @@ Ext.define('amdaModel.InteractiveNode', { | @@ -602,8 +602,8 @@ Ext.define('amdaModel.InteractiveNode', { | ||
602 | * Callback method needed to execute node deletion in tree if id in result or to show error msg | 602 | * Callback method needed to execute node deletion in tree if id in result or to show error msg |
603 | */ | 603 | */ |
604 | realDelete : function() | 604 | realDelete : function() |
605 | - { | ||
606 | - AmdaAction.deleteObject({id: this.get('id'), leaf: this.isLeaf(), nodeType: this.get('nodeType')}, function(res,e){ | 605 | + { |
606 | + AmdaAction.deleteObject({id: this.get('id'), leaf: this.isLeaf(), nodeType: this.get('nodeType')}, function(res,e){ | ||
607 | //TODO proper errors handling | 607 | //TODO proper errors handling |
608 | // node deletion in tree | 608 | // node deletion in tree |
609 | if (res) { // if success | 609 | if (res) { // if success |
@@ -624,6 +624,14 @@ Ext.define('amdaModel.InteractiveNode', { | @@ -624,6 +624,14 @@ Ext.define('amdaModel.InteractiveNode', { | ||
624 | if (editedNode.get('fileObject').get('fileName') == me.get('text')) | 624 | if (editedNode.get('fileObject').get('fileName') == me.get('text')) |
625 | isThisFile = true; | 625 | isThisFile = true; |
626 | 626 | ||
627 | + if (me.$className == 'amdaModel.DerivedParamNode') | ||
628 | + { | ||
629 | + var obj = { | ||
630 | + paramId : 'ws_'+me.get('text') | ||
631 | + }; | ||
632 | + AmdaAction.compilParamDelete(obj); | ||
633 | + } | ||
634 | + | ||
627 | if (editedNode === me || isThisFile){ | 635 | if (editedNode === me || isThisFile){ |
628 | var newNode = Ext.ModelManager.create({leaf : true}, me.$className); | 636 | var newNode = Ext.ModelManager.create({leaf : true}, me.$className); |
629 | // several tabs could be connected to one node | 637 | // several tabs could be connected to one node |
js/app/views/ParameterUI.js
@@ -83,6 +83,25 @@ Ext.define('amdaUI.ParameterUI', { | @@ -83,6 +83,25 @@ Ext.define('amdaUI.ParameterUI', { | ||
83 | this.constructionField.setValue(expression); | 83 | this.constructionField.setValue(expression); |
84 | }, | 84 | }, |
85 | 85 | ||
86 | + /** | ||
87 | + * Parameter compilation | ||
88 | + */ | ||
89 | + compilParam : function($action) { | ||
90 | + var obj = { | ||
91 | + paramId : 'ws_'+this.object.get('name') | ||
92 | + }; | ||
93 | + AmdaAction.compilParam(obj, function (result, e) { | ||
94 | + if (!result || !result.success) | ||
95 | + { | ||
96 | + if (result.message) | ||
97 | + myDesktopApp.warningMsg(result.message); | ||
98 | + else | ||
99 | + myDesktopApp.warningMsg('Unknown error during parameter compilation'); | ||
100 | + return; | ||
101 | + } | ||
102 | + }); | ||
103 | + }, | ||
104 | + | ||
86 | /** | 105 | /** |
87 | * save method called by Save button | 106 | * save method called by Save button |
88 | */ | 107 | */ |
@@ -108,7 +127,7 @@ Ext.define('amdaUI.ParameterUI', { | @@ -108,7 +127,7 @@ Ext.define('amdaUI.ParameterUI', { | ||
108 | this.object = paramobj; | 127 | this.object = paramobj; |
109 | if (toRename) paramModule.linkedNode.toRename = true; | 128 | if (toRename) paramModule.linkedNode.toRename = true; |
110 | } | 129 | } |
111 | - paramModule.linkedNode.create(); | 130 | + paramModule.linkedNode.create({scope : this, callback : this.compilParam}); |
112 | paramModule.linkedNode.set('iconCls', 'icon-scalar'); | 131 | paramModule.linkedNode.set('iconCls', 'icon-scalar'); |
113 | paramModule.linkedNode.set('isParameter', true); | 132 | paramModule.linkedNode.set('isParameter', true); |
114 | 133 | ||
@@ -116,9 +135,9 @@ Ext.define('amdaUI.ParameterUI', { | @@ -116,9 +135,9 @@ Ext.define('amdaUI.ParameterUI', { | ||
116 | // this.object.fireEvent('create'); | 135 | // this.object.fireEvent('create'); |
117 | } else { | 136 | } else { |
118 | paramModule.linkedNode.set('contextNode',paramModule.contextNode); | 137 | paramModule.linkedNode.set('contextNode',paramModule.contextNode); |
119 | - paramModule.linkedNode.update(); | 138 | + paramModule.linkedNode.update({scope : this, callback : this.compilParam}); |
120 | // this.object.fireEvent('modify'); | 139 | // this.object.fireEvent('modify'); |
121 | - } | 140 | + } |
122 | } | 141 | } |
123 | }, | 142 | }, |
124 | 143 |
php/classes/AmdaAction.php
@@ -842,6 +842,33 @@ class AmdaAction { | @@ -842,6 +842,33 @@ class AmdaAction { | ||
842 | } | 842 | } |
843 | 843 | ||
844 | /* | 844 | /* |
845 | + * Generate derived parameter compilation | ||
846 | + */ | ||
847 | + public function compilParam($obj) | ||
848 | + { | ||
849 | + require_once(INTEGRATION_SRC_DIR."RequestManager.php"); | ||
850 | + return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMSGEN); | ||
851 | + } | ||
852 | + | ||
853 | +/* | ||
854 | + * Delete derived parameter compilation | ||
855 | + */ | ||
856 | + public function compilParamDelete($obj) | ||
857 | + { | ||
858 | + require_once(INTEGRATION_SRC_DIR."RequestManager.php"); | ||
859 | + $res = $this->checkUser($obj); | ||
860 | + | ||
861 | + if (!$res['success']) | ||
862 | + return $res; | ||
863 | + | ||
864 | + IHMConfigClass::setUserName($this->user); | ||
865 | + $libParamPath = IHMConfigClass::getCompilationPath()."lib/".$obj->paramId.".so"; | ||
866 | + if (file_exists($libParamPath)) | ||
867 | + unlink($libParamPath); | ||
868 | + return array("success" => true); | ||
869 | + } | ||
870 | + | ||
871 | +/* | ||
845 | * kill plot process by tabID | 872 | * kill plot process by tabID |
846 | */ | 873 | */ |
847 | 874 |
php/config.php
@@ -251,6 +251,12 @@ $API = array( | @@ -251,6 +251,12 @@ $API = array( | ||
251 | 'len'=>2 | 251 | 'len'=>2 |
252 | // 'formHandler'=>true | 252 | // 'formHandler'=>true |
253 | ), | 253 | ), |
254 | + 'compilParam' => array( | ||
255 | + 'len'=>1 | ||
256 | + ), | ||
257 | + 'compilParamDelete' => array( | ||
258 | + 'len'=>1 | ||
259 | + ), | ||
254 | 'killPlotRequest' =>array( | 260 | 'killPlotRequest' =>array( |
255 | 'len'=>1 | 261 | 'len'=>1 |
256 | ), | 262 | ), |