diff --git a/lib/galaxy/web/controllers/requests_admin.py b/lib/galaxy/web/controllers/requests_admin.py
index 85f9f87fe83..fdd17f5a68c 100644
--- a/lib/galaxy/web/controllers/requests_admin.py
+++ b/lib/galaxy/web/controllers/requests_admin.py
@@ -231,6 +231,27 @@ class RequestsAdmin( BaseController ):
def index( self, trans ):
return trans.fill_template( "/admin/requests/index.mako" )
+ @web.json
+ def sample_state_updates( self, trans, ids=None, states=None ):
+ # Avoid caching
+ trans.response.headers['Pragma'] = 'no-cache'
+ trans.response.headers['Expires'] = '0'
+ # Create new HTML for any that have changed
+ rval = {}
+ if ids is not None and states is not None:
+ ids = map( int, ids.split( "," ) )
+ states = states.split( "," )
+ for id, state in zip( ids, states ):
+ sample = trans.sa_session.query( self.app.model.Sample ).get( id )
+ if sample.current_state().name != state:
+ rval[id] = {
+ "state": sample.current_state().name,
+ "datasets": len(sample.dataset_files),
+ "html_state": unicode( trans.fill_template( "requests/sample_state.mako", sample=sample ), 'utf-8' ),
+ "html_datasets": unicode( trans.fill_template( "requests/sample_datasets.mako", trans=trans, sample=sample ), 'utf-8' )
+ }
+ return rval
+
@web.expose
@web.require_admin
def list( self, trans, **kwd ):
diff --git a/templates/admin/requests/show_request.mako b/templates/admin/requests/show_request.mako
index 37a49299588..decb70cd9e7 100644
--- a/templates/admin/requests/show_request.mako
+++ b/templates/admin/requests/show_request.mako
@@ -1,5 +1,7 @@
<%inherit file="/base.mako"/>
<%namespace file="/message.mako" import="render_msg" />
+<%namespace file="/requests/sample_state.mako" import="render_sample_state" />
+<%namespace file="/requests/sample_datasets.mako" import="render_sample_datasets" />
%if msg:
${render_msg( msg, messagetype )}
@@ -42,6 +44,54 @@ $(document).ready(function(){
});
+
+