Index: /trunk/web2/addons/job_monarch/image.php
===================================================================
--- /trunk/web2/addons/job_monarch/image.php	(revision 562)
+++ /trunk/web2/addons/job_monarch/image.php	(revision 563)
@@ -57,4 +57,5 @@
 $view = $httpvars->getHttpVar( "view" );
 $host = $httpvars->getHttpVar( "host" );
+$query = $httpvars->getHttpVar( "query" );
 $clustername = $httpvars->getClusterName();
 
@@ -64,4 +65,5 @@
 if( isset($queue) && ($queue!='')) $filter[queue]=$queue;
 if( isset($host) && ($host!='')) $filter[host]=$host;
+if( isset($query) && ($query!='')) $filter[query]=$query;
 //printf("host = %s\n", $filter[host] );
 
@@ -135,4 +137,7 @@
 					$ic->setFilter( 'host', $filtervalue);
 					break;
+				case "query":
+					$ic->setFilter( 'query', $filtervalue);
+					break;
 				default:
 					break;
Index: /trunk/web2/addons/job_monarch/jobstore.php
===================================================================
--- /trunk/web2/addons/job_monarch/jobstore.php	(revision 562)
+++ /trunk/web2/addons/job_monarch/jobstore.php	(revision 563)
@@ -110,4 +110,18 @@
 			{
 				$searchresults[$jobid]	= $jobattrs;
+			}
+			if( is_array( $jobattrs['nodes'] ) )
+			{
+				foreach( $jobattrs['nodes'] as $jattr )
+				{
+					if( strpos( $jattr, $query ) !== false )
+					{
+						$searchresults[$jobid]  = $jobattrs;
+					}
+				}
+			}
+			if( strpos( $jobid, $query ) !== false )
+			{
+				$searchresults[$jobid]  = $jobattrs;
 			}
 		}
Index: /trunk/web2/addons/job_monarch/js/jobgrid.js
===================================================================
--- /trunk/web2/addons/job_monarch/js/jobgrid.js	(revision 562)
+++ /trunk/web2/addons/job_monarch/js/jobgrid.js	(revision 563)
@@ -336,4 +336,6 @@
                 method: 'POST'
             });
+
+  var SearchField;
 
   JobsDataStore = new Ext.data.Store({
@@ -361,5 +363,26 @@
       ]),
       sortInfo: { field: 'jid', direction: "DESC" },
-      remoteSort: true
+      remoteSort: true,
+      listeners: { 'load': {
+      			scope: this,
+			fn: function() {
+					if( SearchField ) {
+						search_value = SearchField.getEl().dom.value;
+
+						if( search_value != '' )
+						{
+							myfilters['query']	= search_value;
+						}
+
+						reloadClusterImage();
+
+						if( search_value != '' )
+						{
+							delete myfilters['query'];
+						}
+					}
+				}
+			}
+		}
     });
    
@@ -467,4 +490,10 @@
 
   var win;
+
+  SearchField	= new Ext.app.SearchField({
+		                store: JobsDataStore,
+				params: {start: 0, limit: mylimit},
+		                width: 200
+		    });
 
   JobListingEditorGrid =  new Ext.grid.EditorGridPanel({
@@ -486,9 +515,5 @@
 		plugins: [new Ext.ux.PageSizePlugin()]
             }),
-      tbar: [ new Ext.app.SearchField({
-		                store: JobsDataStore,
-				params: {start: 0, limit: mylimit},
-		                width: 200
-		    }),
+      tbar: [ SearchField,
 		new Ext.Button({
 				text: 'Show nodes',
@@ -511,6 +536,5 @@
 					}
 				}
-			})
-      ]
+			}) ]
     });
 
Index: /trunk/web2/addons/job_monarch/libtoga.php
===================================================================
--- /trunk/web2/addons/job_monarch/libtoga.php	(revision 562)
+++ /trunk/web2/addons/job_monarch/libtoga.php	(revision 563)
@@ -1363,4 +1363,34 @@
 									}
 								}
+								if( $filtername == 'query' )
+								{
+									foreach( $jobs[$myjob] as $myj_attr => $myj_val )
+									{
+										if(!is_array( $myj_val ) )
+										{
+											if( strpos( $myj_val, $filtervalue ) !== false )
+											{
+												$addhost = 1;
+												continue;
+											}
+										}
+										else
+										{
+											foreach( $myj_val as $myj_v )
+											{
+												if( strpos( $myj_v, $filtervalue ) !== false )
+												{
+													$addhost = 1;
+													continue;
+												}
+											}
+										}
+										if( strpos( $myjob, $filtervalue ) !== false )
+										{
+											$addhost	= 1;
+											continue;
+										}
+									}
+								}
 							}
 						}
