Blame view

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

	private $user, $amdaStat;

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

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

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

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

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

		return $childrenToReturn;

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

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

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

735c653b   Elena.Budnik   rank at observato...
63
		$nodeType = $obj->nodeType;
0fea5567   Benjamin Renard   First step for re...
64

735c653b   Elena.Budnik   rank at observato...
65
66
		$remoteBase = false;
		$isRemoteDataSet = false;
16035364   Benjamin Renard   First commit
67

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

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

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

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

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

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

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

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

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

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

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

					$specialNode = false;
					$isParameter = false;
					$isAddable =  false;
					$isSimulation = false;
735c653b   Elena.Budnik   rank at observato...
153
					$rank = null;
e57cb025   Benjamin Renard   Fix most of error...
154
					$skip = FALSE;
735c653b   Elena.Budnik   rank at observato...
155

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

						case 'condition':
638db58d   Benjamin Renard   RequestMgr constr...
173
							$objectMgr = new RequestMgr($nodeType);
10200969   Roipoussiere   Remove whitespace...
174
175
							$info = $objectMgr->getObject($id)->expression;
						break;
735c653b   Elena.Budnik   rank at observato...
176

10200969   Roipoussiere   Remove whitespace...
177
						case 'request':
638db58d   Benjamin Renard   RequestMgr constr...
178
						$objectMgr = new RequestMgr($nodeType);
10200969   Roipoussiere   Remove whitespace...
179
						$objplot = $objectMgr->getObject($id);
f31bea1c   Benjamin Renard   wip for save plot
180
181
182
183
184
185
						if (isset($objplot->name)) {
							$info = $objplot->name;
						}
						else {
							$info = $id;
						}
10200969   Roipoussiere   Remove whitespace...
186
						break;
8b6bb092   Elena.Budnik   icones if rank is...
187
						
735c653b   Elena.Budnik   rank at observato...
188
						case 'timeTable':
10200969   Roipoussiere   Remove whitespace...
189
						case 'catalog':
735c653b   Elena.Budnik   rank at observato...
190
191
							if ($isLeaf) $info = $child->getAttribute('intervals').' intervals';
						break;
10200969   Roipoussiere   Remove whitespace...
192

735c653b   Elena.Budnik   rank at observato...
193
194
						case 'sharedtimeTable':
						case 'sharedcatalog':
10200969   Roipoussiere   Remove whitespace...
195
							if ($isLeaf)
735c653b   Elena.Budnik   rank at observato...
196
197
198
199
							{
								$info = '<b>Nb intervals:</b> '.$child->getAttribute('nbIntervals').'<br/>';
								$info .= '<b>Shared by:</b> '.$child->getAttribute('sharedBy').' ('.$child->getAttribute('sharedDate').')<br/>';
								$info .= '<b>Description:</b> '.$child->getAttribute('description');
8b6bb092   Elena.Budnik   icones if rank is...
200
							} 
735c653b   Elena.Budnik   rank at observato...
201
202
203
						break;
						case 'derivedParam':
							$info = $child->getAttribute('buildchain');
0fea5567   Benjamin Renard   First step for re...
204

8ba47f72   Benjamin Renard   rest actualisatio...
205
206
207
208
209
210
211
							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...
212
213
214
215
216
217
218
219
220
221
222
							if ($isLeaf) $isParameter = true;
						break;

						case 'localParam':

							$globalStart = null;
							$globalStop = null;
							$timeRestriction = false;
							$specialNode = true;
							$isParameter = false;
							$needsArgs = false;
10200969   Roipoussiere   Remove whitespace...
223
							$isSpectra = false;
dc9e2c14   Elena.Budnik   init + message + ...
224
							$is2dSpectra = false;
735c653b   Elena.Budnik   rank at observato...
225
							$isStack = false;
e57cb025   Benjamin Renard   Fix most of error...
226
							$not_yet = false;
735c653b   Elena.Budnik   rank at observato...
227

10200969   Roipoussiere   Remove whitespace...
228
229
							if ($child->hasAttribute('desc'))
							{
735c653b   Elena.Budnik   rank at observato...
230
								$info = $child->getAttribute('desc');
10200969   Roipoussiere   Remove whitespace...
231

c57c57c9   Elena.Budnik   info message depe...
232
								if ($child->hasAttribute('dataStart') && $child->hasAttribute('dataStop')) {
67bd6ed6   Elena.Budnik   rm 8375
233
234
235
236
237
238
239
240
241
242
243
244
245
                                    $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"; 
                                        $child->setAttribute('dataStart', date("Y-m-d\TH:i:s\Z", strtotime(' -1 day')));
                                        $child->setAttribute('dataStop', date("Y-m-d\TH:i:s\Z", time()));                                        
                                    } else {
                                        $info .= "<br/>Time Range: ".$child->getAttribute('dataStart')."-".$child->getAttribute('dataStop');
                                    }
                                    
a7316784   Elena.Budnik   add LastUpdate to...
246
247
248
									if ($child->hasAttribute('lastUpdate')) {
										$info .= "<br/>Last Updated: : ".$child->getAttribute('lastUpdate');
									}
735c653b   Elena.Budnik   rank at observato...
249
								}
735c653b   Elena.Budnik   rank at observato...
250
							}
10200969   Roipoussiere   Remove whitespace...
251

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

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

cbbbdc34   Elena.Budnik   param description...
256
257
								if ($child->hasAttribute('description'))
									$info = $child->getAttribute('description')."<br/>".$units;
0fea5567   Benjamin Renard   First step for re...
258
								else
cbbbdc34   Elena.Budnik   param description...
259
260
									$info = $units;
							}
0fea5567   Benjamin Renard   First step for re...
261

