Blame view

php/classes/AmdaAction.php 40.6 KB
16035364   Benjamin Renard   First commit
1
2
3
<?php
/**
 * @class AmdaAction
aa94fd24   elena   Merge with last svn
4
 * @version $Id: AmdaAction.php 2976 2015-07-01 15:05:40Z benjamin $
9e3cbd95   Elena.Budnik   merge AMDA_IHM AM...
5
 * @brief
16035364   Benjamin Renard   First commit
6
 */
10200969   Roipoussiere   Remove whitespace...
7
class AmdaAction
735c653b   Elena.Budnik   rank at observato...
8
{
10200969   Roipoussiere   Remove whitespace...
9
	private $xmlFiles  = array('localParam' => 'LocalParams.xml', 'remoteParam' => 'RemoteParams.xml',
735c653b   Elena.Budnik   rank at observato...
10
										'remoteSimuParam' => 'RemoteParams.xml', 'derivedParam' => 'WsParams.xml', 'myDataParam' => 'WsParams.xml',
10200969   Roipoussiere   Remove whitespace...
11
12
										'timeTable' => 'Tt.xml', 'catalog' => 'Tt.xml', 'alias' => 'Alias.xml',
										'myData' => 'Files.xml',
735c653b   Elena.Budnik   rank at observato...
13
14
15
16
17
										'request' => 'Request.xml', 'condition' => 'Request.xml',
										'bkgWorks' => 'jobs.xml');

	private $user, $amdaStat;

10200969   Roipoussiere   Remove whitespace...
18
19
	public function __construct()
	{
735c653b   Elena.Budnik   rank at observato...
20
21
22
23
24
		$dd = new UserMgr();
		$this->user = $dd->user;
		if (!defined('NEWKERNEL_DEBUG') || !NEWKERNEL_DEBUG)
					$this->amdaStat = new AmdaStats($dd->user);
	}
16035364   Benjamin Renard   First commit
25

10200969   Roipoussiere   Remove whitespace...
26
	private function getUrlDirs($url)
735c653b   Elena.Budnik   rank at observato...
27
28
29
	{
		//TODO replace by ftp php class methods: ftp_nlist() etc
		require_once "simple_html_dom.php";
10200969   Roipoussiere   Remove whitespace...
30
31

		$url = html_entity_decode($url);
735c653b   Elena.Budnik   rank at observato...
32
		$trimmed_url = trim($url);
10200969   Roipoussiere   Remove whitespace...
33
		if (strrpos($trimmed_url, "/") == strlen($trimmed_url) - 1)
735c653b   Elena.Budnik   rank at observato...
34
		{
10200969   Roipoussiere   Remove whitespace...
35
			if (file_exists("temp.html")) unlink("temp.html");
735c653b   Elena.Budnik   rank at observato...
36
			exec("wget -O temp.html ".$url);
10200969   Roipoussiere   Remove whitespace...
37

735c653b   Elena.Budnik   rank at observato...
38
39
			$html = file_get_html('temp.html');
			$dirs = $html->find('a[href]');
10200969   Roipoussiere   Remove whitespace...
40
			foreach ($dirs as $dir)
735c653b   Elena.Budnik   rank at observato...
41
			{
6acb8d2a   Elena.Budnik   checkRequest in R...
42
43
				$name =  $dir->innertext; //$dir->href;
				$isLeaf = strrpos($name, "/") !== strlen($name) - 1;
10200969   Roipoussiere   Remove whitespace...
44
				$childrenToReturn[] = array('text' => $name, 'id' => $trimmed_url.$name, 'nodeType' => 'url', 'leaf' => $isLeaf);
735c653b   Elena.Budnik   rank at observato...
45
			}
10200969   Roipoussiere   Remove whitespace...
46

735c653b   Elena.Budnik   rank at observato...
47
		}
10200969   Roipoussiere   Remove whitespace...
48
49
50

		return $childrenToReturn;

735c653b   Elena.Budnik   rank at observato...
51
	}
10200969   Roipoussiere   Remove whitespace...
52

16035364   Benjamin Renard   First commit
53
54
/*****************************************************************
*                           PUBLIC FUNCTIONS
10200969   Roipoussiere   Remove whitespace...
55
56
*****************************************************************/

735c653b   Elena.Budnik   rank at observato...
57
58
59
60
	/*
	*   $obj = { id: node.id,  nodeType: node.nodeType }
	*/
	public function getTree($obj) {
735c653b   Elena.Budnik   rank at observato...
61
		$node = $obj->node;
10200969   Roipoussiere   Remove whitespace...
62

735c653b   Elena.Budnik   rank at observato...
63
		$nodeType = $obj->nodeType;
a0f13ed1   Elena.Budnik   small format + ti...
64
		
735c653b   Elena.Budnik   rank at observato...
65
66
		$remoteBase = false;
		$isRemoteDataSet = false;
16035364   Benjamin Renard   First commit
67

10200969   Roipoussiere   Remove whitespace...
68
		if ($nodeType == 'url')
735c653b   Elena.Budnik   rank at observato...
69
		{
10200969   Roipoussiere   Remove whitespace...
70
			$url = $node == 'root' ? $obj->baseId : $node;
735c653b   Elena.Budnik   rank at observato...
71
72
			return  $this->getUrlDirs($url);
		}
16035364   Benjamin Renard   First commit
73

e57cb025   Benjamin Renard   Fix most of error...
74
		if (isset($obj->baseId)) $remoteBase = true;
16035364   Benjamin Renard   First commit
75

735c653b   Elena.Budnik   rank at observato...
76
		if ($node == 'root' && $remoteBase)  $node = $obj->baseId;
16035364   Benjamin Renard   First commit
77

10200969   Roipoussiere   Remove whitespace...
78
79
		if ($node == 'root' && !$remoteBase)
		{
e57cb025   Benjamin Renard   Fix most of error...
80
81
82
83
84
85
86
87
88
89
90
91
			if (file_exists(DATAPATH.$nodeType.'.json')) {
				$json_o = json_decode(file_get_contents(DATAPATH.$nodeType.'.json'));
				if (empty($json_o)) {
					$childrenToReturn = array();
				}
				else {
					$childrenToReturn = $json_o->nodes;
				}
			}
			else {
				$childrenToReturn = array();
			}
10200969   Roipoussiere   Remove whitespace...
92
93
		}
		else
735c653b   Elena.Budnik   rank at observato...
94
95
96
		{
			$Dom = new DomDocument("1.0");

10200969   Roipoussiere   Remove whitespace...
97
			switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
98
99
100
101
102
			{
				case 'sharedtimeTable':
				case 'sharedcatalog':
					$xmlName = SHAREDPATH.'/SharedObjectTree.xml';
					break;
10200969   Roipoussiere   Remove whitespace...
103
				case 'bkgWorks':
84db3b67   NathanaĆ«l Jourdane   Improve job toolt...
104
					// data/<user>/JOBS/jobs.xml
735c653b   Elena.Budnik   rank at observato...
105
106
107
					$xmlName = USERJOBDIR.$this->xmlFiles[$nodeType];
					break;
				case 'source':
10200969   Roipoussiere   Remove whitespace...
108
109
110
111
					$xmlName = DATAPATH.'RemoteData/'.$obj->baseId.'/base.xml';
					break;
				case 'destination':
					$xmlName = USERWSDIR.'RemoteParams.xml';
735c653b   Elena.Budnik   rank at observato...
112
					break;
735c653b   Elena.Budnik   rank at observato...
113
114
115
				default:
					$xmlName = USERWSDIR.$this->xmlFiles[$nodeType];
			}
16035364   Benjamin Renard   First commit
116

a0f13ed1   Elena.Budnik   small format + ti...
117
			if ($remoteBase){
735c653b   Elena.Budnik   rank at observato...
118
				$nodeType = 'remoteParam';
10200969   Roipoussiere   Remove whitespace...
119
120
			}

e57cb025   Benjamin Renard   Fix most of error...
121
			@$Dom->load($xmlName);
10200969   Roipoussiere   Remove whitespace...
122

a0f13ed1   Elena.Budnik   small format + ti...
123
			if ($node == "myRemoteSimuData-treeRootNode") $node = "myRemoteData-treeRootNode";
10200969   Roipoussiere   Remove whitespace...
124

735c653b   Elena.Budnik   rank at observato...
125
			$nodeToOpen = $Dom->getElementById($node);
e57cb025   Benjamin Renard   Fix most of error...
126
			$children = empty($nodeToOpen->childNodes) ? array() : $nodeToOpen->childNodes;
16035364   Benjamin Renard   First commit
127

10200969   Roipoussiere   Remove whitespace...
128
129
			foreach ($children as $child)
				if ($child->nodeType == XML_ELEMENT_NODE)
735c653b   Elena.Budnik   rank at observato...
130
131
				{
					$isLeaf = true;
10200969   Roipoussiere   Remove whitespace...
132

735c653b   Elena.Budnik   rank at observato...
133
					if ($child->hasChildNodes())
10200969   Roipoussiere   Remove whitespace...
134
135
						foreach ($child->childNodes as $grandChild)
							if ($grandChild -> nodeType == XML_ELEMENT_NODE)
735c653b   Elena.Budnik   rank at observato...
136
137
138
139
140
141
							{
									$isLeaf = false;
									break;
							}
					if ($child->tagName == 'folder')  $isLeaf = false;

10200969   Roipoussiere   Remove whitespace...
142
143
					//TODO MAKE PROPERLY  as function of nodetype !!!!
					$info = '';
8ba47f72   Benjamin Renard   rest actualisatio...
144
145
					$dim_1 = 1;
					$dim_2 = 1;
735c653b   Elena.Budnik   rank at observato...
146
					$id =  $child->getAttribute('xml:id');
10200969   Roipoussiere   Remove whitespace...
147
					$name = $child->getAttribute('name');
735c653b   Elena.Budnik   rank at observato...
148
					$help = $child->getAttribute('att');
735c653b   Elena.Budnik   rank at observato...
149
150
151
152
153

					$specialNode = false;
					$isParameter = false;
					$isAddable =  false;
					$isSimulation = false;
0ead0129   Benjamin Renard   Modify save plot ...
154
					$plotTabs = FALSE;
735c653b   Elena.Budnik   rank at observato...
155
					$rank = null;
e57cb025   Benjamin Renard   Fix most of error...
156
					$skip = FALSE;
735c653b   Elena.Budnik   rank at observato...
157

10200969   Roipoussiere   Remove whitespace...
158
					switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
159
					{
10200969   Roipoussiere   Remove whitespace...
160
						case 'bkgWorks':
735c653b   Elena.Budnik   rank at observato...
161
							$specialNode = true;
84db3b67   NathanaĆ«l Jourdane   Improve job toolt...
162
163
164
165
166
167
							$childrenToReturn[] = [
								'text'     => $name,
								'id'       => $id,
								'nodeType' => $nodeType,
								'leaf'     => $isLeaf,
								'pid'      => $child->getAttribute('pid'),
b4bca467   NathanaĆ«l Jourdane   job tooltip: use ...
168
								'status'   => $child->getAttribute('status'),
84db3b67   NathanaĆ«l Jourdane   Improve job toolt...
169
								'jobType'  => $child->getAttribute('jobType'),
812bc03d   NathanaĆ«l Jourdane   update job info o...
170
								'info'     => $child->getAttribute('info')
84db3b67   NathanaĆ«l Jourdane   Improve job toolt...
171
							];
b4bca467   NathanaĆ«l Jourdane   job tooltip: use ...
172
							break;
735c653b   Elena.Budnik   rank at observato...
173
174
175

						case 'condition':
							$objectMgr = new RequestMgr();
10200969   Roipoussiere   Remove whitespace...
176
177
							$info = $objectMgr->getObject($id)->expression;
						break;
735c653b   Elena.Budnik   rank at observato...
178

10200969   Roipoussiere   Remove whitespace...
179
						case 'request':
735c653b   Elena.Budnik   rank at observato...
180
						$objectMgr = new RequestMgr();
10200969   Roipoussiere   Remove whitespace...
181
						$objplot = $objectMgr->getObject($id);
f31bea1c   Benjamin Renard   wip for save plot
182
183
184
185
186
187
188
						if (isset($objplot->name)) {
							$info = $objplot->name;
						}
						else {
							$info = $id;
						}

3efc6401   Benjamin Renard   Set icons for plo...
189
190
						$isLeaf = isset($objplot->tabs);
						if ($isLeaf) {
0ead0129   Benjamin Renard   Modify save plot ...
191
							$plotTabs = array();
f31bea1c   Benjamin Renard   wip for save plot
192
193
194
195
196
							foreach ($objplot->tabs as $index => $tab) {
								$plotTabs[$index] = array(
									"name" => "Plot ".($index+1),
									"id" => $tab->id,
								);
735c653b   Elena.Budnik   rank at observato...
197
198
							}
						}
0ead0129   Benjamin Renard   Modify save plot ...
199
200
						else
							$plotTabs = FALSE;
10200969   Roipoussiere   Remove whitespace...
201
						break;
735c653b   Elena.Budnik   rank at observato...
202

10200969   Roipoussiere   Remove whitespace...
203
						case 'alias':
735c653b   Elena.Budnik   rank at observato...
204
205
							$info = $id;
							$id = 'alias_'.$id;
10200969   Roipoussiere   Remove whitespace...
206
							if ($isLeaf) $isParameter = true;
735c653b   Elena.Budnik   rank at observato...
207
208
209
						break;

						case 'timeTable':
10200969   Roipoussiere   Remove whitespace...
210
						case 'catalog':
735c653b   Elena.Budnik   rank at observato...
211
212
							if ($isLeaf) $info = $child->getAttribute('intervals').' intervals';
						break;
10200969   Roipoussiere   Remove whitespace...
213

735c653b   Elena.Budnik   rank at observato...
214
215
						case 'sharedtimeTable':
						case 'sharedcatalog':
10200969   Roipoussiere   Remove whitespace...
216
							if ($isLeaf)
735c653b   Elena.Budnik   rank at observato...
217
218
219
220
221
222
223
224
							{
								$info = '<b>Nb intervals:</b> '.$child->getAttribute('nbIntervals').'<br/>';
								$info .= '<b>Shared by:</b> '.$child->getAttribute('sharedBy').' ('.$child->getAttribute('sharedDate').')<br/>';
								$info .= '<b>Description:</b> '.$child->getAttribute('description');
							}
						break;
						case 'derivedParam':
							$info = $child->getAttribute('buildchain');
8ba47f72   Benjamin Renard   rest actualisatio...
225
226
227
228
229
230
231
232
							
							if ($child->hasAttribute('dim_1')) {
								$dim_1 = $child->getAttribute('dim_1');
							}
					                if ($child->hasAttribute('dim_2')) {
                                                                $dim_2 = $child->getAttribute('dim_2');
                                                        }

735c653b   Elena.Budnik   rank at observato...
233
234
235
236
237
238
239
240
241
242
243
							if ($isLeaf) $isParameter = true;
						break;

						case 'localParam':

							$globalStart = null;
							$globalStop = null;
							$timeRestriction = false;
							$specialNode = true;
							$isParameter = false;
							$needsArgs = false;
10200969   Roipoussiere   Remove whitespace...
244
							$isSpectra = false;
dc9e2c14   Elena.Budnik   init + message + ...
245
							$is2dSpectra = false;
735c653b   Elena.Budnik   rank at observato...
246
							$isStack = false;
e57cb025   Benjamin Renard   Fix most of error...
247
							$not_yet = false;
735c653b   Elena.Budnik   rank at observato...
248

10200969   Roipoussiere   Remove whitespace...
249
250
							if ($child->hasAttribute('desc'))
							{
735c653b   Elena.Budnik   rank at observato...
251
								$info = $child->getAttribute('desc');
10200969   Roipoussiere   Remove whitespace...
252

c57c57c9   Elena.Budnik   info message depe...
253
								if ($child->hasAttribute('dataStart') && $child->hasAttribute('dataStop')) {
10200969   Roipoussiere   Remove whitespace...
254
									$info .= "<br/>Time Range: ".$child->getAttribute('dataStart')."-".$child->getAttribute('dataStop');
a7316784   Elena.Budnik   add LastUpdate to...
255
256
257
258
									
									if ($child->hasAttribute('lastUpdate')) {
										$info .= "<br/>Last Updated: : ".$child->getAttribute('lastUpdate');
									}
735c653b   Elena.Budnik   rank at observato...
259
								}
10200969   Roipoussiere   Remove whitespace...
260

c57c57c9   Elena.Budnik   info message depe...
261
								if ($child->getAttribute('dataStart') == 'depending on mission') {
735c653b   Elena.Budnik   rank at observato...
262
									$info .= "<br/>Time Range: ".$child->getAttribute('dataStart');
10200969   Roipoussiere   Remove whitespace...
263
								}
a7316784   Elena.Budnik   add LastUpdate to...
264
	
f29c5e66   Elena.Budnik   plot only option
265
266
267
268
// 								if ($child->getAttribute('restriction') > 1) {
// 									$restricted  = $child->getAttribute('restriction');
// 									$info .= "<br/><b>Time Restriction</b>: -$restricted days";
// 								}
735c653b   Elena.Budnik   rank at observato...
269
							}
10200969   Roipoussiere   Remove whitespace...
270

735c653b   Elena.Budnik   rank at observato...
271
272
							if ($child->hasAttribute('units')) $info = $child->getAttribute('units');

f29c5e66   Elena.Budnik   plot only option
273
							if ($child->tagName == 'parameter') {
735c653b   Elena.Budnik   rank at observato...
274
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
275

c57c57c9   Elena.Budnik   info message depe...
276
								if ($child->parentNode->hasAttribute('dataStart')) {
735c653b   Elena.Budnik   rank at observato...
277
									$globalStart = $child->parentNode->getAttribute('dataStart');
10200969   Roipoussiere   Remove whitespace...
278
									$globalStop = $child->parentNode->getAttribute('dataStop');
735c653b   Elena.Budnik   rank at observato...
279
								}
f29c5e66   Elena.Budnik   plot only option
280
281
282
283
284
									
								if ($child->parentNode->hasAttribute('restriction')) {
									if ($child->parentNode->getAttribute('restriction') == "plotOnly") {
										$not_yet = true;
									}
10200969   Roipoussiere   Remove whitespace...
285
								}
f29c5e66   Elena.Budnik   plot only option
286
287
288
// 								if ($child->parentNode->getAttribute('restriction') > 1 ) {
// 									$timeRestriction = true;
// 								}
735c653b   Elena.Budnik   rank at observato...
289
							}
10200969   Roipoussiere   Remove whitespace...
290

735c653b   Elena.Budnik   rank at observato...
291
292
293
294
							$component_info = array();
							if ($child->tagName == 'component')
							{
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
295

c57c57c9   Elena.Budnik   info message depe...
296
								if ($child->parentNode->parentNode->hasAttribute('dataStart')) {
735c653b   Elena.Budnik   rank at observato...
297
									$globalStart = $child->parentNode->parentNode->getAttribute('dataStart');
10200969   Roipoussiere   Remove whitespace...
298
299
									$globalStop = $child->parentNode->parentNode->getAttribute('dataStop');
								}
f29c5e66   Elena.Budnik   plot only option
300
301
302
303
304
								
								if ($child->parentNode->parentNode->hasAttribute('restriction')) {
									if ($child->parentNode->parentNode->getAttribute('restriction') == "plotOnly") {
										$not_yet = true;
									}
10200969   Roipoussiere   Remove whitespace...
305
								}
f29c5e66   Elena.Budnik   plot only option
306
307
308
// 								if ($child->parentNode->parentNode->getAttribute('restriction') > 1) {
// 									$timeRestriction = true;
// 								}
735c653b   Elena.Budnik   rank at observato...
309
310
311
312
313

								if ($child->hasAttribute("index1"))
									$component_info["index1"] = $child->getAttribute('index1');
								if ($child->hasAttribute("index2"))
									$component_info["index2"] = $child->getAttribute('index2');
10200969   Roipoussiere   Remove whitespace...
314

735c653b   Elena.Budnik   rank at observato...
315
316
								$component_info["parentId"] = $child->parentNode->getAttribute('xml:id');
							}
10200969   Roipoussiere   Remove whitespace...
317

f29c5e66   Elena.Budnik   plot only option
318
							if ($child->tagName == 'parameter' && $child->hasAttribute('display_type')){
c57c57c9   Elena.Budnik   info message depe...
319
								if ($child->getAttribute('display_type') == 'spectrogram') {
10200969   Roipoussiere   Remove whitespace...
320
321
										$needsArgs = true;
										$isSpectra = true;
dc9e2c14   Elena.Budnik   init + message + ...
322
323
										if (strpos($child->getAttribute('name'),'2D') !== false)
											$is2dSpectra = true;
735c653b   Elena.Budnik   rank at observato...
324
								}
c57c57c9   Elena.Budnik   info message depe...
325
								elseif ($child->getAttribute('display_type') == 'stackplot') {
735c653b   Elena.Budnik   rank at observato...
326
										$isStack = true;
735c653b   Elena.Budnik   rank at observato...
327
								}
10200969   Roipoussiere   Remove whitespace...
328
329
							}

f31bea1c   Benjamin Renard   wip for save plot
330

c57c57c9   Elena.Budnik   info message depe...
331
							if ($isParameter) {
735c653b   Elena.Budnik   rank at observato...
332
333
								$objectMgr = new AliasMgr();
								$alias = $objectMgr->getAlias($id);
10200969   Roipoussiere   Remove whitespace...
334

661293d7   Elena.Budnik   parse ## and @@ i...
335
								$childrenToReturn[] = array('text' => $name,'alias' => $alias,
735c653b   Elena.Budnik   rank at observato...
336
337
									'id' => $id,'nodeType' => $nodeType, 'info' => $info, "component_info" => $component_info,
									'globalStart' => $globalStart, 'globalStop' => $globalStop, 'timeRestriction' => $timeRestriction,
dc9e2c14   Elena.Budnik   init + message + ...
338
339
									'leaf' => $isLeaf, 'isParameter' => $isParameter,'isSpectra' => $isSpectra,
									'is2dSpectra' => $is2dSpectra,'isStack' => $isStack, 'needsArgs' => $needsArgs, 'help' => $help, 'notyet' => $not_yet);
735c653b   Elena.Budnik   rank at observato...
340
							}
c57c57c9   Elena.Budnik   info message depe...
341
							else {
c57c57c9   Elena.Budnik   info message depe...
342
								if ($child->tagName == 'mission' || $child->tagName == 'observatory') {
735c653b   Elena.Budnik   rank at observato...
343
344
									$rank = $child->getAttribute('rank');
								}
c57c57c9   Elena.Budnik   info message depe...
345
								
acf87705   Elena.Budnik   bug in disable param
346
347
								$disable = $child->hasAttribute('group');

c57c57c9   Elena.Budnik   info message depe...
348
								if ($disable) {
acf87705   Elena.Budnik   bug in disable param
349
									if ($child->getAttribute("group") !== "TBD") {
c57c57c9   Elena.Budnik   info message depe...
350
351
											$info .=  "<br/><b>Restricted Access</b>";
										}
10200969   Roipoussiere   Remove whitespace...
352
									else {
c57c57c9   Elena.Budnik   info message depe...
353
										$info .=  "<br/><b>Sorry! Not finished yet...</b>";
735c653b   Elena.Budnik   rank at observato...
354
									}
acf87705   Elena.Budnik   bug in disable param
355
356
357
358
								} 
								else {
									if ($child->hasAttribute('restriction') && $child->getAttribute('restriction') == 'plotOnly')
										$info .=  "<br/><b>Plot Only!!!</b>";
735c653b   Elena.Budnik   rank at observato...
359
360
								}

10200969   Roipoussiere   Remove whitespace...
361
362
								$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'info' => $info,
									'leaf' => false, 'help' => $help, 'disable' => $disable, 'rank' => $rank);
735c653b   Elena.Budnik   rank at observato...
363
364
365
366
							}
						break;

						case 'remoteSimuParam' :
10200969   Roipoussiere   Remove whitespace...
367

bf74fc2d   Elena.Budnik   IMPEX
368
							$globalStart = null;
6657f68b   Elena.Budnik   monitor impex ser...
369
							$service_down = false;
735c653b   Elena.Budnik   rank at observato...
370
							$isSimulation = true;
10200969   Roipoussiere   Remove whitespace...
371
372

			            if ($child->getAttribute('isAddable')) // 'spase://IMPEX/SimulationModel/FMI/GUMICS'
735c653b   Elena.Budnik   rank at observato...
373
374
375
376
							{
								$isLeaf = false;
								$isAddable = true;
							}
10200969   Roipoussiere   Remove whitespace...
377
378

							if ($child->tagName == 'dataCenter')
735c653b   Elena.Budnik   rank at observato...
379
							{
10200969   Roipoussiere   Remove whitespace...
380
								if ($child->getAttribute('isSimulation'))
6657f68b   Elena.Budnik   monitor impex ser...
381
								{
10200969   Roipoussiere   Remove whitespace...
382
383
									$service_down = !($child->getAttribute('available'));
									break;
6657f68b   Elena.Budnik   monitor impex ser...
384
								}
10200969   Roipoussiere   Remove whitespace...
385
								else
735c653b   Elena.Budnik   rank at observato...
386
387
388
389
390
								{
									$skip = true;
									break;
								}
							}
10200969   Roipoussiere   Remove whitespace...
391
392

							if ($child->hasAttribute('rank'))
735c653b   Elena.Budnik   rank at observato...
393
394
395
							{
								$rank = $child->getAttribute('rank');
							}
10200969   Roipoussiere   Remove whitespace...
396

bf74fc2d   Elena.Budnik   IMPEX
397
398
							if ( $child->tagName == 'parameter')
							{
abb54096   Elena.Budnik   time interval by ...
399
								if ($child->parentNode->hasAttribute('globalStart'))
bf74fc2d   Elena.Budnik   IMPEX
400
									{
abb54096   Elena.Budnik   time interval by ...
401
402
										$globalStart = $child->parentNode->getAttribute('globalStart');
										$globalStop = $child->parentNode->getAttribute('globalStop');
bf74fc2d   Elena.Budnik   IMPEX
403
404
									}
							}
10200969   Roipoussiere   Remove whitespace...
405

bf74fc2d   Elena.Budnik   IMPEX
406
407
							if ( $child->tagName == 'component')
							{
abb54096   Elena.Budnik   time interval by ...
408
								if ($child->parentNode->parentNode->hasAttribute('globalStart'))
bf74fc2d   Elena.Budnik   IMPEX
409
									{
abb54096   Elena.Budnik   time interval by ...
410
411
										$globalStart = $child->parentNode->parentNode->getAttribute('globalStart');
										$globalStop = $child->parentNode->parentNode->getAttribute('globalStop');
bf74fc2d   Elena.Budnik   IMPEX
412
413
									}
							}
10200969   Roipoussiere   Remove whitespace...
414

735c653b   Elena.Budnik   rank at observato...
415
						case 'remoteParam' :
10200969   Roipoussiere   Remove whitespace...
416
417

							if ($child->getAttribute('isSimulation') && $child->tagName == 'dataCenter')
735c653b   Elena.Budnik   rank at observato...
418
419
420
421
422
423
424
							{
								$skip = true;
								break;
							}

							$isDeletable = $child->hasAttribute('isDeletable');
							$specialNode = true;
10200969   Roipoussiere   Remove whitespace...
425
426
427
428
429
							$isParameter = false;

							$isSpectra = false;

							switch ($id)
735c653b   Elena.Budnik   rank at observato...
430
							{
10200969   Roipoussiere   Remove whitespace...
431
								case 'CDAWEB'  :
735c653b   Elena.Budnik   rank at observato...
432
433
434
								case 'THEMIS' :
									$rank = 5;
									break;
735c653b   Elena.Budnik   rank at observato...
435
436
								default:
							}
10200969   Roipoussiere   Remove whitespace...
437

735c653b   Elena.Budnik   rank at observato...
438
439
							$info = $child->getAttribute('desc');

10200969   Roipoussiere   Remove whitespace...
440
441
							if ($info && !$isSimulation)
							{
735c653b   Elena.Budnik   rank at observato...
442
								$info = str_replace(';', "<br/>Time Range: ", $info);
10200969   Roipoussiere   Remove whitespace...
443
444
445
							}

							if (($child->tagName == 'parameter') || ($child->tagName == 'component'))
735c653b   Elena.Budnik   rank at observato...
446
447
							{
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
448
							}
10200969   Roipoussiere   Remove whitespace...
449

9a63b7f6   Elena.Budnik   needsArgs to Simu...
450
							$needsArgs =  $child->getAttribute('needsArgs');
735c653b   Elena.Budnik   rank at observato...
451

10200969   Roipoussiere   Remove whitespace...
452
							if ($remoteBase)
735c653b   Elena.Budnik   rank at observato...
453
							{
10200969   Roipoussiere   Remove whitespace...
454
								if ($child->tagName == 'dataset') $isRemoteDataSet = true;
735c653b   Elena.Budnik   rank at observato...
455
							}
a0f13ed1   Elena.Budnik   small format + ti...
456
457
458
459
460
461
462
							
							if ($child->tagName == 'parameter'){
								if ($child->parentNode->hasAttribute('dataStart')){
									$globalStart = date('Y-m-d\TH:i:s\Z', strtotime($child->parentNode->getAttribute('dataStart')));
									$globalStop = date('Y-m-d\TH:i:s\Z',  strtotime($child->parentNode->getAttribute('dataStop')));
								}
							}
735c653b   Elena.Budnik   rank at observato...
463

a0f13ed1   Elena.Budnik   small format + ti...
464
465
466
467
468
469
470
							if ( $child->tagName == 'component'){
								if ($child->parentNode->parentNode->hasAttribute('dataStart')){
									$globalStart = date('Y-m-d\TH:i:s\Z', strtotime($child->parentNode->getAttribute('dataStart')));
									$globalStop = date('Y-m-d\TH:i:s\Z',  strtotime($child->parentNode->getAttribute('dataStop')));
								}
							}
							
10200969   Roipoussiere   Remove whitespace...
471
							if ($isParameter)
735c653b   Elena.Budnik   rank at observato...
472
							{
10200969   Roipoussiere   Remove whitespace...
473
								$disable = $child->parentNode->getAttribute('disabled');
735c653b   Elena.Budnik   rank at observato...
474
475
476
477
478
								$objectMgr = new AliasMgr();
								$alias = $objectMgr->getAlias($id);

								if ($child->hasAttribute('display_type') && $child->getAttribute('display_type') == 'spectrogram')
								{
10200969   Roipoussiere   Remove whitespace...
479
									$needsArgs = true;
735c653b   Elena.Budnik   rank at observato...
480
									$isSpectra = true;
10200969   Roipoussiere   Remove whitespace...
481
								}
bf74fc2d   Elena.Budnik   IMPEX
482
								if ($globalStart)
10200969   Roipoussiere   Remove whitespace...
483
								 $childrenToReturn[] = array('text' => $name,'alias' => $alias,
bf74fc2d   Elena.Budnik   IMPEX
484
										'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,  'globalStart' => $globalStart,
10200969   Roipoussiere   Remove whitespace...
485
										'globalStop' => $globalStop, 'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter,
1c007ca2   Elena.Budnik   vector icon for M...
486
										'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs, "component_info" => isset($component_info) ? $component_info : NULL);
bf74fc2d   Elena.Budnik   IMPEX
487
								else
10200969   Roipoussiere   Remove whitespace...
488
									$childrenToReturn[] = array('text' => $name,'alias' => $alias,
bf74fc2d   Elena.Budnik   IMPEX
489
										'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,
10200969   Roipoussiere   Remove whitespace...
490
										'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter,
1c007ca2   Elena.Budnik   vector icon for M...
491
										'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs, "component_info" => $component_info);
735c653b   Elena.Budnik   rank at observato...
492
							}
10200969   Roipoussiere   Remove whitespace...
493
494
							else
							{
e57cb025   Benjamin Renard   Fix most of error...
495
								$restricted = FALSE;
9e3cbd95   Elena.Budnik   merge AMDA_IHM AM...
496
								
735c653b   Elena.Budnik   rank at observato...
497
								if ($child->tagName == 'dataset')
6657f68b   Elena.Budnik   monitor impex ser...
498
								{
735c653b   Elena.Budnik   rank at observato...
499
									$nonavailable = ($child->getAttribute('disabled'));
6657f68b   Elena.Budnik   monitor impex ser...
500
								}
735c653b   Elena.Budnik   rank at observato...
501
								else
6657f68b   Elena.Budnik   monitor impex ser...
502
								{
735c653b   Elena.Budnik   rank at observato...
503
									$nonavailable = false;
6657f68b   Elena.Budnik   monitor impex ser...
504
								}
10200969   Roipoussiere   Remove whitespace...
505

735c653b   Elena.Budnik   rank at observato...
506
507
508
509
510
511
								if ($nonavailable)
									$info .= "<br/><b>Not available yet</b>";

								if ($child->getAttribute('url'))
									$info .= "<br/>".$child->getAttribute('url');

10200969   Roipoussiere   Remove whitespace...
512
								if ($child->hasAttribute('obsolete'))
735c653b   Elena.Budnik   rank at observato...
513
514
515
516
517
518
519
520
								{
									$info = $child->getAttribute('desc');
									$obsolete = true;
								}
								else
									$obsolete = false;

								$disable = $restricted || $nonavailable || $obsolete;
10200969   Roipoussiere   Remove whitespace...
521

735c653b   Elena.Budnik   rank at observato...
522
								$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'isAddable' => $isAddable,
10200969   Roipoussiere   Remove whitespace...
523
524
525
								'info' => $info, 'leaf' => false, 'isRemoteDataSet' => $isRemoteDataSet, 'disable' => $disable,
								'isSimulation' => $isSimulation, 'rank' => $rank, 'isDeletable' => $isDeletable, 'help' => $help);
							}
735c653b   Elena.Budnik   rank at observato...
526
						break;
10200969   Roipoussiere   Remove whitespace...
527
528
529

						case 'myData' :
							$info = $child->hasAttribute('info') ? $child->getAttribute('info') : $child->nodeValue;
735c653b   Elena.Budnik   rank at observato...
530
531
532
533
534
535
536
537
						break;

						case 'myDataParam' :

							$globalStart = null;
							$globalStop = null;
							$specialNode = true;
							$size = $child->getAttribute('size');
735c653b   Elena.Budnik   rank at observato...
538
							$mask = $child->getAttribute('mask');
19dcd963   Elena.Budnik   redmine #4903 : s...
539
540
541
							$sampling = null;
							if ($child->hasAttribute('minsampling')) 
								$sampling = $child->getAttribute('minsampling');
735c653b   Elena.Budnik   rank at observato...
542
							$isSpectra = false;
10200969   Roipoussiere   Remove whitespace...
543
544

							if ($isLeaf)
735c653b   Elena.Budnik   rank at observato...
545
546
547
							{
									$isParameter = true;
									$info = "Size: ".$size."<br/>".$child->getAttribute('desc')."<br/> Mask: ".$mask;
19dcd963   Elena.Budnik   redmine #4903 : s...
548
549
									if ($sampling)
										$info .= "<br/> Sampling : ".$sampling;
735c653b   Elena.Budnik   rank at observato...
550
551
552
									$isSpectra = $child->getAttribute('plottype') === 'Spectra';
							}

10200969   Roipoussiere   Remove whitespace...
553
							if ($child->hasAttribute('desc'))
735c653b   Elena.Budnik   rank at observato...
554
555
556
557
558
							{
									$globalStart = substr($child->getAttribute('desc'), 0, 19);
									$globalStop =  substr($child->getAttribute('desc'), 20);
							}

10200969   Roipoussiere   Remove whitespace...
559
							$childrenToReturn[] = array('text' => $name, 'size' =>  $size, 'id' => $id,
735c653b   Elena.Budnik   rank at observato...
560
								'globalStart' => $globalStart, 'globalStop' => $globalStop,
1c007ca2   Elena.Budnik   vector icon for M...
561
								'nodeType' => $nodeType, 'info' => $info,  'leaf' => $isLeaf,
735c653b   Elena.Budnik   rank at observato...
562
563
564
								'isParameter' => $isParameter, 'linkedMask' => $mask, 'isSpectra' => $isSpectra);

						break;
10200969   Roipoussiere   Remove whitespace...
565
						default:
735c653b   Elena.Budnik   rank at observato...
566
					}
10200969   Roipoussiere   Remove whitespace...
567
568

					if (!$specialNode && !$skip)
735c653b   Elena.Budnik   rank at observato...
569
					{
10200969   Roipoussiere   Remove whitespace...
570
						if ($child->hasAttribute('desc'))
735c653b   Elena.Budnik   rank at observato...
571
							$info = $child->getAttribute('desc');
10200969   Roipoussiere   Remove whitespace...
572
573

						if ($isSimulation && $service_down)
6657f68b   Elena.Budnik   monitor impex ser...
574
575
576
						{
							$info = "<b>Service is currently down</b>";
						}
10200969   Roipoussiere   Remove whitespace...
577
578

						$childrenToReturn[] = array('text' => $name, 'id' => $id, 'nodeType' => $nodeType, 'info' => $info,
f31bea1c   Benjamin Renard   wip for save plot
579
													'help' => $help, 'leaf' => $isLeaf, 'isParameter' => $isParameter, 'dim_1' => $dim_1, 'dim_2' => $dim_2, 'tabs' => $plotTabs);
735c653b   Elena.Budnik   rank at observato...
580
581
582
					}
				}
				// if $childrenToReturn we have to return []
e57cb025   Benjamin Renard   Fix most of error...
583
				if (empty($childrenToReturn))
10200969   Roipoussiere   Remove whitespace...
584
				{
735c653b   Elena.Budnik   rank at observato...
585
586
587
					$childrenToReturn = array('nodeType' => $nodeType, 'text' => null);
				}
			}
16035364   Benjamin Renard   First commit
588
      return  $childrenToReturn;
735c653b   Elena.Budnik   rank at observato...
589
	}
16035364   Benjamin Renard   First commit
590

0dc31ba8   Elena.Budnik   remoteParamManage...
591
592
593
594
595
	/*
	*  add Remote Parameter to user RemoteParams.xml
	*  send request to DDServer to AddVi if Vi doesn't exist
	*  create Remote Parameter Description	
	*/
10200969   Roipoussiere   Remove whitespace...
596
	public  function saveTree($obj)
735c653b   Elena.Budnik   rank at observato...
597
	{
0dc31ba8   Elena.Budnik   remoteParamManage...
598
		$paramMgr = new RemoteParamManager();
2b8ea2a7   Elena.Budnik   RemoteParamManage...
599
600
601
602
603
604
		$res = $paramMgr->init();
		
		if ($res['success'])
			return $paramMgr->saveTree($obj);
		else 
			return $res;
735c653b   Elena.Budnik   rank at observato...
605
	}
0dc31ba8   Elena.Budnik   remoteParamManage...
606
607
608
609
	
	/*
	*  delete Remote Parameter from user RemoteParams.xml
	*/
10200969   Roipoussiere   Remove whitespace...
610
611
	public  function deleteFromTree($obj)
	{
0dc31ba8   Elena.Budnik   remoteParamManage...
612
		$paramMgr = new RemoteParamManager();
2b8ea2a7   Elena.Budnik   RemoteParamManage...
613
614
615
616
617
618
		$res = $paramMgr->init();
		
		if ($res['success'])
			return $paramMgr->deleteFromTree($obj);
		else 
			return $res;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
619
	}
0dc31ba8   Elena.Budnik   remoteParamManage...
620
621
622
623
624
		
	public  function doNothing($obj)
	{
		return array("res" => 'ok');
	}
16035364   Benjamin Renard   First commit
625

0dc31ba8   Elena.Budnik   remoteParamManage...
626
627
628
	/*
	*  get temporary object from Upload
	*/
9a63b7f6   Elena.Budnik   needsArgs to Simu...
629
	public  function getUploadedObject($name, $format, $nodeType)
10200969   Roipoussiere   Remove whitespace...
630
	{
5f8bd1f5   NathanaĆ«l Jourdane   Fix Windows-files...
631
632
633
		$fileContent = preg_replace(['~\R~u', "/\t/"], ["\n", ' '], trim(file_get_contents(USERTEMPDIR . $name)));
		file_put_contents(USERTEMPDIR . $name, $fileContent);

10200969   Roipoussiere   Remove whitespace...
634
		switch ($nodeType)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
635
		{
10200969   Roipoussiere   Remove whitespace...
636
637
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
9a63b7f6   Elena.Budnik   needsArgs to Simu...
638
				break;
10200969   Roipoussiere   Remove whitespace...
639
640
641
642
643
			case 'myDataParam' :
				$objectMgr = new FilesMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
9a63b7f6   Elena.Budnik   needsArgs to Simu...
644
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
645
646
647
			default:
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
648
		return  $objectMgr->getUploadedObject($name, $format, true);
10200969   Roipoussiere   Remove whitespace...
649
	}
16035364   Benjamin Renard   First commit
650

0dc31ba8   Elena.Budnik   remoteParamManage...
651
652
653
	/*
	*  fill ascii file into grid
	*/
10200969   Roipoussiere   Remove whitespace...
654
655
656
	public  function getAsciiFile($obj)
	{
		$objectMgr = new FilesMgr();
bf74fc2d   Elena.Budnik   IMPEX
657
		return  $objectMgr->getAsciiFile($obj->fileName);
735c653b   Elena.Budnik   rank at observato...
658
	}
10200969   Roipoussiere   Remove whitespace...
659
660
661
662

	public function getMyParamInfo($object)
	{
		$objectMgr = new FilesMgr();
bf74fc2d   Elena.Budnik   IMPEX
663
		return  $objectMgr->getParamInfo($object);
10200969   Roipoussiere   Remove whitespace...
664
	}
16035364   Benjamin Renard   First commit
665

0dc31ba8   Elena.Budnik   remoteParamManage...
666
667
668
	/*
	*  get temporary object from Search
	*/
10200969   Roipoussiere   Remove whitespace...
669
670
671
	public  function getTmpObject($folderId, $name, $nodeType)
	{
		switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
672
		{
10200969   Roipoussiere   Remove whitespace...
673
674
675
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
			break;
735c653b   Elena.Budnik   rank at observato...
676
			case 'catalog' :
10200969   Roipoussiere   Remove whitespace...
677
678
				$objectMgr = new CatalogMgr();
			break;
735c653b   Elena.Budnik   rank at observato...
679
680
681
			default:
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
682
		return  $objectMgr->getTmpObject($folderId, $name, true);
fdf1413b   Elena.Budnik   TT download
683
	}
735c653b   Elena.Budnik   rank at observato...
684

10200969   Roipoussiere   Remove whitespace...
685
686
687
688

	public  function getObject($id, $nodeType)
	{
		switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
689
690
		{
			case 'myDataParam':
10200969   Roipoussiere   Remove whitespace...
691
692
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($nodeType);
735c653b   Elena.Budnik   rank at observato...
693
				break;
10200969   Roipoussiere   Remove whitespace...
694
			case 'timeTable' :
735c653b   Elena.Budnik   rank at observato...
695
			case 'sharedtimeTable' :
10200969   Roipoussiere   Remove whitespace...
696
697
				$objectMgr = new TimeTableMgr();
				break;
735c653b   Elena.Budnik   rank at observato...
698
699
			case 'catalog' :
			case 'sharedcatalog' :
10200969   Roipoussiere   Remove whitespace...
700
701
702
				$objectMgr = new CatalogMgr();
				break;
			case 'condition' :
735c653b   Elena.Budnik   rank at observato...
703
			case 'request' :
10200969   Roipoussiere   Remove whitespace...
704
705
				$objectMgr = new RequestMgr($nodeType);
				break;
9e3cbd95   Elena.Budnik   merge AMDA_IHM AM...
706
			case 'bkgWorks' :	
735c653b   Elena.Budnik   rank at observato...
707
708
709
				return $this->executeRequest($id, FunctionTypeEnumClass::PROCESSGETINFO);
				break;
			case 'myData' :
10200969   Roipoussiere   Remove whitespace...
710
				$objectMgr = new FilesMgr();
735c653b   Elena.Budnik   rank at observato...
711
				break;
10200969   Roipoussiere   Remove whitespace...
712
			default:
735c653b   Elena.Budnik   rank at observato...
713
714
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
715
		return  $objectMgr->getObject($id, $nodeType);
fdf1413b   Elena.Budnik   TT download
716
	}
10200969   Roipoussiere   Remove whitespace...
717

16035364   Benjamin Renard   First commit
718
719
720
/*
*   $obj = { id: node.id, leaf: node.leaf, nodeType: node.nodeType }
*/
10200969   Roipoussiere   Remove whitespace...
721
722
723
724
725
726
727
	public  function deleteObject($obj)
	{
		switch ($obj->nodeType)
		{
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
735c653b   Elena.Budnik   rank at observato...
728
				break;
10200969   Roipoussiere   Remove whitespace...
729
730
731
732
733
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
735c653b   Elena.Budnik   rank at observato...
734
				break;
10200969   Roipoussiere   Remove whitespace...
735
			case 'condition' :
735c653b   Elena.Budnik   rank at observato...
736
			case 'request' :
10200969   Roipoussiere   Remove whitespace...
737
				$objectMgr = new RequestMgr($obj->nodeType);
735c653b   Elena.Budnik   rank at observato...
738
739
740
741
				break;
			case 'alias' :
				$objectMgr = new AliasMgr();
				$obj->id = substr($obj->id,strlen('alias_'));
10200969   Roipoussiere   Remove whitespace...
742
				break;
735c653b   Elena.Budnik   rank at observato...
743
			case 'bkgWorks' :
735c653b   Elena.Budnik   rank at observato...
744
745
746
				return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSDELETE);

			case 'myData' :
16035364   Benjamin Renard   First commit
747
				$objectMgr = new FilesMgr();
735c653b   Elena.Budnik   rank at observato...
748
749
750
751
752
753
				break;
			default:
					return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> deleteObject($obj);
	}
16035364   Benjamin Renard   First commit
754
755
756
757

/*
*   $obj = { id: node.id, old_name: node.text, name: value,  parent : node.parentNode.id, leaf: node.leaf, nodeType: node.nodeType }
*/
10200969   Roipoussiere   Remove whitespace...
758
759
760
	public  function renameObject($obj)
	{
		switch ($obj->nodeType)
735c653b   Elena.Budnik   rank at observato...
761
		{
10200969   Roipoussiere   Remove whitespace...
762

16035364   Benjamin Renard   First commit
763
		  case 'myDataParam' :
10200969   Roipoussiere   Remove whitespace...
764
765
766
767
768
		  case 'derivedParam' :
			   $objectMgr = new DerivedParamMgr($obj->nodeType);
			   break;
		  case 'timeTable' :
			   $objectMgr = new TimeTableMgr();
16035364   Benjamin Renard   First commit
769
			   break;
10200969   Roipoussiere   Remove whitespace...
770
771
		  case 'catalog' :
			   $objectMgr = new CatalogMgr();
d18b535d   elena   catalog draft + c...
772
			   break;
10200969   Roipoussiere   Remove whitespace...
773
774
775
		  case 'condition' :
		  case 'request' :
			   $objectMgr = new RequestMgr($obj->nodeType);
16035364   Benjamin Renard   First commit
776
777
			   break;
		  case 'alias' :
10200969   Roipoussiere   Remove whitespace...
778
779
		  	   $objectMgr = new AliasMgr();
		  	   break;
16035364   Benjamin Renard   First commit
780
781
		  default:
			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
735c653b   Elena.Budnik   rank at observato...
782
		}
16035364   Benjamin Renard   First commit
783

735c653b   Elena.Budnik   rank at observato...
784
785
		return  $objectMgr -> renameObject($obj);
	}
16035364   Benjamin Renard   First commit
786

10200969   Roipoussiere   Remove whitespace...
787
/*
16035364   Benjamin Renard   First commit
788
789
*   $obj = { name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
*/
10200969   Roipoussiere   Remove whitespace...
790
791
792
	public  function createObject($obj, $folder)
	{
		switch ($obj->nodeType)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
793
		{
10200969   Roipoussiere   Remove whitespace...
794
			case 'myDataParam' :
9a63b7f6   Elena.Budnik   needsArgs to Simu...
795
			case 'derivedParam' :
10200969   Roipoussiere   Remove whitespace...
796
				if ($obj->nodeType == 'derivedParam' &&  $this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
797
						$this->amdaStat->addTask($this->user, 'create', null);
10200969   Roipoussiere   Remove whitespace...
798
				$objectMgr = new DerivedParamMgr($obj->nodeType);
8ba47f72   Benjamin Renard   rest actualisatio...
799
                 	break;
10200969   Roipoussiere   Remove whitespace...
800
801
802
803
804
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
16035364   Benjamin Renard   First commit
805
			   break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
806
			case 'condition' :
10200969   Roipoussiere   Remove whitespace...
807
808
809
			case 'request' :
				$objectMgr = new RequestMgr($obj->nodeType);
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
810
			case 'alias' :
10200969   Roipoussiere   Remove whitespace...
811
812
				$objectMgr = new AliasMgr();
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
813
814
815
816
817
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> createObject($obj, $folder);
	}
16035364   Benjamin Renard   First commit
818

10200969   Roipoussiere   Remove whitespace...
819
/*
16035364   Benjamin Renard   First commit
820
821
*   $obj = { id:obj.id, name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
*/
10200969   Roipoussiere   Remove whitespace...
822
	public  function modifyObject($obj)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
823
	{
10200969   Roipoussiere   Remove whitespace...
824
825
826
827
828
		switch ($obj->nodeType)
		{
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
9a63b7f6   Elena.Budnik   needsArgs to Simu...
829
				break;
10200969   Roipoussiere   Remove whitespace...
830
831
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
9a63b7f6   Elena.Budnik   needsArgs to Simu...
832
				break;
10200969   Roipoussiere   Remove whitespace...
833
834
835
836
			case 'catalog' :
				$objectMgr = new CatalogMgr();
				break;
			case 'condition' :
9a63b7f6   Elena.Budnik   needsArgs to Simu...
837
			case 'request' :
10200969   Roipoussiere   Remove whitespace...
838
				$objectMgr = new RequestMgr($obj->nodeType);
9a63b7f6   Elena.Budnik   needsArgs to Simu...
839
840
841
842
843
				break;
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> modifyObject($obj);
10200969   Roipoussiere   Remove whitespace...
844
	}
16035364   Benjamin Renard   First commit
845
846
847
848
849
850
851
852
853
854
/*
 * {obj.name, obj.nodeType, obj.leaf}
 */
    public function validNameObject($obj) {
		switch ($obj->nodeType) {
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
				break;
			case 'timeTable' :
d18b535d   elena   catalog draft + c...
855
			case 'sharedtimeTable' :
16035364   Benjamin Renard   First commit
856
857
				$objectMgr = new TimeTableMgr();
				break;
d18b535d   elena   catalog draft + c...
858
			case 'catalog' :
169f14d2   Benjamin Renard   Add shared object...
859
			case 'sharedcatalog' :
d18b535d   elena   catalog draft + c...
860
861
				$objectMgr = new CatalogMgr();
				break;
16035364   Benjamin Renard   First commit
862
863
864
865
866
867
868
869
870
871
872
873
			case 'condition' :
			case 'request' :
				$objectMgr = new RequestMgr($obj->nodeType);
				break;
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}

		return  $objectMgr -> validNameObject($obj);
    }

/*
bae6f5da   NathanaĆ«l Jourdane   bugFix fileName f...
874
*   Get running jobs
16035364   Benjamin Renard   First commit
875
*/
bae6f5da   NathanaĆ«l Jourdane   bugFix fileName f...
876
	public function getJobs($obj = null)
6acb8d2a   Elena.Budnik   checkRequest in R...
877
	{
812bc03d   NathanaĆ«l Jourdane   update job info o...
878
		$obj = (object) array();
10200969   Roipoussiere   Remove whitespace...
879
		return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSRUNNINGINFO);
6acb8d2a   Elena.Budnik   checkRequest in R...
880
	}
16035364   Benjamin Renard   First commit
881
882
883
884
885
886
887


	/* AKKA-KERNEL-INT
	Move user check from RequestMgr.php to AmdaAction.php
	*/
	private function checkUser($obj)
	{
32bb889b   Elena.Budnik   #5532 to process ...
888
		if (defined('NEWKERNEL_DEBUG') && NEWKERNEL_DEBUG){
16035364   Benjamin Renard   First commit
889
890
891
			$this->user = NEWKERNEL_DEBUG_USER;
			return array('success' => true);
		}
10200969   Roipoussiere   Remove whitespace...
892

16035364   Benjamin Renard   First commit
893
		if (isset($obj->username) && isset($obj->password) && isset($obj->sessionID))
735c653b   Elena.Budnik   rank at observato...
894
		{
e5ab198f   NathanaĆ«l Jourdane   simple getStatus
895
			$dd = new WSUserMgr();
fcdd1349   Elena.Budnik   merge with master
896
			$dd->init($obj->username,$obj->password,$obj->sessionID, false);
735c653b   Elena.Budnik   rank at observato...
897
		}
a21497cc   Elena.Budnik   redmine #5645
898
		else {
16035364   Benjamin Renard   First commit
899
			$dd = new UserMgr();
a21497cc   Elena.Budnik   redmine #5645
900
901
			$dd->setSpecialSettings();
		}
10200969   Roipoussiere   Remove whitespace...
902
903

		//TODO error handling
32bb889b   Elena.Budnik   #5532 to process ...
904
		if (($res = $dd->ddCheckUser()) != 0) {
10200969   Roipoussiere   Remove whitespace...
905
			if ($res == 156)
6acb8d2a   Elena.Budnik   checkRequest in R...
906
				return array('success' => false, 'message' => 'Your AMDA session is expired.<br/> Login please!');
16035364   Benjamin Renard   First commit
907

735c653b   Elena.Budnik   rank at observato...
908
909
			return array('success' => false, 'message' => 'ddLogin error: '.$res);
		}
16035364   Benjamin Renard   First commit
910

6acb8d2a   Elena.Budnik   checkRequest in R...
911
		if ($dd->user == 'impex')
16035364   Benjamin Renard   First commit
912
913
914
		{
			//if ($dd->getWsSize() > DISK_QUOTA * 100)
			//	error_log('Natacha! It is time to CLEAN UP IMPEX WS!',1,'nbourrel@irap.omp.eu');
e5ab198f   NathanaĆ«l Jourdane   simple getStatus
915
//			return array('success' => false, "message" => "AKKA-KERNEL-INT - WS support for IMPEx not implemented");
6acb8d2a   Elena.Budnik   checkRequest in R...
916
		}
32bb889b   Elena.Budnik   #5532 to process ...
917
		else {
a21497cc   Elena.Budnik   redmine #5645
918
			// check disk space 
2c7f2cb6   Benjamin Renard   Remove old log fi...
919
920
921
922
923
924
			if ($dd->getWsSize() > DISK_QUOTA) {
				//Try to delete log files - cf. #6245
				if ($dd->getWsSize(TRUE) > DISK_QUOTA) {
					return array('success' => false, 'message' => 'Please clean up your workspace.<br/>No more space is available');
				}
			}
735c653b   Elena.Budnik   rank at observato...
925
		}
10200969   Roipoussiere   Remove whitespace...
926

735c653b   Elena.Budnik   rank at observato...
927
		$this->user = $dd->user;
10200969   Roipoussiere   Remove whitespace...
928

32bb889b   Elena.Budnik   #5532 to process ...
929
		return array('success' => true, 'userHost' => $dd->getIPclient());
16035364   Benjamin Renard   First commit
930
	}
10200969   Roipoussiere   Remove whitespace...
931

6acb8d2a   Elena.Budnik   checkRequest in R...
932
	private function executeRequest($obj, $function)
9e3cbd95   Elena.Budnik   merge AMDA_IHM AM...
933
	{ 
32bb889b   Elena.Budnik   #5532 to process ...
934
935
936
		// Check user if access to DD Server and / or possible 'space consuming' action
		if (  $function == FunctionTypeEnumClass::PARAMS ||
				$function == FunctionTypeEnumClass::ACTION ||
8ba47f72   Benjamin Renard   rest actualisatio...
937
938
				$function == FunctionTypeEnumClass::PARAMSGEN ||
				$function == FunctionTypeEnumClass::PARAMSINFOGEN )
32bb889b   Elena.Budnik   #5532 to process ...
939
		{
7ac3e07e   Elena.Budnik   do not check user...
940
941
942
			$res = $this->checkUser($obj);
			if (!$res['success']) return $res;
		}
8ba47f72   Benjamin Renard   rest actualisatio...
943

16035364   Benjamin Renard   First commit
944
		$requestManager = new RequestManagerClass();
32bb889b   Elena.Budnik   #5532 to process ...
945
		try {
e57cb025   Benjamin Renard   Fix most of error...
946
			$res = $requestManager->runIHMRequest($this->user, !empty($res['userHost']) ? $res['userHost'] : NULL, $function, $obj);
32bb889b   Elena.Budnik   #5532 to process ...
947
		} catch (Exception $e) {
16035364   Benjamin Renard   First commit
948
			return array('success' => false, 'message' => 'Exception detected : '.$e->getMessage());
10200969   Roipoussiere   Remove whitespace...
949
		}
16035364   Benjamin Renard   First commit
950
951
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
952
953
954

/*
*    Main EXECUTE PROCEDURE
16035364   Benjamin Renard   First commit
955
*/
735c653b   Elena.Budnik   rank at observato...
956
957
	public  function execute($node, $obj)
	{
fdf1413b   Elena.Budnik   TT download
958
959
960
961
		// just convert TT / Catalog
		if ($obj->nodeType == "download" &&  $obj->downloadSrc == "1")
			return $this->executeRequest($obj, FunctionTypeEnumClass::TTCONVERT);
		else if (isset($obj->action))
16035364   Benjamin Renard   First commit
962
			return $this->executeRequest($obj, FunctionTypeEnumClass::ACTION);
10200969   Roipoussiere   Remove whitespace...
963
964
		else
		{
6acb8d2a   Elena.Budnik   checkRequest in R...
965
966
			$res = RequestMgr::checkRequest($obj);
			if (!$res['success']) return $res;
10200969   Roipoussiere   Remove whitespace...
967

16035364   Benjamin Renard   First commit
968
			return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMS);
6acb8d2a   Elena.Budnik   checkRequest in R...
969
		}
fdf1413b   Elena.Budnik   TT download
970
	}
10200969   Roipoussiere   Remove whitespace...
971

16035364   Benjamin Renard   First commit
972
/*
a0b3d64e   Benjamin Renard   Derived parameter...
973
974
 * Generate derived parameter compilation
 */
735c653b   Elena.Budnik   rank at observato...
975
976
	public function compilParam($obj)
	{
bf776dc8   Benjamin Renard   working
977
//error_log(print_r($obj,TRUE));
735c653b   Elena.Budnik   rank at observato...
978
979
		return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMSGEN);
	}
a0b3d64e   Benjamin Renard   Derived parameter...
980

8ba47f72   Benjamin Renard   rest actualisatio...
981
982
983
984
985
986
987
988
989
990
991
992

/*
 * Generate parameter info for display (e.g size)
 */
        public function generateParamInfo($obj)
        {
                return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMSINFOGEN);
        }




a0b3d64e   Benjamin Renard   Derived parameter...
993
994
995
/*
 * Delete derived parameter compilation
 */
735c653b   Elena.Budnik   rank at observato...
996
997
	public function compilParamDelete($obj)
	{
a0b3d64e   Benjamin Renard   Derived parameter...
998
		$res = $this->checkUser($obj);
10200969   Roipoussiere   Remove whitespace...
999

a0b3d64e   Benjamin Renard   Derived parameter...
1000
1001
		if (!$res['success'])
			return $res;
10200969   Roipoussiere   Remove whitespace...
1002

a0b3d64e   Benjamin Renard   Derived parameter...
1003
1004
1005
1006
		IHMConfigClass::setUserName($this->user);
		$libParamPath = IHMConfigClass::getCompilationPath()."lib/".$obj->paramId.".so";
		if (file_exists($libParamPath))
			unlink($libParamPath);
735c653b   Elena.Budnik   rank at observato...
1007
1008
		return array("success" => true);
	}
10200969   Roipoussiere   Remove whitespace...
1009

a0b3d64e   Benjamin Renard   Derived parameter...
1010
/*
e6e5b259   Benjamin Renard   Add kill plot req...
1011
 * kill plot process
16035364   Benjamin Renard   First commit
1012
 */
10200969   Roipoussiere   Remove whitespace...
1013

735c653b   Elena.Budnik   rank at observato...
1014
	public function killPlotRequest()
10200969   Roipoussiere   Remove whitespace...
1015
	{
735c653b   Elena.Budnik   rank at observato...
1016
1017
		return $this->executeRequest((object) array('nodeType' => 'killplot'), FunctionTypeEnumClass::PARAMS);
	}
16035364   Benjamin Renard   First commit
1018
1019
1020
1021

/*
 * merge time tables
 */
10200969   Roipoussiere   Remove whitespace...
1022
	public  function merge($obj)
735c653b   Elena.Budnik   rank at observato...
1023
1024
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1025
			$this->amdaStat->addTask( $this->user, 'ttoper', null);
10200969   Roipoussiere   Remove whitespace...
1026

735c653b   Elena.Budnik   rank at observato...
1027
		$objectMgr = new TimeTableMgr();
16035364   Benjamin Renard   First commit
1028

735c653b   Elena.Budnik   rank at observato...
1029
1030
		return  $objectMgr -> merge($obj);
	}
16035364   Benjamin Renard   First commit
1031

10200969   Roipoussiere   Remove whitespace...
1032

16035364   Benjamin Renard   First commit
1033
1034
1035
/*
 * intersect time tables
 */
10200969   Roipoussiere   Remove whitespace...
1036
	public  function intersect($obj)
735c653b   Elena.Budnik   rank at observato...
1037
1038
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1039
				$this->amdaStat->addTask($this->user, 'ttoper', null);
16035364   Benjamin Renard   First commit
1040

735c653b   Elena.Budnik   rank at observato...
1041
1042
		$objectMgr = new TimeTableMgr();
		$result = $objectMgr -> intersect($obj);
16035364   Benjamin Renard   First commit
1043

735c653b   Elena.Budnik   rank at observato...
1044
1045
		return  $result;
	}
10200969   Roipoussiere   Remove whitespace...
1046

735c653b   Elena.Budnik   rank at observato...
1047
1048
1049
1050
	public function initTTCache($isCatalog = false, $nparams)
	{
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
		else              $cacheMgr = new CatalogCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1051

735c653b   Elena.Budnik   rank at observato...
1052
1053
		return $cacheMgr->initTTCache($nparams);
	}
10200969   Roipoussiere   Remove whitespace...
1054
1055


735c653b   Elena.Budnik   rank at observato...
1056
1057
1058
1059
	public function initTTCacheFromTT($id, $type)
	{
		if ($type == 'catalog' || $type == 'sharedcatalog') $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1060

735c653b   Elena.Budnik   rank at observato...
1061
1062
		return $cacheMgr->initFromTT($id, $type);
	}
10200969   Roipoussiere   Remove whitespace...
1063

735c653b   Elena.Budnik   rank at observato...
1064
1065
	public function initForChart($id, $name, $isTmpObject, $type)
	{
e1fd05b4   Elena.Budnik   visu from cacheCat
1066
1067
1068
		if ($isTmpObject && $type == 'catalog' && $id == 'cacheCat')
			return array('success' => true, 'cache' => $id);
			
735c653b   Elena.Budnik   rank at observato...
1069
		if ($type == 'catalog' || $type == 'sharedcatalog') $objMgr = new CatalogMgr();
10200969   Roipoussiere   Remove whitespace...
1070

735c653b   Elena.Budnik   rank at observato...
1071
1072
		return $objMgr->initForChart($id, $name, $isTmpObject, $type);
	}
10200969   Roipoussiere   Remove whitespace...
1073

735c653b   Elena.Budnik   rank at observato...
1074
1075
	public function initTTCacheFromTmpObject($folderId, $name, $isCatalog = false)
	{
10200969   Roipoussiere   Remove whitespace...
1076
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1077
1078
1079
1080
		else  $cacheMgr = new CatalogCacheMgr();

		return $cacheMgr->initFromTmpObject($folderId, $name);
	}
10200969   Roipoussiere   Remove whitespace...
1081

901ba3f3   Elena.Budnik   upload catalog
1082
	public function initTTCacheFromUploadedFile($name, $format, $isCatalog = false)
735c653b   Elena.Budnik   rank at observato...
1083
	{
901ba3f3   Elena.Budnik   upload catalog
1084
1085
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
		else  $cacheMgr = new CatalogCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1086

735c653b   Elena.Budnik   rank at observato...
1087
1088
		return $cacheMgr->initFromUploadedFile($name, $format);
	}
10200969   Roipoussiere   Remove whitespace...
1089

735c653b   Elena.Budnik   rank at observato...
1090
1091
	public function readTTCacheIntervals($o)
	{
e57cb025   Benjamin Renard   Fix most of error...
1092
		if (isset($o->typeTT) && ($o->typeTT == 'catalog' || $o->typeTT == 'sharedcatalog')) $cacheMgr = new CatalogCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1093
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1094

e57cb025   Benjamin Renard   Fix most of error...
1095
		return $cacheMgr->getIntervals($o->start,$o->limit,isset($o->sort) ? $o->sort : NULL, isset($o->filter) ? $o->filter : NULL);
735c653b   Elena.Budnik   rank at observato...
1096
	}
10200969   Roipoussiere   Remove whitespace...
1097

735c653b   Elena.Budnik   rank at observato...
1098
1099
	public function readIntervalsForChart($o)
	{
e57cb025   Benjamin Renard   Fix most of error...
1100
		if (isset($o->typeTT) && ($o->typeTT == 'catalog' || $o->typeTT == 'sharedcatalog')) {
e1fd05b4   Elena.Budnik   visu from cacheCat
1101
1102
1103
1104
1105
1106
1107
1108
1109
				
				if ($o->fromPlugin && $o->id == 'cacheCat') {
					$objMgr = new CatalogCacheMgr();
					
					return $objMgr->getIntervals();
				}
				
				$objMgr = new CatalogMgr();
		}
10200969   Roipoussiere   Remove whitespace...
1110

735c653b   Elena.Budnik   rank at observato...
1111
1112
		return $objMgr->getIntervalsForChart($o->id, $o->name, $o->fromPlugin, $o->typeTT);
	}
10200969   Roipoussiere   Remove whitespace...
1113

735c653b   Elena.Budnik   rank at observato...
1114
1115
1116
1117
1118
	public function saveTTCacheIntervalsInTT($o)
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->saveInTT($o->ttId,$o->action,$o->cacheToken);
	}
10200969   Roipoussiere   Remove whitespace...
1119

735c653b   Elena.Budnik   rank at observato...
1120
1121
1122
1123
1124
1125
1126
	public function addTTCacheInterval($o)
	{
		if ($o->isCatalog) $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();

		return $cacheMgr->addInterval($o->index, $o->start, $o->stop);
	}
10200969   Roipoussiere   Remove whitespace...
1127

735c653b   Elena.Budnik   rank at observato...
1128
1129
1130
1131
1132
1133
1134
	public function removeTTCacheIntervalFromId($id, $isCatalog = false)
	{
		if ($isCatalog) $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();

		return $cacheMgr->removeIntervalFromId($id);
	}
10200969   Roipoussiere   Remove whitespace...
1135

735c653b   Elena.Budnik   rank at observato...
1136
1137
	public function modifyTTCacheInterval($o)
	{
10200969   Roipoussiere   Remove whitespace...
1138
		if ($o->isCatalog)
735c653b   Elena.Budnik   rank at observato...
1139
		{
f9c8b272   elena   edit catalog
1140
			$cacheMgr = new CatalogCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1141
			return $cacheMgr->modifyIntervalFromId($o);
f9c8b272   elena   edit catalog
1142
		}
735c653b   Elena.Budnik   rank at observato...
1143
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1144

735c653b   Elena.Budnik   rank at observato...
1145
1146
		return $cacheMgr->modifyIntervalFromId($o->cacheId, $o->start, $o->stop);
	}
10200969   Roipoussiere   Remove whitespace...
1147

735c653b   Elena.Budnik   rank at observato...
1148
1149
1150
1151
1152
	public function operationTTCacheIntervals($extendTime, $shiftTime)
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->operationIntervals($extendTime, $shiftTime);
	}
