Commit 25482292bc84ab08ceee4689bc20e38594327d45

Authored by Benjamin Renard
2 parents 231bdf7f 698cdda6

Merge branch 'master' into expression-parser-bre

desktop.php
... ... @@ -5,7 +5,6 @@
5 5 *
6 6 */
7 7  
8   -
9 8 require_once('php/config.php');
10 9 // error_reporting(E_ALL);
11 10 if (!isset($_POST['username'])) {
... ... @@ -40,8 +39,8 @@
40 39 <link rel="icon" href="favicon.ico" type="image/x-icon">
41 40 <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
42 41  
43   -<!-- <script type="text/javascript" src="js/lib/ext/builds/ext-core.js"></script> -->
44   -<!-- <script type="text/javascript" src="js/lib/ext/bootstrap.js"></script> -->
  42 +<!-- <script type="text/javascript" src="js/lib/ext/builds/ext-core.js"></script> -->
  43 +<!-- <script type="text/javascript" src="js/lib/ext/bootstrap.js"></script> -->
45 44 <!-- <script type="text/javascript" src="js/lib/ext/ext-all-debug-w-comments.js"></script> -->
46 45 <script type="text/javascript" src="js/lib/ext/ext-all.js"></script>
47 46 <!-- <script type="text/javascript" src="js/lib/ext/ext-all-dev.js"></script> -->
... ... @@ -85,10 +84,10 @@
85 84  
86 85 var myDesktopApp;
87 86  
88   - var isMigration = true;
  87 + var isMigration = false;
89 88 var sessionID = '<?php echo $sessionID; ?>';
90 89 var isFirstVisit = '<?php echo $usrMgr->isFirst; ?>';
91   - var isOldWS = '<?php echo $usrMgr->isOldWS; ?>';
  90 + var isOldWS = false; // '<#?php echo $usrMgr->isOldWS; ?>';
92 91 var isSpecialInfo = '<?php echo $usrMgr->isSpecialInfo; ?>';
93 92 var isNewInfo = '<?php echo $usrMgr->isNewInfo; ?>';
94 93 var news = '../data/' + sessionID + '/INFO';
... ... @@ -176,12 +175,12 @@
176 175  
177 176 if (response && response.statusText) {
178 177 if (response.timedout)
179   - myDesktopApp.errorMsg('Request processing time exceeds gateway timeout.<br/>In case of parameter from Remote Bases : please re-launch the same request in 10 min,<br/>otherwise contact AMDA team');
  178 + alert('Request processing time exceeds gateway timeout.<br/>In case of parameter from Remote Bases : please re-launch the same request in 10 min,<br/>otherwise contact AMDA team');
180 179 else
181   - myDesktopApp.errorMsg(response.statusText);
  180 + alert(response.statusText);
182 181 }
183 182 else
184   - myDesktopApp.errorMsg('Communication failure');
  183 + alert('Communication failure');
185 184 });
186 185  
187 186 // backspace key disable
... ...
generic_data/Functions/functions.xml
... ... @@ -88,6 +88,10 @@
88 88 <prompt/>
89 89 <info_brief>GSE to SM transformation</info_brief>
90 90 </function>-->
  91 + <function name="angle(,)" params="2" kind="vectors">
  92 + <info_brief>Angle between two vectors</info_brief>
  93 + <new_kernel>angle</new_kernel>
  94 + </function>
91 95 <function name="cross(,)" args="2" kind="vectors">
92 96 <info_brief>Cross product</info_brief>
93 97 <new_kernel>cross</new_kernel>
... ...
help/parameters/curlometer.pdf 0 โ†’ 100644
No preview for this file type
help/statisticsHOWTO
1   -<li>1. To calculate a statistics on <i>any type</i> of parameter <i>drag</i> it from the Parameters tree and <i>drop</i> onto the panel
  1 +<li>1. To calculate statistics on <i>any type</i> of parameter <i>drag</i> it from the Parameters tree and <i>drop</i> it onto the panel
2 2 <li>2. After dropping the parameter select function to apply (<i>click to select</i>!!! to open the menu)
3 3 <li>3. Statistics can be calculated on Time Interval or TimeTable/Catalog intervals
4   -
  4 +<br><b>
  5 +Notes:</b>
  6 +<li>1. countTrue function accepts only Boolean Parameters. It calculates the number of true occurrences in the Boolean Parameter.
  7 +<li>2. Coverage represents the number of points used in the calculation divided by the theorical number of points in the specified time interval.
5 8  
... ...
index.html
... ... @@ -63,12 +63,12 @@
63 63 })(window.location.search.substr(1).split('&'));
64 64  
65 65 if (qs["error"] && qs["error"] == "1") {
66   - alert('Cannot connect to AMDA');
  66 + alert('Cannot connect to AMDA. \n Please check your username/password');
  67 + setLoginLoader(false);
67 68 return false;
68 69 }
69 70  
70 71 setLoginLoader(false);
71   -
72 72 };
73 73 </script>
74 74 <a href="mailto:amda@irap.omp.eu?subject=AMDA registration" id="Btn_Register"></a>
... ... @@ -84,8 +84,10 @@
84 84  
85 85 <div id="PaveAnnoucements">
86 86 <div id="TitrePaveAnnoucement">Announcements </div>
87   -<div id="DateAnnoucement">07/06/2019</div>
88   -<div id="TexteAnnoucement">New data: </BR>Galileo/EPD, Geotail/EPIC, Swarm</BR>Solar irradiance/TIMED/SEE</div>
  87 +<div id="DateAnnoucement">20/01/2020</div>
  88 +<div id="TexteAnnoucement">New data: PHOBOS 2,</BR>Solar Wind at BepiColombo in cruise phase (Tao model)</div>
  89 +<div id="DateAnnoucement">01/10/2019</div>
  90 +<div id="TexteAnnoucement">New data: </BR>Rosetta/LAP,</BR> MESSENGER/FIPS,</BR> MESSENGER/EPS,</BR>Earth Moon/Ephemeris,</BR> Cassini/MAG cruise</div>
89 91 <div id="TexteAnnoucement">Access to <a href="http://amda-old.cdpp.eu" target="_blank">old version</a></div>
90 92 </div>
91 93  
... ...
js/app/AmdaApp.js
... ... @@ -625,52 +625,10 @@ Ext.define(&#39;amdaApp.AmdaApp&#39;, {
625 625 'MB rests');
626 626 }
627 627  
628   - if (isFirstVisit && !isGuest) {
629   -
630   - if (isMigration) { // isSpecialInfo
631   - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.info.id, true, function(module) {
632   - module.createWindow(isSpecialInfo, 'Welcome to AMDA', true);
633   - if ( isOldWS ) {
634   - var win = myDesktopApp.getDesktop().getWindow(myDesktopApp.dynamicModules.info.id);
635   - win.on({
636   - show : function() {
637   - Ext.Msg.show({
638   - title:'Welcome to new AMDA',
639   - msg: 'It is your first visit to the new version of AMDA.<br/>'+
640   - 'Do you want to copy here your workspace from the old AMDA ?',
641   - buttons: Ext.Msg.YESNO,
642   - icon: Ext.Msg.QUESTION,
643   - fn : function (btn) {
644   - if (btn == 'yes') {
645   - loadMask.show();
646   - AmdaAction.convertWS(function(res,e){
647   - var explorerModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.explorer.id);
648   - explorerModule.filtersStore.reload();
649   - loadMask.hide();
650   -
651   - if (res.success == true) {
652   - myDesktopApp.infoMsgLong('<b>Your Wokspace has been copied to new AMDA</b><br/><br/> ' + res.msg);
653   - }
654   - else {
655   - myDesktopApp.errorMsg(res.error);
656   - }
657   - });
658   - }
659   - }
660   - });
661   - },
662   - scope : this });
663   -
664   - var yy = Ext.getBody().getViewSize().height / 3;
665   - win.setPosition(0,yy,true);
666   - }
667   - })
668   - }
669   - else {
670   - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.help.id, true, function(module) {
671   - module.createWindow();
672   - });
673   - }
  628 + if (isFirstVisit && !isGuest) {
  629 + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.help.id, true, function(module) {
  630 + module.createWindow();
  631 + });