f29c5e66   Elena.Budnik   plot only option
262
							if ($child->tagName == 'parameter') {
735c653b   Elena.Budnik   rank at observato...
263
								$isParameter = true;
67bd6ed6   Elena.Budnik   rm 8375
264
265
                                if ($child->hasAttribute('TemplatedParameter'))
                                    $needsArgs = true;
2fa56f95   Benjamin Renard   Predefined templa...
266
267
268

				if ($child->hasAttribute('PredefinedTemplatedParameter'))
					$predefinedArgs = true;
67bd6ed6   Elena.Budnik   rm 8375
269
                                    
c57c57c9   Elena.Budnik   info message depe...
270
								if ($child->parentNode->hasAttribute('dataStart')) {
735c653b   Elena.Budnik   rank at observato...
271
									$globalStart = $child->parentNode->getAttribute('dataStart');
10200969   Roipoussiere   Remove whitespace...
272
									$globalStop = $child->parentNode->getAttribute('dataStop');
735c653b   Elena.Budnik   rank at observato...
273
								}
0fea5567   Benjamin Renard   First step for re...
274

f29c5e66   Elena.Budnik   plot only option
275
276
277
278
								if ($child->parentNode->hasAttribute('restriction')) {
									if ($child->parentNode->getAttribute('restriction') == "plotOnly") {
										$not_yet = true;
									}
10200969   Roipoussiere   Remove whitespace...
279
								}
3afe4f59   Benjamin Renard   Add datasets time...
280
281
282
283

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

735c653b   Elena.Budnik   rank at observato...
286
287
288
289
							$component_info = array();
							if ($child->tagName == 'component')
							{
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
290

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

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

								if ($child->parentNode->parentNode->hasAttribute('timeRestriction')) {
									$timeRestriction = $child->parentNode->parentNode->getAttribute('timeRestriction');
								}
735c653b   Elena.Budnik   rank at observato...
305
306
307
308
309

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

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

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

f31bea1c   Benjamin Renard   wip for save plot
326

c57c57c9   Elena.Budnik   info message depe...
327
							if ($isParameter) {
735c653b   Elena.Budnik   rank at observato...
328
329
								$objectMgr = new AliasMgr();
								$alias = $objectMgr->getAlias($id);
c3b20775   Elena.Budnik   not show ID for p...
330
331
								
                                if (! ($child->parentNode->hasAttribute('group') || $child->parentNode->parentNode->hasAttribute('group'))) $info .= '</br><i>ID : '.$id.'</i>';
661293d7   Elena.Budnik   parse ## and @@ i...
332
								$childrenToReturn[] = array('text' => $name,'alias' => $alias,
735c653b   Elena.Budnik   rank at observato...
333
334
									'id' => $id,'nodeType' => $nodeType, 'info' => $info, "component_info" => $component_info,
									'globalStart' => $globalStart, 'globalStop' => $globalStop, 'timeRestriction' => $timeRestriction,
dc9e2c14   Elena.Budnik   init + message + ...
335
									'leaf' => $isLeaf, 'isParameter' => $isParameter,'isSpectra' => $isSpectra,
2fa56f95   Benjamin Renard   Predefined templa...
336
									'is2dSpectra' => $is2dSpectra,'isStack' => $isStack, 'needsArgs' => $needsArgs, 'predefinedArgs' => $predefinedArgs, 'help' => $help, 'notyet' => $not_yet);
735c653b   Elena.Budnik   rank at observato...
337
							}
c57c57c9   Elena.Budnik   info message depe...
338
							else {
8b6bb092   Elena.Budnik   icones if rank is...
339
								if ($child->hasAttribute('rank')) {
735c653b   Elena.Budnik   rank at observato...
340
341
									$rank = $child->getAttribute('rank');
								}
0fea5567   Benjamin Renard   First step for re...
342

3afe4f59   Benjamin Renard   Add datasets time...
343
344
345
346
								if ($child->hasAttribute("timeRestriction")) {
									$timeRestriction = $child->getAttribute("timeRestriction");
								}
								$disable = TRUE;
acf87705   Elena.Budnik   bug in disable param
347

3afe4f59   Benjamin Renard   Add datasets time...
348
								if ($child->hasAttribute('group')) {
c3976709   Elena.Budnik   rm 7589 + clean u...
349
350
									if ($child->getAttribute("group") === "TBD") {
											$info .=  "<br/><b>Under Testing</b>";
3afe4f59   Benjamin Renard   Add datasets time...
351
									}
1c2f5368   Elena.Budnik   message for TimeR...
352
									else {	
3afe4f59   Benjamin Renard   Add datasets time...
353
354
										if (!empty($timeRestriction)) {
											$disable = FALSE;
1c2f5368   Elena.Budnik   message for TimeR...
355
356
357
358
359
											$formattedTimeRestriction = date("Y-m-d\TH:i:s\Z",strtotime($timeRestriction)+1);
											$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...
360
										}
735c653b   Elena.Budnik   rank at observato...
361
									}
0fea5567   Benjamin Renard   First step for re...
362
								}
acf87705   Elena.Budnik   bug in disable param
363
								else {
3afe4f59   Benjamin Renard   Add datasets time...
364
									$disable = FALSE;
acf87705   Elena.Budnik   bug in disable param
365
366
									if ($child->hasAttribute('restriction') && $child->getAttribute('restriction') == 'plotOnly')
										$info .=  "<br/><b>Plot Only!!!</b>";
735c653b   Elena.Budnik   rank at observato...
367
368
								}

10200969   Roipoussiere   Remove whitespace...
369
								$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'info' => $info,
3afe4f59   Benjamin Renard   Add datasets time...
370
									'leaf' => false, 'help' => $help, 'disable' => $disable, 'rank' => $rank, 'timeRestriction' => $timeRestriction);
735c653b   Elena.Budnik   rank at observato...
371
372
373
374
							}
						break;

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

bf74fc2d   Elena.Budnik   IMPEX
376
							$globalStart = null;
6657f68b   Elena.Budnik   monitor impex ser...
377
							$service_down = false;
735c653b   Elena.Budnik   rank at observato...
378
							$isSimulation = true;
10200969   Roipoussiere   Remove whitespace...
379
380

			            if ($child->getAttribute('isAddable')) // 'spase://IMPEX/SimulationModel/FMI/GUMICS'
735c653b   Elena.Budnik   rank at observato...
381
382
383
384
							{
								$isLeaf = false;
								$isAddable = true;
							}
10200969   Roipoussiere   Remove whitespace...
385
386

							if ($child->tagName == 'dataCenter')
735c653b   Elena.Budnik   rank at observato...
387
							{
10200969   Roipoussiere   Remove whitespace...
388
								if ($child->getAttribute('isSimulation'))
6657f68b   Elena.Budnik   monitor impex ser...
389
								{
10200969   Roipoussiere   Remove whitespace...
390
391
									$service_down = !($child->getAttribute('available'));
									break;
6657f68b   Elena.Budnik   monitor impex ser...
392
								}
10200969   Roipoussiere   Remove whitespace...
393
								else
735c653b   Elena.Budnik   rank at observato...
394
395
396
397
398
								{
									$skip = true;
									break;
								}
							}
10200969   Roipoussiere   Remove whitespace...
399
400

							if ($child->hasAttribute('rank'))
735c653b   Elena.Budnik   rank at observato...
401
402
403
							{
								$rank = $child->getAttribute('rank');
							}
10200969   Roipoussiere   Remove whitespace...
404

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

bf74fc2d   Elena.Budnik   IMPEX
414
415
							if ( $child->tagName == 'component')
							{
abb54096   Elena.Budnik   time interval by ...
416
								if ($child->parentNode->parentNode->hasAttribute('globalStart'))
bf74fc2d   Elena.Budnik   IMPEX
417
									{
abb54096   Elena.Budnik   time interval by ...
418
419
										$globalStart = $child->parentNode->parentNode->getAttribute('globalStart');
										$globalStop = $child->parentNode->parentNode->getAttribute('globalStop');
bf74fc2d   Elena.Budnik   IMPEX
420
421
									}
							}
10200969   Roipoussiere   Remove whitespace...
422

735c653b   Elena.Budnik   rank at observato...
423
						case 'remoteParam' :
10200969   Roipoussiere   Remove whitespace...
424
425

							if ($child->getAttribute('isSimulation') && $child->tagName == 'dataCenter')
735c653b   Elena.Budnik   rank at observato...
426
427
428
429
430
431
432
							{
								$skip = true;
								break;
							}

							$isDeletable = $child->hasAttribute('isDeletable');
							$specialNode = true;
10200969   Roipoussiere   Remove whitespace...
433
434
435
436
437
							$isParameter = false;

							$isSpectra = false;

							switch ($id)
735c653b   Elena.Budnik   rank at observato...
438
							{
10200969   Roipoussiere   Remove whitespace...
439
								case 'CDAWEB'  :
735c653b   Elena.Budnik   rank at observato...
440
441
442
								case 'THEMIS' :
									$rank = 5;
									break;
735c653b   Elena.Budnik   rank at observato...
443
444
								default:
							}
10200969   Roipoussiere   Remove whitespace...
445

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

10200969   Roipoussiere   Remove whitespace...
448
449
							if ($info && !$isSimulation)
							{
735c653b   Elena.Budnik   rank at observato...
450
								$info = str_replace(';', "<br/>Time Range: ", $info);
10200969   Roipoussiere   Remove whitespace...
451
452
453
							}

							if (($child->tagName == 'parameter') || ($child->tagName == 'component'))
735c653b   Elena.Budnik   rank at observato...
454
455
							{
								$isParameter = true;
735c653b   Elena.Budnik   rank at observato...
456
							}
10200969   Roipoussiere   Remove whitespace...
457

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

10200969   Roipoussiere   Remove whitespace...
460
							if ($remoteBase)
735c653b   Elena.Budnik   rank at observato...
461
							{
10200969   Roipoussiere   Remove whitespace...
462
								if ($child->tagName == 'dataset') $isRemoteDataSet = true;
735c653b   Elena.Budnik   rank at observato...
463
							}
0fea5567   Benjamin Renard   First step for re...
464

a0f13ed1   Elena.Budnik   small format + ti...
465
466
467
468
469
470
							if ($child->tagName == 'parameter'){
								if ($child->parentNode->hasAttribute('dataStart')){
									$globalStart = date('Y-m-d\TH:i:s\Z', strtotime($child->parentNode->getAttribute('dataStart')));
									$globalStop = date('Y-m-d\TH:i:s\Z',  strtotime($child->parentNode->getAttribute('dataStop')));
								}
							}
735c653b   Elena.Budnik   rank at observato...
471

a0f13ed1   Elena.Budnik   small format + ti...
472
473
474
475
476
477
							if ( $child->tagName == 'component'){
								if ($child->parentNode->parentNode->hasAttribute('dataStart')){
									$globalStart = date('Y-m-d\TH:i:s\Z', strtotime($child->parentNode->getAttribute('dataStart')));
									$globalStop = date('Y-m-d\TH:i:s\Z',  strtotime($child->parentNode->getAttribute('dataStop')));
								}
							}
0fea5567   Benjamin Renard   First step for re...
478

10200969   Roipoussiere   Remove whitespace...
479
							if ($isParameter)
735c653b   Elena.Budnik   rank at observato...
480
							{
10200969   Roipoussiere   Remove whitespace...
481
								$disable = $child->parentNode->getAttribute('disabled');
735c653b   Elena.Budnik   rank at observato...
482
483
484
485
486
								$objectMgr = new AliasMgr();
								$alias = $objectMgr->getAlias($id);

								if ($child->hasAttribute('display_type') && $child->getAttribute('display_type') == 'spectrogram')
								{
10200969   Roipoussiere   Remove whitespace...
487
									$needsArgs = true;
735c653b   Elena.Budnik   rank at observato...
488
									$isSpectra = true;
10200969   Roipoussiere   Remove whitespace...
489
								}
bf74fc2d   Elena.Budnik   IMPEX
490
								if ($globalStart)
10200969   Roipoussiere   Remove whitespace...
491
								 $childrenToReturn[] = array('text' => $name,'alias' => $alias,
bf74fc2d   Elena.Budnik   IMPEX
492
										'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,  'globalStart' => $globalStart,
10200969   Roipoussiere   Remove whitespace...
493
										'globalStop' => $globalStop, 'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter,
1c007ca2   Elena.Budnik   vector icon for M...
494
										'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs, "component_info" => isset($component_info) ? $component_info : NULL);
bf74fc2d   Elena.Budnik   IMPEX
495
								else
10200969   Roipoussiere   Remove whitespace...
496
									$childrenToReturn[] = array('text' => $name,'alias' => $alias,
bf74fc2d   Elena.Budnik   IMPEX
497
										'id' => $id,'nodeType' => $nodeType,  'info' => $info, 'help' => $help,
10200969   Roipoussiere   Remove whitespace...
498
										'leaf' => $isLeaf, 'disable' => $disable, 'isParameter' => $isParameter,
1c007ca2   Elena.Budnik   vector icon for M...
499
										'isSpectra' => $isSpectra, 'needsArgs' => $needsArgs, "component_info" => $component_info);
735c653b   Elena.Budnik   rank at observato...
500
							}
10200969   Roipoussiere   Remove whitespace...
501
502
							else
							{
e57cb025   Benjamin Renard   Fix most of error...
503
								$restricted = FALSE;
0fea5567   Benjamin Renard   First step for re...
504

735c653b   Elena.Budnik   rank at observato...
505
								if ($child->tagName == 'dataset')
6657f68b   Elena.Budnik   monitor impex ser...
506
								{
735c653b   Elena.Budnik   rank at observato...
507
									$nonavailable = ($child->getAttribute('disabled'));
6657f68b   Elena.Budnik   monitor impex ser...
508
								}
735c653b   Elena.Budnik   rank at observato...
509
								else
6657f68b   Elena.Budnik   monitor impex ser...
510
								{
735c653b   Elena.Budnik   rank at observato...
511
									$nonavailable = false;
6657f68b   Elena.Budnik   monitor impex ser...
512
								}
10200969   Roipoussiere   Remove whitespace...
513

735c653b   Elena.Budnik   rank at observato...
514
515
516
517
518
519
								if ($nonavailable)
									$info .= "<br/><b>Not available yet</b>";

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

10200969   Roipoussiere   Remove whitespace...
520
								if ($child->hasAttribute('obsolete'))
735c653b   Elena.Budnik   rank at observato...
521
522
523
524
525
526
527
528
								{
									$info = $child->getAttribute('desc');
									$obsolete = true;
								}
								else
									$obsolete = false;

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

735c653b   Elena.Budnik   rank at observato...
530
								$childrenToReturn[] = array('text' => $name, 'id' => $id,'nodeType' => $nodeType,  'isAddable' => $isAddable,
10200969   Roipoussiere   Remove whitespace...
531
532
533
								'info' => $info, 'leaf' => false, 'isRemoteDataSet' => $isRemoteDataSet, 'disable' => $disable,
								'isSimulation' => $isSimulation, 'rank' => $rank, 'isDeletable' => $isDeletable, 'help' => $help);
							}
735c653b   Elena.Budnik   rank at observato...
534
						break;
10200969   Roipoussiere   Remove whitespace...
535
536
537

						case 'myData' :
							$info = $child->hasAttribute('info') ? $child->getAttribute('info') : $child->nodeValue;
735c653b   Elena.Budnik   rank at observato...
538
539
540
541
542
543
544
545
						break;

						case 'myDataParam' :

							$globalStart = null;
							$globalStop = null;
							$specialNode = true;
							$size = $child->getAttribute('size');
735c653b   Elena.Budnik   rank at observato...
546
							$mask = $child->getAttribute('mask');
19dcd963   Elena.Budnik   redmine #4903 : s...
547
							$sampling = null;
0fea5567   Benjamin Renard   First step for re...
548
							if ($child->hasAttribute('minsampling'))
19dcd963   Elena.Budnik   redmine #4903 : s...
549
								$sampling = $child->getAttribute('minsampling');
735c653b   Elena.Budnik   rank at observato...
550
							$isSpectra = false;
10200969   Roipoussiere   Remove whitespace...
551
552

							if ($isLeaf)
735c653b   Elena.Budnik   rank at observato...
553
554
555
							{
									$isParameter = true;
									$info = "Size: ".$size."<br/>".$child->getAttribute('desc')."<br/> Mask: ".$mask;
19dcd963   Elena.Budnik   redmine #4903 : s...
556
557
									if ($sampling)
										$info .= "<br/> Sampling : ".$sampling;
735c653b   Elena.Budnik   rank at observato...
558
559
560
									$isSpectra = $child->getAttribute('plottype') === 'Spectra';
							}

10200969   Roipoussiere   Remove whitespace...
561
							if ($child->hasAttribute('desc'))
735c653b   Elena.Budnik   rank at observato...
562
563
564
565
566
							{
									$globalStart = substr($child->getAttribute('desc'), 0, 19);
									$globalStop =  substr($child->getAttribute('desc'), 20);
							}

10200969   Roipoussiere   Remove whitespace...
567
							$childrenToReturn[] = array('text' => $name, 'size' =>  $size, 'id' => $id,
735c653b   Elena.Budnik   rank at observato...
568
								'globalStart' => $globalStart, 'globalStop' => $globalStop,
1c007ca2   Elena.Budnik   vector icon for M...
569
								'nodeType' => $nodeType, 'info' => $info,  'leaf' => $isLeaf,
735c653b   Elena.Budnik   rank at observato...
570
571
572
								'isParameter' => $isParameter, 'linkedMask' => $mask, 'isSpectra' => $isSpectra);

						break;
10200969   Roipoussiere   Remove whitespace...
573
						default:
735c653b   Elena.Budnik   rank at observato...
574
					}
10200969   Roipoussiere   Remove whitespace...
575
576

					if (!$specialNode && !$skip)
735c653b   Elena.Budnik   rank at observato...
577
					{
10200969   Roipoussiere   Remove whitespace...
578
						if ($child->hasAttribute('desc'))
735c653b   Elena.Budnik   rank at observato...
579
							$info = $child->getAttribute('desc');
10200969   Roipoussiere   Remove whitespace...
580
581

						if ($isSimulation && $service_down)
6657f68b   Elena.Budnik   monitor impex ser...
582
583
584
						{
							$info = "<b>Service is currently down</b>";
						}
10200969   Roipoussiere   Remove whitespace...
585
586

						$childrenToReturn[] = array('text' => $name, 'id' => $id, 'nodeType' => $nodeType, 'info' => $info,
2048f5bc   Benjamin Renard   Fix save & edit plot
587
													'help' => $help, 'leaf' => $isLeaf, 'isParameter' => $isParameter, 'dim_1' => $dim_1, 'dim_2' => $dim_2,
0fea5567   Benjamin Renard   First step for re...
588
													'component_info' => isset($component_info) ? $component_info : NULL,
cbbbdc34   Elena.Budnik   param description...
589
													'iconCls' => isset($iconCls) ? $iconCls : NULL );
735c653b   Elena.Budnik   rank at observato...
590
591
592
					}
				}
				// if $childrenToReturn we have to return []