10200969   Roipoussiere   Remove whitespace...
1153

735c653b   Elena.Budnik   rank at observato...
1154
1155
1156
1157
1158
	public function mergeTTCacheIntervals()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->mergeIntervals();
	}
10200969   Roipoussiere   Remove whitespace...
1159

735c653b   Elena.Budnik   rank at observato...
1160
1161
1162
1163
1164
	public function getTTCacheStatistics()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->getStatistics();
	}
10200969   Roipoussiere   Remove whitespace...
1165

735c653b   Elena.Budnik   rank at observato...
1166
1167
1168
1169
1170
	public function getTTCacheStatus()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->getStatus();
	}
aa94fd24   elena   Merge with last svn
1171

16035364   Benjamin Renard   First commit
1172
1173
/*
 * Send a feedback
10200969   Roipoussiere   Remove whitespace...
1174
 *
16035364   Benjamin Renard   First commit
1175
 */
735c653b   Elena.Budnik   rank at observato...
1176
1177
1178
1179
1180
	public function sendFeedback($feed)
	{
		$feedMgr = new FeedbackMgr();
		return $feedMgr->addFeedback($feed->user, $feed->interface, $feed->subject, $feed->userText, $feed->userAgent, $feed->attach);
	}
10200969   Roipoussiere   Remove whitespace...
1181

