Commit 98c92bbf5c6df937a9fb5cdd0b51c5fb11c94a8f
1 parent
b0f72ee0
Exists in
master
and in
49 other branches
#10557 - Done (Maybe some minor fixes to do)
Showing
8 changed files
with
144 additions
and
17 deletions
Show diff stats
generic_data/SpecialParameters/SpecialParams.xml
1 | <?xml version="1.0"?> | 1 | <?xml version="1.0"?> |
2 | <special name="Special" desc="Special_parameter" xml:id="specialParam-treeRootNode"> | 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 | </group> | 11 | </group> |
6 | </special> | 12 | </special> |
js/app/models/SpecialParamNode.js
@@ -29,25 +29,85 @@ Ext.define('amdaModel.SpecialParamNode', { | @@ -29,25 +29,85 @@ Ext.define('amdaModel.SpecialParamNode', { | ||
29 | 29 | ||
30 | constructor : function(config){ | 30 | constructor : function(config){ |
31 | this.callParent(arguments); | 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 | localMenuItems : function() { | 37 | localMenuItems : function() { |
35 | var menuItems = | 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 | return menuItems; | 60 | return menuItems; |
38 | }, | 61 | }, |
39 | 62 | ||
40 | getAllContextMenuItems: function(){ | 63 | getAllContextMenuItems: function(){ |
41 | - | ||
42 | - // var menuItems = this.allMenuItems('File'); | ||
43 | var locMenuItems = this.localMenuItems(); | 64 | var locMenuItems = this.localMenuItems(); |
44 | - | ||
45 | - // return Ext.Array.merge(menuItems,locMenuItems); | ||
46 | - return locMenuItems; | 65 | + return locMenuItems; |
47 | }, | 66 | }, |
48 | 67 | ||
49 | onMenuItemClick : function(menu,item,event) { | 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('amdaReader.ExplorerReader', { | @@ -18,7 +18,6 @@ Ext.define('amdaReader.ExplorerReader', { | ||
18 | */ | 18 | */ |
19 | 19 | ||
20 | getType: function(node){ | 20 | getType: function(node){ |
21 | - console.log(node); | ||
22 | switch (node.nodeType) { | 21 | switch (node.nodeType) { |
23 | 22 | ||
24 | case 'derivedParam': | 23 | case 'derivedParam': |
@@ -37,7 +36,7 @@ Ext.define('amdaReader.ExplorerReader', { | @@ -37,7 +36,7 @@ Ext.define('amdaReader.ExplorerReader', { | ||
37 | return amdaModel.AliasNode; | 36 | return amdaModel.AliasNode; |
38 | case 'timeTable' : | 37 | case 'timeTable' : |
39 | return amdaModel.TimeTableNode; | 38 | return amdaModel.TimeTableNode; |
40 | - case 'catalog' : | 39 | + case 'catalog' : |
41 | return amdaModel.CatalogNode; | 40 | return amdaModel.CatalogNode; |
42 | case 'sharedtimeTable' : | 41 | case 'sharedtimeTable' : |
43 | return amdaModel.sharedTimeTableNode; | 42 | return amdaModel.sharedTimeTableNode; |
@@ -54,8 +53,7 @@ Ext.define('amdaReader.ExplorerReader', { | @@ -54,8 +53,7 @@ Ext.define('amdaReader.ExplorerReader', { | ||
54 | case 'bkgWorks' : | 53 | case 'bkgWorks' : |
55 | return amdaModel.BkgJobNode; | 54 | return amdaModel.BkgJobNode; |
56 | case 'specialParam': | 55 | case 'specialParam': |
57 | - console.log("Coucou"); | ||
58 | - return amdaModel.SpecialParamNode; | 56 | + return amdaModel.SpecialParamNode; |
59 | default: | 57 | default: |
60 | return amdaModel.InteractiveNode; | 58 | return amdaModel.InteractiveNode; |
61 | 59 |
js/app/views/ExplorerUI.js
@@ -597,6 +597,7 @@ Ext.define('amdaUI.ExplorerUI', { | @@ -597,6 +597,7 @@ Ext.define('amdaUI.ExplorerUI', { | ||
597 | break; | 597 | break; |
598 | case 'localParam' : | 598 | case 'localParam' : |
599 | case 'remoteParam': | 599 | case 'remoteParam': |
600 | + case 'specialParam': | ||
600 | case 'remoteSimuParam': | 601 | case 'remoteSimuParam': |
601 | record.createPlot(record); | 602 | record.createPlot(record); |
602 | break; | 603 | break; |
js/app/views/ParamArgumentsUI.js
@@ -558,6 +558,60 @@ Ext.define('amdaUI.ParamArgumentsUI', { | @@ -558,6 +558,60 @@ Ext.define('amdaUI.ParamArgumentsUI', { | ||
558 | 558 | ||
559 | me.add(argumentField); | 559 | me.add(argumentField); |
560 | break; | 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 | default: | 615 | default: |
562 | console.log('Template argument type not yet implemented: ' + argument.type); | 616 | console.log('Template argument type not yet implemented: ' + argument.type); |
563 | } | 617 | } |
js/app/views/SearchUI.js
@@ -317,6 +317,7 @@ Ext.define('amdaUI.SearchUI', | @@ -317,6 +317,7 @@ Ext.define('amdaUI.SearchUI', | ||
317 | (data.records[0].get('nodeType') == 'remoteParam') || | 317 | (data.records[0].get('nodeType') == 'remoteParam') || |
318 | (data.records[0].get('nodeType') == 'remoteSimuParam') || | 318 | (data.records[0].get('nodeType') == 'remoteSimuParam') || |
319 | (data.records[0].get('nodeType') == 'derivedParam') || | 319 | (data.records[0].get('nodeType') == 'derivedParam') || |
320 | + (data.records[0].get('nodeType') == 'specialParam') || | ||
320 | (data.records[0].get('nodeType') == 'myDataParam') || | 321 | (data.records[0].get('nodeType') == 'myDataParam') || |
321 | (data.records[0].get('nodeType') == 'alias')) && | 322 | (data.records[0].get('nodeType') == 'alias')) && |
322 | (data.records[0].isLeaf() || data.records[0].get('isParameter')) && | 323 | (data.records[0].isLeaf() || data.records[0].get('isParameter')) && |
@@ -365,6 +366,9 @@ Ext.define('amdaUI.SearchUI', | @@ -365,6 +366,9 @@ Ext.define('amdaUI.SearchUI', | ||
365 | case 'derivedParam': | 366 | case 'derivedParam': |
366 | nameToSent = "ws_" + data.records[0].get('text'); | 367 | nameToSent = "ws_" + data.records[0].get('text'); |
367 | break; | 368 | break; |
369 | + case 'specialParam': | ||
370 | + nameToSent = data.records[0].get('id'); | ||
371 | + break; | ||
368 | case 'myDataParam': | 372 | case 'myDataParam': |
369 | var name = data.records[0].get('text'); | 373 | var name = data.records[0].get('text'); |
370 | nameToSent = "wsd_" + name; | 374 | nameToSent = "wsd_" + name; |
js/app/views/StatisticsUI.js
@@ -347,6 +347,7 @@ Ext.define('amdaUI.StatisticsUI', | @@ -347,6 +347,7 @@ Ext.define('amdaUI.StatisticsUI', | ||
347 | (data.records[0].data.nodeType == 'remoteParam') || | 347 | (data.records[0].data.nodeType == 'remoteParam') || |
348 | (data.records[0].data.nodeType == 'remoteSimuParam') || | 348 | (data.records[0].data.nodeType == 'remoteSimuParam') || |
349 | (data.records[0].data.nodeType == 'derivedParam') || | 349 | (data.records[0].data.nodeType == 'derivedParam') || |
350 | + (data.records[0].data.nodeType == 'specialParam') || | ||
350 | (data.records[0].data.nodeType == 'myDataParam') || | 351 | (data.records[0].data.nodeType == 'myDataParam') || |
351 | (data.records[0].data.nodeType == 'alias')) && | 352 | (data.records[0].data.nodeType == 'alias')) && |
352 | (data.records[0].isLeaf() || data.records[0].data.isParameter) && | 353 | (data.records[0].isLeaf() || data.records[0].data.isParameter) && |
@@ -437,6 +438,9 @@ Ext.define('amdaUI.StatisticsUI', | @@ -437,6 +438,9 @@ Ext.define('amdaUI.StatisticsUI', | ||
437 | nameToSent = "wsd_" + data.records[0].get('text'); | 438 | nameToSent = "wsd_" + data.records[0].get('text'); |
438 | } | 439 | } |
439 | break; | 440 | break; |
441 | + case 'specialParam': | ||
442 | + nameToSent = data.records[0].get('id'); | ||
443 | + break; | ||
440 | default : | 444 | default : |
441 | return false; | 445 | return false; |
442 | } | 446 | } |
php/classes/AmdaAction.php
@@ -225,7 +225,7 @@ class AmdaAction | @@ -225,7 +225,7 @@ class AmdaAction | ||
225 | break; | 225 | break; |
226 | 226 | ||
227 | case 'localParam': | 227 | case 'localParam': |
228 | - | 228 | + |
229 | $globalStart = null; | 229 | $globalStart = null; |
230 | $globalStop = null; | 230 | $globalStop = null; |
231 | $timeRestriction = false; | 231 | $timeRestriction = false; |
@@ -588,9 +588,9 @@ class AmdaAction | @@ -588,9 +588,9 @@ class AmdaAction | ||
588 | break; | 588 | break; |
589 | 589 | ||
590 | case 'specialParam': | 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 | break; | 594 | break; |
595 | 595 | ||
596 | default: | 596 | default: |