e57cb025   Benjamin Renard   Fix most of error...
593
				if (empty($childrenToReturn))
10200969   Roipoussiere   Remove whitespace...
594
				{
735c653b   Elena.Budnik   rank at observato...
595
596
597
					$childrenToReturn = array('nodeType' => $nodeType, 'text' => null);
				}
			}
16035364   Benjamin Renard   First commit
598
      return  $childrenToReturn;
735c653b   Elena.Budnik   rank at observato...
599
	}
16035364   Benjamin Renard   First commit
600

0dc31ba8   Elena.Budnik   remoteParamManage...
601
602
603
	/*
	*  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...
604
	*  create Remote Parameter Description
0dc31ba8   Elena.Budnik   remoteParamManage...
605
	*/
10200969   Roipoussiere   Remove whitespace...
606
	public  function saveTree($obj)
735c653b   Elena.Budnik   rank at observato...
607
	{
0dc31ba8   Elena.Budnik   remoteParamManage...
608
		$paramMgr = new RemoteParamManager();
2b8ea2a7   Elena.Budnik   RemoteParamManage...
609
		$res = $paramMgr->init();
0fea5567   Benjamin Renard   First step for re...
610

2b8ea2a7   Elena.Budnik   RemoteParamManage...
611
612
		if ($res['success'])
			return $paramMgr->saveTree($obj);
0fea5567   Benjamin Renard   First step for re...
613
		else
2b8ea2a7   Elena.Budnik   RemoteParamManage...
614
			return $res;
735c653b   Elena.Budnik   rank at observato...
615
	}
