Blame view

php/classes/AmdaAction.php 46.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',
2e7079bb   Benjamin Renard   First implementat...
13
										'request' => 'Request.xml', 'condition' => 'Request.xml', 'download' => 'Request.xml', 'statistic' => 'Request.xml',
735c653b   Elena.Budnik   rank at observato...
14
15
16
17
										'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;
735c653b   Elena.Budnik   rank at observato...
64
65
		$remoteBase = false;
		$isRemoteDataSet = false;
16035364   Benjamin Renard   First commit
66

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

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

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

10200969   Roipoussiere   Remove whitespace...
77
78
		if ($node == 'root' && !$remoteBase)
		{
e57cb025   Benjamin Renard   Fix most of error...
79
80
81
82
83
84
85
86
87
88
89
90
			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...
91
92
		}
		else
735c653b   Elena.Budnik   rank at observato...
93
94
95
		{
			$Dom = new DomDocument("1.0");

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

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

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

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

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

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

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

					$specialNode = false;
					$isParameter = false;
					$isAddable =  false;
					$isSimulation = false;
735c653b   Elena.Budnik   rank at observato...
155
					$rank = null;
e57cb025   Benjamin Renard   Fix most of error...
156
					$skip = FALSE;
698494ac   Benjamin Renard   Add tooltip for s...
157
					$last_update = 0;
735c653b   Elena.Budnik   rank at observato...
158

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

f569bae5   Benjamin Renard   Save download
175
						case 'download':
735c653b   Elena.Budnik   rank at observato...
176
						case 'condition':
33519521   Benjamin Renard   Fix saved request...
177
						case 'request':
2e7079bb   Benjamin Renard   First implementat...
178
						case 'statistic':
638db58d   Benjamin Renard   RequestMgr constr...
179
							$objectMgr = new RequestMgr($nodeType);
33519521   Benjamin Renard   Fix saved request...
180
							$info = $objectMgr->getObjectInfo($id);
698494ac   Benjamin Renard   Add tooltip for s...
181
182
183
184
							$obj_info = $objectMgr->getObject($id);
							if (!empty($obj_info) && !empty($obj_info->last_update)) {
								$last_update = $obj_info->last_update;
							}
f569bae5   Benjamin Renard   Save download
185
							break;
8b6bb092   Elena.Budnik   icones if rank is...
186
						
735c653b   Elena.Budnik   rank at observato...
187
						case 'timeTable':
10200969   Roipoussiere   Remove whitespace...
188
						case 'catalog':
8dec1016   Benjamin Renard   Add TT and catalo...
189
190
191
192
							if ($isLeaf) {
								$info = '<b>Nb intervals:</b> '.$child->getAttribute('intervals').'<br/>';
								$info .= '<b>ID:</b> '. $child->getAttribute('xml:id');
							}
735c653b   Elena.Budnik   rank at observato...
193
						break;
10200969   Roipoussiere   Remove whitespace...
194

735c653b   Elena.Budnik   rank at observato...
195
196
						case 'sharedtimeTable':
						case 'sharedcatalog':
10200969   Roipoussiere   Remove whitespace...
197
							if ($isLeaf)
735c653b   Elena.Budnik   rank at observato...
198
199
200
							{
								$info = '<b>Nb intervals:</b> '.$child->getAttribute('nbIntervals').'<br/>';
								$info .= '<b>Shared by:</b> '.$child->getAttribute('sharedBy').' ('.$child->getAttribute('sharedDate').')<br/>';
8dec1016   Benjamin Renard   Add TT and catalo...
201
202
								$info .= '<b>Description:</b> '.$child->getAttribute('description').'<br/>';
								$info .= '<b>ID:</b> ' . $child->getAttribute('xml:id');
8b6bb092   Elena.Budnik   icones if rank is...
203
							} 
735c653b   Elena.Budnik   rank at observato...
204
205
						break;
						case 'derivedParam':
5f42fc77   Hacene SI HADJ MOHAND   get attributes ko
206
207
  							$info = $child->getAttribute('buildchain').'<br/>';
							                                        
dfa8db4f   Hacene SI HADJ MOHAND   correcting derive...
208
209
							if($child->hasAttribute('units') && $child->getAttribute('units') != 'undefined' && $child->getAttribute('units') != '')
                                                                                                                                                  $info .= 'Units: '.$child->getAttribute('units').'<br/>';
5f42fc77   Hacene SI HADJ MOHAND   get attributes ko
210
211
   							$samplingMode = $child->getAttribute('sampling_mode');
 						  	if($samplingMode == 'timestep'){
09a0cb29   Hacene SI HADJ MOHAND   us ok
212
      								$info .= 'Sampling Time: '.$child->getAttribute('timestep');
5f42fc77   Hacene SI HADJ MOHAND   get attributes ko
213
   							}else if($samplingMode == 'refparam'){
09a0cb29   Hacene SI HADJ MOHAND   us ok
214
      								$info .= 'Reference Parameter: '.$child->getAttribute('reference_param');
5f42fc77   Hacene SI HADJ MOHAND   get attributes ko
215
			 	 			}			
0fea5567   Benjamin Renard   First step for re...
216

8ba47f72   Benjamin Renard   rest actualisatio...
217
218
219
220
221
222
223
							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...
224
225
226
227
							if ($isLeaf) $isParameter = true;
						break;

						case 'localParam':
98c92bbf   Erdogan Furkan   #10557 - Done (Ma...
228
							
735c653b   Elena.Budnik   rank at observato...
229
230
231
232
233
234
							$globalStart = null;
							$globalStop = null;
							$timeRestriction = false;
							$specialNode = true;
							$isParameter = false;
							$needsArgs = false;
10200969   Roipoussiere   Remove whitespace...
235
							$isSpectra = false;
dc9e2c14   Elena.Budnik   init + message + ...
236
							$is2dSpectra = false;
735c653b   Elena.Budnik   rank at observato...
237
							$isStack = false;
e57cb025   Benjamin Renard   Fix most of error...
238
							$not_yet = false;
735c653b   Elena.Budnik   rank at observato...
239

10200969   Roipoussiere   Remove whitespace...
240
241
							if ($child->hasAttribute('desc'))
							{
735c653b   Elena.Budnik   rank at observato...
242
								$info = $child->getAttribute('desc');
10200969   Roipoussiere   Remove whitespace...
243

c57c57c9   Elena.Budnik   info message depe...
244
								if ($child->hasAttribute('dataStart') && $child->hasAttribute('dataStop')) {
67bd6ed6   Elena.Budnik   rm 8375
245
246
247
248
249
250
251
                                    $dataStart = $child->getAttribute('dataStart');
                                    // check UTC format
                                    if ( !preg_match('/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/', $dataStart ) ) {
                                        if ( $dataStart == "MissionDependent" )
                                            $info .= "<br/>Time Range : depending on mission selection"; 
                                        else 
                                            $info .= "<br/>Time Range : undefined"; 
3a8eaaff   Hacene SI HADJ MOHAND   resolue
252
253
                                        $child->setAttribute('dataStart', date("Y-m-d\TH:i:s.u\Z", strtotime(' -1 day')));
                                        $child->setAttribute('dataStop', date("Y-m-d\TH:i:s.u\Z", time()));                                        
67bd6ed6   Elena.Budnik   rm 8375
254
255
256
257
                                    } else {
                                        $info .= "<br/>Time Range: ".$child->getAttribute('dataStart')."-".$child->getAttribute('dataStop');
                                    }
                                    
a7316784   Elena.Budnik   add LastUpdate to...
258
259
260
									if ($child->hasAttribute('lastUpdate')) {
										$info .= "<br/>Last Updated: : ".$child->getAttribute('lastUpdate');
									}
735c653b   Elena.Budnik   rank at observato...
261
								}
735c653b   Elena.Budnik   rank at observato...
262
							}
10200969   Roipoussiere   Remove whitespace...
263

cbbbdc34   Elena.Budnik   param description...
264
							if ($child->hasAttribute('units')) {
0fea5567   Benjamin Renard   First step for re...
265

cbbbdc34   Elena.Budnik   param description...
266
								$units = $child->getAttribute('units');
0fea5567   Benjamin Renard   First step for re...
267

cbbbdc34   Elena.Budnik   param description...
268
269
								if ($child->hasAttribute('description'))
									$info = $child->getAttribute('description')."<br/>".$units;
0fea5567   Benjamin Renard   First step for re...
270
								else
cbbbdc34   Elena.Budnik   param description...
271
272
									$info = $units;
							}
71b9368c   Benjamin Renard   Fix bug with tool...
273
274
275
276
							else {
								if ($child->hasAttribute('description'))
									$info = $child->getAttribute('description');
							}
0fea5567   Benjamin Renard   First step for re...
277

f29c5e66   Elena.Budnik   plot only option
278
							if ($child->tagName == 'parameter') {
735c653b   Elena.Budnik   rank at observato...
279
								$isParameter = true;
67bd6ed6   Elena.Budnik   rm 8375
280
281
                                if ($child->hasAttribute('TemplatedParameter'))
                                    $needsArgs = true;
2fa56f95   Benjamin Renard   Predefined templa...
282

b0f72ee0   Erdogan Furkan   #10557 For now
283
284
								if ($child->hasAttribute('PredefinedTemplatedParameter'))
									$predefinedArgs = true;
67bd6ed6   Elena.Budnik   rm 8375
285
                                    
c57c57c9   Elena.Budnik   info message depe...
286
								if ($child->parentNode->hasAttribute('dataStart')) {
735c653b   Elena.Budnik   rank at observato...
287
									$globalStart = $child->parentNode->getAttribute('dataStart');
10200969   Roipoussiere   Remove whitespace...
288
									$globalStop = $child->parentNode->getAttribute('dataStop');
735c653b   Elena.Budnik   rank at observato...
289
								}
0fea5567   Benjamin Renard   First step for re...
290

f29c5e66   Elena.Budnik   plot only option
291
292
293
294
								if ($child->parentNode->hasAttribute('restriction')) {
									if ($child->parentNode->getAttribute('restriction') == "plotOnly") {
										$not_yet = true;
									}
10200969   Roipoussiere   Remove whitespace...
295
								}
3afe4f59   Benjamin Renard   Add datasets time...
296
297
298
299

								if ($child->parentNode->hasAttribute('timeRestriction')) {
									$timeRestriction = $child->parentNode->getAttribute('timeRestriction');
								}
735c653b   Elena.Budnik   rank at observato...
300
							}
10200969   Roipoussiere   Remove whitespace...
301

735c653b   Elena.Budnik   rank at observato...
302
303
304
305
							$component_info = array();
							if ($child->tagName == 'component')
							{
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
306

c57c57c9   Elena.Budnik   info message depe...
307
								if ($child->parentNode->parentNode->hasAttribute('dataStart')) {
735c653b   Elena.Budnik   rank at observato...
308
									$globalStart = $child->parentNode->parentNode->getAttribute('dataStart');
10200969   Roipoussiere   Remove whitespace...
309
310
									$globalStop = $child->parentNode->parentNode->getAttribute('dataStop');
								}
0fea5567   Benjamin Renard   First step for re...
311

f29c5e66   Elena.Budnik   plot only option
312
313
314
315
								if ($child->parentNode->parentNode->hasAttribute('restriction')) {
									if ($child->parentNode->parentNode->getAttribute('restriction') == "plotOnly") {
										$not_yet = true;
									}
10200969   Roipoussiere   Remove whitespace...
316
								}
3afe4f59   Benjamin Renard   Add datasets time...
317
318
319
320

								if ($child->parentNode->parentNode->hasAttribute('timeRestriction')) {
									$timeRestriction = $child->parentNode->parentNode->getAttribute('timeRestriction');
								}
735c653b   Elena.Budnik   rank at observato...
321
322
323
324
325

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

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

f29c5e66   Elena.Budnik   plot only option
330
							if ($child->tagName == 'parameter' && $child->hasAttribute('display_type')){
c57c57c9   Elena.Budnik   info message depe...
331
								if ($child->getAttribute('display_type') == 'spectrogram') {
10200969   Roipoussiere   Remove whitespace...
332
333
										$needsArgs = true;
										$isSpectra = true;
dc9e2c14   Elena.Budnik   init + message + ...
334
335
										if (strpos($child->getAttribute('name'),'2D') !== false)
											$is2dSpectra = true;
735c653b   Elena.Budnik   rank at observato...
336
								}
c57c57c9   Elena.Budnik   info message depe...
337
								elseif ($child->getAttribute('display_type') == 'stackplot') {
735c653b   Elena.Budnik   rank at observato...
338
										$isStack = true;
735c653b   Elena.Budnik   rank at observato...
339
								}
10200969   Roipoussiere   Remove whitespace...
340
341
							}

f31bea1c   Benjamin Renard   wip for save plot
342

c57c57c9   Elena.Budnik   info message depe...
343
							if ($isParameter) {
735c653b   Elena.Budnik   rank at observato...
344
345
								$objectMgr = new AliasMgr();
								$alias = $objectMgr->getAlias($id);
c3b20775   Elena.Budnik   not show ID for p...
346
347
								
                                if (! ($child->parentNode->hasAttribute('group') || $child->parentNode->parentNode->hasAttribute('group'))) $info .= '</br><i>ID : '.$id.'</i>';
661293d7   Elena.Budnik   parse ## and @@ i...
348
								$childrenToReturn[] = array('text' => $name,'alias' => $alias,
735c653b   Elena.Budnik   rank at observato...
349
350
									'id' => $id,'nodeType' => $nodeType, 'info' => $info, "component_info" => $component_info,
									'globalStart' => $globalStart, 'globalStop' => $globalStop, 'timeRestriction' => $timeRestriction,
dc9e2c14   Elena.Budnik   init + message + ...
351
									'leaf' => $isLeaf, 'isParameter' => $isParameter,'isSpectra' => $isSpectra,
2fa56f95   Benjamin Renard   Predefined templa...
352
									'is2dSpectra' => $is2dSpectra,'isStack' => $isStack, 'needsArgs' => $needsArgs, 'predefinedArgs' => $predefinedArgs, 'help' => $help, 'notyet' => $not_yet);
735c653b   Elena.Budnik   rank at observato...
353
							}
c57c57c9   Elena.Budnik   info message depe...
354
							else {
8b6bb092   Elena.Budnik   icones if rank is...
355
								if ($child->hasAttribute('rank')) {
735c653b   Elena.Budnik   rank at observato...
356
357
									$rank = $child->getAttribute('rank');
								}
0fea5567   Benjamin Renard   First step for re...
358

3afe4f59   Benjamin Renard   Add datasets time...
359
360
361
362
								if ($child->hasAttribute("timeRestriction")) {
									$timeRestriction = $child->getAttribute("timeRestriction");
								}
								$disable = TRUE;
acf87705   Elena.Budnik   bug in disable param
363

3afe4f59   Benjamin Renard   Add datasets time...
364
								if ($child->hasAttribute('group')) {
c3976709   Elena.Budnik   rm 7589 + clean u...
365
366
									if ($child->getAttribute("group") === "TBD") {
											$info .=  "<br/><b>Under Testing</b>";
3afe4f59   Benjamin Renard   Add datasets time...
367
									}
1c2f5368   Elena.Budnik   message for TimeR...
368
									else {	
3afe4f59   Benjamin Renard   Add datasets time...
369
370
										if (!empty($timeRestriction)) {
											$disable = FALSE;
3a8eaaff   Hacene SI HADJ MOHAND   resolue
371
											$formattedTimeRestriction = date("Y-m-d\TH:i:s.u\Z",strtotime($timeRestriction)+1);
1c2f5368   Elena.Budnik   message for TimeR...
372
373
374
375
											$info .= "<br/><b>After $formattedTimeRestriction data are restricted to group ".$child->getAttribute('group')."</b>";
										}
										else {
                                            $info .= "<br/><b>Restricted Access : Group ".$child->getAttribute('group')."</b>";
3afe4f59   Benjamin Renard   Add datasets time...
376
										}
735c653b   Elena.Budnik   rank at observato...
377
									}
0fea5567   Benjamin Renard   First step for re...
378
								}
acf87705   Elena.Budnik   bug in disable param
379
								else {
3afe4f59   Benjamin Renard   Add datasets time...
380
									$disable = FALSE;
acf87705   Elena.Budnik   bug in disable param
381
382
									if ($child->hasAttribute('restriction') && $child->getAttribute('restriction') == 'plotOnly')
										$info .=  "<br/><b>Plot Only!!!</b>";
735c653b   Elena.Budnik   rank at observato...
383
384
								}

698494ac   Benjamin Renard   Add tooltip for s...
385
								$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'last_update' => $last_update,
3afe4f59   Benjamin Renard   Add datasets time...
386
									'leaf' => false, 'help' => $help, 'disable' => $disable, 'rank' => $rank, 'timeRestriction' => $timeRestriction);
735c653b   Elena.Budnik   rank at observato...
387
388
389
390
							}
						break;

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

bf74fc2d   Elena.Budnik   IMPEX
392
							$globalStart = null;
6657f68b   Elena.Budnik   monitor impex ser...
393
							$service_down = false;
735c653b   Elena.Budnik   rank at observato...
394
							$isSimulation = true;
10200969   Roipoussiere   Remove whitespace...
395
396

			            if ($child->getAttribute('isAddable')) // 'spase://IMPEX/SimulationModel/FMI/GUMICS'
735c653b   Elena.Budnik   rank at observato...
397
398
399
400
							{
								$isLeaf = false;
								$isAddable = true;
							}
10200969   Roipoussiere   Remove whitespace...
401
402

							if ($child->tagName == 'dataCenter')
735c653b   Elena.Budnik   rank at observato...
403
							{
10200969   Roipoussiere   Remove whitespace...
404
								if ($child->getAttribute('isSimulation'))
6657f68b   Elena.Budnik   monitor impex ser...
405
								{
10200969   Roipoussiere   Remove whitespace...
406
407
									$service_down = !($child->getAttribute('available'));
									break;
6657f68b   Elena.Budnik   monitor impex ser...
408
								}
10200969   Roipoussiere   Remove whitespace...
409
								else
735c653b   Elena.Budnik   rank at observato...
410
411
412
413
414
								{
									$skip = true;
									break;
								}
							}
10200969   Roipoussiere   Remove whitespace...
415
416

							if ($child->hasAttribute('rank'))
735c653b   Elena.Budnik   rank at observato...
417
418
419
							{
								$rank = $child->getAttribute('rank');
							}
10200969   Roipoussiere   Remove whitespace...
420

bf74fc2d   Elena.Budnik   IMPEX
421
422
							if ( $child->tagName == 'parameter')
							{
abb54096   Elena.Budnik   time interval by ...
423
								if ($child->parentNode->hasAttribute('globalStart'))
bf74fc2d   Elena.Budnik   IMPEX
424
									{
abb54096   Elena.Budnik   time interval by ...
425
426
										$globalStart = $child->parentNode->getAttribute('globalStart');
										$globalStop = $child->parentNode->getAttribute('globalStop');
bf74fc2d   Elena.Budnik   IMPEX
427
428
									}
							}
10200969   Roipoussiere   Remove whitespace...
429

bf74fc2d   Elena.Budnik   IMPEX
430
431
							if ( $child->tagName == 'component')
							{
abb54096   Elena.Budnik   time interval by ...
432
								if ($child->parentNode->parentNode->hasAttribute('globalStart'))
bf74fc2d   Elena.Budnik   IMPEX
433
									{
abb54096   Elena.Budnik   time interval by ...
434
435
										$globalStart = $child->parentNode->parentNode->getAttribute('globalStart');
										$globalStop = $child->parentNode->parentNode->getAttribute('globalStop');
bf74fc2d   Elena.Budnik   IMPEX
436
437
									}
							}
10200969   Roipoussiere   Remove whitespace...
438

735c653b   Elena.Budnik   rank at observato...
439
						case 'remoteParam' :
10200969   Roipoussiere   Remove whitespace...
440
441

							if ($child->getAttribute('isSimulation') && $child->tagName == 'dataCenter')
735c653b   Elena.Budnik   rank at observato...
442
443
444
445
446
447
448
							{
								$skip = true;
								break;
							}

							$isDeletable = $child->hasAttribute('isDeletable');
							$specialNode = true;
10200969   Roipoussiere   Remove whitespace...
449
450
451
452
453
							$isParameter = false;

							$isSpectra = false;

							switch ($id)
735c653b   Elena.Budnik   rank at observato...
454
							{
10200969   Roipoussiere   Remove whitespace...
455
								case 'CDAWEB'  :
735c653b   Elena.Budnik   rank at observato...
456
457
458
								case 'THEMIS' :
									$rank = 5;
									break;
735c653b   Elena.Budnik   rank at observato...
459
460
								default:
							}
10200969   Roipoussiere   Remove whitespace...
461

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

10200969   Roipoussiere   Remove whitespace...
464
465
							if ($info && !$isSimulation)
							{
735c653b   Elena.Budnik   rank at observato...
466
								$info = str_replace(';', "<br/>Time Range: ", $info);
10200969   Roipoussiere   Remove whitespace...
467
468
469
							}

							if (($child->tagName == 'parameter') || ($child->tagName == 'component'))
735c653b   Elena.Budnik   rank at observato...
470
471
							{
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
472
							}
10200969   Roipoussiere   Remove whitespace...
473

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

10200969   Roipoussiere   Remove whitespace...
476
							if ($remoteBase)
735c653b   Elena.Budnik   rank at observato...
477
							{
10200969   Roipoussiere   Remove whitespace...
478
								if ($child->tagName == 'dataset') $isRemoteDataSet = true;
735c653b   Elena.Budnik   rank at observato...
479
							}
0fea5567   Benjamin Renard   First step for re...
480

a0f13ed1   Elena.Budnik   small format + ti...
481
482
							if ($child->tagName == 'parameter'){
								if ($child->parentNode->hasAttribute('dataStart')){
3a8eaaff   Hacene SI HADJ MOHAND   resolue
483
484
									$globalStart = date('Y-m-d\TH:i:s.u\Z', strtotime($child->parentNode->getAttribute('dataStart')));
									$globalStop = date('Y-m-d\TH:i:s.u\Z',  strtotime($child->parentNode->getAttribute('dataStop')));
a0f13ed1   Elena.Budnik   small format + ti...
485
486
								}
							}
735c653b   Elena.Budnik   rank at observato...
487

a0f13ed1   Elena.Budnik   small format + ti...
488
489
							if ( $child->tagName == 'component'){
								if ($child->parentNode->parentNode->hasAttribute('dataStart')){
3a8eaaff   Hacene SI HADJ MOHAND   resolue
490
491
									$globalStart = date('Y-m-d\TH:i:s.u\Z', strtotime($child->parentNode->getAttribute('dataStart')));
									$globalStop = date('Y-m-d\TH:i:s.u\Z',  strtotime($child->parentNode->getAttribute('dataStop')));
a0f13ed1   Elena.Budnik   small format + ti...
492
493
								}
							}
0fea5567   Benjamin Renard   First step for re...
494

10200969   Roipoussiere   Remove whitespace...
495
							if ($isParameter)
735c653b   Elena.Budnik   rank at observato...
496
							{
10200969   Roipoussiere   Remove whitespace...
497
								$disable = $child->parentNode->getAttribute('disabled');
735c653b   Elena.Budnik   rank at observato...
498
499
500
501
502
								$objectMgr = new AliasMgr();
								$alias = $objectMgr->getAlias($id);

								if ($child->hasAttribute('display_type') && $child->getAttribute('display_type') == 'spectrogram')
								{
10200969   Roipoussiere   Remove whitespace...
503
									$needsArgs = true;
735c653b   Elena.Budnik   rank at observato...
504
									$isSpectra = true;
10200969   Roipoussiere   Remove whitespace...
505
								}
bf74fc2d   Elena.Budnik   IMPEX
506
								if ($globalStart)
10200969   Roipoussiere   Remove whitespace...
507
								 $childrenToReturn[] = array('text' => $name,'alias' => $alias,
bf74fc2d   Elena.Budnik   IMPEX
508
										'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,  'globalStart' => $globalStart,
10200969   Roipoussiere   Remove whitespace...
509
										'globalStop' => $globalStop, 'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter,
1c007ca2   Elena.Budnik   vector icon for M...
510
										'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs, "component_info" => isset($component_info) ? $component_info : NULL);
bf74fc2d   Elena.Budnik   IMPEX
511
								else
10200969   Roipoussiere   Remove whitespace...
512
									$childrenToReturn[] = array('text' => $name,'alias' => $alias,
bf74fc2d   Elena.Budnik   IMPEX
513
										'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,
10200969   Roipoussiere   Remove whitespace...
514
										'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter,
1c007ca2   Elena.Budnik   vector icon for M...
515
										'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs, "component_info" => $component_info);
735c653b   Elena.Budnik   rank at observato...
516
							}
10200969   Roipoussiere   Remove whitespace...
517
518
							else
							{
e57cb025   Benjamin Renard   Fix most of error...
519
								$restricted = FALSE;
0fea5567   Benjamin Renard   First step for re...
520

735c653b   Elena.Budnik   rank at observato...
521
								if ($child->tagName == 'dataset')
6657f68b   Elena.Budnik   monitor impex ser...
522
								{
735c653b   Elena.Budnik   rank at observato...
523
									$nonavailable = ($child->getAttribute('disabled'));
6657f68b   Elena.Budnik   monitor impex ser...
524
								}
735c653b   Elena.Budnik   rank at observato...
525
								else
6657f68b   Elena.Budnik   monitor impex ser...
526
								{
735c653b   Elena.Budnik   rank at observato...
527
									$nonavailable = false;
6657f68b   Elena.Budnik   monitor impex ser...
528
								}
10200969   Roipoussiere   Remove whitespace...
529

735c653b   Elena.Budnik   rank at observato...
530
531
532
533
534
535
								if ($nonavailable)
									$info .= "<br/><b>Not available yet</b>";

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

10200969   Roipoussiere   Remove whitespace...
536
								if ($child->hasAttribute('obsolete'))
735c653b   Elena.Budnik   rank at observato...
537
538
539
540
541
542
543
544
								{
									$info = $child->getAttribute('desc');
									$obsolete = true;
								}
								else
									$obsolete = false;

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

735c653b   Elena.Budnik   rank at observato...
546
								$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'isAddable' => $isAddable,
10200969   Roipoussiere   Remove whitespace...
547
548
549
								'info' => $info, 'leaf' => false, 'isRemoteDataSet' => $isRemoteDataSet, 'disable' => $disable,
								'isSimulation' => $isSimulation, 'rank' => $rank, 'isDeletable' => $isDeletable, 'help' => $help);
							}
735c653b   Elena.Budnik   rank at observato...
550
						break;
10200969   Roipoussiere   Remove whitespace...
551
552
553

						case 'myData' :
							$info = $child->hasAttribute('info') ? $child->getAttribute('info') : $child->nodeValue;
735c653b   Elena.Budnik   rank at observato...
554
555
556
557
558
559
560
561
						break;

						case 'myDataParam' :

							$globalStart = null;
							$globalStop = null;
							$specialNode = true;
							$size = $child->getAttribute('size');
735c653b   Elena.Budnik   rank at observato...
562
							$mask = $child->getAttribute('mask');
19dcd963   Elena.Budnik   redmine #4903 : s...
563
							$sampling = null;
0fea5567   Benjamin Renard   First step for re...
564
							if ($child->hasAttribute('minsampling'))
19dcd963   Elena.Budnik   redmine #4903 : s...
565
								$sampling = $child->getAttribute('minsampling');
735c653b   Elena.Budnik   rank at observato...
566
							$isSpectra = false;
10200969   Roipoussiere   Remove whitespace...
567
568

							if ($isLeaf)
735c653b   Elena.Budnik   rank at observato...
569
570
571
							{
									$isParameter = true;
									$info = "Size: ".$size."<br/>".$child->getAttribute('desc')."<br/> Mask: ".$mask;
19dcd963   Elena.Budnik   redmine #4903 : s...
572
573
									if ($sampling)
										$info .= "<br/> Sampling : ".$sampling;
735c653b   Elena.Budnik   rank at observato...
574
575
576
									$isSpectra = $child->getAttribute('plottype') === 'Spectra';
							}

10200969   Roipoussiere   Remove whitespace...
577
							if ($child->hasAttribute('desc'))
735c653b   Elena.Budnik   rank at observato...
578
579
580
581
582
							{
									$globalStart = substr($child->getAttribute('desc'), 0, 19);
									$globalStop =  substr($child->getAttribute('desc'), 20);
							}

10200969   Roipoussiere   Remove whitespace...
583
							$childrenToReturn[] = array('text' => $name, 'size' =>  $size, 'id' => $id,
735c653b   Elena.Budnik   rank at observato...
584
								'globalStart' => $globalStart, 'globalStop' => $globalStop,
1c007ca2   Elena.Budnik   vector icon for M...
585
								'nodeType' => $nodeType, 'info' => $info,  'leaf' => $isLeaf,
735c653b   Elena.Budnik   rank at observato...
586
587
588
								'isParameter' => $isParameter, 'linkedMask' => $mask, 'isSpectra' => $isSpectra);

						break;
b0f72ee0   Erdogan Furkan   #10557 For now
589
590
						
						case 'specialParam':
98c92bbf   Erdogan Furkan   #10557 - Done (Ma...
591
592
593
							$specialNode=TRUE;
							$isParameter=($child->tagName == 'parameter');
							$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType, 'isParameter' => $isParameter, 'needsArgs' => $isParameter, 'leaf' => $isParameter);
b0f72ee0   Erdogan Furkan   #10557 For now
594
595
							break;
						
10200969   Roipoussiere   Remove whitespace...
596
						default:
735c653b   Elena.Budnik   rank at observato...
597
					}