674 632 }
675 633 else {
676 634 if (isSpecialInfo && !isNewInfo) {
... ...
js/app/models/TimeTable.js
... ... @@ -46,6 +46,16 @@ Ext.define(&#39;amdaModel.Interval&#39;, {
46 46 return value;
47 47 }
48 48 },
  49 + {
  50 + name: 'durationDay',
  51 + type: 'float',
  52 + convert: function(value, rec){
  53 + if (rec.get('stop') && rec.get('start') && (rec.get('stop')-rec.get('start'))>=0) {
  54 + return (rec.get('stop') - rec.get('start'))/3600000.0/24.0;
  55 + }
  56 + },
  57 + persist: false
  58 + },
49 59 {
50 60 name: 'durationHour',
51 61 type: 'float',
... ...
js/app/views/CatalogUI.js
... ... @@ -233,6 +233,16 @@ Ext.define(&#39;amdaUI.CatalogUI&#39;, {
233 233 return value;
234 234 }
235 235 },
  236 + {
  237 + name: 'durationDay',
  238 + type: 'float',
  239 + convert: function (value, rec) {
  240 + if (rec.get('stop') && rec.get('start') && (rec.get('stop') - rec.get('start')) >= 0) {
  241 + return (rec.get('stop') - rec.get('start')) / 3600000.0/24.0;
  242 + }
  243 + },
  244 + persist: false
  245 + },
236 246 {
237 247 name: 'durationHour',
238 248 type: 'float',
... ... @@ -329,6 +339,26 @@ Ext.define(&#39;amdaUI.CatalogUI&#39;, {
329 339 },
330 340 filter: {type: 'date', dateFormat: 'Y-m-d'}
331 341 },
  342 + {
  343 + xtype: 'gridcolumn',
  344 + text: 'Duration (day)',
  345 + sortable: true,
  346 + dataIndex: 'durationDay',
  347 + width: 120,
  348 + minWidth: 50,
  349 + menuDisabled: false,
  350 + hidden: true,
  351 + id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '1',
  352 + renderer: function (value) {
  353 + return Ext.util.Format.number(value, '0.00');
  354 + },
  355 + listeners: {
  356 + beforeshow: function () {
  357 + updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '1');
  358 + }
  359 + },
  360 + filter: {type: 'numeric'}
  361 + },