16035364   Benjamin Renard   First commit
1182
1183
/*
 * Save state
10200969   Roipoussiere   Remove whitespace...
1184
 *
16035364   Benjamin Renard   First commit
1185
 */
735c653b   Elena.Budnik   rank at observato...
1186
1187
1188
1189
1190
	public function saveState($datas)
	{
		$myStateMgr = new StateMgr();
		return $myStateMgr->saveState($datas);
	}
10200969   Roipoussiere   Remove whitespace...
1191

16035364   Benjamin Renard   First commit
1192
1193
/*
 * Load state
10200969   Roipoussiere   Remove whitespace...
1194
1195
 *
 */
735c653b   Elena.Budnik   rank at observato...
1196
	public function loadState($o)
10200969   Roipoussiere   Remove whitespace...
1197
	{
735c653b   Elena.Budnik   rank at observato...
1198
1199
1200
		$myStateMgr = new StateMgr();
		return $myStateMgr->loadState();
	}
10200969   Roipoussiere   Remove whitespace...
1201
1202

/*
16035364   Benjamin Renard   First commit
1203
1204
 * HST Images
 */
735c653b   Elena.Budnik   rank at observato...
1205
1206
1207
	public function getHstImagesUrl($o)
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1208
			$this->amdaStat->addTask($this->user, 'images', null);