10200969   Roipoussiere   Remove whitespace...
598
599

					if (!$specialNode && !$skip)
735c653b   Elena.Budnik   rank at observato...
600
					{
10200969   Roipoussiere   Remove whitespace...
601
						if ($child->hasAttribute('desc'))
735c653b   Elena.Budnik   rank at observato...
602
							$info = $child->getAttribute('desc');
10200969   Roipoussiere   Remove whitespace...
603
604

						if ($isSimulation && $service_down)
6657f68b   Elena.Budnik   monitor impex ser...
605
606
607
						{
							$info = "<b>Service is currently down</b>";
						}
10200969   Roipoussiere   Remove whitespace...
608
609

						$childrenToReturn[] = array('text' => $name, 'id' => $id, 'nodeType' => $nodeType, 'info' => $info,
2048f5bc   Benjamin Renard   Fix save & edit plot
610
													'help' => $help, 'leaf' => $isLeaf, 'isParameter' => $isParameter, 'dim_1' => $dim_1, 'dim_2' => $dim_2,
0fea5567   Benjamin Renard   First step for re...
611
													'component_info' => isset($component_info) ? $component_info : NULL,
698494ac   Benjamin Renard   Add tooltip for s...
612
													'iconCls' => isset($iconCls) ? $iconCls : NULL, 'last_update' => $last_update );
735c653b   Elena.Budnik   rank at observato...
613
614
615
					}
				}
				// if $childrenToReturn we have to return []
