Commit 98c92bbf5c6df937a9fb5cdd0b51c5fb11c94a8f

Authored by Erdogan Furkan
1 parent b0f72ee0

#10557 - Done (Maybe some minor fixes to do)

generic_data/SpecialParameters/SpecialParams.xml
1 1 <?xml version="1.0"?>
2 2 <special name="Special" desc="Special_parameter" xml:id="specialParam-treeRootNode">
3   - <group xml:id="TimeStampAll" name="TimeStamp" desc="Time fonctions" >
4   - <parameter name='Bonjour' xml:id="timestamp"/>
  3 + <group xml:id="ConstantsAll" name = "Constants" desc = "Usable constants for scalar, vector of matrix cases.">
  4 + <parameter name ="Scalar" xml:id="constant_scal"/>
  5 + <parameter name ="Vector" xml:id="constant_vec"/>
  6 + <parameter name ="Matrix" xml:id="constant_mat"/>
  7 + </group>
  8 + <group xml:id="TimeStampAll" name="TimeStamp" desc="Time parameters : Timestamp gives you the elapsed time in seconds since 01/01/1970 and Timestamp from gives the same since a time decided by the user." >
  9 + <parameter name='Timestamp' xml:id="timestamp"/>
  10 + <parameter name='Timestamp From' xml:id="timestampfrom"/>
5 11 </group>
6 12 </special>
... ...
js/app/models/SpecialParamNode.js
... ... @@ -29,25 +29,85 @@ Ext.define(&#39;amdaModel.SpecialParamNode&#39;, {
29 29  
30 30 constructor : function(config){
31 31 this.callParent(arguments);
  32 +
  33 + this.set('moduleId',myDesktopApp.dynamicModules.param.id);
  34 + this.set('objectDataModel',amdaModel.Parameter.$className);
32 35 },
33 36  
34 37 localMenuItems : function() {
35 38 var menuItems =
36   - [];
  39 + [{
  40 + fnId: 'leaf-plotParam',
  41 + text: 'Plot Parameter',
  42 + hidden: true
  43 + }, {
  44 + fnId: 'leaf-downParam',
  45 + text: 'Download Parameter',
  46 + hidden: true
  47 + }, {
  48 + fnId: 'para-plotParam',
  49 + text: 'Plot Parameter',
  50 + hidden: true
  51 + }, {
  52 + fnId: 'para-downParam',
  53 + text: 'Download Parameter',
  54 + hidden: true
  55 + },{
  56 + fnId : 'leaf-createDerivedParam',
  57 + text : 'Create Derived Parameter',
  58 + hidden : true
  59 + },];
37 60 return menuItems;
38 61 },
39 62  
40 63 getAllContextMenuItems: function(){
41   -
42   - // var menuItems = this.allMenuItems('File');
43 64 var locMenuItems = this.localMenuItems();
44   -
45   - // return Ext.Array.merge(menuItems,locMenuItems);
46   - return locMenuItems;
  65 + return locMenuItems;
47 66 },
48 67  
49 68 onMenuItemClick : function(menu,item,event) {
50   -
  69 + var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length);
  70 + if(item){
  71 + switch (item.fnId)
  72 + {
  73 + case 'root-collapseAll':
  74 + case 'dire-collapseAll':
  75 + case 'miss-collapseAll':
  76 + if(this && !this.isLeaf()) {
  77 + this.collapse(true);
  78 + }
  79 + break;
  80 + case 'leaf-createDerivedParam':
  81 + this.createLeaf(this);
  82 + break;
  83 + case 'leaf-plotParam':
  84 + case 'para-plotParam':
  85 + this.createPlot(this);
  86 + break;
  87 + case 'leaf-downParam':
  88 + case 'para-downParam':
  89 + this.createDownload(this);
  90 + break;
  91 + default:
  92 + break;
  93 + } // switch end
  94 + }
  95 +
51 96 },
52 97  
  98 + createLeaf: function(node)
  99 + {
  100 + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.param.id, true, function(module) {
  101 + if (!myDesktopApp.desktop.getWindow(myDesktopApp.dynamicModules.param.id)) {
  102 + var param = Ext.create(node.get('objectDataModel'));
  103 + var newNode = Ext.create(amdaModel.DerivedParamNode.$className, {leaf : true, object : param});
  104 + // edit newNode into Parameter Module with node as contextNode
  105 + newNode.editInModule();
  106 + }
  107 + var paramName = node.get('id');
  108 + var components = null;
  109 + module.addParam(paramName,node.get('leaf'),node.get('needsArgs'),components);
  110 + });
  111 + },
  112 +