0fea5567   Benjamin Renard   First step for re...
616

0dc31ba8   Elena.Budnik   remoteParamManage...
617
618
619
	/*
	*  delete Remote Parameter from user RemoteParams.xml
	*/
10200969   Roipoussiere   Remove whitespace...
620
621
	public  function deleteFromTree($obj)
	{
0dc31ba8   Elena.Budnik   remoteParamManage...
622
		$paramMgr = new RemoteParamManager();
2b8ea2a7   Elena.Budnik   RemoteParamManage...
623
		$res = $paramMgr->init();
0fea5567   Benjamin Renard   First step for re...
624

2b8ea2a7   Elena.Budnik   RemoteParamManage...
625
626
		if ($res['success'])
			return $paramMgr->deleteFromTree($obj);
0fea5567   Benjamin Renard   First step for re...
627
		else
2b8ea2a7   Elena.Budnik   RemoteParamManage...
628
			return $res;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
629
	}
0fea5567   Benjamin Renard   First step for re...
630

0dc31ba8   Elena.Budnik   remoteParamManage...
631
632
633
634
	public  function doNothing($obj)
	{
		return array("res" => 'ok');
	}
16035364   Benjamin Renard   First commit
635

0dc31ba8   Elena.Budnik   remoteParamManage...
636
637
638
	/*
	*  get temporary object from Upload
	*/
9a63b7f6   Elena.Budnik   needsArgs to Simu...
639
	public  function getUploadedObject($name, $format, $nodeType)