e57cb025   Benjamin Renard   Fix most of error...
616
				if (empty($childrenToReturn))
10200969   Roipoussiere   Remove whitespace...
617
				{
735c653b   Elena.Budnik   rank at observato...
618
619
620
					$childrenToReturn = array('nodeType' => $nodeType, 'text' => null);
				}
			}
16035364   Benjamin Renard   First commit
621
      return  $childrenToReturn;
735c653b   Elena.Budnik   rank at observato...
622
	}
16035364   Benjamin Renard   First commit
623

0dc31ba8   Elena.Budnik   remoteParamManage...
624
625
626
	/*
	*  add Remote Parameter to user RemoteParams.xml
	*  send request to DDServer to AddVi if Vi doesn't exist
0fea5567   Benjamin Renard   First step for re...
627
	*  create Remote Parameter Description
0dc31ba8   Elena.Budnik   remoteParamManage...
628
	*/
10200969   Roipoussiere   Remove whitespace...
629
	public  function saveTree($obj)
735c653b   Elena.Budnik   rank at observato...
630
	{
0dc31ba8   Elena.Budnik   remoteParamManage...
631
		$paramMgr = new RemoteParamManager();
2b8ea2a7   Elena.Budnik   RemoteParamManage...
632
		$res = $paramMgr->init();
0fea5567   Benjamin Renard   First step for re...
633

2b8ea2a7   Elena.Budnik   RemoteParamManage...
634
635
		if ($res['success'])
			return $paramMgr->saveTree($obj);
0fea5567   Benjamin Renard   First step for re...
636
		else
2b8ea2a7   Elena.Budnik   RemoteParamManage...
637
			return $res;
735c653b   Elena.Budnik   rank at observato...
638
	}