10200969   Roipoussiere   Remove whitespace...
1209

735c653b   Elena.Budnik   rank at observato...
1210
1211
1212
1213
1214
1215
		$myHstMgr = new HstMgr();
		$res = $myHstMgr->getImagesUrl($o->startTime, $o->stopTime, $o->planet);
		//if ($domRes->length <= 0)
		//	return array('success' => false, 'message' => 'Cannot find HST Images for this request.');
		return array('success' => true, 'result' => $res);
	}
10200969   Roipoussiere   Remove whitespace...
1216

735c653b   Elena.Budnik   rank at observato...
1217
1218
	public function getAPISImagesUrl($o)
	{
10200969   Roipoussiere   Remove whitespace...
1219
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1220
			$this->amdaStat->addTask($this->user, 'images', null);
10200969   Roipoussiere   Remove whitespace...
1221

735c653b   Elena.Budnik   rank at observato...
1222
1223
1224
1225
		$apisMgr = new APISMgr();
		$res = $apisMgr->get($o->target, $o->startTime, $o->stopTime, $o->datasets);

		return $res;
10200969   Roipoussiere   Remove whitespace...
1226
	}
16035364   Benjamin Renard   First commit
1227
1228
1229
/*
 * Filters
 */
e57cb025   Benjamin Renard   Fix most of error...
1230
	public function loadFilterList()
