Commit a0b3d64eed334fc579fa5b73aec3b72458f1cfdc

Authored by Benjamin Renard
1 parent 5d15649f

Derived parameter compilation after a save

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 ),