0fea5567   Benjamin Renard   First step for re...
639

0dc31ba8   Elena.Budnik   remoteParamManage...
640
641
642
	/*
	*  delete Remote Parameter from user RemoteParams.xml
	*/
10200969   Roipoussiere   Remove whitespace...
643
644
	public  function deleteFromTree($obj)
	{
0dc31ba8   Elena.Budnik   remoteParamManage...
645
		$paramMgr = new RemoteParamManager();
2b8ea2a7   Elena.Budnik   RemoteParamManage...
646
		$res = $paramMgr->init();
0fea5567   Benjamin Renard   First step for re...
647

2b8ea2a7   Elena.Budnik   RemoteParamManage...
648
649
		if ($res['success'])
			return $paramMgr->deleteFromTree($obj);
0fea5567   Benjamin Renard   First step for re...
650
		else
2b8ea2a7   Elena.Budnik   RemoteParamManage...
651
			return $res;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
652
	}
0fea5567   Benjamin Renard   First step for re...
653

0dc31ba8   Elena.Budnik   remoteParamManage...
654
655
656
657
	public  function doNothing($obj)
	{
		return array("res" => 'ok');
	}
16035364   Benjamin Renard   First commit
658

0dc31ba8   Elena.Budnik   remoteParamManage...
659
660
661
	/*
	*  get temporary object from Upload
	*/
9a63b7f6   Elena.Budnik   needsArgs to Simu...
662
	public  function getUploadedObject($name, $format, $nodeType)
