Changeset 597


Ignore:
Timestamp:
02/10/09 17:13:54 (13 years ago)
Author:
ramonb
Message:

job_monarch/js/monarch.js:

  • anti caching counter measures
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/web2/addons/job_monarch/js/monarch.js

    r595 r597  
    66var SearchField;
    77var filterButton;
     8
     9// Extra header to prevent browser caching
     10//
     11Ext.Ajax.defaultHeaders =
     12{
     13        'If-Modified-Since':    'Sat, 1 Jan 2005 00:00:00 GMT'
     14};
    815
    916// associative filter array
     
    359366        load:           function()
    360367                        {
    361                                 var url = this.url;
    362                                 var image = this.image;
    363                                 var loadEvent = this.loadEvent;
     368                                var url         = this.url;
     369                                var image       = this.image;
     370                                var loadEvent   = this.loadEvent;
    364371                                addListener( this.image, 'load',
    365372                                        function(e)
     
    445452function reloadClusterImage()
    446453{
    447         ClusterImageArgs['view'] = 'big-clusterimage';
    448 
    449         filt_url = makeArrayURL( myfilters );
    450         imag_url = makeArrayURL( ClusterImageArgs );
    451         img_url = './image.php?' + filt_url + '&' + imag_url;
    452 
    453         var newClusterImage = new ImageLoader( 'clusterimage', img_url );
    454         newClusterImage.loadEvent = function( url, image )
     454        ClusterImageArgs['view']        = 'big-clusterimage';
     455
     456        filt_url                        = makeArrayURL( myfilters );
     457        imag_url                        = makeArrayURL( ClusterImageArgs );
     458        img_url                         = './image.php?' + filt_url + '&' + imag_url;
     459
     460        var newClusterImage             = new ImageLoader( 'clusterimage', img_url );
     461        newClusterImage.loadEvent       = function( url, image )
    455462        {
    456463                ClusterImageWindow.getBottomToolbar().clearStatus( { useDefaults:true } );
     
    470477function resizeClusterImage()
    471478{
    472         var ci_height = document.getElementById( "clusterimage" ).height + ClusterImageWindow.getFrameHeight();
    473         var ci_width = document.getElementById( "clusterimage" ).width + ClusterImageWindow.getFrameWidth();
     479        var ci_height   = document.getElementById( "clusterimage" ).height + ClusterImageWindow.getFrameHeight();
     480        var ci_width    = document.getElementById( "clusterimage" ).width + ClusterImageWindow.getFrameWidth();
    474481
    475482        ClusterImageWindow.setSize( ci_width, ci_height );
     
    531538                if( fieldName == 'nodes' )
    532539                {
    533                         filterName = 'host';
    534                         fil_dis = 'nodesfilter';
    535                         fil_ena = 'nodesfilterenabled';
     540                        filterName      = 'host';
     541                        fil_dis         = 'nodesfilter';
     542                        fil_ena         = 'nodesfilterenabled';
    536543                }
    537544                if( inMyArrayKeys( myfilters, filterName ) )
     
    567574                }
    568575                JobListingWindow.setTitle( filter_str );
    569                 filter_title = true;
    570                 filter_str = myparams.c + ' Jobs Overview' + makeFilterString();
     576
     577                filter_title    = true;
     578                filter_str      = myparams.c + ' Jobs Overview' + makeFilterString();
    571579        }
    572580}
     
    574582function jobCellRender( value, metadata, record, rowindex, colindex, store )
    575583{
    576         var fieldName = JobsColumnModel.getColumnById( colindex ).dataIndex;
    577         var fil_dis = 'filter';
    578         var fil_ena = 'filterenabled';
    579         var filterName = fieldName;
     584        var fieldName   = JobsColumnModel.getColumnById( colindex ).dataIndex;
     585        var fil_dis     = 'filter';
     586        var fil_ena     = 'filterenabled';
     587        var filterName  = fieldName;
    580588
    581589        if( fieldName == 'owner' || fieldName == 'jid' || fieldName == 'status' || fieldName == 'queue' || fieldName == 'nodes' )
     
    583591                if( fieldName == 'nodes' )
    584592                {
    585                         fil_dis = 'nodesfilter';
    586                         fil_ena = 'nodesfilterenabled';
    587                         filterName = 'host';
     593                        fil_dis         = 'nodesfilter';
     594                        fil_ena         = 'nodesfilterenabled';
     595                        filterName      = 'host';
    588596                }
    589597                if( myfilters[filterName] != null )
    590598                {
    591                         metadata.css = fil_ena;
     599                        metadata.css    = fil_ena;
    592600                }
    593601                else
    594602                {
    595                         metadata.css = fil_dis;
     603                        metadata.css    = fil_dis;
    596604                }
    597605        }
     
    599607}
    600608
    601 JobProxy = new Ext.data.HttpProxy(
    602 {
    603         url:    'jobstore.php',
    604         method: 'POST'
     609var JobProxy = new Ext.data.HttpProxy(
     610{
     611        url:            'jobstore.php',
     612        method:         'POST'
    605613});
    606614
     
    613621                new Ext.data.JsonReader(
    614622                {
    615                         root: 'results',
    616                         totalProperty: 'total',
    617                         id: 'id'
     623                        root:           'results',
     624                        totalProperty:  'total',
     625                        id:             'id'
    618626                },
    619627                [
     
    634642        sortInfo:
    635643        {
    636                 field: 'jid',
    637                 direction: "DESC"
     644                field:          'jid',
     645                direction:      "DESC"
    638646        },
    639647        remoteSort: true,
     
    645653                        fn:
    646654
    647                         function()
    648                         {
     655                        function( myStore, myOptions )
     656                        {
     657                                // Add a (bogus) timestamp, to create a unique url and prevent browser caching
     658                                //
     659                                myStore.proxy.url       = 'jobstore.php?timestamp=' + new Date().getTime();
     660
    649661                                if( SearchField )
    650662                                {
     
    826838                {
    827839                        //id:           'NodesDataStore',
    828                         proxy:          JobProxy,
    829                         autoLoad:       false,
     840                        proxy:          new Ext.data.HttpProxy(
     841                        {
     842                                url:            'jobstore.php',
     843                                method:         'POST'
     844                        }),
     845                        autoLoad:       true,
    830846                        baseParams:
    831847                        {
    832                                 'task':         "GETNODES",
    833                                 'c':            cluster,
    834                                 'jid':          jid
     848                                'task':                 "GETNODES",
     849                                'c':                    cluster,
     850                                'jid':                  jid
    835851                        },
    836852                        reader: new Ext.data.JsonReader(
     
    847863                                {name: 'jr', type: 'string', mapping: 'jr'},
    848864                                {name: 'js', type: 'string', mapping: 'js'}
    849                         ])
     865                        ]),
     866                        listeners:
     867                        {
     868                                'beforeload':
     869                                {
     870                                        scope: this,
     871                                        fn:
     872
     873                                        function( myStore, myOptions )
     874                                        {
     875                                                // Add a (bogus) timestamp, to create a unique url and prevent browser caching
     876                                                //
     877                                                myStore.proxy.url       = 'jobstore.php?timestamp=' + new Date().getTime();
     878                                                //alert( myStore.proxy.url );
     879                                        }
     880                                }
     881                        }
     882
    850883                });
    851884
     
    866899                        //autoHeight:   true,
    867900                        autoShow:       true,
     901                        loadMask:       true,
    868902                        store:          store,
    869903                        layout:         'fit',
     
    897931                        tabWidth:       135,
    898932                        enableTabScroll:true,
    899                         defaults:       {autoScroll:true}
     933                        defaults:       {autoScroll:true},
     934                        view:           view,
     935                        listeners:
     936                        {
     937                                'tabchange':
     938                                {
     939                                        scope:  this,
     940                                        fn:     function( myTabPanel, tab )
     941                                                {
     942                                                        //myTabPanel.items[0].refresh();
     943                                                        //this.view.refresh();
     944                                                }
     945                                }
     946                        }
    900947                });
    901948
     
    10081055                        nodeDatastore   = createNodesDataStore( myparams.c, graphJids[w][t] );
    10091056                        graphView       = createGraphView( nodeDatastore, graphJids[w][t] );
     1057
     1058                        nodeDatastore.removeAll();
     1059
    10101060                        lastView        = myPanel.add( graphView );
    10111061
    1012                         nodeDatastore.load();
     1062                        //nodeDatastore.load();
    10131063                        myPanel.setActiveTab( lastView );
    10141064                }
     
    10491099                new Ext.PagingToolbar(
    10501100                {
    1051                         pageSize: 15,
    1052                         store: JobsDataStore,
    1053                         displayInfo: true,
    1054                         displayMsg: 'Displaying jobs {0} - {1} out of {2} jobs total found.',
    1055                         emptyMsg: 'No jobs found to display',
    1056                         plugins: [new Ext.ux.PageSizePlugin()]
     1101                        pageSize:       15,
     1102                        store:          JobsDataStore,
     1103                        displayInfo:    true,
     1104                        displayMsg:     'Displaying jobs {0} - {1} out of {2} jobs total found.',
     1105                        emptyMsg:       'No jobs found to display',
     1106                        plugins:        [ new Ext.ux.PageSizePlugin() ]
    10571107                }),
    10581108
     
    10861136                        new Ext.StatusBar(
    10871137                        {
    1088                                 defaultText: 'Ready.',
    1089                                 id: 'basic-statusbar',
    1090                                 defaultIconCls: ''
     1138                                defaultText:    'Ready.',
     1139                                id:             'basic-statusbar',
     1140                                defaultIconCls: ''
    10911141                        })
    10921142        });
Note: See TracChangeset for help on using the changeset viewer.