332 362 {
333 363 xtype: 'gridcolumn',
334 364 text: 'Duration (hour)',
... ... @@ -338,13 +368,13 @@ Ext.define(&#39;amdaUI.CatalogUI&#39;, {
338 368 minWidth: 50,
339 369 menuDisabled: false,
340 370 hidden: true,
341   - id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '1',
  371 + id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '2',
342 372 renderer: function (value) {
343 373 return Ext.util.Format.number(value, '0.00');
344 374 },
345 375 listeners: {
346 376 beforeshow: function () {
347   - updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '1');
  377 + updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '2');
348 378 }
349 379 },
350 380 filter: {type: 'numeric'}
... ... @@ -358,13 +388,13 @@ Ext.define(&#39;amdaUI.CatalogUI&#39;, {
358 388 minWidth: 50,
359 389 menuDisabled: false,
360 390 hidden: false,
361   - id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '2',
  391 + id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '3',
362 392 renderer: function (value) {
363 393 return Ext.util.Format.number(value, '0.00');
364 394 },
365 395 listeners: {
366 396 beforeshow: function () {
367   - updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '2');
  397 + updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '3');
368 398 }
369 399 },
370 400 filter: {type: 'numeric'}
... ... @@ -378,13 +408,13 @@ Ext.define(&#39;amdaUI.CatalogUI&#39;, {
378 408 minWidth: 50,
379 409 menuDisabled: false,
380 410 hidden: true,
381   - id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '3',
  411 + id: amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '4',
382 412 renderer: function (value) {
383 413 return Ext.util.Format.number(value, '0.00');
384 414 },
385 415 listeners: {
386 416 beforeshow: function () {
387   - updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '3');
  417 + updateDurationColumnsVisibility(this.ownerCt.getGridColumns(), amdaUI.CatalogUI.COL_TO_HIDE_DURATION + '4');
388 418 }
389 419 },
390 420 filter: {type: 'numeric'}
... ...
js/app/views/ExplorerUI.js
... ... @@ -597,7 +597,7 @@ Ext.define(&#39;amdaUI.ExplorerUI&#39;, {
597 597 case 'localParam' :
598 598 case 'remoteParam':
599 599 case 'remoteSimuParam':
600   - record.createAlias(record);
  600 + record.createPlot(record);
601 601 break;
602 602 case 'bkgWorks' :
603 603 if (!record.get('object')) {
... ...
js/app/views/ParameterUI.js
... ... @@ -441,7 +441,7 @@ Ext.define(&#39;amdaUI.ParameterUI&#39;,
441 441 allowBlank : false, blankText : 'Time Step is required',
442 442 name : 'timestep',
443 443 minValue : 0.001,
444   - decimalPrecision : 3,
  444 + decimalPrecision : 10,
445 445 hideTrigger: true,
446 446 width: 150,
447 447 //validateOnChange: false,
... ...
js/app/views/PlotTabResultUI.js
... ... @@ -376,6 +376,7 @@ Ext.define(&#39;amdaUI.PlotTabResultUI&#39;, {
376 376  
377 377 updatePlotImage: function(configResult, newPlot) {
378 378 this.crtContext = configResult.context;
  379 +
379 380  
380 381 this.crtTTFileIndex = configResult.ttFileIndex;
381 382  
... ... @@ -509,15 +510,8 @@ Ext.define(&#39;amdaUI.PlotTabResultUI&#39;, {
509 510 var ttFileIndex = this.crtTTFileIndex;
510 511 var ttintervalIndex = this.crtContext.page.ttIndex;
511 512  
512   - if (ttintervalIndex <= 0){
513   - if (ttFileIndex <= 0){
514   - myDesktopApp.errorMsg('You are on the first interval of your request');
515   - return;
516   - }
517   - else {
518   - --ttFileIndex;
519   - ttintervalIndex = 0;
520   - }
  513 + if (ttintervalIndex <= 0 && ttFileIndex>0){
  514 + --ttFileIndex;
521 515 }
522 516 else
523 517 --ttintervalIndex;
... ... @@ -533,6 +527,7 @@ Ext.define(&#39;amdaUI.PlotTabResultUI&#39;, {
533 527 var ttintervalIndex = this.crtContext.page.ttIndex;
534 528  
535 529 if (ttintervalIndex >= this.crtContext.page.ttNbIntervals-1){
  530 +
536 531 ++ttFileIndex;
537 532 ttintervalIndex = 0;
538 533 }
... ...
js/app/views/StatisticsUI.js
... ... @@ -435,7 +435,7 @@ Ext.define(&#39;amdaUI.StatisticsUI&#39;,
435 435 title: 'Information',
436 436 collapsible: true,
437 437 collapseMode: 'header',
438   - height: 100,
  438 + height: 160,
439 439 autoHide: false,
440 440 bodyStyle: 'padding:5px',
441 441 iconCls: 'icon-information',
... ...
js/app/views/TimeTableUI.js
... ... @@ -506,6 +506,7 @@ Ext.define(&#39;amdaUI.TimeTableUI&#39;, {
506 506 encode: true, // json encode the filter query
507 507 local: false, // defaults to false (remote filte
508 508 filters: [
  509 + {type: 'numeric', dataIndex: 'durationDay'},
509 510 {type: 'numeric', dataIndex: 'durationHour'},
510 511 {type: 'numeric', dataIndex: 'durationMin'},
511 512 {type: 'numeric', dataIndex: 'durationSec'},
... ... @@ -623,11 +624,12 @@ Ext.define(&#39;amdaUI.TimeTableUI&#39;, {
623 624 }
624 625 }
625 626 },
626   - {
627   - header: 'Duration (hour)', width: 120, dataIndex: 'durationHour',
  627 + {
  628 + header: 'Duration (day)', width: 120, dataIndex: 'durationDay',
628 629 id: amdaUI.TimeTableUI.COL_TO_HIDE + '1',
629 630 hidden: true,
630 631 renderer: function (value) {
  632 +
631 633 return Ext.util.Format.number(value, '0.00');
632 634 },
633 635 listeners: {
... ... @@ -646,8 +648,9 @@ Ext.define(&#39;amdaUI.TimeTableUI&#39;, {
646 648 }
647 649 },
648 650 {
649   - header: 'Duration (min)', width: 120, dataIndex: 'durationMin',
  651 + header: 'Duration (hour)', width: 120, dataIndex: 'durationHour',
650 652 id: amdaUI.TimeTableUI.COL_TO_HIDE + '2',
  653 + hidden: true,
651 654 renderer: function (value) {
652 655 return Ext.util.Format.number(value, '0.00');
653 656 },
... ... @@ -667,9 +670,8 @@ Ext.define(&#39;amdaUI.TimeTableUI&#39;, {
667 670 }
668 671 },
669 672 {
670   - header: 'Duration (sec)', width: 120, dataIndex: 'durationSec',
  673 + header: 'Duration (min)', width: 120, dataIndex: 'durationMin',
671 674 id: amdaUI.TimeTableUI.COL_TO_HIDE + '3',
672   - hidden: true,
673 675 renderer: function (value) {
674 676 return Ext.util.Format.number(value, '0.00');
675 677 },
... ... @@ -687,6 +689,28 @@ Ext.define(&#39;amdaUI.TimeTableUI&#39;, {
687 689 });
688 690 }
689 691 }
  692 + },
  693 + {
  694 + header: 'Duration (sec)', width: 120, dataIndex: 'durationSec',
  695 + id: amdaUI.TimeTableUI.COL_TO_HIDE + '4',
  696 + hidden: true,
  697 + renderer: function (value) {
  698 + return Ext.util.Format.number(value, '0.00');
  699 + },
  700 + listeners: {
  701 + beforeshow: function () {
  702 + Ext.Array.each(this.ownerCt.getGridColumns(), function (item, index, all) {
  703 + // if item is a column to hide automatically
  704 + if (Ext.util.Format.substr(item.id, 0, amdaUI.TimeTableUI.COL_TO_HIDE.length) == amdaUI.TimeTableUI.COL_TO_HIDE) {
  705 + // if item isn't the column which is being declared and is not hidden
  706 + if (item.id != amdaUI.TimeTableUI.COL_TO_HIDE + '4' && !item.isHidden()) {
  707 + // hide this column
  708 + item.hide();
  709 + }
  710 + }
  711 + });
  712 + }
  713 + }
690 714 }
691 715 ],
692 716 frame: true,
... ... @@ -757,10 +781,12 @@ Ext.define(&#39;amdaUI.TimeTableUI&#39;, {
757 781 e.record.set('durationHour', (e.record.get('stop') - e.record.get('start')) / 3600000.0);
758 782 e.record.set('durationMin', (e.record.get('stop') - e.record.get('start')) / 60000.0);
759 783 e.record.set('durationSec', (e.record.get('stop') - e.record.get('start')) / 1000.0);
  784 + e.record.set('durationDay', (e.record.get('stop') - e.record.get('start')) / 3600000.0 / 24.0);
760 785 // send refresh event to statistical plugin
761 786 this.fireEvent("refresh");
762 787 }
763 788 }
  789 +
764 790 }
765 791 });
766 792  
... ...
js/app/views/UploadPanelUI.js
... ... @@ -530,7 +530,7 @@ Ext.define(&#39;amdaUI.UploadPanelUI&#39;, {
530 530 var combo = Ext.create('Ext.form.ComboBox', {
531 531 flex : 4,
532 532 store: this.store,
533   - emptyText: 'Enter Remote Site URL (ftp/http)',
  533 + emptyText: 'Enter Remote Site URL (ftp/http[s])',
534 534 queryMode: 'local',
535 535 displayField: 'name',
536 536 valueField: 'value'
... ... @@ -568,7 +568,7 @@ Ext.define(&#39;amdaUI.UploadPanelUI&#39;, {
568 568 {
569 569 xtype : 'textfield',
570 570 name : config.remoteUploadName,
571   - emptyText: 'Enter Remote File URL (ftp/http)',
  571 + emptyText: 'Enter Remote File URL (ftp/http[s])',
572 572 width: 310,
573 573 listeners:
574 574 {
... ...
php/classes/AmdaAction.php
... ... @@ -367,11 +367,11 @@ class AmdaAction
367 367 $disable = $child->hasAttribute('group');
368 368  
369 369 if ($disable) {
370   - if ($child->getAttribute("group") !== "TBD") {
371   - $info .= "<br/><b>Restricted Access</b>";
  370 + if ($child->getAttribute("group") === "TBD") {
  371 + $info .= "<br/><b>Under Testing</b>";
372 372 }
373 373 else {
374   - $info .= "<br/><b>Sorry! Not finished yet...</b>";
  374 + $info .= "<br/><b>Restricted Access : Group ".$child->getAttribute('group')."</b>";
375 375 }
376 376 }
377 377 else {
... ... @@ -1031,7 +1031,6 @@ class AmdaAction
1031 1031 */
1032 1032 public function compilParam($obj)
1033 1033 {
1034   -//error_log(print_r($obj,TRUE));
1035 1034 return $this->executeRequest($obj, FunctionTypeEnumClass::PARAMSGEN);
1036 1035 }
1037 1036  
... ... @@ -1375,12 +1374,6 @@ class AmdaAction
1375 1374 return $dd->getUserInfo();
1376 1375 }
1377 1376  
1378   - public function convertWS()
1379   - {
1380   - $dd = new UserMgr();
1381   - return $dd->convertWS();
1382   - }
1383   -
1384 1377 // $obj ={"Object":"Earth","RunCount":"2",
1385 1378 // "SW_Density_value":"10","SW_Density_weight":"1","SW_Density_scale":"7","SW_Temperature_value":"100", ....}
1386 1379 public function getRun($obj)
... ...
php/classes/CatalogCacheFilterObject.php
... ... @@ -2,7 +2,7 @@
2 2  
3 3 class CatalogCacheFilterPartObject extends TimeTableCacheFilterPartObject
4 4 {
5   - public static $TYPE_PARAMETER = 6;
  5 + public static $TYPE_PARAMETER = 7;
6 6  
7 7 private $paramId = "";
8 8  
... ...
php/classes/CatalogCacheSortObject.php
... ... @@ -2,7 +2,7 @@
2 2  
3 3 class CatalogCacheSortPartObject extends TimeTableCacheSortPartObject
4 4 {
5   - public static $TYPE_PARAMETER = 6;
  5 + public static $TYPE_PARAMETER = 7;
6 6  
7 7 private $paramId = "";
8 8  
... ...
php/classes/FilesMgr.php
... ... @@ -273,7 +273,7 @@ class FilesMgr extends AmdaObjectMgr
273 273 while (!feof($handler) && !$StartTime) {
274 274 $oneLine = trim(preg_replace('/\s+/', ' ', fgets($handler)));
275 275 $elems = explode(' ', $oneLine);
276   - if ((strlen($elems[0]) < 16) || !($time = strtotime($elems[0]))) {
  276 + if ((strlen($elems[0]) < 15) || !($time = strtotime($elems[0]))) {
277 277 $i++;
278 278 continue;
279 279 }
... ... @@ -310,7 +310,7 @@ class FilesMgr extends AmdaObjectMgr
310 310 while (!feof($handler) && !$StartTime) {
311 311 $oneLine = trim(preg_replace('/\s+/', ' ', fgets($handler)));
312 312 $elems = explode(' ',$oneLine);
313   - if (strlen($elems[0]) < 16 || !($time = strtotime($elems[0]))) {
  313 + if (strlen($elems[0]) < 15 || !($time = strtotime($elems[0]))) {
314 314 $i++;
315 315 continue;
316 316 }
... ... @@ -532,7 +532,7 @@ class FilesMgr extends AmdaObjectMgr
532 532 $i++;
533 533 if (!$timeDouble)
534 534 {
535   - if (strlen($elems[0]) >= 16 && ($time = strtotime($elems[0])))
  535 + if (strlen($elems[0]) >= 15 && ($time = strtotime($elems[0])))
536 536 {
537 537 $found = true;
538 538 break;
... ...
php/classes/TimeTableCacheFilterObject.php
... ... @@ -8,6 +8,7 @@ class TimeTableCacheFilterPartObject
8 8 public static $TYPE_DURATION_SEC = 3;
9 9 public static $TYPE_DURATION_MIN = 4;
10 10 public static $TYPE_DURATION_HOUR = 5;
  11 + public static $TYPE_DURATION_DAY = 6;
11 12  
12 13 public static $OPERATION_UNKNOWN = 0;
13 14 public static $OPERATION_LT = 1;
... ... @@ -75,12 +76,15 @@ class TimeTableCacheFilterPartObject
75 76 case self::$TYPE_DURATION_SEC :
76 77 case self::$TYPE_DURATION_MIN :
77 78 case self::$TYPE_DURATION_HOUR :
  79 + case self::$TYPE_DURATION_DAY :
78 80 {
79 81 $value = $this->value;
80 82 if ($this->type == self::$TYPE_DURATION_MIN)
81 83 $value *= 60;
82 84 else if ($this->type == self::$TYPE_DURATION_HOUR)
83 85 $value *= 3600;
  86 + else if ($this->type == self::$TYPE_DURATION_DAY)
  87 + $value *= 86400;
84 88 switch ($this->op) {
85 89 case self::$OPERATION_LT :
86 90 return ($interval->getDuration() < $value);
... ... @@ -122,6 +126,10 @@ class TimeTableCacheFilterPartObject
122 126 $this->value = $part_obj->value;
123 127 $this->type = self::$TYPE_DURATION_SEC;
124 128 break;
  129 + case 'durationDay' :
  130 + $this->value = $part_obj->value;
  131 + $this->type = self::$TYPE_DURATION_DAY;
  132 + break;
125 133 default:
126 134 $this->value = 0.;
127 135 $this->type = self::$TYPE_UNKNOWN;
... ... @@ -176,6 +184,10 @@ class TimeTableCacheFilterPartObject
176 184 case self::$TYPE_DURATION_HOUR :
177 185 echo "duration hour";
178 186 break;
  187 +
  188 + case self::$TYPE_DURATION_DAY :
  189 + echo "duration day";
  190 + break;
179 191 default:
180 192 echo "unknown";
181 193 }
... ...
php/classes/TimeTableCacheSortObject.php
... ... @@ -8,6 +8,7 @@ class TimeTableCacheSortPartObject
8 8 public static $TYPE_DURATION_SEC = 3;
9 9 public static $TYPE_DURATION_MIN = 4;
10 10 public static $TYPE_DURATION_HOUR = 5;
  11 + public static $TYPE_DURATION_DAY = 6;
11 12  
12 13 public static $DIRECTION_UNKNOWN = 0;
13 14 public static $DIRECTION_ASC = 1;
... ... @@ -60,6 +61,7 @@ class TimeTableCacheSortPartObject
60 61 case self::$TYPE_DURATION_SEC :
61 62 case self::$TYPE_DURATION_MIN :
62 63 case self::$TYPE_DURATION_HOUR :
  64 + case self::$TYPE_DURATION_DAY :
63 65 {
64 66 switch ($this->dir) {
65 67 case self::$DIRECTION_ASC :
... ... @@ -93,6 +95,9 @@ class TimeTableCacheSortPartObject
93 95 case 'durationSec' :
94 96 $this->type = self::$TYPE_DURATION_SEC;
95 97 break;
  98 + case 'durationDay' :
  99 + $this->type = self::$TYPE_DURATION_DAY;
  100 + break;
96 101 default:
97 102 $this->type = self::$TYPE_UNKNOWN;
98 103 }
... ... @@ -139,6 +144,9 @@ class TimeTableCacheSortPartObject
139 144 case self::$TYPE_DURATION_HOUR :
140 145 echo "duration hour";
141 146 break;
  147 + case self::$TYPE_DURATION_DAY :
  148 + echo "duration day";
  149 + break;
142 150 default:
143 151 echo "unknown";
144 152 }
... ...
php/classes/UserMgr.php
... ... @@ -26,7 +26,7 @@ class UserMgr
26 26 protected $paramMgr, $baseExtXml;
27 27  
28 28 public $isFirst = false;
29   - public $isOldWS = true;
  29 + public $isOldWS = false;
30 30 public $isNewInfo = false;
31 31 public $isSpecialInfo = null;
32 32 public $isGuest = false;
... ... @@ -461,39 +461,6 @@ class UserMgr
461 461 /*****************************************************************
462 462 * PUBLIC FUNCTIONS
463 463 *****************************************************************/
464   - // migration from old to new AMDA
465   - public function convertWS()
466   - {
467   - $convert = new UserWsTransfer($this->user);
468   -
469   - $res = $convert->checkWS();
470   - if (!$res['success']) return $res;
471   -
472   - $res = $convert->transferMyData();
473   - $msg = $res['msg'];
474   -
475   - $res = $convert->transferDerived();
476   - $msg .= $res['msg'];
477   -
478   - $res = $convert->transferTimeTables();
479   - $msg .= $res['msg'];
480   -
481   - $res = $convert->transferConditions();
482   - $msg .= $res['msg'];
483   -
484   -// $res = $convert->transferRequests();
485   -// $msg .= $res['msg'];
486   -
487   - $res = $convert->transferFilters();
488   - $msg .= $res['msg'];
489   -
490   - $info = $this->amdaClient->getUserInfo($this->user);
491   - $email = $info["email"];
492   -
493   - $convert->sendMail($email,$msg);
494   - // error_log('Transfer workspace from old AMDA for '.$this->user, 1, 'amda@irap.omp.eu');
495   - return array('success' => true, 'msg' => $msg);
496   - }
497 464  
498 465 public function setPath()
499 466 {
... ... @@ -547,16 +514,6 @@ class UserMgr
547 514 die("Login for ".$this->user." failed: Can't create WS dirs");
548 515 }
549 516 $this->isFirst = true;
550   -
551   - if ($this->isGuest) {
552   - $this->isOldWS = false;
553   - }
554   - else {
555   - $convert = new UserWsTransfer($this->user);
556   - $res = $convert->checkWS();
557   - if (!$res['success'])
558   - $this->isOldWS = false;
559   - }
560 517 }
561 518  
562 519 if (file_exists($this->userdir.'newLogin')) {
... ... @@ -714,34 +671,34 @@ class UserMgr
714 671 return $wsSize;
715 672 }
716 673  
717   - // http://www.ilovejackdaniels.com/php/email-address-validation/
  674 + // http://www.ilovejackdaniels.com/php/email-address-validation/
718 675 public function check_email_address($email)
719 676 {
720 677 // First, we check that there's one @ symbol, and that the lengths are right
721   - if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
  678 + if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $email))
722 679 {
723 680 // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
724 681 return false;
725 682 }
726   -
  683 +
727 684 // Split it into sections to make life easier
728 685 $email_array = explode("@", $email);
729 686 $local_array = explode(".", $email_array[0]);
730 687 for ($i = 0; $i < sizeof($local_array); $i++)
731 688 {
732   - if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
  689 + if (!preg_match("@^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$@", $local_array[$i])) {
733 690 return false;
734 691 }
735 692 }
736 693  
737   - if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
  694 + if (!preg_match("/^\[?[0-9\.]+\]?$/", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
738 695 $domain_array = explode(".", $email_array[1]);
739 696 if (sizeof($domain_array) < 2) {
740 697 return false; // Not enough parts to domain
741 698 }
742 699 for ($i = 0; $i < sizeof($domain_array); $i++)
743 700 {
744   - if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
  701 + if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) {
745 702 return false;
746 703 }
747 704 }
... ...
php/classes/UserWsTransfer.php deleted
... ... @@ -1,639 +0,0 @@
1   -<?php
2   -/**
3   - * @class UserWsTransfer
4   - */
5   -
6   -class UserWsTransfer {
7   -
8   - private $oldWs, $newWs, $Mgr;
9   - private $oldWsDir, $newWsDir;
10   - private $ws_deleted, $wsd_deleted, $pairs, $specParams, $postPairs;
11   -
12   - function __construct($user)
13   - {
14   - define('OLDUSERPATH', 'http://cdpp1.irap.omp.eu/AMDA-NG/data/');
15   - // define('OLDUSERPATH', 'http://amda-dev.irap.omp.eu/~budnik/AMDA-NG4/trunk/data/');
16   - define('NEWUSERPATH', USERPATH);
17   - define('TRANSFERUSER', $user);
18   - define('CONVERSIONDIR', DATAPATH."migration/");
19   -
20   - $this->oldWs = new DomDocument("1.0");
21   - $this->newWs = new DomDocument("1.0");
22   -
23   - $this->oldWsDir = OLDUSERPATH.TRANSFERUSER.'/WS/';
24   - $this->newWsDir = NEWUSERPATH.TRANSFERUSER.'/WS/';
25   -
26   - if (!is_dir(NEWUSERPATH.TRANSFERUSER.'/WS'))
27   - mkdir(NEWUSERPATH.TRANSFERUSER.'/WS', 0775);
28   -
29   - $this->ws_deleted = array();
30   - $this->wsd_deleted = array();
31   - $this->getModified();
32   - $this->getReprocessed();
33   - $this->getSpectra();
34   - }
35   -
36   - private function getObsolete() {
37   -
38   - $deletedXML = new DomDocument("1.0");
39   - $deletedXML->load(CONVERSIONDIR."Deleted.xml");
40   - $deletedNodes = $deletedXML->getElementsByTagName('deleted');
41   -
42   - $deleted = array();
43   - foreach ($deletedNodes as $node)
44   - $deleted[] = $node->getAttribute('xml:id');
45   -
46   - return $deleted;
47   - }
48   -
49   - private function getNotreadyFunctions() {
50   -
51   - $deletedXML = new DomDocument("1.0");
52   - $deletedXML->load(CONVERSIONDIR."Functions.xml");
53   - $deletedNodes = $deletedXML->getElementsByTagName('deleted');
54   -
55   - $notready = array();
56   - foreach ($deletedNodes as $node)
57   - $notready[] = $node->getAttribute('xml:id');
58   -
59   - return $notready;
60   - }
61   -
62   - private function getNotready() {
63   -
64   - $deletedXML = new DomDocument("1.0");
65   - $deletedXML->load(CONVERSIONDIR."NotReady.xml");
66   - $deletedNodes = $deletedXML->getElementsByTagName('deleted');
67   -
68   - $notready = array();
69   - foreach ($deletedNodes as $node)
70   - $notready[] = $node->getAttribute('xml:id');
71   -
72   - return $notready;
73   - }
74   -
75   - private function deleteParam($exp, $deleted)
76   - {
77   - $toDelete = false;
78   -
79   - if (count($deleted) > 0)
80   - foreach ($deleted as $item) {
81   - if (strpos($exp, $item) !== false) {
82   - $toDelete = true;
83   - break;
84   - }
85   - }
86   -
87   - return $toDelete;
88   - }
89   -
90   - private function getWs($exp)
91   - {
92   - $ws = array();
93   -
94   - if (strpos($exp, 'ws_') !== false) {
95   - $arr = $this->delimitIt($exp);
96   - foreach ($arr as $item) {
97   - if (strpos($item, 'ws_') !== false)
98   - $ws[] = substr($item,3);
99   - }
100   - return $ws;
101   - }
102   - return false;
103   - }
104   -
105   - private function delimitIt($chain) {
106   -
107   - $delimiter = '[]+,/*()^<>&|=[-]+';
108   - $array = split($delimiter,$chain);
109   - if (trim(end($array)) == "") array_pop($array);
110   -
111   - return $array;
112   - }
113   -
114   - private function getModified()
115   - {
116   - $convertXML = new DomDocument("1.0");
117   - $modifiedFile = CONVERSIONDIR.'Modified.xml';
118   -
119   - if (!$convertXML->load($modifiedFile))
120   - error_log('ERROR loading '.$modifiedFile,1,email);
121   - $convertedNodes = $convertXML->getElementsByTagName('param_convert');
122   -
123   - foreach ($convertedNodes as $item) {
124   - $pairs[$item->getAttribute('oldid')] = $item->getAttribute('xml:id');
125   - }
126   - krsort($pairs, SORT_NATURAL);
127   -
128   - $this->pairs = $pairs;
129   - }
130   -
131   - private function getReprocessed()
132   - {
133   - $convertXML = new DomDocument("1.0");
134   - $modifiedFile = CONVERSIONDIR.'PostProcess.xml';
135   -
136   - if (!$convertXML->load($modifiedFile))
137   - error_log('ERROR loading '.$modifiedFile,1,email);
138   - $convertedNodes = $convertXML->getElementsByTagName('param_convert');
139   -
140   - foreach ($convertedNodes as $item) {
141   - $pairs[$item->getAttribute('oldid')] = $item->getAttribute('xml:id');
142   - }
143   - krsort($pairs, SORT_NATURAL);
144   -
145   - $this->postPairs = $pairs;
146   - }
147   -
148   - private function getSpectra()
149   - {
150   - $convertXML = new DomDocument("1.0");
151   - $modifiedFile = CONVERSIONDIR.'SpectraModifs.xml';
152   -
153   - if (!$convertXML->load($modifiedFile))
154   - error_log('ERROR loading '.$modifiedFile,1,email);
155   - $convertedNodes = $convertXML->getElementsByTagName('deleted');
156   -
157   - foreach ($convertedNodes as $item) {
158   - $this->specParams[] = $item->getAttribute('xml:id');
159   - }
160   - }
161   -
162   - private function updateParams($expression)
163   - {
164   - $newExp = strtr($expression, $this->pairs);
165   - if (!empty($this->postPairs))
166   - $expFinal = strtr($newExp, $this->postPairs);
167   -
168   - return $expFinal;
169   - }
170   -
171   -
172   - protected function createDom()
173   - {
174   - $types = array('param' => 'derived', 'mydata' => 'myData');
175   -
176   - $rootElement = $this->newWs->createElement('ws');
177   - foreach ($types as $key => $value)
178   - {
179   - $contentId = $value.'Param-treeRootNode';
180   - $contentTag = $key.'List';
181   - $typeElement = $this->newWs->createElement($contentTag);
182   - $typeElement->setAttribute('xml:id', $contentId);
183   - $rootElement->appendChild($typeElement);
184   - }
185   -
186   - $this->newWs->appendChild($rootElement);
187   - $this->newWs->save($this->newWsDir.'WsParams.xml');
188   - }
189   -
190   - public function urlExists($url)
191   - {
192   - $handle = curl_init($url);
193   - curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
194   -
195   - $response = curl_exec($handle);
196   - $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
197   - curl_close($handle);
198   -
199   - if($httpCode >= 200 && $httpCode <= 400 || $httpCode == 403) {
200   - return true;
201   - } else {
202   - return false;
203   - }
204   - }
205   -
206   - public function checkWS()
207   - {
208   - // old ws
209   - if (!$this->urlExists(OLDUSERPATH.TRANSFERUSER)) {
210   - error_log('no '.TRANSFERUSER.' at old AMDA',1,email);
211   - return array('success' => false, 'error' => 'Sorry, it seems you have no account at old AMDA');
212   - }
213   -
214   - if (!$this->urlExists($this->oldWsDir)) {
215   - error_log('no ws.xml for '.TRANSFERUSER,1,email);
216   - return array('success' => false, 'error' => 'Sorry, we failed to find your workspace at old AMDA');
217   - }
218   -
219   - return array('success' => true);
220   - }
221   -
222   - public function transferDerived()
223   - {
224   - $msg = '<hr><br/><b><i>Derived Params:</i></b><br/><br/>';
225   - $msg .= '<i>Note</i> : Parameters made from Remote Base parameters are not copied <br/><br/>';
226   - if (!$this->oldWs->load($this->oldWsDir.'WsParams.xml')) {
227   - error_log('cannot load WsParams.xml for '.TRANSFERUSER,1,email);
228   - return array('success' => false, 'error' => 'Sorry, we failed to get your Derived Params from old AMDA');
229   - }
230   -
231   - if (!file_exists($this->newWsDir.'WsParams.xml'))
232   - $this->createDom();
233   - else
234   - $this->newWs->load($this->newWsDir.'WsParams.xml');
235   -
236   - $deleted = $this->getObsolete();
237   -
238   - $notready = $this->getNotready();
239   - $notreadyFunctions = $this->getNotreadyFunctions();
240   -
241   - $wsParamNode = $this->newWs->getElementsByTagName('paramList')->item(0);
242   -
243   - $wsParamsOld = $this->oldWs->getElementsByTagName('param');
244   -
245   - if ($wsParamsOld->length == 0) {
246   - return array('success' => true, 'msg' => 'No parameters');
247   - }
248   -
249   - $paramXml = new DomDocument("1.0");
250   -
251   - $msg .= 'Some expressions could have problems while being processed by new kernel <br/> - <b>Please send us feedback in this case.</b><br><br>Not copied derived parameters :<br/>';
252   -
253   - foreach ($wsParamsOld as $param) {
254   - $id = $param->getAttribute('xml:id');
255   - $name = $param->getAttribute('name');
256   -
257   - $expression = $param->getAttribute('buildchain');
258   -
259   - if ($this->deleteParam($expression,$deleted)) {
260   - $msg .= '<li><i>'.$name.'</i> : uses obsolete param<br/> '.$expression.'<br/>';
261   - // error_log( 'For INFO : DELETED '.$expression,1,email);
262   - $this->ws_deleted[] = $name;
263   - continue;
264   - }
265   -
266   - if ($this->deleteParam($expression,$notready)) {
267   - $msg .= '<li><i>'.$name.'</i> : uses param not ready yet <br/> '.$expression.'<br/>';
268   - // error_log( 'For INFO : DELETED '.$expression,1,email);
269   - $this->ws_deleted[] = $name;
270   - continue;
271   - }
272   -
273   - if ($this->deleteParam($expression,$notreadyFunctions)) {
274   - $msg .= '<li><i>'.$name.'</i> : uses function not ready yet <br/> '.$expression.'<br/>';
275   - // error_log( 'For INFO : DELETED '.$expression,1,email);
276   - $this->ws_deleted[] = $name;
277   - continue;
278   - }
279   -
280   - if (!empty($this->wsd_deleted))
281   - if ($this->deleteParam($expression,$this->wsd_deleted)) {
282   - $msg .= '<li><i>'.$name.'</i> : uses obsolete myData param<br/> '.$expression.'<br/>';
283   - // error_log( 'For INFO : DELETED '.$expression,1,email);
284   - $this->ws_deleted[] = $name;
285   - continue;
286   - }
287   -
288   - if ($this->deleteParam($expression,array("CDAWEB","MAPSKP","VEXGRAZ","IMPEX"))) {
289   - $msg .= '<li><i>'.$name.'</i> : uses remote params <br/> '.$expression.'<br/>';
290   - $this->ws_deleted[] = $name;
291   - continue;
292   - }
293   -
294   - if ($this->deleteParam($expression,$this->specParams)) {
295   - $msg .= '<li><i>'.$name.'</i> : too much difference <br/> '.$expression.'<br/>';
296   - $this->ws_deleted[] = $name;
297   - continue;
298   - }
299   -
300   - $expressionUpdated = $this->updateParams($expression);
301   -
302   - $wsParamNode->appendChild($this->newWs->importNode($param));
303   -
304   - $paramXml->load($this->oldWsDir.$id.'.xml');
305   - $expressionNode = $paramXml->getElementsByTagName('buildchain')->item(0);
306   - $expressionNode->nodeValue = $expressionUpdated;
307   - $paramXml->save($this->newWsDir.$id.'.xml');
308   -
309   - $nodeInWS = $this->newWs->getElementById($id);
310   - if ($nodeInWS) {
311   - $buildchain = $nodeInWS->getAttribute('buildchain');
312   - $buildchainUpdated = $this->updateParams($buildchain);
313   -
314   - $nodeInWS->setAttribute('buildchain',$buildchainUpdated);
315   - }
316   - }
317   -
318   - // check of 'ws bricks' were deleted
319   - $newParams = $this->newWs->getElementsByTagName('param');
320   - $xp = new domxpath($this->newWs);
321   - $paramsToRemove = array();
322   -
323   - foreach ($newParams as $param) {
324   - $id = $param->getAttribute('xml:id');
325   - $name = $param->getAttribute('name');
326   -
327   - $expression = $param->getAttribute('buildchain');
328   - if ($wsParams = $this->getWs($expression)) {
329   - foreach ($wsParams as $wsParam) {
330   - $res = $xp->query("//param[@name='".trim($wsParam)."']");
331   - if ($res->length == 0) {
332   - if (file_exists($this->newWsDir.$id.'.xml')) { // Delete only once
333   - unlink($this->newWsDir.$id.'.xml');
334   - $paramsToRemove[] = $param;
335   - $this->ws_deleted[] = $name;
336   - $msg .= '<li><i>'.$name.'</i> : uses obsolete / not ready ws param : <br/> '.$expression.'<br/>';
337   - }
338   - }
339   - }
340   - }
341   - }
342   -
343   - if (count($paramsToRemove) > 0)
344   - foreach ($paramsToRemove as $paramToRemove) {
345   - $paramToRemove->parentNode->removeChild($paramToRemove);
346   - }
347   -
348   - $this->newWs->save($this->newWsDir.'WsParams.xml');
349   - $copied = $newParams->length - count($paramsToRemove);
350   -
351   - $msg .= '<br/><i>Copied : </i>'.$copied.' derived parameters<br/><br/><hr>';
352   - return array('success' => true, 'msg' => $msg);
353   - }
354   -
355   - public function transferTimeTables()
356   - {
357   - $msg = '<b><i>Time Tables:</i></b><br/><br/>';
358   -
359   - // get old time tab list
360   - $this->newWs->load($this->oldWsDir.'Tt.xml');
361   - $timeTabs = $this->newWs->getElementsByTagName('timetab');
362   - if ($timeTabs->length == 0) {
363   - $msg .= 'No time tables';
364   - return array('success' => true, 'msg' => $msg);
365   - }
366   -
367   - $oldTtDir = OLDUSERPATH.TRANSFERUSER."/TT/";
368   - $newTtDir = NEWUSERPATH.TRANSFERUSER."/TT/";
369   - foreach ($timeTabs as $tab) {
370   - $id = $tab->getAttribute('xml:id');
371   - copy($oldTtDir.$id.'.xml', $newTtDir.$id.'.xml');
372   - }
373   -
374   - $this->newWs->save($this->newWsDir.'Tt.xml');
375   - $msg .= '<i>Copied : </i>'.$timeTabs->length.' time tables<br/><br/><hr>';
376   - return array('success' => true, 'msg' => $msg);
377   - }
378   -
379   - public function transferConditions()
380   - {
381   - $msg = '<b><i>Requests</i></b><br/><br/>';
382   - $msg .= '<i>Note :</i> Plot requests are not copied : too much difference between new and old AMDA versions<br/<br/><br/>';
383   - $oldRequestXml = new DomDocument("1.0");
384   - $newRequestXml = new DomDocument("1.0");
385   -
386   - if (!@$oldRequestXml->load($this->oldWsDir.'Request.xml')){
387   - $msg .= ' No Requests File<br/>';
388   - return array('success' => true, 'msg' => $msg);
389   - }
390   -
391   - $condNodes = $oldRequestXml->getElementsByTagName('condition');
392   - if ($condNodes->length == 0) {
393   - $msg .= ' no DataMining requests to copy<br/>';
394   - return array('success' => true, 'msg' => $msg);
395   - }
396   -
397   - if (!file_exists($this->newWsDir.'Request.xml')) {
398   - $types = array('request', 'condition');
399   -
400   - $rootElement = $newRequestXml->createElement('ws');
401   - foreach ($types as $type)
402   - {
403   - $contentId = $type.'-treeRootNode';
404   - $contentTag = $type.'List';
405   - $typeElement = $newRequestXml->createElement($contentTag);
406   - $typeElement->setAttribute('xml:id', $contentId);
407   - $rootElement->appendChild($typeElement);
408   - }
409   -
410   - $newRequestXml->appendChild($rootElement);
411   - }
412   - else
413   - $newRequestXml->load($this->newWsDir.'Request.xml');
414   -
415   - $conditionRoot = $newRequestXml->getElementsByTagName('conditionList')->item(0);
416   -
417   - $condDir = OLDUSERPATH.TRANSFERUSER."/REQ/";
418   -
419   - $deleted = $this->getObsolete();
420   - $notready = $this->getNotready();
421   - $msg .= 'Some expressions could have problems while being processed by new kernel <br/> - <b>Please send us feedback in this case.</b><br/><br>
422   - Not copied DataMining requests :<br/>';
423   -
424   - foreach ($condNodes as $condNode) {
425   - $id = $condNode->getAttribute('xml:id');
426   - $name = $condNode->getAttribute('name');
427   - $cond = file($condDir.$id, FILE_IGNORE_NEW_LINES);
428   -
429   - $condObj = json_decode($cond[0]);
430   - $expression = $condObj->expression;
431   - if ($this->deleteParam($expression, $deleted)) {
432   - $msg .= '<li><i>'.$name.'</i> : uses obsolete parameters<br/> '.$expression.'<br/>';
433   - $cond_deleted[] = $name;
434   - continue;
435   - }
436   -
437   - if ($this->deleteParam($expression,$notready)) {
438   - $msg .= '<li><i>'.$name.'</i> : uses param not ready yet<br/> '.$expression.'<br/>';
439   - // error_log( 'For INFO : DELETED '.$expression,1,email);
440   - $cond_deleted[] = $name;
441   - continue;
442   - }
443   -
444   - if (!empty($this->wsd_deleted))
445   - if ($this->deleteParam($expression,$this->wsd_deleted)) {
446   - $msg .= '<li><i>'.$name.'</i> : uses obsolete myData parameters<br/> '.$expression.'<br/>';
447   - // error_log( 'For INFO : DELETED '.$expression,1,email);
448   - $cond_deleted[] = $name;
449   - continue;
450   - }
451   -
452   - if (!empty($this->ws_deleted))
453   - if ($this->deleteParam($expression,$this->ws_deleted)) {
454   - $msg .= '<li><i>'.$name.'</i> : uses obsolete derived parameters<br/> '.$expression.'<br/>';
455   - // error_log( 'For INFO : DELETED '.$expression,1,email);
456   - $cond_deleted[] = $name;
457   - continue;
458   - }
459   -
460   - if ($this->deleteParam($expression,array("CDAWEB","MAPSKP","VEXGRAZ","IMPEX"))) {
461   - $msg .= '<li><i>'.$name.'</i> : uses remote params <br/> '.$expression.'<br/>';
462   - $cond_deleted[] = $name;
463   - continue;
464   - }
465   -
466   - if ($this->deleteParam($expression,$this->specParams)) {
467   - $msg .= '<li><i>'.$name.'</i> : too much difference <br/> '.$expression.'<br/>';
468   - $cond_deleted[] = $name;
469   - continue;
470   - }
471   - $expressionUpdated = $this->updateParams($expression);
472   - $condObj->expression = $expressionUpdated;
473   - file_put_contents(NEWUSERPATH.TRANSFERUSER."/REQ/".$id, json_encode($condObj));
474   - $conditionRoot->appendChild($newRequestXml->importNode($condNode));
475   - }
476   -
477   - $newRequestXml->save($this->newWsDir.'Request.xml');
478   -
479   - return array('success' => true, 'msg' => $msg);
480   - }
481   -
482   - public function transferMyData()
483   - {
484   - $msg = '<hr><b><i>MyData Parameters / My Files:</i></b><br/><br/>';
485   - $msg.= '<i>Note :</i> CEF format is not implemented<br/><br/>';
486   -
487   - if (!$this->oldWs->load($this->oldWsDir.'WsParams.xml')) {
488   - error_log('cannot load WsParams.xml for '.TRANSFERUSER,1,email);
489   - return array('success' => false, 'error' => 'Sorry, we failed to get your MyData Params from old AMDA');
490   - }
491   -
492   - if (!file_exists($this->newWsDir.'WsParams.xml'))
493   - $this->createDom();
494   - else
495   - $this->newWs->load($this->newWsDir.'WsParams.xml');
496   -
497   - $BaseXml = new DomDocument("1.0");
498   - $FilesXml = new DomDocument("1.0");
499   -
500   - // get old params
501   - $wsdParamsOld = $this->oldWs->getElementsByTagName('mydata');
502   -
503   - if ($wsdParamsOld->length == 0) {
504   - return array('success' => true, 'msg' => 'You have no MyData parameters');
505   - }
506   -
507   - if (!$BaseXml->load(OLDUSERPATH.TRANSFERUSER.'/DATA/base.xml')) {
508   - return array('success' => false, 'msg' => 'base description corrupted');
509   - }
510   -
511   - if (!$FilesXml->load($this->oldWsDir.'Files.xml')) {
512   - return array('success' => false, 'msg' => 'files description corrupted');
513   - }
514   -
515   - $this->newWs->load($this->newWsDir.'WsParams.xml');
516   - $paramDom = new DomDocument("1.0");
517   -
518   - $msg.= ' Not copied parameters : <br/>';
519   - foreach ($wsdParamsOld as $wsdParamOld) {
520   - $format = $wsdParamOld->getAttribute('format');
521   - $name = $wsdParamOld->getAttribute('name');
522   - $id = $wsdParamOld->getAttribute('xml:id');
523   - $mask = $wsdParamOld->getAttribute('mask');
524   - if ($format == 'cef') {
525   - $deletedVi[] = $mask;
526   - $msg .= '<li><i>'.$name.'</i><br/>';
527   - $this->wsd_deleted[] = 'wsd_'.$name;
528   - }
529   - else {
530   - $desc = $wsdParamOld->getAttribute('desc');
531   - $start = substr($desc,0,16).':00';
532   - $stop = substr($desc,17).':00';
533   - $wsdParamOld->setAttribute('desc', $start.'-'.$stop);
534   -
535   - $this->newWs->getElementsByTagName('mydataList')->item(0)->appendChild($this->newWs->importNode($wsdParamOld));
536   -
537   - $paramDom->load($this->oldWsDir.$id.'.xml');
538   - $descNode = $paramDom->getElementsByTagName('desc')->item(0);
539   - $descNode->nodeValue = $start.'-'.$stop;
540   - $paramDom->save($this->newWsDir.$id.'.xml');
541   -
542   - $fileFormat[$mask] = $format === 'txt' ? 'ASCII' : strtoupper($format);
543   - }
544   - }
545   -
546   - $this->newWs->save($this->newWsDir.'WsParams.xml');
547   -
548   - // First delete CEF files
549   - $xpBase = new domxpath($BaseXml);
550   - if (count($deletedVi) > 0)
551   - foreach ($deletedVi as $vi) {
552   - $maskNode = $xpBase->query("//mask[.='".$vi."']");
553   - if ( $maskNode->length == 0 )
554   - error_log('No '.$vi.' in '.TRANSFERUSER.'/DATA/base.xml',1,email);
555   - else {
556   - $viNode = $maskNode->item(0)->parentNode;
557   - $viNode->parentNode->removeChild($viNode);
558   - }
559   - }
560   - // Then modify base.xml : xml:id => id
561   - $viNodes = $BaseXml->getElementsByTagName('vi');
562   - foreach ($viNodes as $viNode) {
563   - $id = $viNode->getAttribute('xml:id');
564   - $viNode->removeAttribute('xml:id');
565   - $viNode->setAttribute('id',$id);
566   - $mask = $viNode->getElementsByTagName('mask')->item(0)->nodeValue;
567   - $viNode->setAttribute('format', $fileFormat[$mask]);
568   - }
569   -
570   - $BaseXml->save(NEWUSERPATH.TRANSFERUSER.'/DATA/base.xml');
571   -
572   - $msg .= 'Not copied files :<br/>';
573   -
574   - $filesNodes = $FilesXml->getElementsByTagName('file');
575   - foreach ($filesNodes as $file) {
576   - $fileName = $file->getAttribute('name');
577   - $format = $file->getAttribute('format');
578   - if ($format == 'cef') {
579   - $deletedFiles[] = $file->getAttribute('xml:id');
580   - }
581   - else {
582   - if (!@copy(OLDUSERPATH.TRANSFERUSER.'/DATA/'.$fileName,NEWUSERPATH.TRANSFERUSER.'/DATA/'.$fileName))
583   - $msg .= $fileName.'<br/>';
584   - }
585   - }
586   -
587   - if (count($deletedVi) > 0)
588   - foreach ($deletedVi as $vi) {
589   - $node = $BaseXml->getElementById($vi);
590   - if ($node) {
591   - $node->parentNode->removeChild($node);
592   - }
593   - }
594   -
595   -
596   - if (count($deletedFiles) > 0)
597   - foreach ($deletedFiles as $vi) {
598   - $node = $FilesXml->getElementById($vi);
599   - if ($node) {
600   - $msg .= '<li><i>'.$vi.'</i> <br/>';
601   - $node->parentNode->removeChild($node);
602   - }
603   - }
604   -
605   - $FilesXml->save($this->newWsDir.'Files.xml');
606   -
607   - return array('success' => true, 'msg' => $msg);
608   - }
609   -
610   - public function transferFilters()
611   - {
612   - $msg = '<hr><br/><br/><b><i>Filters:</i></b><br/><br/>';
613   -
614   - if (!curl_init($this->oldWsDir.'Filters.xml')) {
615   - return array('success' => true, 'msg' => 'No filters at old AMDA');
616   - }
617   -
618   - $filterXml = new DomDocument("1.0");
619   - if (!$filterXml->load($this->oldWsDir.'Filters.xml')) {
620   - return array('success' => false, 'error' => 'Cannot load filters from old AMDA');
621   - }
622   -
623   - $filterXml->save($this->newWsDir.'Filters.xml');
624   - $msg .= 'Filters have been copied</br>';
625   - return array('success' => true, 'msg' => $msg);
626   - }
627   -
628   - function sendMail($email, $msg)
629   - {
630   - $subject = 'Your workspace has been copied to new AMDA';
631   -
632   - $headers = "From: amda@irap.omp.eu " . "\r\n".
633   - "Reply-To: amda@irap.omp.eu " . "\r\n".
634   - "Content-type: text/html\r\n";
635   - $msg = "<html><b>Your Workspace has been copied to new AMDA</b><br/><br/>".$msg."</html>";
636   - mail($email, $subject, $msg, $headers);
637   - }
638   -}
639   -?>
640 0 \ No newline at end of file
php/config.php
... ... @@ -51,13 +51,6 @@ define(&#39;MAX_FILE_INDEX_TO_SHOW&#39;, 100);
51 51 // private key used to be considerate as a trust client for some functions of DD web service
52 52 define('DDSERVICE_PRIVATEKEY', '!%p856Dc');
53 53  
54   -
55   -// BATCH JOBS section
56   -//define('JOBTIMEOUT', '1'); // one cycle secs to sleep to allow job be executed
57   -//define('PLOT_CYCLES_NUMBER', 500); // cycles number for PNG
58   -//define('JOB_CYCLES_NUMBER', 5); // cycles number for all the jobs
59   -//define('TIMEOUT', '100'); //TODO secs wait before job is killed OR 'max_execution_time' - kill automatic?
60   -
61 54 // EPN-TAP services
62 55 define('EPNTAP_APIS', 'http://voparis-tap.obspm.fr/__system__/tap/run/tap/sync');
63 56 define('EPNTAP_AMDA', 'http://cdpp-epntap.irap.omp.eu/__system__/tap/run/tap/sync');
... ... @@ -157,7 +150,6 @@ $API = array(
157 150 'saveTTCacheIntervalsInTT'=>array('len'=>1),
158 151 'initObjectCache'=>array ('len'=>2),
159 152 'initObjectCacheFromObject'=>array('len'=>2),
160   - 'initForChart'=>array('len'=>5),
161 153 'initObjectCacheFromTmpObject'=>array('len'=>3),
162 154 'initObjectCacheFromUploadedFile'=>array('len'=>3),
163 155 'initObjectCacheFromCatalog'=>array('len'=>2),
... ... @@ -186,7 +178,6 @@ $API = array(
186 178 'resetFilter'=>array('len'=>0),
187 179 'logout'=>array('len'=>1),
188 180 'getUserInfo'=>array('len'=>0),
189   - 'convertWS'=>array('len'=>0),
190 181 'getRun'=>array('len'=>1),
191 182 'addRun'=>array('len'=>1),
192 183 //AKKA - New action to clean user WS
... ...
php/src/cdfsamplingfromdata.c
1   -/* $Id: cdf constant samplig from data $ */
  1 +/* $Id: cdf constant sampling from data $ */
2 2  
3 3 #include <stdio.h>
4 4 #include <stdlib.h>
... ... @@ -150,6 +150,5 @@ int main(int argc, char *argv[])
150 150 if ((cstatus = CDFlib(CLOSE_, CDF_, NULL_)) != CDF_OK)
151 151 cdf_handle_error (cstatus);
152 152  
153   - // fprintf(stdout,"%d %f\n",min[1], (float)min[0]/100.0);
154 153 fprintf(stdout,"%f\n",(float)sampling/10.0);
155 154 }
... ...
update_amda/cp2amda
... ... @@ -43,6 +43,7 @@ cp $NEWMETA/final/*.xml $PARAMS_LOCALDB_DIR
43 43 # if internal parameters not shown in the tree exist => copy them to AMDA Installation without processing
44 44 if [ -d "$AMDAINTERNALDIR/INTERNAL_PARAM_DEF" ]; then
45 45 cp $AMDAINTERNALDIR/INTERNAL_PARAM_DEF/* $PARAMS_LOCALDB_DIR
  46 + #cp $AMDAINTERNALDIR/INTERNAL_PARAM_DEF/*.xml $NEWMETA/final
46 47 fi
47 48  
48 49 # if special help exitsts => copy it to NEWMETA
... ...
update_amda/updateEnv.sh
... ... @@ -39,7 +39,7 @@ if [[ ${AMDAINTERNALDIR: -1} != &quot;/&quot; ]]; then
39 39 fi
40 40  
41 41 #SPASE Registry definitions
42   -export SPASE_REPO="http://amda-registry.irap.omp.eu/resolver"
  42 +export SPASE_REPO="http://amda-registry.irap.omp.eu/amda-registry/resolver"
43 43 #Remote SPASE Registry to get Person' Info
44 44 export SPASE_REMOTE="http://www.spase-group.org/smwg/resolver"
45 45 # for SPASE Registy MAJ
... ...