AmdaTimeObject.js 3.85 KB
/**
 * Project      : AMDA-NG
 * Name         : AmdaTimeObject.js
 * Description  : Base Amda Business Object Definition
 * @class amdaModel.AmdaTimeObject
 * @extends amdaModel.AmdaObject
 * 
 * @author elena
 * @version $Id: AmdaTimeObject.js 1534 2013-05-24 13:30:26Z myriam $ 
 * @todo Validations
 */


Ext.define('amdaModel.TTobject', {
     extend: 'amdaModel.AmdaObject',

     fields : [
         {name: 'nodeType', type: 'string'}
     ],
     
     getJsonValues : function () {
         var values  = new Object();
         values.timeTableName = this.get('name');
         values.id = this.get('id');
         values.nodeType = this.get('nodeType');
         return values;
     }
}); 

Ext.define('amdaModel.AmdaTimeObject', {	
    extend: 'amdaModel.AmdaObject',    
    statics:{
        inputTimeSrc: ['TimeTable','Interval','Catalog']
    },
    fields : [
        { name: 'resultId', type: 'string'}, 
        { name: 'folderId', type: 'string'}, 
        { name: 'processId', type: 'string'},
        { name: 'timesrc', type: 'string'/*, defaultValue: amdaModel.AmdaTimeObject.inputTimeSrc[1] /*'Interval'*/ },
        { 
            name: 'startDate', 
            type: 'date', 
            defaultValue:Ext.Date.add(Ext.Date.clearTime(new Date()),Ext.Date.DAY,-1),
            convert: function(value,rec) {
                if (!Ext.isDate(value)) {
                    var valueString = new String(value).replaceAll('\/','\-');
                    var date = new Date(valueString);
                        return date;
                }
                return value;
            }
        },
        { 
            name: 'stopDate', 
            type: 'date', 
            defaultValue: Ext.Date.clearTime (new Date()), persist: false, 
           convert: function(value,rec) {
                if (!Ext.isDate(value)) {
                    var valueString = new String(value).replaceAll('\/','\-');
                    var date = new Date(valueString);
                        return date;
                }
                return value;
            }
        }, 
        { 
            name: 'durationDay', type: 'int',  
            convert: function(value, rec) {
                var zoneOffset = rec.get('stopDate').getTimezoneOffset() - rec.get('startDate').getTimezoneOffset();
                
                return Ext.String.leftPad(Math.floor((rec.get('stopDate') - rec.get('startDate') - zoneOffset*60000)/86400000),4,'0');      
            }
        }, 
        { 
            name: 'durationHour', type: 'int',  
            convert: function(value, rec) {
                var zoneOffset = rec.get('stopDate').getTimezoneOffset() - rec.get('startDate').getTimezoneOffset(); 
                var diffH = (rec.get('stopDate') - rec.get('startDate') - zoneOffset*60000)/3600000 % 24;
                
                return Ext.String.leftPad(Math.floor(diffH), 2, '0');      
            }
        }, 
        { 
            name: 'durationMin', type: 'int',  
            convert: function(value, rec) {
                var diffM = (rec.get('stopDate') - rec.get('startDate'))/60000 % 60;
                
                return Ext.String.leftPad(Math.floor(diffM), 2, '0');      
            }
        },
        { 
            name: 'durationSec', type: 'int',  
            convert: function(value, rec) {
                var diffS = (rec.get('stopDate') - rec.get('startDate'))/1000 % 60;
                
                return Ext.String.leftPad(Math.floor(diffS), 2, '0');      
            }
        },
          { 
            name: 'durationMs', type: 'int',  
            convert: function(value, rec) {
                var diffS = (rec.get('stopDate') - rec.get('startDate'))%1000;
                
                return Ext.String.leftPad(Math.floor(diffS), 3, '0');      
            }
        },
        { name: 'timeTables', defaultValue: null }    // array of TTobject
    ]
});