desktop.php 8.81 KB
<?php
 /**
 * @file index.php
 * @version $Id: desktop.php 2915 2015-05-19 10:34:38Z 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> 

   <!-- This extjs script is not automatically loaded (probably due to a bug on extjs 4) -->
    <!--   <script type="text/javascript" src="js/lib/ux/Browser.js"></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',
            'amdaModel'         : 'js/app/models',
            '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 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(tabId)
            {
                var msg = 'Processing...Please wait';  
                if (tabId)   
                    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 (tabId)
                {
                    var killBtn = Ext.get('killopBtn');
                    var multiPlotWin =  myDesktopApp.desktop.getWindow(amdaDesktop.InteractivePlotMgr.id);
                    // multiPlotWin was closed - single plot mode                   
                    if (!multiPlotWin) {
                        var tabIds = tabId;
                    }
                    else {
                        var multiCheckedTabs = multiPlotWin.items.items[0].checkedTabs;

                        if (multiCheckedTabs && multiCheckedTabs.length > 1) 
                            var tabIds = multiCheckedTabs; 
                        else 
                            var tabIds = tabId;
                    }
                    killBtn.on('click',function(e,t) {                     
                        AmdaAction.killPlotRequest({tabId : tabIds},function (result, e)
                        {
                            var t = e.getTransaction();
                            if (e.status)
                            { 
                                if (!result)
                                    myDesktopApp.errorMsg('Cannot kill process');
                            }
                            else
                                myDesktopApp.errorMsg(e.message);

                            var multiPlotWin =  myDesktopApp.desktop.getWindow(amdaDesktop.InteractivePlotMgr.id);
                            if (multiPlotWin && tabIds.length > 1)  
                                  multiPlotWin.items.items[0].checkBoxGroup.reset();
                            
                        },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>