Commit 2e7079bbf98baf8e484e893cb42bc9f9e336fdd6
1 parent
4667889e
Exists in
master
and in
81 other branches
First implementation to save statistics requests
Showing
15 changed files
with
247 additions
and
100 deletions
Show diff stats
generic_data/operations.json
1 | 1 | {"nodes": [ |
2 | 2 | {"nodeType" : "request", "text" : "Plot", "id" : "request-treeRootNode"} , |
3 | 3 | {"nodeType" : "download", "text" : "Download", "id" : "download-treeRootNode"} , |
4 | - {"nodeType" : "condition","text" : "Data Mining","id" : "condition-treeRootNode" } | |
4 | + {"nodeType" : "condition","text" : "Data Mining","id" : "condition-treeRootNode" }, | |
5 | + {"nodeType" : "statistic","text" : "Statistic","id" : "statistic-treeRootNode" } | |
5 | 6 | ]} |
... | ... |
js/app/controllers/ExplorerModule.js
... | ... | @@ -48,7 +48,7 @@ Ext.define('amdaDesktop.ExplorerModule', |
48 | 48 | 'amdaModel.Download', |
49 | 49 | 'amdaModel.TimeTable', |
50 | 50 | 'amdaModel.Catalog', |
51 | - 'amdaModel.Stats', | |
51 | + 'amdaModel.Statistic', | |
52 | 52 | 'amdaModel.FileObject', |
53 | 53 | 'amdaModel.FileParamObject', |
54 | 54 | 'amdaModel.FilterInfo' |
... | ... |
js/app/controllers/JobsMgr.js
... | ... | @@ -94,7 +94,7 @@ Ext.define('amdaDesktop.JobsMgr', { |
94 | 94 | case 'download': |
95 | 95 | type = 'Download ' |
96 | 96 | break |
97 | - case 'statistics': | |
97 | + case 'statistic': | |
98 | 98 | type = 'Statistics ' |
99 | 99 | break |
100 | 100 | default: |
... | ... | @@ -161,7 +161,7 @@ Ext.define('amdaDesktop.JobsMgr', { |
161 | 161 | resRootNode = root.findChild('id', bkgJob.RES_ROOT_NODE.DOWNLOAD, true) |
162 | 162 | jobRootNode = root.findChild('id', bkgJob.JOB_ROOT_NODE.DOWNLOAD, true) |
163 | 163 | break |
164 | - case 'statistics': | |
164 | + case 'statistic': | |
165 | 165 | resRootNode = root.findChild('id', bkgJob.RES_ROOT_NODE.STATISTICS, true) |
166 | 166 | jobRootNode = root.findChild('id', bkgJob.JOB_ROOT_NODE.STATISTICS, true) |
167 | 167 | break |
... | ... |
js/app/controllers/StatisticsModule.js
... | ... | @@ -21,7 +21,7 @@ Ext.define('amdaDesktop.StatisticsModule', { |
21 | 21 | * @required |
22 | 22 | */ |
23 | 23 | nodeDataModel : 'amdaModel.StatisticsNode', |
24 | - objectDataModel : 'amdaModel.Stats', | |
24 | + objectDataModel : 'amdaModel.Statistic', | |
25 | 25 | /** |
26 | 26 | * @cfg {String} window definitions |
27 | 27 | * @required |
... | ... | @@ -31,15 +31,6 @@ Ext.define('amdaDesktop.StatisticsModule', { |
31 | 31 | uiType : 'panelStatistics', |
32 | 32 | helpTitle : 'Help on Statistics Module', |
33 | 33 | helpFile : 'statisticsHelp', |
34 | - /** | |
35 | - * @override | |
36 | - */ | |
37 | - createWindow : function() { | |
38 | - if (!this.linkedNode){ | |
39 | - this.setLinkedNode(amdaModel.StatisticsNode); | |
40 | - } | |
41 | - this.callParent(arguments); | |
42 | - }, | |
43 | 34 | |
44 | 35 | saveState: function() { |
45 | 36 | var uiContent = this.getUiContent(); |
... | ... |
js/app/models/BkgJobNode.js
... | ... | @@ -18,7 +18,7 @@ Ext.define('amdaModel.BkgJobNode', { |
18 | 18 | PLOT: 'request',//'plot', |
19 | 19 | CONDITION: 'condition', |
20 | 20 | DOWNLOAD: 'download', |
21 | - STATISTICS: 'statistics' | |
21 | + STATISTICS: 'statistic' | |
22 | 22 | }, |
23 | 23 | JOB_ROOT_NODE: { |
24 | 24 | PLOT: 'bkgPlot-treeRootNode', |
... | ... | @@ -179,7 +179,7 @@ Ext.define('amdaModel.BkgJobNode', { |
179 | 179 | case 'condition' : var type = 'Data Mining '; break; |
180 | 180 | case 'request' : var type = 'Plot '; break; |
181 | 181 | case 'download' : var type = 'Download '; break; |
182 | - case 'statistics' : var type = 'Statistics '; break; | |
182 | + case 'statistic' : var type = 'Statistics '; break; | |
183 | 183 | default: var type = 'unknown'; |
184 | 184 | } |
185 | 185 | |
... | ... | @@ -228,8 +228,8 @@ Ext.define('amdaModel.BkgJobNode', { |
228 | 228 | resultId : result.result, |
229 | 229 | folderId : result.folder}); |
230 | 230 | break; |
231 | - case 'statistics' : | |
232 | - obj = Ext.create('amdaModel.Stats', | |
231 | + case 'statistic' : | |
232 | + obj = Ext.create('amdaModel.Statistic', | |
233 | 233 | {name: result.name, |
234 | 234 | resultId : result.result, |
235 | 235 | folderId : result.folder}); |
... | ... | @@ -325,7 +325,7 @@ Ext.define('amdaModel.BkgJobNode', { |
325 | 325 | case 'condition' : var type = 'Data Mining '; break; |
326 | 326 | case 'request' : var type = 'Plot '; break; |
327 | 327 | case 'download' : var type = 'Download '; break; |
328 | - case 'statistics' : var type = 'Statistics '; break; | |
328 | + case 'statistic' : var type = 'Statistics '; break; | |
329 | 329 | default: var type = 'unknown'; |
330 | 330 | } |
331 | 331 | myDesktopApp.infoMsg('Your request is still running and has been assigned the name '+this.get('text')+' -- Check Jobs in Progress'); |
... | ... |
js/app/models/Stats.js renamed to js/app/models/Statistic.js
1 | 1 | /** |
2 | 2 | * Project : AMDA-NG |
3 | - * Name : Stats.js | |
3 | + * Name : Statistic.js | |
4 | 4 | * Description : Statistics Object Definition |
5 | - * @class amdaModel.Stats | |
6 | - * @extends amdaModel.TimeTable | |
5 | + * @class amdaModel.Statistic | |
6 | + * @extends amdaModel.AmdaTimeObject | |
7 | 7 | * @author elena |
8 | 8 | */ |
9 | 9 | |
10 | -Ext.define('amdaModel.Stats', { | |
10 | +Ext.define('amdaModel.Statistic', { | |
11 | 11 | extend: 'amdaModel.AmdaTimeObject', |
12 | - | |
12 | + | |
13 | + requires: [ | |
14 | + "amdaModel.StatisticParam" | |
15 | + ], | |
16 | + | |
13 | 17 | fields : [ |
14 | - { name: 'parameter' } , | |
15 | - { name: 'description' } | |
18 | + {name: 'type', type: 'string', defaultValue: 'Statistic'}, | |
19 | + {name: 'description', type: 'string'} | |
16 | 20 | ], |
21 | + | |
22 | + associations : [ | |
23 | + { | |
24 | + type : 'hasMany', | |
25 | + model : 'amdaModel.StatisticParam', | |
26 | + name : 'params' | |
27 | + } | |
28 | + ], | |
29 | + | |
30 | + constructor: function(){ | |
31 | + var me = this; | |
32 | + me.callParent(arguments); | |
33 | + if ((arguments.length > 0) && arguments[0]) | |
34 | + { | |
35 | + if (arguments[0].parameter) | |
36 | + me.loadParams(arguments[0].parameter); | |
37 | + } | |
38 | + this.dirty = false; | |
39 | + }, | |
40 | + | |
41 | + loadParams: function(params) | |
42 | + { | |
43 | + /* Compatability mode */ | |
44 | + Ext.each(params, function(param, index) { | |
45 | + if (param.hasOwnProperty('is-init')) { | |
46 | + return; | |
47 | + } | |
48 | + params[index]['dim1-sum-type'] = param['dim1-is-range'] ? 1 : 0; | |
49 | + params[index]['dim1-min-value'] = param['dim1-min-range']; | |
50 | + params[index]['dim1-max-value'] = param['dim1-max-range']; | |
51 | + params[index]['dim2-sum-type'] = param['dim2-is-range'] ? 1 : 0; | |
52 | + params[index]['dim2-min-value'] = param['dim2-min-range']; | |
53 | + params[index]['dim2-max-value'] = param['dim2-max-range']; | |
54 | + params[index]['is-init'] = true; | |
55 | + }); | |
56 | + this.params().loadData(params); | |
57 | + }, | |
58 | + | |
59 | + isDirty : function() { | |
60 | + if (this.dirty) | |
61 | + return true; | |
62 | + | |
63 | + var d = false; | |
64 | + | |
65 | + this.params().each(function (param, index) { | |
66 | + if (param.dirty) | |
67 | + d = true; | |
68 | + }); | |
69 | + return d; | |
70 | + }, | |
17 | 71 | |
18 | - getJsonValues : function (hasId) | |
72 | + getJsonValues : function () | |
19 | 73 | { |
20 | 74 | var values = new Object(); |
21 | - if (hasId) { | |
22 | - values.id = this.get('id'); | |
23 | - } | |
24 | - | |
75 | + values.nodeType = 'statistic'; | |
76 | + values.type = this.get('type'); | |
77 | + values.name = this.get('name'); | |
25 | 78 | values.timesrc = this.get('timesrc'); |
26 | - values.name = this.get('name'); | |
27 | - | |
28 | -// if (this.get('description').match(/[a-z,0-9]/gi) != null) { | |
29 | -// values.description = this.get('description'); | |
30 | -// } | |
31 | -// if (this.get('history').match(/[a-z,0-9]/gi) != null) { | |
32 | -// values.history = this.get('history'); | |
33 | -// } | |
34 | - values.objName = this.get('objName'); | |
35 | - values.objFormat = this.get('objFormat'); | |
36 | 79 | |
37 | -// values.cacheToken = this.get('cacheToken'); | |
38 | - values.parameter = this.get('parameter'); | |
39 | - | |
40 | 80 | // if there's at least one parameter |
41 | -// if (this.get('parameter') && this.get('parameter').length) | |
42 | -// { | |
43 | -// var list = this.get('parameter'); | |
44 | -// values.parameter=[]; | |
45 | -// Ext.each(list, function(item, index){ | |
46 | -// values.parameter[index] = item.getJsonValues(); | |
47 | -// }); | |
48 | -// } | |
81 | + values.parameter = []; | |
82 | + this.params().each(function (param, index) { | |
83 | + values.parameter[index] = param.getJsonValues(); | |
84 | + }); | |
49 | 85 | |
50 | 86 | if (values.timesrc == amdaModel.AmdaTimeObject.inputTimeSrc[0]) |
51 | 87 | { |
... | ... | @@ -75,7 +111,6 @@ Ext.define('amdaModel.Stats', { |
75 | 111 | } |
76 | 112 | |
77 | 113 | values.leaf = true; |
78 | - values.nodeType = 'statistics'; | |
79 | 114 | |
80 | 115 | return values; |
81 | 116 | } |
... | ... |
... | ... | @@ -0,0 +1,30 @@ |
1 | +/** | |
2 | + * Project : AMDA-NG | |
3 | + * Name : StatisticParam.js | |
4 | + * Description : Statistic Param Business Object Definition | |
5 | + * @class amdaModel.StatisticParam | |
6 | + * @extends amdaModel.RequestParamObject | |
7 | + * | |
8 | + * @author benjamin | |
9 | + * @version $Id: StatisticParam.js 2068 2021-05-20 11:27:38Z benjamin $ | |
10 | + ****************************************************************************** | |
11 | + * FT Id : Date : Name - Description | |
12 | + ****************************************************************************** | |
13 | + * : :20/05/2021: benjamin โ creation | |
14 | + */ | |
15 | + | |
16 | + | |
17 | +Ext.define('amdaModel.StatisticParam', { | |
18 | + extend: 'amdaModel.RequestParamObject', | |
19 | + | |
20 | + fields : [ | |
21 | + {name: 'function', type: 'string', defaultValue: ''} | |
22 | + ], | |
23 | + | |
24 | + getJsonValues : function () | |
25 | + { | |
26 | + var values = this.callParent(arguments); | |
27 | + values['function'] = this.get('function'); | |
28 | + return values; | |
29 | + } | |
30 | +}); | |
... | ... |
js/app/models/StatisticsNode.js
... | ... | @@ -10,22 +10,15 @@ |
10 | 10 | Ext.define('amdaModel.StatisticsNode', { |
11 | 11 | |
12 | 12 | extend: 'amdaModel.ExecutableNode', |
13 | - | |
14 | - singleton: true, | |
13 | + | |
14 | + statics: { | |
15 | + nodeType: 'statistic', | |
16 | + objectName: 'Statistic' | |
17 | + }, | |
15 | 18 | |
16 | - fields: [ | |
17 | - {name: 'object', type: 'object'}, | |
18 | - {name: 'moduleId', type: 'string', defaultValue:'statistics-win'}, | |
19 | - {name: 'nodeType', type: 'string', defaultValue: 'statistics'}, | |
20 | - {name: 'objectDataModel', type: 'string', defaultValue:'amdaModel.Stats'}, | |
21 | - {name: 'jobNode', type: 'string', defaultValue: 'amdaModel.BkgJobNode'} | |
22 | - ], | |
23 | - | |
24 | - constructor: function(config) { | |
25 | - this.callParent(arguments); | |
26 | - this.set('nodeType','statistics'); | |
27 | - }, | |
28 | - isExecutable: function(){ | |
29 | - return true; | |
19 | + constructor: function(config) { | |
20 | + this.callParent(arguments); | |
21 | + this.set('moduleId',myDesktopApp.dynamicModules.statistics.id); | |
22 | + this.set('objectDataModel',amdaModel.Statistic.$className); | |
30 | 23 | } |
31 | 24 | }); |
... | ... |
js/app/stores/ExplorerReader.js
... | ... | @@ -48,7 +48,9 @@ Ext.define('amdaReader.ExplorerReader', { |
48 | 48 | case 'request' : |
49 | 49 | return amdaModel.PlotNode; |
50 | 50 | case 'download' : |
51 | - return amdaModel.DownloadNode; | |
51 | + return amdaModel.DownloadNode; | |
52 | + case 'statistic' : | |
53 | + return amdaModel.StatisticsNode; | |
52 | 54 | case 'bkgWorks' : |
53 | 55 | return amdaModel.BkgJobNode; |
54 | 56 | default: |
... | ... |
js/app/views/ExplorerUI.js
js/app/views/StatisticsUI.js
... | ... | @@ -13,18 +13,11 @@ Ext.define('amdaUI.StatisticsUI', |
13 | 13 | alias: 'widget.panelStatistics', |
14 | 14 | |
15 | 15 | requires: [ |
16 | - //'amdaModel.Function' | |
17 | 16 | 'amdaUI.TimeSelectorUI', |
18 | 17 | 'amdaUI.ParamArgumentsPlug', |
19 | - 'amdaModel.DownloadParam', | |
20 | - 'amdaModel.RequestParamObject' | |
18 | + 'amdaModel.StatisticParam' | |
21 | 19 | ], |
22 | 20 | |
23 | - statics: | |
24 | - { | |
25 | - // functionStore : null | |
26 | - }, | |
27 | - | |
28 | 21 | constructor: function (config) |
29 | 22 | { |
30 | 23 | this.init(config); |
... | ... | @@ -41,7 +34,13 @@ Ext.define('amdaUI.StatisticsUI', |
41 | 34 | // load object into form |
42 | 35 | var basicForm = this.formPanel.items.items[1].getForm(); |
43 | 36 | basicForm.loadRecord(this.object); |
37 | + // set parameters | |
38 | + this.paramGrid.reconfigure(this.object.params()); | |
39 | + }, | |
44 | 40 | |
41 | + setObject: function (obj) { | |
42 | + this.object = obj; | |
43 | + this.loadObject(); | |
45 | 44 | }, |
46 | 45 | |
47 | 46 | onApplyParameterArgs: function (parentUI, paramObject) |
... | ... | @@ -67,7 +66,7 @@ Ext.define('amdaUI.StatisticsUI', |
67 | 66 | } |
68 | 67 | } |
69 | 68 | |
70 | - var r = Ext.create('amdaModel.DownloadParam', paramObj); | |
69 | + var r = Ext.create('amdaModel.StatisticParam', paramObj); | |
71 | 70 | this.paramGrid.getStore().add(r); |
72 | 71 | this.paramGrid.getSelectionModel().select(this.paramGrid.getStore().getCount() - 1); |
73 | 72 | // var pos = this.paramGrid.store.getCount(); |
... | ... | @@ -86,6 +85,88 @@ Ext.define('amdaUI.StatisticsUI', |
86 | 85 | paramArgsPlug.show('statistics-param-arguments-plugin', record); |
87 | 86 | }, |
88 | 87 | |
88 | + saveRequest : function() | |
89 | + { | |
90 | + var me = this; | |
91 | + | |
92 | + if (!this.updateObject()) { | |
93 | + return; | |
94 | + } | |
95 | + | |
96 | + var statisticModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.statistics.id); | |
97 | + | |
98 | + if ((this.object.get('id') != '') && (statisticModule.linkedNode.get('text') == this.object.get('name'))) { | |
99 | + this.saveProcess(false); | |
100 | + return; | |
101 | + } | |
102 | + | |
103 | + statisticModule.linkedNode.isValidName(this.fieldName.getValue(), function (res) { | |
104 | + if (!res) | |
105 | + { | |
106 | + me.fieldName.validFlag = 'Error during object validation'; | |
107 | + myDesktopApp.errorMsg(me.fieldName.validFlag); | |
108 | + me.fieldName.validate(); | |
109 | + return; | |
110 | + } | |
111 | + | |
112 | + if (!res.valid) | |
113 | + { | |
114 | + if (res.error) | |
115 | + { | |
116 | + if (res.error.search('subtree') != -1) { | |
117 | + Ext.MessageBox.show({title:'Warning', | |
118 | + msg: res.error+'<br/>Do you want to overwrite it?', | |
119 | + width: 300, | |
120 | + buttons: Ext.MessageBox.OKCANCEL, | |
121 | + fn : function(btn) { | |
122 | + if (btn == 'cancel') return; | |
123 | + this.fieldName.clearInvalid(); | |
124 | + this.saveProcess(true); | |
125 | + }, | |
126 | + icon: Ext.MessageBox.WARNING, | |
127 | + scope : me | |
128 | + }); | |
129 | + me.fieldName.validFlag = true; | |
130 | + } | |
131 | + else | |
132 | + me.fieldName.validFlag = res.error; | |
133 | + } | |
134 | + else | |
135 | + { | |
136 | + me.fieldName.validFlag = 'Invalid object name'; | |
137 | + myDesktopApp.errorMsg(me.fieldName.validFlag); | |
138 | + } | |
139 | + me.fieldName.validate(); | |
140 | + return; | |
141 | + } | |
142 | + | |
143 | + me.fieldName.validFlag = true; | |
144 | + me.fieldName.validate(); | |
145 | + me.saveProcess(false); | |
146 | + }); | |
147 | + }, | |
148 | + | |
149 | + saveProcess: function(toRename) { | |
150 | + var statisticModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.statistics.id); | |
151 | + if (this.object.isModified('name')) { | |
152 | + if (this.object.get('id')) | |
153 | + { | |
154 | + var contextNode = statisticModule.linkedNode.parentNode; | |
155 | + statisticModule.createLinkedNode(); | |
156 | + statisticModule.linkedNode.set('contextNode',contextNode); | |
157 | + statisticModule.createObject(this.object.getJsonValues()); | |
158 | + var statisticObj = statisticModule.linkedNode.get('object'); | |
159 | + this.object = statisticObj; | |
160 | + if (toRename) statisticModule.linkedNode.toRename = true; | |
161 | + } | |
162 | + statisticModule.linkedNode.create(); | |
163 | + } | |
164 | + else { | |
165 | + statisticModule.linkedNode.set('contextNode',statisticModule.contextNode); | |
166 | + statisticModule.linkedNode.update(); | |
167 | + } | |
168 | + }, | |
169 | + | |
89 | 170 | addTT: function (TTname, TTid) |
90 | 171 | { |
91 | 172 | this.timeSelector.addTT(TTname, TTid); |
... | ... | @@ -181,7 +262,7 @@ Ext.define('amdaUI.StatisticsUI', |
181 | 262 | init: function (config) |
182 | 263 | { |
183 | 264 | this.fieldName = new Ext.form.field.Text({ |
184 | - fieldLabel: 'Catalog Name', | |
265 | + fieldLabel: 'Request Name', | |
185 | 266 | allowBlank: false, |
186 | 267 | stripCharsRe: /(^\s+|\s+$)/g, |
187 | 268 | emptyText: 'Please no spaces!', |
... | ... | @@ -195,25 +276,15 @@ Ext.define('amdaUI.StatisticsUI', |
195 | 276 | } |
196 | 277 | }); |
197 | 278 | |
198 | - var ttStore = Ext.create('Ext.data.Store', | |
199 | - { | |
200 | - fields: ['name', 'hidden_id'] | |
201 | - }); | |
202 | - | |
203 | 279 | this.timeSelector = new amdaUI.TimeSelectorUI({id: 'statisticsTimeSelector', flex: 1}); |
204 | 280 | |
205 | - var store = Ext.create('Ext.data.Store', | |
206 | - { | |
207 | - fields: ['name', 'function'] | |
208 | - }); | |
209 | - | |
210 | 281 | this.paramGrid = Ext.create('Ext.grid.Panel', |
211 | 282 | { |
212 | 283 | title: 'Select Parameter & Apply Function', |
213 | 284 | selType: 'rowmodel', |
214 | 285 | flex: 2, |
215 | 286 | // height :250, |
216 | - store: store, | |
287 | + store: Ext.create('Ext.data.Store', {model: 'amdaModel.StatisticParam'}), | |
217 | 288 | columns: [ |
218 | 289 | {xtype: 'rownumberer'}, |
219 | 290 | { |
... | ... | @@ -408,7 +479,7 @@ Ext.define('amdaUI.StatisticsUI', |
408 | 479 | items: [this.paramGrid], |
409 | 480 | fbar: [{ |
410 | 481 | type: 'button', |
411 | - text: 'Generate Catalog', | |
482 | + text: 'Generate', | |
412 | 483 | scope: this, |
413 | 484 | handler: function () |
414 | 485 | { |
... | ... | @@ -428,7 +499,16 @@ Ext.define('amdaUI.StatisticsUI', |
428 | 499 | this.paramGrid.store.removeAll(); |
429 | 500 | this.timeSelector.TTGrid.store.removeAll(); |
430 | 501 | } |
431 | - }] | |
502 | + }, | |
503 | + { | |
504 | + text: 'Save', | |
505 | + id: 'save-statistic', | |
506 | + scope: this, | |
507 | + handler: function () { | |
508 | + this.saveRequest(); | |
509 | + } | |
510 | + } | |
511 | + ] | |
432 | 512 | }, |
433 | 513 | { |
434 | 514 | xtype: 'form', |
... | ... |
js/app/views/TabResultUI.js
... | ... | @@ -31,7 +31,7 @@ Ext.define('amdaUI.TabResultUI', { |
31 | 31 | break; |
32 | 32 | case 'download': var title = 'Download Results'; |
33 | 33 | break; |
34 | - case 'statistics': var title = 'Statistics Results'; | |
34 | + case 'statistic': var title = 'Statistics Results'; | |
35 | 35 | break; |
36 | 36 | default: |
37 | 37 | } |
... | ... | @@ -319,7 +319,7 @@ Ext.define('amdaUI.ResultItem', { |
319 | 319 | case 'condition' : |
320 | 320 | Ext.apply(this, configTT); |
321 | 321 | break; |
322 | - case 'statistics' : | |
322 | + case 'statistic' : | |
323 | 323 | Ext.apply(this, configCat); |
324 | 324 | break; |
325 | 325 | case 'request' : |
... | ... |
php/classes/AmdaAction.php
... | ... | @@ -10,7 +10,7 @@ class AmdaAction |
10 | 10 | 'remoteSimuParam' => 'RemoteParams.xml', 'derivedParam' => 'WsParams.xml', 'myDataParam' => 'WsParams.xml', |
11 | 11 | 'timeTable' => 'Tt.xml', 'catalog' => 'Tt.xml', 'alias' => 'Alias.xml', |
12 | 12 | 'myData' => 'Files.xml', |
13 | - 'request' => 'Request.xml', 'condition' => 'Request.xml', 'download' => 'Request.xml', | |
13 | + 'request' => 'Request.xml', 'condition' => 'Request.xml', 'download' => 'Request.xml', 'statistic' => 'Request.xml', | |
14 | 14 | 'bkgWorks' => 'jobs.xml'); |
15 | 15 | |
16 | 16 | private $user, $amdaStat; |
... | ... | @@ -172,6 +172,7 @@ class AmdaAction |
172 | 172 | case 'download': |
173 | 173 | case 'condition': |
174 | 174 | case 'request': |
175 | + case 'statistic': | |
175 | 176 | $objectMgr = new RequestMgr($nodeType); |
176 | 177 | $info = $objectMgr->getObjectInfo($id); |
177 | 178 | break; |
... | ... | @@ -735,6 +736,7 @@ class AmdaAction |
735 | 736 | case 'condition' : |
736 | 737 | case 'request' : |
737 | 738 | case 'download' : |
739 | + case 'statistic': | |
738 | 740 | $objectMgr = new RequestMgr($nodeType); |
739 | 741 | break; |
740 | 742 | case 'bkgWorks' : |
... | ... | @@ -769,6 +771,7 @@ class AmdaAction |
769 | 771 | case 'condition' : |
770 | 772 | case 'request' : |
771 | 773 | case 'download' : |
774 | + case 'statistic' : | |
772 | 775 | $objectMgr = new RequestMgr($obj->nodeType); |
773 | 776 | break; |
774 | 777 | case 'alias' : |
... | ... | @@ -808,6 +811,7 @@ class AmdaAction |
808 | 811 | case 'condition' : |
809 | 812 | case 'request' : |
810 | 813 | case 'download' : |
814 | + case 'statistic' : | |
811 | 815 | $objectMgr = new RequestMgr($obj->nodeType); |
812 | 816 | break; |
813 | 817 | case 'alias' : |
... | ... | @@ -842,6 +846,7 @@ class AmdaAction |
842 | 846 | case 'condition' : |
843 | 847 | case 'request' : |
844 | 848 | case 'download' : |
849 | + case 'statistic' : | |
845 | 850 | $objectMgr = new RequestMgr($obj->nodeType); |
846 | 851 | break; |
847 | 852 | case 'alias' : |
... | ... | @@ -873,6 +878,7 @@ class AmdaAction |
873 | 878 | case 'condition' : |
874 | 879 | case 'request' : |
875 | 880 | case 'download' : |
881 | + case 'statistic' : | |
876 | 882 | $objectMgr = new RequestMgr($obj->nodeType); |
877 | 883 | break; |
878 | 884 | default: |
... | ... | @@ -900,6 +906,7 @@ class AmdaAction |
900 | 906 | case 'condition' : |
901 | 907 | case 'request' : |
902 | 908 | case 'download' : |
909 | + case 'statistic' : | |
903 | 910 | $objectMgr = new RequestMgr($obj->nodeType); |
904 | 911 | break; |
905 | 912 | default: |
... | ... |
php/classes/AmdaStats.php
... | ... | @@ -7,13 +7,13 @@ |
7 | 7 | class AmdaStats { |
8 | 8 | |
9 | 9 | public $statXml; |
10 | - public $tasks = array('plot', 'mining', 'print', 'statistics'); | |
10 | + public $tasks = array('plot', 'mining', 'print', 'statistic'); | |
11 | 11 | public $tasksWs = array('ws_print', 'ws_plot'); |
12 | 12 | public $tasksAdd = array('ttoper', 'samp', 'upload', 'create', 'images'); |
13 | 13 | public $usersToExclude = array('bouchemit'); |
14 | 14 | public $success = true; |
15 | 15 | private $user = null; |
16 | - private $task = array('request'=>'plot','condition'=>'mining', 'download'=>'print','statistics'=>'statistics', | |
16 | + private $task = array('request'=>'plot','condition'=>'mining', 'download'=>'print','statistic'=>'statistics', | |
17 | 17 | 'getparameter'=>'ws_print', 'getdataset' => 'ws_print', 'getorbites' => 'ws_print', 'getplot' => 'ws_plot'); |
18 | 18 | |
19 | 19 | public function __construct($user) { |
... | ... |
php/classes/RequestMgr.php
... | ... | @@ -9,7 +9,7 @@ class RequestMgr extends AmdaObjectMgr |
9 | 9 | public $obj; |
10 | 10 | protected $type; |
11 | 11 | protected $jobXml, $jobXmlName; |
12 | - protected $types = array('request', 'download', 'condition'); | |
12 | + protected $types = array('request', 'download', 'condition', 'statistic'); | |
13 | 13 | |
14 | 14 | function __construct($type) |
15 | 15 | { |
... | ... | @@ -38,6 +38,10 @@ class RequestMgr extends AmdaObjectMgr |
38 | 38 | { |
39 | 39 | $this->id_prefix = 'down_'; |
40 | 40 | } |
41 | + else if ($type == 'statistic') | |
42 | + { | |
43 | + $this->id_prefix = 'stat_'; | |
44 | + } | |
41 | 45 | else |
42 | 46 | { |
43 | 47 | $this->id_prefix = 'cond_'; |
... | ... | @@ -298,7 +302,7 @@ class RequestMgr extends AmdaObjectMgr |
298 | 302 | if (count($argsTab) > 0) $args[] = $argsTab; |
299 | 303 | |
300 | 304 | break; |
301 | - case 'statistics' : | |
305 | + case 'statistic' : | |
302 | 306 | return array('success' => true); |
303 | 307 | break; |
304 | 308 | default : |
... | ... | @@ -421,6 +425,9 @@ class RequestMgr extends AmdaObjectMgr |
421 | 425 | $info .= "Empty"; |
422 | 426 | } |
423 | 427 | break; |
428 | + case 'statistic': | |
429 | + $info .= "Statistic: TODO"; | |
430 | + break; | |
424 | 431 | default: |
425 | 432 | $info .= "<b>ERROR:</b> Unknown request type"; |
426 | 433 | } |
... | ... |