735c653b   Elena.Budnik   rank at observato...
1231
	{
10200969   Roipoussiere   Remove whitespace...
1232
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1233
1234
1235
		$res = $filtersMgr->loadList();
		return $res;
	}
16035364   Benjamin Renard   First commit
1236

735c653b   Elena.Budnik   rank at observato...
1237
1238
1239
1240
1241
1242
1243
1244
1245
	public function loadFilters($o)
	{
		$filtersMgr = new FiltersMgr();
		if (isset($o->id))
			$res = $filtersMgr->loadFilter($o->id);
		else
			$res = $filtersMgr->loadAll();
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
1246

735c653b   Elena.Budnik   rank at observato...
1247
1248
	public function saveFilter($o)
	{
10200969   Roipoussiere   Remove whitespace...
1249
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1250
1251
		return $filtersMgr->save($o);
	}
10200969   Roipoussiere   Remove whitespace...
1252

735c653b   Elena.Budnik   rank at observato...
1253
1254
	public function createFilter($o)
	{
10200969   Roipoussiere   Remove whitespace...
1255
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1256
1257
		return $filtersMgr->create($o);
	}
10200969   Roipoussiere   Remove whitespace...
1258

735c653b   Elena.Budnik   rank at observato...
1259
1260
1261
1262
1263
1264
	public function destroyFilter($o)
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->delete($o);
		return;
	}
