Ignore:
Timestamp:
02/04/09 14:52:03 (15 years ago)
Author:
ramonb
Message:

job_monarch/js/jobgrid.js:

  • add a (delector) filter menu (button)
File:
1 edited

Legend:

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

    r581 r583  
    55var JobProxy;
    66var SearchField;
     7var filterButton;
    78var myfilters = { };
    89var myparams = { };
     
    1112
    1213var filterfields = [ "jid", "queue", "name", "owner" ];
     14
     15var filterMenu = new Ext.menu.Menu({
     16    id: 'filterMenu',
     17    items: [ new Ext.menu.Item({ text: 'Clear all', handler: clearFilters }) ]
     18});
     19
     20var filterButton = new Ext.MenuButton({
     21                        id: 'filtermenuknop',
     22                        text: 'Filters',
     23                        menu: filterMenu
     24                });
    1325
    1426Ext.namespace('Ext.ux');
     
    5668Ext.namespace( 'Ext' );
    5769
     70function clearFilters()
     71{
     72        if( inMyArrayKeys( myfilters, 'host' ) )
     73        {
     74                delete myfilters['host'];
     75                delete myparams['host'];
     76        }
     77        if( inMyArrayKeys( myfilters, 'jid' ) )
     78        {
     79                delete myfilters['jid'];
     80                delete myparams['jid'];
     81        }
     82        if( inMyArrayKeys( myfilters, 'queue' ) )
     83        {
     84                delete myfilters['queue'];
     85                delete myparams['queue'];
     86        }
     87        if( inMyArrayKeys( myfilters, 'owner' ) )
     88        {
     89                delete myfilters['owner'];
     90                delete myparams['owner'];
     91        }
     92        if( inMyArrayKeys( myfilters, 'status' ) )
     93        {
     94                delete myfilters['status'];
     95                delete myparams['status'];
     96        }
     97        reloadJobStore();
     98}
     99
    58100function makeArrayURL( somearr )
    59101{
     
    94136  }
    95137  return false;
     138}
     139
     140function ArraySize( arr )
     141{
     142  count = 0;
     143
     144  for( arkey in arr )
     145  {
     146    count = count + 1;
     147  }
     148
     149  return count;
    96150}
    97151
     
    236290  ci_x = (window.innerWidth - ClusterImageWindow.getSize()['width'] - 20);
    237291  ClusterImageWindow.setPosition( ci_x, 10 );
     292}
     293
     294function deselectFilterMenu( menuItem, event )
     295{
     296  filterValue = menuItem.text;
     297
     298  for( arkey in myfilters )
     299  {
     300    if( myfilters[arkey] == filterValue )
     301    {
     302      delete myfilters[arkey];
     303      delete myparams[arkey];
     304    }
     305  }
     306  reloadJobStore();
     307}
     308
     309function makeFilterMenu()
     310{
     311  var filterMenu = new Ext.menu.Menu({
     312      id: 'filterMenu',
     313      items: [ new Ext.menu.Item({ text: 'Clear all', handler: clearFilters }) ]
     314  });
     315
     316  if( ArraySize( myfilters ) > 0 )
     317  {
     318    filterMenu.addSeparator();
     319  }
     320
     321  for( arkey in myfilters )
     322  {
     323    filterMenu.add( new Ext.menu.CheckItem({ text: myfilters[arkey], handler: deselectFilterMenu, checked: true }) );
     324  }
     325
     326  if( filterButton )
     327  {
     328    filterButton.menu = filterMenu;
     329  }
    238330}
    239331
     
    431523                                                delete myparams['query'];
    432524                                        }
    433                                 }
    434                         }
    435                 },
    436                 'load':
    437                 {
    438                         scope: this,
    439                         fn: function()
    440                         {
    441                                 if( SearchField )
    442                                 {
    443                                         search_value = SearchField.getEl().dom.value;
    444 
    445                                         if( search_value != '' )
     525                                        else
    446526                                        {
    447527                                                myfilters['query']      = search_value;
    448528                                        }
    449529
     530                                        makeFilterMenu();
    450531                                        reloadClusterImage();
    451532
    452533                                        filter_str = myparams.c + ' Jobs Overview' + makeFilterString();
    453534                                        JobListingWindow.setTitle( filter_str );
    454 
    455                                         if( search_value != '' )
    456                                         {
    457                                                 delete myfilters['query'];
    458                                         }
    459535                                }
    460536                        }
    461                 }
     537                } //,
     538                //'load':
     539                //{
     540                //      scope: this,
     541                //      fn: function()
     542                //      {
     543                //              if( SearchField )
     544                //              {
     545                //                      search_value = SearchField.getEl().dom.value;
     546
     547                //                      if( search_value != '' )
     548                //                      {
     549                //                              myfilters['query']      = search_value;
     550                //                      }
     551
     552                //                      reloadClusterImage();
     553
     554                //                      filter_str = myparams.c + ' Jobs Overview' + makeFilterString();
     555                //                      JobListingWindow.setTitle( filter_str );
     556
     557                //                      if( search_value != '' )
     558                //                      {
     559                //                              delete myfilters['query'];
     560                //                      }
     561                //              }
     562                //      }
     563                //}
    462564        }
    463565    });
     
    698800}
    699801
     802
    700803  JobListingEditorGrid =  new Ext.grid.EditorGridPanel({
    701804      id: 'JobListingEditorGrid',
     
    728831                                }
    729832                        }),
    730                 new Ext.Button({
    731                                 text: 'Clear filters',
    732                                 tooltip: 'Clear all jobs filters',
    733                                 iconCls: 'remove',
    734                                 listeners: {
    735                                         'click': {
    736                                                 scope: this,
    737                                                 fn: function()
    738                                                 {
    739                                                         if( inMyArrayKeys( myfilters, 'host' ) )
    740                                                         {
    741                                                                 delete myfilters['host'];
    742                                                                 delete myparams['host'];
    743                                                         }
    744                                                         if( inMyArrayKeys( myfilters, 'jid' ) )
    745                                                         {
    746                                                                 delete myfilters['jid'];
    747                                                                 delete myparams['jid'];
    748                                                         }
    749                                                         if( inMyArrayKeys( myfilters, 'queue' ) )
    750                                                         {
    751                                                                 delete myfilters['queue'];
    752                                                                 delete myparams['queue'];
    753                                                         }
    754                                                         if( inMyArrayKeys( myfilters, 'owner' ) )
    755                                                         {
    756                                                                 delete myfilters['owner'];
    757                                                                 delete myparams['owner'];
    758                                                         }
    759                                                         if( inMyArrayKeys( myfilters, 'status' ) )
    760                                                         {
    761                                                                 delete myfilters['status'];
    762                                                                 delete myparams['status'];
    763                                                         }
    764                                                         reloadJobStore();
    765                                                 }
    766                                         }
    767                                 }
    768                         }) ]
     833                filterButton ]
    769834    });
    770835
Note: See TracChangeset for help on using the changeset viewer.