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(){ }); + +