10200969   Roipoussiere   Remove whitespace...
1265

735c653b   Elena.Budnik   rank at observato...
1266
1267
1268
1269
1270
1271
1272
	public function getCrtFilterId()
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->getCrtId();
		return $res;
	}

fdf1413b   Elena.Budnik   TT download
1273
1274
	public function getCrtFilterResult()
	{
10200969   Roipoussiere   Remove whitespace...
1275
		$filtersMgr = new FiltersMgr();
fdf1413b   Elena.Budnik   TT download
1276
1277
		return $filtersMgr->getCrtResult();
	}
10200969   Roipoussiere   Remove whitespace...
1278

fdf1413b   Elena.Budnik   TT download
1279
1280
	public function setCrtFilterId($o)
	{
10200969   Roipoussiere   Remove whitespace...
1281
		$filtersMgr = new FiltersMgr();
fdf1413b   Elena.Budnik   TT download
1282
1283
		return $filtersMgr->setCrtId($o->id);
	}
10200969   Roipoussiere   Remove whitespace...
1284

fdf1413b   Elena.Budnik   TT download
1285
1286
1287
1288
1289
1290
	public function resetFilter()
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->reset();
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
1291

16035364   Benjamin Renard   First commit
1292
1293
	public function logout($isGuest)
	{
10200969   Roipoussiere   Remove whitespace...
1294
		if ($isGuest)
735c653b   Elena.Budnik   rank at observato...
1295
		{
fdf1413b   Elena.Budnik   TT download
1296
1297
1298
			$guestMgr = new Guest($this->user);
			$guestMgr->deleteGuest();
		}
10200969   Roipoussiere   Remove whitespace...
1299
		else
735c653b   Elena.Budnik   rank at observato...
1300
		{
fdf1413b   Elena.Budnik   TT download
1301
			$this->cleanUserWS();
10200969   Roipoussiere   Remove whitespace...
1302
		}
16035364   Benjamin Renard   First commit
1303
		return;
10200969   Roipoussiere   Remove whitespace...
1304
	}