10200969   Roipoussiere   Remove whitespace...
663
	{
5f8bd1f5   Nathanaël Jourdane   Fix Windows-files...
664
665
666
		$fileContent = preg_replace(['~\R~u', "/\t/"], ["\n", ' '], trim(file_get_contents(USERTEMPDIR . $name)));
		file_put_contents(USERTEMPDIR . $name, $fileContent);

42e2e019   Benjamin Renard   Next step for cac...
667
		$isTTCat = FALSE;
10200969   Roipoussiere   Remove whitespace...
668
		switch ($nodeType)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
669
		{
10200969   Roipoussiere   Remove whitespace...
670
671
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
42e2e019   Benjamin Renard   Next step for cac...
672
				$isTTCat = TRUE;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
673
				break;
10200969   Roipoussiere   Remove whitespace...
674
675
676
677
678
			case 'myDataParam' :
				$objectMgr = new FilesMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
42e2e019   Benjamin Renard   Next step for cac...
679
				$isTTCat = TRUE;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
680
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
681
682
683
			default:
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
42e2e019   Benjamin Renard   Next step for cac...
684
685
686
687
688
689
		if ($isTTCat) {
			//Pre-process: convert to INTERNAL format if needed
			if (($format == 'ASCII') || ($format == 'VOT')) {
				$result = $this->executeRequest((Object) array(
					'compression' => 'none',
					'fileformat' => 'internal',
217e6c35   Hacene SI HADJ MOHAND   affichage oki
690
                                        'timeformat' => 'YYYY-MM-DDThh:mm:ss.u',
42e2e019   Benjamin Renard   Next step for cac...
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
					'sendToSamp' => FALSE,
					'list' => array(
						(Object) array(
							'path' => USERTEMPDIR . $name,
							'format' => $format,
							'name' => pathinfo($name, PATHINFO_FILENAME),
						)
					),
				), FunctionTypeEnumClass::TTCONVERT);
				if (!$result['success']) {
					return array("error" => "Error during file conversion");
				}
				$name = basename($result['download']);
				$convertedFile = USERDIR.'/DOWNLOAD.TEMP/'.$name;
				if (!file_exists($convertedFile)) {
					return array("error" => "Error during file conversion");
				}

				$format = 'internal';
				rename($convertedFile, USERTEMPDIR . '/' . $name);
			}
		}
bf74fc2d   Elena.Budnik   IMPEX
713
		return  $objectMgr->getUploadedObject($name, $format, true);
10200969   Roipoussiere   Remove whitespace...
714
	}
16035364   Benjamin Renard   First commit
715

0dc31ba8   Elena.Budnik   remoteParamManage...
716
717
718
	/*
	*  fill ascii file into grid
	*/
10200969   Roipoussiere   Remove whitespace...
719
720
721
	public  function getAsciiFile($obj)
	{
		$objectMgr = new FilesMgr();
bf74fc2d   Elena.Budnik   IMPEX
722
		return  $objectMgr->getAsciiFile($obj->fileName);
735c653b   Elena.Budnik   rank at observato...
723
	}
10200969   Roipoussiere   Remove whitespace...
724
725
726
727

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

0dc31ba8   Elena.Budnik   remoteParamManage...
731
732
733
	/*
	*  get temporary object from Search
	*/
10200969   Roipoussiere   Remove whitespace...
734
735
736
	public  function getTmpObject($folderId, $name, $nodeType)
	{
		switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
737
		{
10200969   Roipoussiere   Remove whitespace...
738
739
740
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
			break;
735c653b   Elena.Budnik   rank at observato...
741
			case 'catalog' :
10200969   Roipoussiere   Remove whitespace...
742
743
				$objectMgr = new CatalogMgr();
			break;
735c653b   Elena.Budnik   rank at observato...
744
745
746
			default:
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
747
		return  $objectMgr->getTmpObject($folderId, $name, true);
fdf1413b   Elena.Budnik   TT download
748
	}
735c653b   Elena.Budnik   rank at observato...
749

10200969   Roipoussiere   Remove whitespace...
750
751
752
753

	public  function getObject($id, $nodeType)
	{
		switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
754
755
		{
			case 'myDataParam':
10200969   Roipoussiere   Remove whitespace...
756
757
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($nodeType);
735c653b   Elena.Budnik   rank at observato...
758
				break;
10200969   Roipoussiere   Remove whitespace...
759
			case 'timeTable' :
735c653b   Elena.Budnik   rank at observato...
760
			case 'sharedtimeTable' :
10200969   Roipoussiere   Remove whitespace...
761
762
				$objectMgr = new TimeTableMgr();
				break;
735c653b   Elena.Budnik   rank at observato...
763
764
			case 'catalog' :
			case 'sharedcatalog' :
10200969   Roipoussiere   Remove whitespace...
765
766
767
				$objectMgr = new CatalogMgr();
				break;
			case 'condition' :
735c653b   Elena.Budnik   rank at observato...
768
			case 'request' :
f569bae5   Benjamin Renard   Save download
769
			case 'download' :
2e7079bb   Benjamin Renard   First implementat...
770
			case 'statistic':
10200969   Roipoussiere   Remove whitespace...
771
772
				$objectMgr = new RequestMgr($nodeType);
				break;
0fea5567   Benjamin Renard   First step for re...
773
			case 'bkgWorks' :
735c653b   Elena.Budnik   rank at observato...
774
775
776
				return $this->executeRequest($id, FunctionTypeEnumClass::PROCESSGETINFO);
				break;
			case 'myData' :
10200969   Roipoussiere   Remove whitespace...
777
				$objectMgr = new FilesMgr();
735c653b   Elena.Budnik   rank at observato...
778
				break;
10200969   Roipoussiere   Remove whitespace...
779
			default:
735c653b   Elena.Budnik   rank at observato...
780
781
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
782
		return  $objectMgr->getObject($id, $nodeType);
fdf1413b   Elena.Budnik   TT download
783
	}
10200969   Roipoussiere   Remove whitespace...
784

16035364   Benjamin Renard   First commit
785
786
787
/*
*   $obj = { id: node.id, leaf: node.leaf, nodeType: node.nodeType }
*/
10200969   Roipoussiere   Remove whitespace...
788
789
790
791
792
793
794
	public  function deleteObject($obj)
	{
		switch ($obj->nodeType)
		{
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
735c653b   Elena.Budnik   rank at observato...
795
				break;
10200969   Roipoussiere   Remove whitespace...
796
797
798
799
800
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
735c653b   Elena.Budnik   rank at observato...
801
				break;
10200969   Roipoussiere   Remove whitespace...
802
			case 'condition' :
735c653b   Elena.Budnik   rank at observato...
803
			case 'request' :
f569bae5   Benjamin Renard   Save download
804
			case 'download' :
2e7079bb   Benjamin Renard   First implementat...
805
			case 'statistic' :
10200969   Roipoussiere   Remove whitespace...
806
				$objectMgr = new RequestMgr($obj->nodeType);
735c653b   Elena.Budnik   rank at observato...
807
808
809
810
				break;
			case 'alias' :
				$objectMgr = new AliasMgr();
				$obj->id = substr($obj->id,strlen('alias_'));
10200969   Roipoussiere   Remove whitespace...
811
				break;
735c653b   Elena.Budnik   rank at observato...
812
			case 'bkgWorks' :
735c653b   Elena.Budnik   rank at observato...
813
814
815
				return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSDELETE);

			case 'myData' :
16035364   Benjamin Renard   First commit
816
				$objectMgr = new FilesMgr();
735c653b   Elena.Budnik   rank at observato...
817
818
819
820
821
822
				break;
			default:
					return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> deleteObject($obj);
	}
16035364   Benjamin Renard   First commit
823
824
825
826

/*
*   $obj = { id: node.id, old_name: node.text, name: value,  parent : node.parentNode.id, leaf: node.leaf, nodeType: node.nodeType }
*/
10200969   Roipoussiere   Remove whitespace...
827
828
829
	public  function renameObject($obj)
	{
		switch ($obj->nodeType)
735c653b   Elena.Budnik   rank at observato...
830
		{
10200969   Roipoussiere   Remove whitespace...
831

16035364   Benjamin Renard   First commit
832
		  case 'myDataParam' :
10200969   Roipoussiere   Remove whitespace...
833
834
835
836
837
		  case 'derivedParam' :
			   $objectMgr = new DerivedParamMgr($obj->nodeType);
			   break;
		  case 'timeTable' :
			   $objectMgr = new TimeTableMgr();
16035364   Benjamin Renard   First commit
838
			   break;
10200969   Roipoussiere   Remove whitespace...
839
840
		  case 'catalog' :
			   $objectMgr = new CatalogMgr();
d18b535d   elena   catalog draft + c...
841
			   break;
10200969   Roipoussiere   Remove whitespace...
842
843
		  case 'condition' :
		  case 'request' :
f569bae5   Benjamin Renard   Save download
844
		  case 'download' :
2e7079bb   Benjamin Renard   First implementat...
845
		  case 'statistic' :
10200969   Roipoussiere   Remove whitespace...
846
			   $objectMgr = new RequestMgr($obj->nodeType);
16035364   Benjamin Renard   First commit
847
848
			   break;
		  case 'alias' :
10200969   Roipoussiere   Remove whitespace...
849
850
		  	   $objectMgr = new AliasMgr();
		  	   break;
16035364   Benjamin Renard   First commit
851
852
		  default:
			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
735c653b   Elena.Budnik   rank at observato...
853
		}
16035364   Benjamin Renard   First commit
854

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

10200969   Roipoussiere   Remove whitespace...
858
/*
16035364   Benjamin Renard   First commit
859
860
*   $obj = { name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
*/
10200969   Roipoussiere   Remove whitespace...
861
862
863
	public  function createObject($obj, $folder)
	{
		switch ($obj->nodeType)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
864
		{
10200969   Roipoussiere   Remove whitespace...
865
			case 'myDataParam' :
9a63b7f6   Elena.Budnik   needsArgs to Simu...
866
			case 'derivedParam' :
10200969   Roipoussiere   Remove whitespace...
867
				if ($obj->nodeType == 'derivedParam' &&  $this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
868
						$this->amdaStat->addTask($this->user, 'create', null);
10200969   Roipoussiere   Remove whitespace...
869
				$objectMgr = new DerivedParamMgr($obj->nodeType);
8ba47f72   Benjamin Renard   rest actualisatio...
870
                 	break;
10200969   Roipoussiere   Remove whitespace...
871
872
873
874
875
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
16035364   Benjamin Renard   First commit
876
			   break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
877
			case 'condition' :
10200969   Roipoussiere   Remove whitespace...
878
			case 'request' :
f569bae5   Benjamin Renard   Save download
879
			case 'download' :
2e7079bb   Benjamin Renard   First implementat...
880
			case 'statistic' :
10200969   Roipoussiere   Remove whitespace...
881
882
				$objectMgr = new RequestMgr($obj->nodeType);
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
883
			case 'alias' :
10200969   Roipoussiere   Remove whitespace...
884
885
				$objectMgr = new AliasMgr();
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
886
887
888
889
890
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> createObject($obj, $folder);
	}
16035364   Benjamin Renard   First commit
891

10200969   Roipoussiere   Remove whitespace...
892
/*
16035364   Benjamin Renard   First commit
893
894
*   $obj = { id:obj.id, name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
*/
10200969   Roipoussiere   Remove whitespace...
895
	public  function modifyObject($obj)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
896
	{
10200969   Roipoussiere   Remove whitespace...
897
898
899
900
901
		switch ($obj->nodeType)
		{
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
9a63b7f6   Elena.Budnik   needsArgs to Simu...
902
				break;
10200969   Roipoussiere   Remove whitespace...
903
904
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
9a63b7f6   Elena.Budnik   needsArgs to Simu...
905
				break;
10200969   Roipoussiere   Remove whitespace...
906
907
908
909
			case 'catalog' :
				$objectMgr = new CatalogMgr();
				break;
			case 'condition' :
9a63b7f6   Elena.Budnik   needsArgs to Simu...
910
			case 'request' :
f569bae5   Benjamin Renard   Save download
911
			case 'download' :
2e7079bb   Benjamin Renard   First implementat...
912
			case 'statistic' :
10200969   Roipoussiere   Remove whitespace...
913
				$objectMgr = new RequestMgr($obj->nodeType);
9a63b7f6   Elena.Budnik   needsArgs to Simu...
914
915
916
917
918
				break;
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> modifyObject($obj);
10200969   Roipoussiere   Remove whitespace...
919
	}
16035364   Benjamin Renard   First commit
920
921
922
923
924
925
926
927
928
929
/*
 * {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...
930
			case 'sharedtimeTable' :
16035364   Benjamin Renard   First commit
931
932
				$objectMgr = new TimeTableMgr();
				break;
d18b535d   elena   catalog draft + c...
933
			case 'catalog' :
169f14d2   Benjamin Renard   Add shared object...
934
			case 'sharedcatalog' :
d18b535d   elena   catalog draft + c...
935
936
				$objectMgr = new CatalogMgr();
				break;
16035364   Benjamin Renard   First commit
937
938
			case 'condition' :
			case 'request' :
f569bae5   Benjamin Renard   Save download
939
			case 'download' :
2e7079bb   Benjamin Renard   First implementat...
940
			case 'statistic' :
16035364   Benjamin Renard   First commit
941
942
943
944
945
946
947
948
949
950
				$objectMgr = new RequestMgr($obj->nodeType);
				break;
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}

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

/*
bae6f5da   Nathanael Jourdane   bugFix fileName f...
951
*   Get running jobs
16035364   Benjamin Renard   First commit
952
*/
bae6f5da   Nathanael Jourdane   bugFix fileName f...
953
	public function getJobs($obj = null)
6acb8d2a   Elena.Budnik   checkRequest in R...
954
	{
812bc03d   Nathanael Jourdane   update job info o...
955
		$obj = (object) array();
10200969   Roipoussiere   Remove whitespace...
956
		return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSRUNNINGINFO);
6acb8d2a   Elena.Budnik   checkRequest in R...
957
	}
16035364   Benjamin Renard   First commit
958
959
960
961
962
963
964


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

16035364   Benjamin Renard   First commit
970
		if (isset($obj->username) && isset($obj->password) && isset($obj->sessionID))
735c653b   Elena.Budnik   rank at observato...
971
		{
e5ab198f   Nathanael Jourdane   simple getStatus
972
			$dd = new WSUserMgr();
039d19ac   Benjamin Renard   Fix getParameter ...
973
			$dd->initWS($obj->username,$obj->password,$obj->sessionID, false, false);
735c653b   Elena.Budnik   rank at observato...
974
		}
a21497cc   Elena.Budnik   redmine #5645
975
		else {
16035364   Benjamin Renard   First commit
976
			$dd = new UserMgr();
a21497cc   Elena.Budnik   redmine #5645
977
978
			$dd->setSpecialSettings();
		}
10200969   Roipoussiere   Remove whitespace...
979
980

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

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

98c5bd44   Benjamin Renard   Introduce anonymo...
988
		if ($dd->user == WSConfigClass::getAnonymousUserName())
16035364   Benjamin Renard   First commit
989
990
991
		{
			//if ($dd->getWsSize() > DISK_QUOTA * 100)
			//	error_log('Natacha! It is time to CLEAN UP IMPEX WS!',1,'nbourrel@irap.omp.eu');
e5ab198f   Nathanael Jourdane   simple getStatus
992
//			return array('success' => false, "message" => "AKKA-KERNEL-INT - WS support for IMPEx not implemented");
6acb8d2a   Elena.Budnik   checkRequest in R...
993
		}
32bb889b   Elena.Budnik   #5532 to process ...
994
		else {
0fea5567   Benjamin Renard   First step for re...
995
			// check disk space
2c7f2cb6   Benjamin Renard   Remove old log fi...
996
997
998
999
1000
1001
			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...
1002
		}
10200969   Roipoussiere   Remove whitespace...
1003

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

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

6acb8d2a   Elena.Budnik   checkRequest in R...
1009
	private function executeRequest($obj, $function)
0fea5567   Benjamin Renard   First step for re...
1010
1011
	{

32bb889b   Elena.Budnik   #5532 to process ...
1012
1013
1014
		// 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...
1015
1016
				$function == FunctionTypeEnumClass::PARAMSGEN ||
				$function == FunctionTypeEnumClass::PARAMSINFOGEN )
32bb889b   Elena.Budnik   #5532 to process ...
1017
		{
7ac3e07e   Elena.Budnik   do not check user...
1018
1019
1020
			$res = $this->checkUser($obj);
			if (!$res['success']) return $res;
		}
8ba47f72   Benjamin Renard   rest actualisatio...
1021

16035364   Benjamin Renard   First commit
1022
		$requestManager = new RequestManagerClass();
32bb889b   Elena.Budnik   #5532 to process ...
1023
		try {
e57cb025   Benjamin Renard   Fix most of error...
1024
			$res = $requestManager->runIHMRequest($this->user, !empty($res['userHost']) ? $res['userHost'] : NULL, $function, $obj);
32bb889b   Elena.Budnik   #5532 to process ...
1025
		} catch (Exception $e) {
16035364   Benjamin Renard   First commit
1026
			return array('success' => false, 'message' => 'Exception detected : '.$e->getMessage());
10200969   Roipoussiere   Remove whitespace...
1027
		}
16035364   Benjamin Renard   First commit
1028
1029
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
1030
1031
1032

/*
*    Main EXECUTE PROCEDURE
16035364   Benjamin Renard   First commit
1033
*/
735c653b   Elena.Budnik   rank at observato...
1034
1035
	public  function execute($node, $obj)
	{
fdf1413b   Elena.Budnik   TT download
1036
1037
1038
1039
		// 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
1040
			return $this->executeRequest($obj, FunctionTypeEnumClass::ACTION);
10200969   Roipoussiere   Remove whitespace...
1041
1042
		else
		{
6acb8d2a   Elena.Budnik   checkRequest in R...
1043
1044
			$res = RequestMgr::checkRequest($obj);
			if (!$res['success']) return $res;
10200969   Roipoussiere   Remove whitespace...
1045

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

16035364   Benjamin Renard   First commit
1050
/*
a0b3d64e   Benjamin Renard   Derived parameter...
1051
1052
 * Generate derived parameter compilation
 */
735c653b   Elena.Budnik   rank at observato...
1053
1054
	public function compilParam($obj)
	{
735c653b   Elena.Budnik   rank at observato...
1055
1056
		return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMSGEN);
	}
a0b3d64e   Benjamin Renard   Derived parameter...
1057

8ba47f72   Benjamin Renard   rest actualisatio...
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069

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




a0b3d64e   Benjamin Renard   Derived parameter...
1070
1071
1072
/*
 * Delete derived parameter compilation
 */
735c653b   Elena.Budnik   rank at observato...
1073
1074
	public function compilParamDelete($obj)
	{
a0b3d64e   Benjamin Renard   Derived parameter...
1075
		$res = $this->checkUser($obj);
10200969   Roipoussiere   Remove whitespace...
1076

a0b3d64e   Benjamin Renard   Derived parameter...
1077
1078
		if (!$res['success'])
			return $res;
10200969   Roipoussiere   Remove whitespace...
1079

a0b3d64e   Benjamin Renard   Derived parameter...
1080
1081
1082
1083
		IHMConfigClass::setUserName($this->user);
		$libParamPath = IHMConfigClass::getCompilationPath()."lib/".$obj->paramId.".so";
		if (file_exists($libParamPath))
			unlink($libParamPath);
735c653b   Elena.Budnik   rank at observato...
1084
1085
		return array("success" => true);
	}
10200969   Roipoussiere   Remove whitespace...
1086

a0b3d64e   Benjamin Renard   Derived parameter...
1087
/*
e6e5b259   Benjamin Renard   Add kill plot req...
1088
 * kill plot process
16035364   Benjamin Renard   First commit
1089
 */
10200969   Roipoussiere   Remove whitespace...
1090

735c653b   Elena.Budnik   rank at observato...
1091
	public function killPlotRequest()
10200969   Roipoussiere   Remove whitespace...
1092
	{
735c653b   Elena.Budnik   rank at observato...
1093
1094
		return $this->executeRequest((object) array('nodeType' => 'killplot'), FunctionTypeEnumClass::PARAMS);
	}
16035364   Benjamin Renard   First commit
1095
1096
1097
1098

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

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

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

10200969   Roipoussiere   Remove whitespace...
1109

16035364   Benjamin Renard   First commit
1110
1111
1112
/*
 * intersect time tables
 */
10200969   Roipoussiere   Remove whitespace...
1113
	public  function intersect($obj)
735c653b   Elena.Budnik   rank at observato...
1114
1115
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1116
				$this->amdaStat->addTask($this->user, 'ttoper', null);
16035364   Benjamin Renard   First commit
1117

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

735c653b   Elena.Budnik   rank at observato...
1121
1122
		return  $result;
	}
10200969   Roipoussiere   Remove whitespace...
1123

0fea5567   Benjamin Renard   First step for re...
1124
	public function initObjectCache($isCatalog = false, $nparams = 1)
735c653b   Elena.Budnik   rank at observato...
1125
1126
1127
	{
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
		else              $cacheMgr = new CatalogCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1128

0fea5567   Benjamin Renard   First step for re...
1129
		return $cacheMgr->initObjectCache(array('nparams' => $nparams));
735c653b   Elena.Budnik   rank at observato...
1130
	}
10200969   Roipoussiere   Remove whitespace...
1131
1132


342b20ca   Benjamin Renard   Fix inheritence b...
1133
	public function initObjectCacheFromObject($id, $type)
735c653b   Elena.Budnik   rank at observato...
1134
1135
1136
	{
		if ($type == 'catalog' || $type == 'sharedcatalog') $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1137

0fea5567   Benjamin Renard   First step for re...
1138
		return $cacheMgr->initFromObject($id, $type);
735c653b   Elena.Budnik   rank at observato...
1139
	}
10200969   Roipoussiere   Remove whitespace...
1140

0fea5567   Benjamin Renard   First step for re...
1141
	public function initObjectCacheFromCatalog($id, $type)
d547a559   Hacene SI HADJ MOHAND   rm_6903 ok
1142
1143
1144
1145
1146
1147
        {
                $cacheMgr = new TimeTableCacheMgr();

                return $cacheMgr->initFromCatalog($id, $type);
        }

19eca0a6   Hacene SI HADJ MOHAND   ok
1148
1149
1150
1151
        public function initObjectCacheFromTimeTable($id, $type, $nparams)
        {
                $cacheMgr = new CatalogCacheMgr();

ceac8bd0   Hacene SI HADJ MOHAND   us ok
1152
                return $cacheMgr->initFromTimeTable($id, $nparams, $type);
19eca0a6   Hacene SI HADJ MOHAND   ok
1153
1154
        }

0fea5567   Benjamin Renard   First step for re...
1155
	public function initObjectCacheFromTmpObject($folderId, $name, $isCatalog = false)
735c653b   Elena.Budnik   rank at observato...
1156
	{
10200969   Roipoussiere   Remove whitespace...
1157
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1158
1159
1160
1161
		else  $cacheMgr = new CatalogCacheMgr();

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

0fea5567   Benjamin Renard   First step for re...
1163
	public function initObjectCacheFromUploadedFile($name, $format, $isCatalog = false)
735c653b   Elena.Budnik   rank at observato...
1164
	{
901ba3f3   Elena.Budnik   upload catalog
1165
1166
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
		else  $cacheMgr = new CatalogCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1167
1168
		return $cacheMgr->initFromUploadedFile($name, $format);
	}
10200969   Roipoussiere   Remove whitespace...
1169

342b20ca   Benjamin Renard   Fix inheritence b...
1170
	public function readCacheIntervals($o)
735c653b   Elena.Budnik   rank at observato...
1171
	{
e57cb025   Benjamin Renard   Fix most of error...
1172
		if (isset($o->typeTT) && ($o->typeTT == 'catalog' || $o->typeTT == 'sharedcatalog')) $cacheMgr = new CatalogCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1173
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1174

e57cb025   Benjamin Renard   Fix most of error...
1175
		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...
1176
	}
10200969   Roipoussiere   Remove whitespace...
1177

735c653b   Elena.Budnik   rank at observato...
1178
1179
	public function readIntervalsForChart($o)
	{
1a0151a5   Benjamin Renard   wip
1180
		$objMgr = new CatalogCacheMgr(TRUE);
b0720b91   Benjamin Renard   Finalize catalog ...
1181
		$objMgr->initFromObject($o->id, $o->type);
1a0151a5   Benjamin Renard   wip
1182
		return $objMgr->getIntervalsForChart();
735c653b   Elena.Budnik   rank at observato...
1183
	}
10200969   Roipoussiere   Remove whitespace...
1184

735c653b   Elena.Budnik   rank at observato...
1185
1186
1187
	public function saveTTCacheIntervalsInTT($o)
	{
		$cacheMgr = new TimeTableCacheMgr();
0fea5567   Benjamin Renard   First step for re...
1188
		return $cacheMgr->saveInObject($o->ttId,$o->action,$o->cacheToken);
735c653b   Elena.Budnik   rank at observato...
1189
	}
10200969   Roipoussiere   Remove whitespace...
1190

342b20ca   Benjamin Renard   Fix inheritence b...
1191
	public function addCacheInterval($o)
735c653b   Elena.Budnik   rank at observato...
1192
1193
1194
1195
1196
1197
	{
		if ($o->isCatalog) $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();

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

735c653b   Elena.Budnik   rank at observato...
1199
1200
1201
1202
1203
1204
1205
	public function removeTTCacheIntervalFromId($id, $isCatalog = false)
	{
		if ($isCatalog) $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();

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

342b20ca   Benjamin Renard   Fix inheritence b...
1207
	public function modifyCacheInterval($o)
735c653b   Elena.Budnik   rank at observato...
1208
	{
10200969   Roipoussiere   Remove whitespace...
1209
		if ($o->isCatalog)
735c653b   Elena.Budnik   rank at observato...
1210
		{
f9c8b272   elena   edit catalog
1211
			$cacheMgr = new CatalogCacheMgr();
f9c8b272   elena   edit catalog
1212
		}
735c653b   Elena.Budnik   rank at observato...
1213
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1214

342b20ca   Benjamin Renard   Fix inheritence b...
1215
		return $cacheMgr->modifyIntervalFromId($o->cacheId, $o->data);
735c653b   Elena.Budnik   rank at observato...
1216
	}
10200969   Roipoussiere   Remove whitespace...
1217

735c653b   Elena.Budnik   rank at observato...
1218
1219
1220
1221
1222
	public function operationTTCacheIntervals($extendTime, $shiftTime)
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->operationIntervals($extendTime, $shiftTime);
	}
10200969   Roipoussiere   Remove whitespace...
1223

735c653b   Elena.Budnik   rank at observato...
1224
1225
1226
1227
1228
	public function mergeTTCacheIntervals()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->mergeIntervals();
	}
10200969   Roipoussiere   Remove whitespace...
1229

0318dbe6   Hacene SI HADJ MOHAND   rm_6998 ok
1230
	public function getTTCacheStatistics($obj)
735c653b   Elena.Budnik   rank at observato...
1231
	{
0fea5567   Benjamin Renard   First step for re...
1232
                if($obj->name == "timeTableUi"){
0318dbe6   Hacene SI HADJ MOHAND   rm_6998 ok
1233
1234
1235
1236
1237
1238
				$cacheMgr = new TimeTableCacheMgr();
                 }elseif($obj->name == "catalogUI"){
                      $cacheMgr = new CatalogCacheMgr();
                 }else{
                      return array('success' => false, 'message' => 'unkown type: '.$obj->name);
               }
735c653b   Elena.Budnik   rank at observato...
1239
1240
		return $cacheMgr->getStatistics();
	}
10200969   Roipoussiere   Remove whitespace...
1241

735c653b   Elena.Budnik   rank at observato...
1242
1243
1244
1245
1246
	public function getTTCacheStatus()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->getStatus();
	}
aa94fd24   elena   Merge with last svn
1247

16035364   Benjamin Renard   First commit
1248
1249
/*
 * Send a feedback
10200969   Roipoussiere   Remove whitespace...
1250
 *
16035364   Benjamin Renard   First commit
1251
 */
735c653b   Elena.Budnik   rank at observato...
1252
1253
1254
1255
1256
	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...
1257

16035364   Benjamin Renard   First commit
1258
1259
/*
 * Save state
10200969   Roipoussiere   Remove whitespace...
1260
 *
16035364   Benjamin Renard   First commit
1261
 */
735c653b   Elena.Budnik   rank at observato...
1262
1263
1264
1265
1266
	public function saveState($datas)
	{
		$myStateMgr = new StateMgr();
		return $myStateMgr->saveState($datas);
	}
10200969   Roipoussiere   Remove whitespace...
1267

16035364   Benjamin Renard   First commit
1268
1269
/*
 * Load state
10200969   Roipoussiere   Remove whitespace...
1270
1271
 *
 */
735c653b   Elena.Budnik   rank at observato...
1272
	public function loadState($o)
10200969   Roipoussiere   Remove whitespace...
1273
	{
735c653b   Elena.Budnik   rank at observato...
1274
1275
1276
		$myStateMgr = new StateMgr();
		return $myStateMgr->loadState();
	}
10200969   Roipoussiere   Remove whitespace...
1277
1278

/*
16035364   Benjamin Renard   First commit
1279
1280
 * HST Images
 */
735c653b   Elena.Budnik   rank at observato...
1281
1282
1283
	public function getHstImagesUrl($o)
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1284
			$this->amdaStat->addTask($this->user, 'images', null);
10200969   Roipoussiere   Remove whitespace...
1285

735c653b   Elena.Budnik   rank at observato...
1286
1287
1288
1289
1290
1291
		$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...
1292

735c653b   Elena.Budnik   rank at observato...
1293
1294
	public function getAPISImagesUrl($o)
	{
10200969   Roipoussiere   Remove whitespace...
1295
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1296
			$this->amdaStat->addTask($this->user, 'images', null);
10200969   Roipoussiere   Remove whitespace...
1297

735c653b   Elena.Budnik   rank at observato...
1298
1299
1300
1301
		$apisMgr = new APISMgr();
		$res = $apisMgr->get($o->target, $o->startTime, $o->stopTime, $o->datasets);

		return $res;
10200969   Roipoussiere   Remove whitespace...
1302
	}
16035364   Benjamin Renard   First commit
1303
1304
1305
/*
 * Filters
 */
e57cb025   Benjamin Renard   Fix most of error...
1306
	public function loadFilterList()
735c653b   Elena.Budnik   rank at observato...
1307
	{
10200969   Roipoussiere   Remove whitespace...
1308
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1309
1310
1311
		$res = $filtersMgr->loadList();
		return $res;
	}
16035364   Benjamin Renard   First commit
1312

735c653b   Elena.Budnik   rank at observato...
1313
1314
1315
1316
1317
1318
1319
1320
1321
	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...
1322

735c653b   Elena.Budnik   rank at observato...
1323
1324
	public function saveFilter($o)
	{
10200969   Roipoussiere   Remove whitespace...
1325
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1326
1327
		return $filtersMgr->save($o);
	}
10200969   Roipoussiere   Remove whitespace...
1328

735c653b   Elena.Budnik   rank at observato...
1329
1330
	public function createFilter($o)
	{
10200969   Roipoussiere   Remove whitespace...
1331
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1332
1333
		return $filtersMgr->create($o);
	}
10200969   Roipoussiere   Remove whitespace...
1334

735c653b   Elena.Budnik   rank at observato...
1335
1336
1337
1338
1339
1340
	public function destroyFilter($o)
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->delete($o);
		return;
	}
10200969   Roipoussiere   Remove whitespace...
1341

735c653b   Elena.Budnik   rank at observato...
1342
1343
1344
1345
1346
1347
1348
	public function getCrtFilterId()
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->getCrtId();
		return $res;
	}

fdf1413b   Elena.Budnik   TT download
1349
1350
	public function getCrtFilterResult()
	{
10200969   Roipoussiere   Remove whitespace...
1351
		$filtersMgr = new FiltersMgr();
fdf1413b   Elena.Budnik   TT download
1352
1353
		return $filtersMgr->getCrtResult();
	}
10200969   Roipoussiere   Remove whitespace...
1354

fdf1413b   Elena.Budnik   TT download
1355
1356
	public function setCrtFilterId($o)
	{
10200969   Roipoussiere   Remove whitespace...
1357
		$filtersMgr = new FiltersMgr();
fdf1413b   Elena.Budnik   TT download
1358
1359
		return $filtersMgr->setCrtId($o->id);
	}
10200969   Roipoussiere   Remove whitespace...
1360

fdf1413b   Elena.Budnik   TT download
1361
1362
1363
1364
1365
1366
	public function resetFilter()
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->reset();
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
1367

16035364   Benjamin Renard   First commit
1368
1369
	public function logout($isGuest)
	{
10200969   Roipoussiere   Remove whitespace...
1370
		if ($isGuest)
735c653b   Elena.Budnik   rank at observato...
1371
		{
fdf1413b   Elena.Budnik   TT download
1372
1373
1374
			$guestMgr = new Guest($this->user);
			$guestMgr->deleteGuest();
		}
10200969   Roipoussiere   Remove whitespace...
1375
		else
735c653b   Elena.Budnik   rank at observato...
1376
		{
fdf1413b   Elena.Budnik   TT download
1377
			$this->cleanUserWS();
10200969   Roipoussiere   Remove whitespace...
1378
		}
16035364   Benjamin Renard   First commit
1379
		return;
10200969   Roipoussiere   Remove whitespace...
1380
	}
16035364   Benjamin Renard   First commit
1381

fdf1413b   Elena.Budnik   TT download
1382
1383
	public function getInfo($obj)
	{
10200969   Roipoussiere   Remove whitespace...
1384
		if (file_exists(HELPPATH.$obj->name))
fdf1413b   Elena.Budnik   TT download
1385
		{
10200969   Roipoussiere   Remove whitespace...
1386
			$content = file_get_contents(HELPPATH.$obj->name);
fdf1413b   Elena.Budnik   TT download
1387
1388
			return  array('success' => true, 'result' => $content);
		}
10200969   Roipoussiere   Remove whitespace...
1389
1390
1391
		return array('success' => false);
	}

fdf1413b   Elena.Budnik   TT download
1392
1393
1394
1395
1396
	public function getUserInfo()
	{
		$dd = new UserMgr();
		return $dd->getUserInfo();
	}
16035364   Benjamin Renard   First commit
1397

fdf1413b   Elena.Budnik   TT download
1398
1399
1400
1401
1402
1403
	// $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...
1404
1405

		return  $res;
fdf1413b   Elena.Budnik   TT download
1406
	}
10200969   Roipoussiere   Remove whitespace...
1407
1408

	//$obj = array of IDs
fdf1413b   Elena.Budnik   TT download
1409
1410
1411
	public function addRun($obj)
	{
		$myBestRunsMgr = new BestRunsMgr();
10200969   Roipoussiere   Remove whitespace...
1412

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

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

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

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

fdf1413b   Elena.Budnik   TT download
1423
1424
1425
1426
	//AKKA - New action to clean user WS
	public function cleanUserWS()
	{
		$this->rrmdir(USERDIR.'DOWNLOAD.TEMP');
278185de   Benjamin Renard   Upload catalog fr...
1427
		$this->rrmdir(USERDIR.'TEMP');
bf74fc2d   Elena.Budnik   IMPEX
1428
		IHMConfigClass::setUserName($this->user);
10200969   Roipoussiere   Remove whitespace...
1429
1430

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

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

fdf1413b   Elena.Budnik   TT download
1438
1439
1440
	public function rrmdir($dir){
		if (is_dir($dir)) {
			$objects = scandir($dir);
10200969   Roipoussiere   Remove whitespace...
1441
1442
			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
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
					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...
1456
		if (file_exists(USERDIR.$name))
fdf1413b   Elena.Budnik   TT download
1457
1458
1459
					unlink(USERDIR.$name);
		return array('success' => true);
	}
10200969   Roipoussiere   Remove whitespace...
1460

46c5751e   Benjamin Renard   Cleanup
1461
	public function interactivePlot($obj)
fdf1413b   Elena.Budnik   TT download
1462
	{
fdf1413b   Elena.Budnik   TT download
1463
1464
		$inputobj = (Object)array(
			'action' => $obj,
fdf1413b   Elena.Budnik   TT download
1465
1466
1467
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::ACTION);
	}
10200969   Roipoussiere   Remove whitespace...
1468

735c653b   Elena.Budnik   rank at observato...
1469
1470
	public function getParamPlotInit($obj)
	{
bf74fc2d   Elena.Budnik   IMPEX
1471
1472
1473
1474
1475
		// IMPEX param
		if (preg_match("#^spase___IMPEX_#",$obj->paramId))
			$type = 'impex_plot_init';
		else
		   $type = 'plot_init';
10200969   Roipoussiere   Remove whitespace...
1476

735c653b   Elena.Budnik   rank at observato...
1477
1478
		$inputobj = (Object)array(
				'paramId' => $obj->paramId,
bf74fc2d   Elena.Budnik   IMPEX
1479
				'type' => $type
735c653b   Elena.Budnik   rank at observato...
1480
1481
1482
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::PARAMINFO);
	}
10200969   Roipoussiere   Remove whitespace...
1483

735c653b   Elena.Budnik   rank at observato...
1484
1485
	public function getParamInfo($obj)
	{
bf74fc2d   Elena.Budnik   IMPEX
1486
1487
1488
1489
1490
		// IMPEX param
		if (preg_match("#^spase___IMPEX_#",$obj->paramId))
			$type = 'impex_param_info';
		else
		   $type = 'param_info';
10200969   Roipoussiere   Remove whitespace...
1491

735c653b   Elena.Budnik   rank at observato...
1492
1493
		$inputobj = (Object)array(
				'paramId' => $obj->paramId,
2fa56f95   Benjamin Renard   Predefined templa...
1494
				'predefinedArgs' => !empty($obj->predefinedArgs),
bf74fc2d   Elena.Budnik   IMPEX
1495
				'type' => $type
735c653b   Elena.Budnik   rank at observato...
1496
1497
1498
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::PARAMINFO);
	}
bf776dc8   Benjamin Renard   working
1499
	public function getDerivedParamInfo($obj)
0fea5567   Benjamin Renard   First step for re...
1500
	{
bf776dc8   Benjamin Renard   working
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
                 $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);
		  	}
0fea5567   Benjamin Renard   First step for re...
1513

bf776dc8   Benjamin Renard   working
1514
		}
0fea5567   Benjamin Renard   First step for re...
1515
		return array('success'=>false, 'message'=>'unkown parameter (derived parameter arguments are not handled)');
bf776dc8   Benjamin Renard   working
1516
	}
0fea5567   Benjamin Renard   First step for re...
1517

22d8d756   Hacene SI HADJ MOHAND   resolu
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
       public function getMyDataParamInfo($obj)
        {
                 $dom = new DomDocument("1.0");
                 $xmlName=USERWSDIR.$this->xmlFiles['derivedParam'];
                 @$dom->load($xmlName);
                 $params=$dom->getElementsByTagName("mydata");
                 foreach($params as $param)
                 {
                        if($param->hasAttribute("name") && ("wsd_" . ($param->getAttribute("name")))==$obj->paramId)
                        {
                         $dim_1=$param->getAttribute("size");
                         $dim_2=1;
                         return $this->createDerivedParamInfo($dim_1,$dim_2,$obj->paramId);
                        }

                }
                return array('success'=>false, 'message'=>'unkown parameter (derived parameter arguments are not handled)');
        }


bf776dc8   Benjamin Renard   working
1538
1539
1540
1541
1542
1543
	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");
0fea5567   Benjamin Renard   First step for re...
1544
		}elseif(($dim_1==1 && $dim_2>1 && $dim_2<=3)||($dim_2==1 && $dim_1>1 && $dim_1<=3) )
bf776dc8   Benjamin Renard   working
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
		/* 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
			    );
0fea5567   Benjamin Renard   First step for re...
1572

10200969   Roipoussiere   Remove whitespace...
1573

bf776dc8   Benjamin Renard   working
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
			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();
0fea5567   Benjamin Renard   First step for re...
1588

bf776dc8   Benjamin Renard   working
1589
1590
1591
1592
1593
1594
1595
			for($i=0;$i<$sizes[$j];$i++)
				{
				$c=array('min'=>'L' . $i,'max'=>'L' . ($i+1));
				array_push($compts,$c);
				}

			$tab=array(
0fea5567   Benjamin Renard   First step for re...
1596
				'relatedDim'=>'dim' . ($j+1),
bf776dc8   Benjamin Renard   working
1597
1598
1599
1600
1601
1602
1603
1604
1605
				'name'=>'component' . ($j+1),
				'units'=>"",
				'variable'=>"",
				'channels'=>$compts,
				'minmax'=>""
				);

			array_push($tables,$tab);
			}
0fea5567   Benjamin Renard   First step for re...
1606

bf776dc8   Benjamin Renard   working
1607
1608
1609
1610
1611
1612
                  $data=array(
				'dimensions'=>$dims,
				'tables'=>$tables
			     );
		return array('success'=>true,'data'=>$data);
                }
0fea5567   Benjamin Renard   First step for re...
1613

bf776dc8   Benjamin Renard   working
1614
	}
735c653b   Elena.Budnik   rank at observato...
1615
1616
1617
1618
1619
1620
	public function getSharedObjectFolders($obj)
	{
		$mgr = new SharedObjectsMgr();
		$folders = $mgr->getFolders($obj->type);
		return array('success' => true, 'folders' => $folders);
	}
10200969   Roipoussiere   Remove whitespace...
1621

735c653b   Elena.Budnik   rank at observato...
1622
1623
1624
	public function shareObjects($obj)
	{
		$mgr = new SharedObjectsMgr();
10200969   Roipoussiere   Remove whitespace...
1625
		switch ($obj->type)
735c653b   Elena.Budnik   rank at observato...
1626
1627
1628
1629
1630
		{
			case 'timeTable' :
			case 'catalog' :
				$src_object_path = USERTTDIR.$obj->object->id.".xml";
				break;
10200969   Roipoussiere   Remove whitespace...
1631

735c653b   Elena.Budnik   rank at observato...
1632
1633
1634
			default:
				return array('success' => false, 'message' => 'Unknown object type');
		}
10200969   Roipoussiere   Remove whitespace...
1635

735c653b   Elena.Budnik   rank at observato...
1636
1637
1638
		$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...
1639

735c653b   Elena.Budnik   rank at observato...
1640
1641
1642
		$mgr->updateTree();
		return $result;
	}
10200969   Roipoussiere   Remove whitespace...
1643

735c653b   Elena.Budnik   rank at observato...
1644
1645
1646
1647
1648
1649
	public function isSharedObjectNameAlreadyUsed($obj)
	{
		$mgr = new SharedObjectsMgr();
		$alreadyUsed = $mgr->isNameAlreadyUsed($obj->type, $obj->name);
		return array('success' => true, 'alreadyUsed' => $alreadyUsed);
	}
10200969   Roipoussiere   Remove whitespace...
1650

0bda97f3   Benjamin Renard   Fix SAMP export f...
1651
1652
	public function getRequestByProcessId($obj)
	{
0bda97f3   Benjamin Renard   Fix SAMP export f...
1653
1654
		return $this->executeRequest($obj->processId, FunctionTypeEnumClass::PROCESSGETREQUEST);
	}
2fa56f95   Benjamin Renard   Predefined templa...
1655
1656
1657
1658
1659
1660
1661
1662
1663

	public function parseTemplatedParam($paramTemplateId)
	{
		$args = (Object)array(
			'paramId' => $paramTemplateId,
			'type' => 'param_parse_template'
		);
		return $this->executeRequest($args, FunctionTypeEnumClass::PARAMINFO);
	}
3d95b0a6   furkan   Adding the Delete...
1664
1665
1666
1667
1668
1669

	public function deleteColumn($id){
		$cacheMgr = new CatalogCacheMgr();

		return $cacheMgr->deleteColumn($id);
	}
42c4ccd3   Erdogan Furkan   #9660 - Done
1670

1fc076b5   Erdogan Furkan   #9660 - Adding de...
1671
	public function addColumn($id, $name, $type, $size, $description){
42c4ccd3   Erdogan Furkan   #9660 - Done
1672
		$cacheMgr = new CatalogCacheMgr();
1fc076b5   Erdogan Furkan   #9660 - Adding de...
1673
		return $cacheMgr->addColumn($id,$name, $type,$size,$description);
42c4ccd3   Erdogan Furkan   #9660 - Done
1674
1675
1676
1677
1678
1679
1680
	}

	public function getCatColumnInfo($id){
		$cacheMgr = new CatalogCacheMgr();
		return $cacheMgr->getCatColumnInfo($id);
	}

1fc076b5   Erdogan Furkan   #9660 - Adding de...
1681
	public function editColumn($id, $name, $type, $size,$description){
42c4ccd3   Erdogan Furkan   #9660 - Done
1682
		$cacheMgr = new CatalogCacheMgr();
1fc076b5   Erdogan Furkan   #9660 - Adding de...
1683
		return $cacheMgr->editColumn($id,$name, $type,$size,$description);
42c4ccd3   Erdogan Furkan   #9660 - Done
1684
	}
16035364   Benjamin Renard   First commit
1685
1686
}
?>