10200969   Roipoussiere   Remove whitespace...
640
	{
5f8bd1f5   Nathanaël Jourdane   Fix Windows-files...
641
642
643
		$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...
644
		$isTTCat = FALSE;
10200969   Roipoussiere   Remove whitespace...
645
		switch ($nodeType)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
646
		{
10200969   Roipoussiere   Remove whitespace...
647
648
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
42e2e019   Benjamin Renard   Next step for cac...
649
				$isTTCat = TRUE;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
650
				break;
10200969   Roipoussiere   Remove whitespace...
651
652
653
654
655
			case 'myDataParam' :
				$objectMgr = new FilesMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
42e2e019   Benjamin Renard   Next step for cac...
656
				$isTTCat = TRUE;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
657
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
658
659
660
			default:
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
42e2e019   Benjamin Renard   Next step for cac...
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
		if ($isTTCat) {
			//Pre-process: convert to INTERNAL format if needed
			if (($format == 'ASCII') || ($format == 'VOT')) {
				$result = $this->executeRequest((Object) array(
					'compression' => 'none',
					'fileformat' => 'internal',
					'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
689
		return  $objectMgr->getUploadedObject($name, $format, true);
10200969   Roipoussiere   Remove whitespace...
690
	}
16035364   Benjamin Renard   First commit
691

0dc31ba8   Elena.Budnik   remoteParamManage...
692
693
694
	/*
	*  fill ascii file into grid
	*/
10200969   Roipoussiere   Remove whitespace...
695
696
697
	public  function getAsciiFile($obj)
	{
		$objectMgr = new FilesMgr();
bf74fc2d   Elena.Budnik   IMPEX
698
		return  $objectMgr->getAsciiFile($obj->fileName);
735c653b   Elena.Budnik   rank at observato...
699
	}
10200969   Roipoussiere   Remove whitespace...
700
701
702
703

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

0dc31ba8   Elena.Budnik   remoteParamManage...
707
708
709
	/*
	*  get temporary object from Search
	*/
10200969   Roipoussiere   Remove whitespace...
710
711
712
	public  function getTmpObject($folderId, $name, $nodeType)
	{
		switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
713
		{
10200969   Roipoussiere   Remove whitespace...
714
715
716
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
			break;
735c653b   Elena.Budnik   rank at observato...
717
			case 'catalog' :
10200969   Roipoussiere   Remove whitespace...
718
719
				$objectMgr = new CatalogMgr();
			break;
735c653b   Elena.Budnik   rank at observato...
720
721
722
			default:
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
723
		return  $objectMgr->getTmpObject($folderId, $name, true);
fdf1413b   Elena.Budnik   TT download
724
	}
735c653b   Elena.Budnik   rank at observato...
725

10200969   Roipoussiere   Remove whitespace...
726
727
728
729

	public  function getObject($id, $nodeType)
	{
		switch ($nodeType)
735c653b   Elena.Budnik   rank at observato...
730
731
		{
			case 'myDataParam':
10200969   Roipoussiere   Remove whitespace...
732
733
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($nodeType);
735c653b   Elena.Budnik   rank at observato...
734
				break;
10200969   Roipoussiere   Remove whitespace...
735
			case 'timeTable' :
735c653b   Elena.Budnik   rank at observato...
736
			case 'sharedtimeTable' :
10200969   Roipoussiere   Remove whitespace...
737
738
				$objectMgr = new TimeTableMgr();
				break;
735c653b   Elena.Budnik   rank at observato...
739
740
			case 'catalog' :
			case 'sharedcatalog' :
10200969   Roipoussiere   Remove whitespace...
741
742
743
				$objectMgr = new CatalogMgr();
				break;
			case 'condition' :
735c653b   Elena.Budnik   rank at observato...
744
			case 'request' :
10200969   Roipoussiere   Remove whitespace...
745
746
				$objectMgr = new RequestMgr($nodeType);
				break;
0fea5567   Benjamin Renard   First step for re...
747
			case 'bkgWorks' :
735c653b   Elena.Budnik   rank at observato...
748
749
750
				return $this->executeRequest($id, FunctionTypeEnumClass::PROCESSGETINFO);
				break;
			case 'myData' :
10200969   Roipoussiere   Remove whitespace...
751
				$objectMgr = new FilesMgr();
735c653b   Elena.Budnik   rank at observato...
752
				break;
10200969   Roipoussiere   Remove whitespace...
753
			default:
735c653b   Elena.Budnik   rank at observato...
754
755
				return array("error" => $nodeType." NOT_IMPLEMENTED_YET");
		}
bf74fc2d   Elena.Budnik   IMPEX
756
		return  $objectMgr->getObject($id, $nodeType);
fdf1413b   Elena.Budnik   TT download
757
	}
10200969   Roipoussiere   Remove whitespace...
758

16035364   Benjamin Renard   First commit
759
760
761
/*
*   $obj = { id: node.id, leaf: node.leaf, nodeType: node.nodeType }
*/
10200969   Roipoussiere   Remove whitespace...
762
763
764
765
766
767
768
	public  function deleteObject($obj)
	{
		switch ($obj->nodeType)
		{
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
735c653b   Elena.Budnik   rank at observato...
769
				break;
10200969   Roipoussiere   Remove whitespace...
770
771
772
773
774
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
735c653b   Elena.Budnik   rank at observato...
775
				break;
10200969   Roipoussiere   Remove whitespace...
776
			case 'condition' :
735c653b   Elena.Budnik   rank at observato...
777
			case 'request' :
10200969   Roipoussiere   Remove whitespace...
778
				$objectMgr = new RequestMgr($obj->nodeType);
735c653b   Elena.Budnik   rank at observato...
779
780
781
782
				break;
			case 'alias' :
				$objectMgr = new AliasMgr();
				$obj->id = substr($obj->id,strlen('alias_'));
10200969   Roipoussiere   Remove whitespace...
783
				break;
735c653b   Elena.Budnik   rank at observato...
784
			case 'bkgWorks' :
735c653b   Elena.Budnik   rank at observato...
785
786
787
				return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSDELETE);

			case 'myData' :
16035364   Benjamin Renard   First commit
788
				$objectMgr = new FilesMgr();
735c653b   Elena.Budnik   rank at observato...
789
790
791
792
793
794
				break;
			default:
					return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> deleteObject($obj);
	}
16035364   Benjamin Renard   First commit
795
796
797
798

/*
*   $obj = { id: node.id, old_name: node.text, name: value,  parent : node.parentNode.id, leaf: node.leaf, nodeType: node.nodeType }
*/
10200969   Roipoussiere   Remove whitespace...
799
800
801
	public  function renameObject($obj)
	{
		switch ($obj->nodeType)
735c653b   Elena.Budnik   rank at observato...
802
		{
10200969   Roipoussiere   Remove whitespace...
803

16035364   Benjamin Renard   First commit
804
		  case 'myDataParam' :
10200969   Roipoussiere   Remove whitespace...
805
806
807
808
809
		  case 'derivedParam' :
			   $objectMgr = new DerivedParamMgr($obj->nodeType);
			   break;
		  case 'timeTable' :
			   $objectMgr = new TimeTableMgr();
16035364   Benjamin Renard   First commit
810
			   break;
10200969   Roipoussiere   Remove whitespace...
811
812
		  case 'catalog' :
			   $objectMgr = new CatalogMgr();
d18b535d   elena   catalog draft + c...
813
			   break;
10200969   Roipoussiere   Remove whitespace...
814
815
		  case 'condition' :
		  case 'request' :
10200969   Roipoussiere   Remove whitespace...
816
			   $objectMgr = new RequestMgr($obj->nodeType);
16035364   Benjamin Renard   First commit
817
818
			   break;
		  case 'alias' :
10200969   Roipoussiere   Remove whitespace...
819
820
		  	   $objectMgr = new AliasMgr();
		  	   break;
16035364   Benjamin Renard   First commit
821
822
		  default:
			    return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
735c653b   Elena.Budnik   rank at observato...
823
		}
16035364   Benjamin Renard   First commit
824

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

10200969   Roipoussiere   Remove whitespace...
828
/*
16035364   Benjamin Renard   First commit
829
830
*   $obj = { name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
*/
10200969   Roipoussiere   Remove whitespace...
831
832
833
	public  function createObject($obj, $folder)
	{
		switch ($obj->nodeType)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
834
		{
10200969   Roipoussiere   Remove whitespace...
835
			case 'myDataParam' :
9a63b7f6   Elena.Budnik   needsArgs to Simu...
836
			case 'derivedParam' :
10200969   Roipoussiere   Remove whitespace...
837
				if ($obj->nodeType == 'derivedParam' &&  $this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
838
						$this->amdaStat->addTask($this->user, 'create', null);
10200969   Roipoussiere   Remove whitespace...
839
				$objectMgr = new DerivedParamMgr($obj->nodeType);
8ba47f72   Benjamin Renard   rest actualisatio...
840
                 	break;
10200969   Roipoussiere   Remove whitespace...
841
842
843
844
845
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
				break;
			case 'catalog' :
				$objectMgr = new CatalogMgr();
16035364   Benjamin Renard   First commit
846
			   break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
847
			case 'condition' :
10200969   Roipoussiere   Remove whitespace...
848
849
850
			case 'request' :
				$objectMgr = new RequestMgr($obj->nodeType);
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
851
			case 'alias' :
10200969   Roipoussiere   Remove whitespace...
852
853
				$objectMgr = new AliasMgr();
				break;
9a63b7f6   Elena.Budnik   needsArgs to Simu...
854
855
856
857
858
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> createObject($obj, $folder);
	}
16035364   Benjamin Renard   First commit
859

10200969   Roipoussiere   Remove whitespace...
860
/*
16035364   Benjamin Renard   First commit
861
862
*   $obj = { id:obj.id, name: obj.name, obj.nodeType, obj.leaf (??), OBJ DEPENDENT ATTRIBUTES }
*/
10200969   Roipoussiere   Remove whitespace...
863
	public  function modifyObject($obj)
9a63b7f6   Elena.Budnik   needsArgs to Simu...
864
	{
10200969   Roipoussiere   Remove whitespace...
865
866
867
868
869
		switch ($obj->nodeType)
		{
			case 'myDataParam' :
			case 'derivedParam' :
				$objectMgr = new DerivedParamMgr($obj->nodeType);
9a63b7f6   Elena.Budnik   needsArgs to Simu...
870
				break;
10200969   Roipoussiere   Remove whitespace...
871
872
			case 'timeTable' :
				$objectMgr = new TimeTableMgr();
9a63b7f6   Elena.Budnik   needsArgs to Simu...
873
				break;
10200969   Roipoussiere   Remove whitespace...
874
875
876
877
			case 'catalog' :
				$objectMgr = new CatalogMgr();
				break;
			case 'condition' :
9a63b7f6   Elena.Budnik   needsArgs to Simu...
878
			case 'request' :
10200969   Roipoussiere   Remove whitespace...
879
				$objectMgr = new RequestMgr($obj->nodeType);
9a63b7f6   Elena.Budnik   needsArgs to Simu...
880
881
882
883
884
				break;
			default:
				return array("error" => $obj->nodeType." NOT_IMPLEMENTED_YET");
		}
		return  $objectMgr -> modifyObject($obj);
10200969   Roipoussiere   Remove whitespace...
885
	}
16035364   Benjamin Renard   First commit
886
887
888
889
890
891
892
893
894
895
/*
 * {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...
896
			case 'sharedtimeTable' :
16035364   Benjamin Renard   First commit
897
898
				$objectMgr = new TimeTableMgr();
				break;
d18b535d   elena   catalog draft + c...
899
			case 'catalog' :
169f14d2   Benjamin Renard   Add shared object...
900
			case 'sharedcatalog' :
d18b535d   elena   catalog draft + c...
901
902
				$objectMgr = new CatalogMgr();
				break;
16035364   Benjamin Renard   First commit
903
904
			case 'condition' :
			case 'request' :
16035364   Benjamin Renard   First commit
905
906
907
908
909
910
911
912
913
914
				$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...
915
*   Get running jobs
16035364   Benjamin Renard   First commit
916
*/
bae6f5da   Nathanael Jourdane   bugFix fileName f...
917
	public function getJobs($obj = null)
6acb8d2a   Elena.Budnik   checkRequest in R...
918
	{
812bc03d   Nathanael Jourdane   update job info o...
919
		$obj = (object) array();
10200969   Roipoussiere   Remove whitespace...
920
		return $this->executeRequest($obj, FunctionTypeEnumClass::PROCESSRUNNINGINFO);
6acb8d2a   Elena.Budnik   checkRequest in R...
921
	}
16035364   Benjamin Renard   First commit
922
923
924
925
926
927
928


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

16035364   Benjamin Renard   First commit
934
		if (isset($obj->username) && isset($obj->password) && isset($obj->sessionID))
735c653b   Elena.Budnik   rank at observato...
935
		{
e5ab198f   Nathanael Jourdane   simple getStatus
936
			$dd = new WSUserMgr();
039d19ac   Benjamin Renard   Fix getParameter ...
937
			$dd->initWS($obj->username,$obj->password,$obj->sessionID, false, false);
735c653b   Elena.Budnik   rank at observato...
938
		}
a21497cc   Elena.Budnik   redmine #5645
939
		else {
16035364   Benjamin Renard   First commit
940
			$dd = new UserMgr();
a21497cc   Elena.Budnik   redmine #5645
941
942
			$dd->setSpecialSettings();
		}
10200969   Roipoussiere   Remove whitespace...
943
944

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

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

98c5bd44   Benjamin Renard   Introduce anonymo...
952
		if ($dd->user == WSConfigClass::getAnonymousUserName())
16035364   Benjamin Renard   First commit
953
954
955
		{
			//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
956
//			return array('success' => false, "message" => "AKKA-KERNEL-INT - WS support for IMPEx not implemented");
6acb8d2a   Elena.Budnik   checkRequest in R...
957
		}
32bb889b   Elena.Budnik   #5532 to process ...
958
		else {
0fea5567   Benjamin Renard   First step for re...
959
			// check disk space
2c7f2cb6   Benjamin Renard   Remove old log fi...
960
961
962
963
964
965
			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...
966
		}
10200969   Roipoussiere   Remove whitespace...
967

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

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

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

32bb889b   Elena.Budnik   #5532 to process ...
976
977
978
		// 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...
979
980
				$function == FunctionTypeEnumClass::PARAMSGEN ||
				$function == FunctionTypeEnumClass::PARAMSINFOGEN )
32bb889b   Elena.Budnik   #5532 to process ...
981
		{
7ac3e07e   Elena.Budnik   do not check user...
982
983
984
			$res = $this->checkUser($obj);
			if (!$res['success']) return $res;
		}
8ba47f72   Benjamin Renard   rest actualisatio...
985

16035364   Benjamin Renard   First commit
986
		$requestManager = new RequestManagerClass();
32bb889b   Elena.Budnik   #5532 to process ...
987
		try {
e57cb025   Benjamin Renard   Fix most of error...
988
			$res = $requestManager->runIHMRequest($this->user, !empty($res['userHost']) ? $res['userHost'] : NULL, $function, $obj);
32bb889b   Elena.Budnik   #5532 to process ...
989
		} catch (Exception $e) {
16035364   Benjamin Renard   First commit
990
			return array('success' => false, 'message' => 'Exception detected : '.$e->getMessage());
10200969   Roipoussiere   Remove whitespace...
991
		}
16035364   Benjamin Renard   First commit
992
993
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
994
995
996

/*
*    Main EXECUTE PROCEDURE
16035364   Benjamin Renard   First commit
997
*/
735c653b   Elena.Budnik   rank at observato...
998
999
	public  function execute($node, $obj)
	{
fdf1413b   Elena.Budnik   TT download
1000
1001
1002
1003
		// 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
1004
			return $this->executeRequest($obj, FunctionTypeEnumClass::ACTION);
10200969   Roipoussiere   Remove whitespace...
1005
1006
		else
		{
6acb8d2a   Elena.Budnik   checkRequest in R...
1007
1008
			$res = RequestMgr::checkRequest($obj);
			if (!$res['success']) return $res;
10200969   Roipoussiere   Remove whitespace...
1009

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

16035364   Benjamin Renard   First commit
1014
/*
a0b3d64e   Benjamin Renard   Derived parameter...
1015
1016
 * Generate derived parameter compilation
 */
735c653b   Elena.Budnik   rank at observato...
1017
1018
	public function compilParam($obj)
	{
735c653b   Elena.Budnik   rank at observato...
1019
1020
		return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMSGEN);
	}
a0b3d64e   Benjamin Renard   Derived parameter...
1021

8ba47f72   Benjamin Renard   rest actualisatio...
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033

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




a0b3d64e   Benjamin Renard   Derived parameter...
1034
1035
1036
/*
 * Delete derived parameter compilation
 */
735c653b   Elena.Budnik   rank at observato...
1037
1038
	public function compilParamDelete($obj)
	{
a0b3d64e   Benjamin Renard   Derived parameter...
1039
		$res = $this->checkUser($obj);
10200969   Roipoussiere   Remove whitespace...
1040

a0b3d64e   Benjamin Renard   Derived parameter...
1041
1042
		if (!$res['success'])
			return $res;
10200969   Roipoussiere   Remove whitespace...
1043

a0b3d64e   Benjamin Renard   Derived parameter...
1044
1045
1046
1047
		IHMConfigClass::setUserName($this->user);
		$libParamPath = IHMConfigClass::getCompilationPath()."lib/".$obj->paramId.".so";
		if (file_exists($libParamPath))
			unlink($libParamPath);
735c653b   Elena.Budnik   rank at observato...
1048
1049
		return array("success" => true);
	}
10200969   Roipoussiere   Remove whitespace...
1050

a0b3d64e   Benjamin Renard   Derived parameter...
1051
/*
e6e5b259   Benjamin Renard   Add kill plot req...
1052
 * kill plot process
16035364   Benjamin Renard   First commit
1053
 */
10200969   Roipoussiere   Remove whitespace...
1054

735c653b   Elena.Budnik   rank at observato...
1055
	public function killPlotRequest()
10200969   Roipoussiere   Remove whitespace...
1056
	{
735c653b   Elena.Budnik   rank at observato...
1057
1058
		return $this->executeRequest((object) array('nodeType' => 'killplot'), FunctionTypeEnumClass::PARAMS);
	}
16035364   Benjamin Renard   First commit
1059
1060
1061
1062

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

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

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

10200969   Roipoussiere   Remove whitespace...
1073

16035364   Benjamin Renard   First commit
1074
1075
1076
/*
 * intersect time tables
 */
10200969   Roipoussiere   Remove whitespace...
1077
	public  function intersect($obj)
735c653b   Elena.Budnik   rank at observato...
1078
1079
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1080
				$this->amdaStat->addTask($this->user, 'ttoper', null);
16035364   Benjamin Renard   First commit
1081

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

735c653b   Elena.Budnik   rank at observato...
1085
1086
		return  $result;
	}
10200969   Roipoussiere   Remove whitespace...
1087

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

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


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

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

0fea5567   Benjamin Renard   First step for re...
1105
	public function initObjectCacheFromCatalog($id, $type)
d547a559   Hacene SI HADJ MOHAND   rm_6903 ok
1106
1107
1108
1109
1110
1111
        {
                $cacheMgr = new TimeTableCacheMgr();

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

19eca0a6   Hacene SI HADJ MOHAND   ok
1112
1113
1114
1115
1116
1117
1118
        public function initObjectCacheFromTimeTable($id, $type, $nparams)
        {
                $cacheMgr = new CatalogCacheMgr();

                return $cacheMgr->initFromTimeTable($id, $nparams);
        }

0fea5567   Benjamin Renard   First step for re...
1119
	public function initObjectCacheFromTmpObject($folderId, $name, $isCatalog = false)
735c653b   Elena.Budnik   rank at observato...
1120
	{
10200969   Roipoussiere   Remove whitespace...
1121
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1122
1123
1124
1125
		else  $cacheMgr = new CatalogCacheMgr();

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

0fea5567   Benjamin Renard   First step for re...
1127
	public function initObjectCacheFromUploadedFile($name, $format, $isCatalog = false)
735c653b   Elena.Budnik   rank at observato...
1128
	{
901ba3f3   Elena.Budnik   upload catalog
1129
1130
		if (!$isCatalog) $cacheMgr = new TimeTableCacheMgr();
		else  $cacheMgr = new CatalogCacheMgr();
735c653b   Elena.Budnik   rank at observato...
1131
1132
		return $cacheMgr->initFromUploadedFile($name, $format);
	}
10200969   Roipoussiere   Remove whitespace...
1133

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

e57cb025   Benjamin Renard   Fix most of error...
1139
		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...
1140
	}
10200969   Roipoussiere   Remove whitespace...
1141

735c653b   Elena.Budnik   rank at observato...
1142
1143
	public function readIntervalsForChart($o)
	{
1a0151a5   Benjamin Renard   wip
1144
		$objMgr = new CatalogCacheMgr(TRUE);
b0720b91   Benjamin Renard   Finalize catalog ...
1145
		$objMgr->initFromObject($o->id, $o->type);
1a0151a5   Benjamin Renard   wip
1146
		return $objMgr->getIntervalsForChart();
735c653b   Elena.Budnik   rank at observato...
1147
	}
10200969   Roipoussiere   Remove whitespace...
1148

735c653b   Elena.Budnik   rank at observato...
1149
1150
1151
	public function saveTTCacheIntervalsInTT($o)
	{
		$cacheMgr = new TimeTableCacheMgr();
0fea5567   Benjamin Renard   First step for re...
1152
		return $cacheMgr->saveInObject($o->ttId,$o->action,$o->cacheToken);
735c653b   Elena.Budnik   rank at observato...
1153
	}
10200969   Roipoussiere   Remove whitespace...
1154

342b20ca   Benjamin Renard   Fix inheritence b...
1155
	public function addCacheInterval($o)
735c653b   Elena.Budnik   rank at observato...
1156
1157
1158
1159
1160
1161
	{
		if ($o->isCatalog) $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();

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

735c653b   Elena.Budnik   rank at observato...
1163
1164
1165
1166
1167
1168
1169
	public function removeTTCacheIntervalFromId($id, $isCatalog = false)
	{
		if ($isCatalog) $cacheMgr = new CatalogCacheMgr();
		else $cacheMgr = new TimeTableCacheMgr();

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

342b20ca   Benjamin Renard   Fix inheritence b...
1171
	public function modifyCacheInterval($o)
735c653b   Elena.Budnik   rank at observato...
1172
	{
10200969   Roipoussiere   Remove whitespace...
1173
		if ($o->isCatalog)
735c653b   Elena.Budnik   rank at observato...
1174
		{
f9c8b272   elena   edit catalog
1175
			$cacheMgr = new CatalogCacheMgr();
f9c8b272   elena   edit catalog
1176
		}
735c653b   Elena.Budnik   rank at observato...
1177
		else $cacheMgr = new TimeTableCacheMgr();
10200969   Roipoussiere   Remove whitespace...
1178

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

735c653b   Elena.Budnik   rank at observato...
1182
1183
1184
1185
1186
	public function operationTTCacheIntervals($extendTime, $shiftTime)
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->operationIntervals($extendTime, $shiftTime);
	}
10200969   Roipoussiere   Remove whitespace...
1187

735c653b   Elena.Budnik   rank at observato...
1188
1189
1190
1191
1192
	public function mergeTTCacheIntervals()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->mergeIntervals();
	}
10200969   Roipoussiere   Remove whitespace...
1193

0318dbe6   Hacene SI HADJ MOHAND   rm_6998 ok
1194
	public function getTTCacheStatistics($obj)
735c653b   Elena.Budnik   rank at observato...
1195
	{
0fea5567   Benjamin Renard   First step for re...
1196
                if($obj->name == "timeTableUi"){
0318dbe6   Hacene SI HADJ MOHAND   rm_6998 ok
1197
1198
1199
1200
1201
1202
				$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...
1203
1204
		return $cacheMgr->getStatistics();
	}
10200969   Roipoussiere   Remove whitespace...
1205

735c653b   Elena.Budnik   rank at observato...
1206
1207
1208
1209
1210
	public function getTTCacheStatus()
	{
		$cacheMgr = new TimeTableCacheMgr();
		return $cacheMgr->getStatus();
	}
aa94fd24   elena   Merge with last svn
1211

16035364   Benjamin Renard   First commit
1212
1213
/*
 * Send a feedback
10200969   Roipoussiere   Remove whitespace...
1214
 *
16035364   Benjamin Renard   First commit
1215
 */
735c653b   Elena.Budnik   rank at observato...
1216
1217
1218
1219
1220
	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...
1221

16035364   Benjamin Renard   First commit
1222
1223
/*
 * Save state
10200969   Roipoussiere   Remove whitespace...
1224
 *
16035364   Benjamin Renard   First commit
1225
 */
735c653b   Elena.Budnik   rank at observato...
1226
1227
1228
1229
1230
	public function saveState($datas)
	{
		$myStateMgr = new StateMgr();
		return $myStateMgr->saveState($datas);
	}
10200969   Roipoussiere   Remove whitespace...
1231

16035364   Benjamin Renard   First commit
1232
1233
/*
 * Load state
10200969   Roipoussiere   Remove whitespace...
1234
1235
 *
 */
735c653b   Elena.Budnik   rank at observato...
1236
	public function loadState($o)
10200969   Roipoussiere   Remove whitespace...
1237
	{
735c653b   Elena.Budnik   rank at observato...
1238
1239
1240
		$myStateMgr = new StateMgr();
		return $myStateMgr->loadState();
	}
10200969   Roipoussiere   Remove whitespace...
1241
1242

/*
16035364   Benjamin Renard   First commit
1243
1244
 * HST Images
 */
735c653b   Elena.Budnik   rank at observato...
1245
1246
1247
	public function getHstImagesUrl($o)
	{
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1248
			$this->amdaStat->addTask($this->user, 'images', null);
10200969   Roipoussiere   Remove whitespace...
1249

735c653b   Elena.Budnik   rank at observato...
1250
1251
1252
1253
1254
1255
		$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...
1256

735c653b   Elena.Budnik   rank at observato...
1257
1258
	public function getAPISImagesUrl($o)
	{
10200969   Roipoussiere   Remove whitespace...
1259
		if ($this->amdaStat->success)
2dab1b1b   Elena.Budnik   change input args...
1260
			$this->amdaStat->addTask($this->user, 'images', null);
10200969   Roipoussiere   Remove whitespace...
1261

735c653b   Elena.Budnik   rank at observato...
1262
1263
1264
1265
		$apisMgr = new APISMgr();
		$res = $apisMgr->get($o->target, $o->startTime, $o->stopTime, $o->datasets);

		return $res;
10200969   Roipoussiere   Remove whitespace...
1266
	}
16035364   Benjamin Renard   First commit
1267
1268
1269
/*
 * Filters
 */
e57cb025   Benjamin Renard   Fix most of error...
1270
	public function loadFilterList()
735c653b   Elena.Budnik   rank at observato...
1271
	{
10200969   Roipoussiere   Remove whitespace...
1272
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1273
1274
1275
		$res = $filtersMgr->loadList();
		return $res;
	}
16035364   Benjamin Renard   First commit
1276

735c653b   Elena.Budnik   rank at observato...
1277
1278
1279
1280
1281
1282
1283
1284
1285
	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...
1286

735c653b   Elena.Budnik   rank at observato...
1287
1288
	public function saveFilter($o)
	{
10200969   Roipoussiere   Remove whitespace...
1289
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1290
1291
		return $filtersMgr->save($o);
	}
10200969   Roipoussiere   Remove whitespace...
1292

735c653b   Elena.Budnik   rank at observato...
1293
1294
	public function createFilter($o)
	{
10200969   Roipoussiere   Remove whitespace...
1295
		$filtersMgr = new FiltersMgr();
735c653b   Elena.Budnik   rank at observato...
1296
1297
		return $filtersMgr->create($o);
	}
10200969   Roipoussiere   Remove whitespace...
1298

735c653b   Elena.Budnik   rank at observato...
1299
1300
1301
1302
1303
1304
	public function destroyFilter($o)
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->delete($o);
		return;
	}
10200969   Roipoussiere   Remove whitespace...
1305

735c653b   Elena.Budnik   rank at observato...
1306
1307
1308
1309
1310
1311
1312
	public function getCrtFilterId()
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->getCrtId();
		return $res;
	}

fdf1413b   Elena.Budnik   TT download
1313
1314
	public function getCrtFilterResult()
	{
10200969   Roipoussiere   Remove whitespace...
1315
		$filtersMgr = new FiltersMgr();
fdf1413b   Elena.Budnik   TT download
1316
1317
		return $filtersMgr->getCrtResult();
	}
10200969   Roipoussiere   Remove whitespace...
1318

fdf1413b   Elena.Budnik   TT download
1319
1320
	public function setCrtFilterId($o)
	{
10200969   Roipoussiere   Remove whitespace...
1321
		$filtersMgr = new FiltersMgr();
fdf1413b   Elena.Budnik   TT download
1322
1323
		return $filtersMgr->setCrtId($o->id);
	}
10200969   Roipoussiere   Remove whitespace...
1324

fdf1413b   Elena.Budnik   TT download
1325
1326
1327
1328
1329
1330
	public function resetFilter()
	{
		$filtersMgr = new FiltersMgr();
		$res = $filtersMgr->reset();
		return $res;
	}
10200969   Roipoussiere   Remove whitespace...
1331

16035364   Benjamin Renard   First commit
1332
1333
	public function logout($isGuest)
	{
10200969   Roipoussiere   Remove whitespace...
1334
		if ($isGuest)
735c653b   Elena.Budnik   rank at observato...
1335
		{
fdf1413b   Elena.Budnik   TT download
1336
1337
1338
			$guestMgr = new Guest($this->user);
			$guestMgr->deleteGuest();
		}
10200969   Roipoussiere   Remove whitespace...
1339
		else
735c653b   Elena.Budnik   rank at observato...
1340
		{
fdf1413b   Elena.Budnik   TT download
1341
			$this->cleanUserWS();
10200969   Roipoussiere   Remove whitespace...
1342
		}
16035364   Benjamin Renard   First commit
1343
		return;
10200969   Roipoussiere   Remove whitespace...
1344
	}
16035364   Benjamin Renard   First commit
1345

fdf1413b   Elena.Budnik   TT download
1346
1347
	public function getInfo($obj)
	{
10200969   Roipoussiere   Remove whitespace...
1348
		if (file_exists(HELPPATH.$obj->name))
fdf1413b   Elena.Budnik   TT download
1349
		{
10200969   Roipoussiere   Remove whitespace...
1350
			$content = file_get_contents(HELPPATH.$obj->name);
fdf1413b   Elena.Budnik   TT download
1351
1352
			return  array('success' => true, 'result' => $content);
		}
10200969   Roipoussiere   Remove whitespace...
1353
1354
1355
		return array('success' => false);
	}

fdf1413b   Elena.Budnik   TT download
1356
1357
1358
1359
1360
	public function getUserInfo()
	{
		$dd = new UserMgr();
		return $dd->getUserInfo();
	}
16035364   Benjamin Renard   First commit
1361

fdf1413b   Elena.Budnik   TT download
1362
1363
1364
1365
1366
1367
	// $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...
1368
1369

		return  $res;
fdf1413b   Elena.Budnik   TT download
1370
	}
10200969   Roipoussiere   Remove whitespace...
1371
1372

	//$obj = array of IDs
fdf1413b   Elena.Budnik   TT download
1373
1374
1375
	public function addRun($obj)
	{
		$myBestRunsMgr = new BestRunsMgr();
10200969   Roipoussiere   Remove whitespace...
1376

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

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

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

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

fdf1413b   Elena.Budnik   TT download
1387
1388
1389
1390
	//AKKA - New action to clean user WS
	public function cleanUserWS()
	{
		$this->rrmdir(USERDIR.'DOWNLOAD.TEMP');
278185de   Benjamin Renard   Upload catalog fr...
1391
		$this->rrmdir(USERDIR.'TEMP');
bf74fc2d   Elena.Budnik   IMPEX
1392
		IHMConfigClass::setUserName($this->user);
10200969   Roipoussiere   Remove whitespace...
1393
1394

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

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

fdf1413b   Elena.Budnik   TT download
1402
1403
1404
	public function rrmdir($dir){
		if (is_dir($dir)) {
			$objects = scandir($dir);
10200969   Roipoussiere   Remove whitespace...
1405
1406
			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
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
					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...
1420
		if (file_exists(USERDIR.$name))
fdf1413b   Elena.Budnik   TT download
1421
1422
1423
					unlink(USERDIR.$name);
		return array('success' => true);
	}
10200969   Roipoussiere   Remove whitespace...
1424

46c5751e   Benjamin Renard   Cleanup
1425
	public function interactivePlot($obj)
fdf1413b   Elena.Budnik   TT download
1426
	{
fdf1413b   Elena.Budnik   TT download
1427
1428
		$inputobj = (Object)array(
			'action' => $obj,
fdf1413b   Elena.Budnik   TT download
1429
1430
1431
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::ACTION);
	}
10200969   Roipoussiere   Remove whitespace...
1432

735c653b   Elena.Budnik   rank at observato...
1433
1434
	public function getParamPlotInit($obj)
	{
bf74fc2d   Elena.Budnik   IMPEX
1435
1436
1437
1438
1439
		// IMPEX param
		if (preg_match("#^spase___IMPEX_#",$obj->paramId))
			$type = 'impex_plot_init';
		else
		   $type = 'plot_init';
10200969   Roipoussiere   Remove whitespace...
1440

735c653b   Elena.Budnik   rank at observato...
1441
1442
		$inputobj = (Object)array(
				'paramId' => $obj->paramId,
bf74fc2d   Elena.Budnik   IMPEX
1443
				'type' => $type
735c653b   Elena.Budnik   rank at observato...
1444
1445
1446
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::PARAMINFO);
	}
10200969   Roipoussiere   Remove whitespace...
1447

735c653b   Elena.Budnik   rank at observato...
1448
1449
	public function getParamInfo($obj)
	{
bf74fc2d   Elena.Budnik   IMPEX
1450
1451
1452
1453
1454
		// IMPEX param
		if (preg_match("#^spase___IMPEX_#",$obj->paramId))
			$type = 'impex_param_info';
		else
		   $type = 'param_info';
10200969   Roipoussiere   Remove whitespace...
1455

735c653b   Elena.Budnik   rank at observato...
1456
1457
		$inputobj = (Object)array(
				'paramId' => $obj->paramId,
2fa56f95   Benjamin Renard   Predefined templa...
1458
				'predefinedArgs' => !empty($obj->predefinedArgs),
bf74fc2d   Elena.Budnik   IMPEX
1459
				'type' => $type
735c653b   Elena.Budnik   rank at observato...
1460
1461
1462
		);
		return $this->executeRequest($inputobj, FunctionTypeEnumClass::PARAMINFO);
	}
bf776dc8   Benjamin Renard   working
1463
	public function getDerivedParamInfo($obj)
0fea5567   Benjamin Renard   First step for re...
1464
	{
bf776dc8   Benjamin Renard   working
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
                 $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...
1477

bf776dc8   Benjamin Renard   working
1478
		}
0fea5567   Benjamin Renard   First step for re...
1479
		return array('success'=>false, 'message'=>'unkown parameter (derived parameter arguments are not handled)');
bf776dc8   Benjamin Renard   working
1480
	}
0fea5567   Benjamin Renard   First step for re...
1481

22d8d756   Hacene SI HADJ MOHAND   resolu
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
       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
1502
1503
1504
1505
1506
1507
	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...
1508
		}elseif(($dim_1==1 && $dim_2>1 && $dim_2<=3)||($dim_2==1 && $dim_1>1 && $dim_1<=3) )
bf776dc8   Benjamin Renard   working
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
		/* 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...
1536

10200969   Roipoussiere   Remove whitespace...
1537

bf776dc8   Benjamin Renard   working
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
			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...
1552

bf776dc8   Benjamin Renard   working
1553
1554
1555
1556
1557
1558
1559
			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...
1560
				'relatedDim'=>'dim' . ($j+1),
bf776dc8   Benjamin Renard   working
1561
1562
1563
1564
1565
1566
1567
1568
1569
				'name'=>'component' . ($j+1),
				'units'=>"",
				'variable'=>"",
				'channels'=>$compts,
				'minmax'=>""
				);

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

bf776dc8   Benjamin Renard   working
1571
1572
1573
1574
1575
1576
                  $data=array(
				'dimensions'=>$dims,
				'tables'=>$tables
			     );
		return array('success'=>true,'data'=>$data);
                }
0fea5567   Benjamin Renard   First step for re...
1577

bf776dc8   Benjamin Renard   working
1578
	}
735c653b   Elena.Budnik   rank at observato...
1579
1580
1581
1582
1583
1584
	public function getSharedObjectFolders($obj)
	{
		$mgr = new SharedObjectsMgr();
		$folders = $mgr->getFolders($obj->type);
		return array('success' => true, 'folders' => $folders);
	}
10200969   Roipoussiere   Remove whitespace...
1585

735c653b   Elena.Budnik   rank at observato...
1586
1587
1588
	public function shareObjects($obj)
	{
		$mgr = new SharedObjectsMgr();
10200969   Roipoussiere   Remove whitespace...
1589
		switch ($obj->type)
735c653b   Elena.Budnik   rank at observato...
1590
1591
1592
1593
1594
		{
			case 'timeTable' :
			case 'catalog' :
				$src_object_path = USERTTDIR.$obj->object->id.".xml";
				break;
10200969   Roipoussiere   Remove whitespace...
1595

735c653b   Elena.Budnik   rank at observato...
1596
1597
1598
			default:
				return array('success' => false, 'message' => 'Unknown object type');
		}
10200969   Roipoussiere   Remove whitespace...
1599

735c653b   Elena.Budnik   rank at observato...
1600
1601
1602
		$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...
1603

735c653b   Elena.Budnik   rank at observato...
1604
1605
1606
		$mgr->updateTree();
		return $result;
	}
10200969   Roipoussiere   Remove whitespace...
1607

735c653b   Elena.Budnik   rank at observato...
1608
1609
1610
1611
1612
1613
	public function isSharedObjectNameAlreadyUsed($obj)
	{
		$mgr = new SharedObjectsMgr();
		$alreadyUsed = $mgr->isNameAlreadyUsed($obj->type, $obj->name);
		return array('success' => true, 'alreadyUsed' => $alreadyUsed);
	}
10200969   Roipoussiere   Remove whitespace...
1614

0bda97f3   Benjamin Renard   Fix SAMP export f...
1615
1616
	public function getRequestByProcessId($obj)
	{
0bda97f3   Benjamin Renard   Fix SAMP export f...
1617
1618
		return $this->executeRequest($obj->processId, FunctionTypeEnumClass::PROCESSGETREQUEST);
	}
2fa56f95   Benjamin Renard   Predefined templa...
1619
1620
1621
1622
1623
1624
1625
1626
1627

	public function parseTemplatedParam($paramTemplateId)
	{
		$args = (Object)array(
			'paramId' => $paramTemplateId,
			'type' => 'param_parse_template'
		);
		return $this->executeRequest($args, FunctionTypeEnumClass::PARAMINFO);
	}
16035364   Benjamin Renard   First commit
1628
1629
}
?>