16035364   Benjamin Renard   First commit
1305

fdf1413b   Elena.Budnik   TT download
1306
1307
	public function getInfo($obj)
	{
10200969   Roipoussiere   Remove whitespace...
1308
		if (file_exists(HELPPATH.$obj->name))
fdf1413b   Elena.Budnik   TT download
1309
		{
10200969   Roipoussiere   Remove whitespace...
1310
			$content = file_get_contents(HELPPATH.$obj->name);
fdf1413b   Elena.Budnik   TT download
1311
1312
			return  array('success' => true, 'result' => $content);
		}
10200969   Roipoussiere   Remove whitespace...
1313
1314
1315
		return array('success' => false);
	}

fdf1413b   Elena.Budnik   TT download
1316
1317
1318
1319
1320
	public function getUserInfo()
	{
		$dd = new UserMgr();
		return $dd->getUserInfo();
	}
16035364   Benjamin Renard   First commit
1321

fdf1413b   Elena.Budnik   TT download
1322
1323
1324
1325
1326
	public function convertWS()
	{
		$dd = new UserMgr();
		return $dd->convertWS();
	}
16035364   Benjamin Renard   First commit
1327

fdf1413b   Elena.Budnik   TT download
1328
1329
1330
1331
1332
1333
	// $obj ={"Object":"Earth","RunCount":"2",
	// "SW_Density_value":"10","SW_Density_weight":"1","SW_Density_scale":"7","SW_Temperature_value":"100", ....}
	public function getRun($obj)
	{
		$myBestRunsMgr = new BestRunsMgr();
		$res = $myBestRunsMgr->getRun($obj);
10200969   Roipoussiere   Remove whitespace...
1334
1335

		return  $res;
fdf1413b   Elena.Budnik   TT download
1336
	}