53 113 });
... ...
js/app/stores/ExplorerReader.js
... ... @@ -18,7 +18,6 @@ Ext.define(&#39;amdaReader.ExplorerReader&#39;, {
18 18 */
19 19  
20 20 getType: function(node){
21   - console.log(node);
22 21 switch (node.nodeType) {
23 22  
24 23 case 'derivedParam':
... ... @@ -37,7 +36,7 @@ Ext.define(&#39;amdaReader.ExplorerReader&#39;, {
37 36 return amdaModel.AliasNode;
38 37 case 'timeTable' :
39 38 return amdaModel.TimeTableNode;
40   - case 'catalog' :
  39 + case 'catalog' :
41 40 return amdaModel.CatalogNode;
42 41 case 'sharedtimeTable' :
43 42 return amdaModel.sharedTimeTableNode;
... ... @@ -54,8 +53,7 @@ Ext.define(&#39;amdaReader.ExplorerReader&#39;, {
54 53 case 'bkgWorks' :
55 54 return amdaModel.BkgJobNode;
56 55 case 'specialParam':
57   - console.log("Coucou");
58   - return amdaModel.SpecialParamNode;
  56 + return amdaModel.SpecialParamNode;
59 57 default:
60 58 return amdaModel.InteractiveNode;
61 59  
... ...
js/app/views/ExplorerUI.js
... ... @@ -597,6 +597,7 @@ Ext.define(&#39;amdaUI.ExplorerUI&#39;, {
597 597 break;
598 598 case 'localParam' :
599 599 case 'remoteParam':
  600 + case 'specialParam':
600 601 case 'remoteSimuParam':
601 602 record.createPlot(record);
602 603 break;
... ...
js/app/views/ParamArgumentsUI.js
... ... @@ -558,6 +558,60 @@ Ext.define(&#39;amdaUI.ParamArgumentsUI&#39;, {
558 558  
559 559 me.add(argumentField);
560 560 break;
  561 + case 'int':
  562 + var argumentField = Ext.create('Ext.form.NumberField', {
  563 + argId: 'template_' + key,
  564 + fieldLabel: argument.name,
  565 + value: parseInt(argument.default),
  566 + regex: /^\d+$/,
  567 + listeners: {
  568 + change: function (field, newValue, oldValue, eOpts) {
  569 + var template_args = me.paramRequestObject.get('template_args');
  570 + if (!template_args)
  571 + template_args = {};
  572 + template_args[key] = newValue;
  573 + me.paramRequestObject.set('template_args', template_args);
  574 + if (!this.inRebuild && (me.onChange != null))
  575 + me.onChange(uiScope, key, newValue, oldValue, true);
  576 + },
  577 + scope: me
  578 + }
  579 + });
  580 +
  581 +
  582 + me.add(argumentField);
  583 + break;
  584 + case 'date':
  585 + var argumentField = Ext.create('Ext.form.field.Date', {
  586 + argId: 'template_' + key,
  587 + fieldLabel: argument.name,
  588 + allowBlank: false, format: 'Y/m/d H:i:s.u',
  589 + minValue:'1970/01/01 00:00:00.000',
  590 + value: parseInt(argument.default),
  591 + listeners: {
  592 + change: function (field, newValue, oldValue, eOpts) {
  593 + var template_args = me.paramRequestObject.get('template_args');
  594 + if (!template_args)
  595 + template_args = {};
  596 +
  597 + if(field.isValid() && newValue.getTime() > 0 ){
  598 + template_args[key] = newValue.getTime()/1000.;
  599 + }
  600 + else{
  601 + template_args[key] = 0;
  602 + }
  603 + me.paramRequestObject.set('template_args', template_args);
  604 + if (!this.inRebuild && (me.onChange != null)){
  605 + me.onChange(uiScope, key, newValue, oldValue, true);
  606 + }
  607 + },
  608 + scope: me
  609 + }
  610 + });
  611 +
  612 +
  613 + me.add(argumentField);
  614 + break;
561 615 default:
562 616 console.log('Template argument type not yet implemented: ' + argument.type);
563 617 }
... ...
js/app/views/SearchUI.js
... ... @@ -317,6 +317,7 @@ Ext.define(&#39;amdaUI.SearchUI&#39;,
317 317 (data.records[0].get('nodeType') == 'remoteParam') ||
318 318 (data.records[0].get('nodeType') == 'remoteSimuParam') ||
319 319 (data.records[0].get('nodeType') == 'derivedParam') ||
  320 + (data.records[0].get('nodeType') == 'specialParam') ||
320 321 (data.records[0].get('nodeType') == 'myDataParam') ||
321 322 (data.records[0].get('nodeType') == 'alias')) &&
322 323 (data.records[0].isLeaf() || data.records[0].get('isParameter')) &&
... ... @@ -365,6 +366,9 @@ Ext.define(&#39;amdaUI.SearchUI&#39;,
365 366 case 'derivedParam':
366 367 nameToSent = "ws_" + data.records[0].get('text');
367 368 break;
  369 + case 'specialParam':
  370 + nameToSent = data.records[0].get('id');
  371 + break;
368 372 case 'myDataParam':
369 373 var name = data.records[0].get('text');
370 374 nameToSent = "wsd_" + name;
... ...
js/app/views/StatisticsUI.js
... ... @@ -347,6 +347,7 @@ Ext.define(&#39;amdaUI.StatisticsUI&#39;,
347 347 (data.records[0].data.nodeType == 'remoteParam') ||
348 348 (data.records[0].data.nodeType == 'remoteSimuParam') ||
349 349 (data.records[0].data.nodeType == 'derivedParam') ||
  350 + (data.records[0].data.nodeType == 'specialParam') ||
350 351 (data.records[0].data.nodeType == 'myDataParam') ||
351 352 (data.records[0].data.nodeType == 'alias')) &&
352 353 (data.records[0].isLeaf() || data.records[0].data.isParameter) &&
... ... @@ -437,6 +438,9 @@ Ext.define(&#39;amdaUI.StatisticsUI&#39;,
437 438 nameToSent = "wsd_" + data.records[0].get('text');
438 439 }
439 440 break;
  441 + case 'specialParam':
  442 + nameToSent = data.records[0].get('id');
  443 + break;
440 444 default :
441 445 return false;
442 446 }
... ...
php/classes/AmdaAction.php
... ... @@ -225,7 +225,7 @@ class AmdaAction
225 225 break;
226 226  
227 227 case 'localParam':
228   -
  228 +
229 229 $globalStart = null;
230 230 $globalStop = null;
231 231 $timeRestriction = false;
... ... @@ -588,9 +588,9 @@ class AmdaAction
588 588 break;
589 589  
590 590 case 'specialParam':
591   - error_log('FER - HOLA');
592   - $isParameter=true;
593   - $childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType);
  591 + $specialNode=TRUE;
  592 + $isParameter=($child->tagName == 'parameter');
  593 + $childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType, 'isParameter' => $isParameter, 'needsArgs' => $isParameter, 'leaf' => $isParameter);
594 594 break;
595 595  
596 596 default:
... ...