desktop.php 7.87 KB
<?php
 /**
 * @file index.php
 * @version $Id: desktop.php 2934 2015-06-03 13:23:22Z elena $
 *
 */
 
 
  require_once('php/config.php');

  // error_reporting(E_ALL);
  if (!isset($_POST['username'])) die('<a href="index.html">LOGIN SVP</a>');
 
  $usrMgr = new UserMgr();
  $sessionID = $usrMgr->init();
 
 //AKKA - Delete immediate results is now done in AmdaApp.js
 //       ToDo : do the same mechanism for simu files and simuparams
//delete immediate results if logout was not proper  
  //$jobsMgr = new JobsMgr();
  //$jobsMgr->deleteTmp();
//delete simu files & clean simuparams in base.xml and WSparam.xml  
  $myBaseMgr = new BaseManager();
  $myBaseMgr->delSimuFiles("mywsrdata"); 
  $myBaseMgr->delSimuFiles("mysimudata");
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="PRAGMA" content="NO-CACHE">
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE">
    <meta http-equiv="EXPIRES" content="-1">

    <title>AMDA-NG4/Migration Step - Virtual Desktop Application</title>

    <link rel="stylesheet" type="text/css" href="js/resources/css/desktop.css" />
    <link rel="stylesheet" type="text/css" href="js/resources/css/amda.css" />
    <link rel="stylesheet" type="text/css" href="js/lib/ext/resources/css/ext-all.css" />
    <link rel="icon" href="favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
    
<!--     <script type="text/javascript" src="js/lib/ext/builds/ext-core.js"></script> -->
<!--     <script type="text/javascript" src="js/lib/ext/bootstrap.js"></script> -->
<!--    <script type="text/javascript" src="js/lib/ext/ext-all-debug-w-comments.js"></script>--> 
	<script type="text/javascript" src="js/lib/ext/ext-all.js"></script>   
<!--	<script type="text/javascript" src="js/lib/ext/ext-all-dev.js"> -->
    <script type="text/javascript" src="js/lib/ext-override.js"></script>


	
<!-- Direct API -->
    <script type="text/javascript" src="php/api.php"></script> 

  
  <!--  <script src="help/movies/Resources/scripts/prototype.js" language="JavaScript" type="text/javascript"></script>
    <script src="help/movies/Resources/scripts/qtp_poster.js" language="JavaScript" type="text/javascript"></script>          
    <link href="help/movies/Resources/stylesheets/qtp_poster.css" rel="StyleSheet" type="text/css" /> --->


    <script type="text/javascript">
    //Enable dynamic loading for improved debugging support
        Ext.Loader.setConfig({enabled: true});
 
        Ext.Loader.setPath({
            'Ext'               : 'js/lib/ext/src',
            'Ext.ux.desktop'    : 'js/lib/ux/desktop',
            'Ext.ux'            : 'js/lib/ext/examples/ux',
            'MyDesktop'         : 'js/lib/ux/desktop/exampleModules',
            'extensions'        : 'js/lib/ux',
            'Ext.ux.amdaGrid'   : 'js/lib/ux/grid',
            'samp'              : 'js/lib/SAMP',
            'amdaDesktop'       : 'js/app/controllers',
            'amdaUI'            : 'js/app/views',
            'amdaPlotComp'      : 'js/app/views/PlotComponents',
            'amdaModel'         : 'js/app/models',
            'amdaPlotObj'       : 'js/app/models/PlotObjects',
            'amdaReader'        : 'js/app/stores',
            'amdaApp'           : 'js/app'
        });

        Ext.require('amdaDesktop.AmdaStateProvider');
        Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);

        Ext.require('amdaDesktop.JobsMgr');
        Ext.require('amdaApp.AmdaApp');

        var myDesktopApp;
 
        var sessionID = '<?php echo $sessionID; ?>';
        var isFirstVisit =  '<?php echo $usrMgr->isFirst; ?>';
        var isSpecialInfo =  '<?php echo $usrMgr->isSpecialInfo; ?>';
        var isNewInfo =  '<?php echo $usrMgr->isNewInfo; ?>'; 
        var news = '../data/' + sessionID + '/INFO';

        var AMDAVERSION =  '<?php if (defined('AMDA_VERSION')) echo AMDA_VERSION;?>';
 
        var wsSize =  '<?php echo $usrMgr->getWsSize(); ?>';
        var diskQuota = '<?php echo DISK_QUOTA; ?>';

        var freeSpace = diskQuota - wsSize;

        var helpDir = 'help/';
        var isGuest = sessionID.match('guest');

        var guestSessionDuration = '<?php echo GuestSessionDuration*60; ?>'; // in secs
        var maxGuestTimeInterval = '<?php echo MaxGuestTimeInterval; ?>';    // in days
 
        //create mask class (LoadMask for elements has been deprecated, use Ext.dom.Element.mask & Ext.dom.Element.unmask)
        var AMDAMask = new Ext.Class({
            show : function(interactivePlot)
            {
                var msg = 'Processing...Please wait';  
                if (interactivePlot)   
                    msg += ' <br/> <p align="center"><input id="killopBtn" type="button" value="Kill process" /></p>';

                var mask = Ext.getBody().mask(msg);

                mask.dom.style.zIndex = '99998';
 
                var maskMsg = Ext.DomQuery.select('div[class=x-mask-msg]');
                if (maskMsg)
                    maskMsg = maskMsg[0];
    
                if (maskMsg)
                    maskMsg.style.zIndex = '99999';
                if (interactivePlot)
                {
					var killBtn = Ext.get('killopBtn');
                    killBtn.on('click',function(e,t) {                     
                        AmdaAction.killPlotRequest(function (result, e)
                        {
                            var t = e.getTransaction();
                            if (e.status)
                            { 
                                if (!result)
                                    myDesktopApp.errorMsg('Cannot kill process');
                            }
                            else
                                myDesktopApp.errorMsg(e.message);

                        },this);  
                   
                    },
                    this);

                }
            },
            hide : function()
            {
                Ext.getBody().unmask();
                this.tid = null;
            },
            isMasked : function()
            {
                return Ext.getBody().isMasked();
            }
        });
 
        var loadMask;

        Ext.onReady(function () { 
            //TODO update jobsStatus onLogin             
            Ext.Ajax.extraParams = {sessionID : sessionID};
            Ext.Ajax.timeout = 600000;
            Ext.Ajax.on('requestexception', function(conn, response, options, e) {                   
                if (loadMask && loadMask.isMasked())
                    loadMask.hide();
               if (response && response.statusText)
                    myDesktopApp.errorMsg(response.statusText);
                else
                    myDesktopApp.errorMsg('Communication failure');
                });
            // backspace key disable           
            Ext.EventManager.on(window, 'keydown', function(e, t) {
                if (e.getKey() == e.BACKSPACE && ((!/^input$/i.test(t.tagName) && !/^textarea$/i.test(t.tagName)) || t.disabled || t.readOnly)) {
                     e.stopEvent();
                }
            });

            var stateProvider = Ext.create('amdaDesktop.AmdaStateProvider');

            stateProvider.on({
                scope: this,
                afterrestore: function(provider)
                {
                    amdaDesktop.JobsMgr.getStatus(); 	    
                    Ext.state.Manager.setProvider(provider);
                    myDesktopApp = new amdaApp.AmdaApp(); 
                    // global message bus
                    myDesktopApp.EventManager = new Ext.util.Observable();
                    // not needed - for documentation only
                    myDesktopApp.EventManager.addEvents('refresh');
                    loadMask = new AMDAMask();
                }
            });

            stateProvider.restoreState();
        });
    </script>
</head>
<body/> 
</html>