10200969   Roipoussiere   Remove whitespace...
1337
1338

	//$obj = array of IDs
fdf1413b   Elena.Budnik   TT download
1339
1340
1341
	public function addRun($obj)
	{
		$myBestRunsMgr = new BestRunsMgr();
10200969   Roipoussiere   Remove whitespace...
1342

bf74fc2d   Elena.Budnik   IMPEX
1343
		$ok = $myBestRunsMgr->init();
10200969   Roipoussiere   Remove whitespace...
1344

bf74fc2d   Elena.Budnik   IMPEX
1345
1346
		if (!$ok)
			return array('success'=>false,'message'=>'cannot init addRun');
10200969   Roipoussiere   Remove whitespace...
1347

fdf1413b   Elena.Budnik   TT download
1348
		$myBestRunsMgr->addRuns($obj);
10200969   Roipoussiere   Remove whitespace...
1349

bf74fc2d   Elena.Budnik   IMPEX
1350
		return array('success'=>true,'addedRuns'=>$obj);
10200969   Roipoussiere   Remove whitespace...
1351
1352
	}

fdf1413b   Elena.Budnik   TT download
1353
1354
1355
1356
	//AKKA - New action to clean user WS
	public function cleanUserWS()
	{
		$this->rrmdir(USERDIR.'DOWNLOAD.TEMP');
bf74fc2d   Elena.Budnik   IMPEX
1357
		IHMConfigClass::setUserName($this->user);
10200969   Roipoussiere   Remove whitespace...
1358
1359

		// delete impex params and data
bf74fc2d   Elena.Budnik   IMPEX
1360
1361
		$impexParamMgr = new ImpexParamManager();
		$impexParamMgr->deleteImpexStaff();
10200969   Roipoussiere   Remove whitespace...
1362

e57cb025   Benjamin Renard   Fix most of error...
1363
		$obj = (object) array();
fdf1413b   Elena.Budnik   TT download
1364
1365
		return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSCLEAN);
	}
10200969   Roipoussiere   Remove whitespace...
1366

fdf1413b   Elena.Budnik   TT download
1367
1368
1369
	public function rrmdir($dir){
		if (is_dir($dir)) {
			$objects = scandir($dir);
10200969   Roipoussiere   Remove whitespace...
1370
1371
			foreach ($objects as $object) { // Recursively delete a directory that is not empty and directorys in directory
				if ($object != "." && $object != "..") {  // If object isn't a directory recall recursively this function
fdf1413b   Elena.Budnik   TT download
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
					if (filetype($dir."/".$object) == "dir")
						$this->rrmdir($dir."/".$object);
					else
						unlink($dir."/".$object);
				}
			}
			reset($objects);
			rmdir($dir);
		}
	}

	public function deleteSpecialInfo($name)
	{
10200969   Roipoussiere   Remove whitespace...
1385
		if (file_exists(USERDIR.$name))
fdf1413b   Elena.Budnik   TT download
1386
1387
1388
					unlink(USERDIR.$name);
		return array('success' => true);
	}
10200969   Roipoussiere   Remove whitespace...
1389

fdf1413b   Elena.Budnik   TT download
1390
1391
	public function interactivePlot($obj, $multiPlotState)
	{
fdf1413b   Elena.Budnik   TT download
1392
1393
1394
1395
1396
1397
		$inputobj = (Object)array(
			'action' => $obj,
			'multiPlotState' => $multiPlotState
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::ACTION);
	}
10200969   Roipoussiere   Remove whitespace...
1398

735c653b   Elena.Budnik   rank at observato...
1399
1400
	public function getParamPlotInit($obj)
	{
bf74fc2d   Elena.Budnik   IMPEX
1401
1402
1403
1404
1405
		// IMPEX param
		if (preg_match("#^spase___IMPEX_#",$obj->paramId))
			$type = 'impex_plot_init';
		else
		   $type = 'plot_init';
10200969   Roipoussiere   Remove whitespace...
1406

735c653b   Elena.Budnik   rank at observato...
1407
1408
		$inputobj = (Object)array(
				'paramId' => $obj->paramId,
bf74fc2d   Elena.Budnik   IMPEX
1409
				'type' => $type
735c653b   Elena.Budnik   rank at observato...
1410
1411
1412
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::PARAMINFO);
	}
10200969   Roipoussiere   Remove whitespace...
1413

735c653b   Elena.Budnik   rank at observato...
1414
1415
	public function getParamInfo($obj)
	{
bf74fc2d   Elena.Budnik   IMPEX
1416
1417
1418
1419
1420
		// IMPEX param
		if (preg_match("#^spase___IMPEX_#",$obj->paramId))
			$type = 'impex_param_info';
		else
		   $type = 'param_info';
10200969   Roipoussiere   Remove whitespace...
1421

735c653b   Elena.Budnik   rank at observato...
1422
1423
		$inputobj = (Object)array(
				'paramId' => $obj->paramId,
bf74fc2d   Elena.Budnik   IMPEX
1424
				'type' => $type
735c653b   Elena.Budnik   rank at observato...
1425
1426
1427
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::PARAMINFO);
	}
bf776dc8   Benjamin Renard   working
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
	public function getDerivedParamInfo($obj)
	{  
                 $dom = new DomDocument("1.0");
                 $xmlName=USERWSDIR.$this->xmlFiles['derivedParam'];
		 @$dom->load($xmlName);
		 $params=$dom->getElementsByTagName("param");
		 foreach($params as $param)
		 {
                        if($param->hasAttribute("name") && ("ws_" . ($param->getAttribute("name")))==$obj->paramId)
		        {
                         $dim_1=$param->getAttribute("dim_1");
			 $dim_2=$param->getAttribute("dim_2");
		   	 return $this->createDerivedParamInfo($dim_1,$dim_2,$obj->paramId);
		  	}
		
		}
		return array('success'=>false, 'message'=>'unkown parameter (derived parameter arguments are not handled)');	
	}
	
	public function createDerivedParamInfo($dim_1,$dim_2,$paramId)
	{
		/* case of constant */
		if($dim_1*$dim_2==1)
		{
		return array('success'=>false,'msg'=>"dim1=1 dim2=1 no arguments for this parameter");
		}elseif(($dim_1==1 && $dim_2>1 && $dim_2<=3)||($dim_2==1 && $dim_1>1 && $dim_1<=3) )  
		/* case of vector */
                {

	        $dims=array(
				'dim1'=>$dim_1,
				'dim2'=>$dim_2
			      );

		$compts=array();

		for($i=0;$i<($dim_1*$dim_2);++$i)
			{

			$c=array(

				'index_1'=>($dim_1>$dim_2)?(string)$i:"",
				'index_2'=>($dim_1<$dim_2)?$i:"",
				'name'=>$paramId.'('.$i.')'
				);
			array_push($compts,$c);

			}

		$data=array(
				'dimensions'=>$dims,
				'components'=>$compts
			    );
		
10200969   Roipoussiere   Remove whitespace...
1482

bf776dc8   Benjamin Renard   working
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
			return array('success'=>true,'data'=>$data);
		}else
		/* case of spectro*/
		{
		  $sizes=array($dim_1,$dim_2);
		  $dims=array(
				'dim1'=>$dim_1,
				'dim2'=>$dim_2
			      );
		$channels=array();
 		$tables=array();
		for($j=0;$j<count($sizes);$j++)
			{
		       $compts=array();
			
			for($i=0;$i<$sizes[$j];$i++)
				{
				$c=array('min'=>'L' . $i,'max'=>'L' . ($i+1));
				array_push($compts,$c);
				}

			$tab=array(
				'relatedDim'=>'dim' . ($j+1), 
				'name'=>'component' . ($j+1),
				'units'=>"",
				'variable'=>"",
				'channels'=>$compts,
				'minmax'=>""
				);

			array_push($tables,$tab);
			}
		 
                  $data=array(
				'dimensions'=>$dims,
				'tables'=>$tables
			     );
		return array('success'=>true,'data'=>$data);
                }
		
	}
735c653b   Elena.Budnik   rank at observato...
1524
1525
1526
1527
1528
1529
	public function getSharedObjectFolders($obj)
	{
		$mgr = new SharedObjectsMgr();
		$folders = $mgr->getFolders($obj->type);
		return array('success' => true, 'folders' => $folders);
	}
10200969   Roipoussiere   Remove whitespace...
1530

735c653b   Elena.Budnik   rank at observato...
1531
1532
1533
	public function shareObjects($obj)
	{
		$mgr = new SharedObjectsMgr();
10200969   Roipoussiere   Remove whitespace...
1534
		switch ($obj->type)
735c653b   Elena.Budnik   rank at observato...
1535
1536
1537
1538
1539
		{
			case 'timeTable' :
			case 'catalog' :
				$src_object_path = USERTTDIR.$obj->object->id.".xml";
				break;
10200969   Roipoussiere   Remove whitespace...
1540

735c653b   Elena.Budnik   rank at observato...
1541
1542
1543
			default:
				return array('success' => false, 'message' => 'Unknown object type');
		}
10200969   Roipoussiere   Remove whitespace...
1544

735c653b   Elena.Budnik   rank at observato...
1545
1546
1547
		$result = $mgr->add($obj->type, $obj->name, $obj->folder, $src_object_path, $obj->description, $this->user);
		if (!$result['success'])
			return $result;
10200969   Roipoussiere   Remove whitespace...
1548

735c653b   Elena.Budnik   rank at observato...
1549
1550
1551
		$mgr->updateTree();
		return $result;
	}
10200969   Roipoussiere   Remove whitespace...
1552

735c653b   Elena.Budnik   rank at observato...
1553
1554
1555
1556
1557
1558
	public function isSharedObjectNameAlreadyUsed($obj)
	{
		$mgr = new SharedObjectsMgr();
		$alreadyUsed = $mgr->isNameAlreadyUsed($obj->type, $obj->name);
		return array('success' => true, 'alreadyUsed' => $alreadyUsed);
	}
10200969   Roipoussiere   Remove whitespace...
1559

0bda97f3   Benjamin Renard   Fix SAMP export f...
1560
1561
	public function getRequestByProcessId($obj)
	{
0bda97f3   Benjamin Renard   Fix SAMP export f...
1562
1563
		return $this->executeRequest($obj->processId, FunctionTypeEnumClass::PROCESSGETREQUEST);
	}
16035364   Benjamin Renard   First commit
1564
1565
}
?>