Skip to content

Commit

Permalink
Use dict format for saved visualizations grid
Browse files Browse the repository at this point in the history
  • Loading branch information
guerler committed Jul 13, 2017
1 parent 69d0e21 commit d079136
Show file tree
Hide file tree
Showing 11 changed files with 47 additions and 101 deletions.
11 changes: 8 additions & 3 deletions client/galaxy/scripts/apps/analysis.js
Expand Up @@ -11,6 +11,7 @@ var jQuery = require( 'jquery' ),
Tours = require( 'mvc/tours' ),
GridView = require( 'mvc/grid/grid-view' ),
PageList = require( 'mvc/page/page-list' ),
VisualizationList = require( 'mvc/visualization/visualization-list' ),
Workflows = require( 'mvc/workflow/workflow' ),
HistoryList = require( 'mvc/history/history-list' ),
WorkflowsConfigureMenu = require( 'mvc/workflow/workflow-configure-menu' ),
Expand Down Expand Up @@ -88,7 +89,7 @@ window.app = function app( options, bootstrapped ){
'(/)workflow(/)' : 'show_workflows',
'(/)workflow/run(/)' : 'show_run',
'(/)pages(/)(:action_id)' : 'show_pages',
'(/)visualizations/list_published(/)' : 'show_visualizations',
'(/)visualizations/(:action_id)' : 'show_visualizations',
'(/)workflows/list_published(/)' : 'show_workflows_published',
'(/)histories(/)(:action_id)' : 'show_histories',
'(/)datasets(/)list(/)' : 'show_datasets',
Expand Down Expand Up @@ -128,8 +129,12 @@ window.app = function app( options, bootstrapped ){
this.page.display( new UserPreferences.Forms( { form_id: form_id, user_id: Galaxy.params.id } ) );
},

show_visualizations : function() {
this.page.display( new GridView( { url_base: Galaxy.root + 'visualization/list_published', dict_format: true } ) );
show_visualizations : function( action_id ) {
if ( action_id == 'list' ) {
this.page.display( new VisualizationList.View() );
} else {
this.page.display( new GridView( { url_base: Galaxy.root + 'visualization/list_published', dict_format: true } ) );
}
},

show_workflows_published : function() {
Expand Down
2 changes: 1 addition & 1 deletion client/galaxy/scripts/layout/menu.js
Expand Up @@ -102,7 +102,7 @@ var Collection = Backbone.Collection.extend({
target : '_frame'
},{
title : _l('Saved Visualizations'),
url : 'visualization/list',
url : 'visualizations/list',
target : '_frame'
},{
title : _l('Interactive Environments'),
Expand Down
1 change: 1 addition & 0 deletions lib/galaxy/webapps/galaxy/buildapp.py
Expand Up @@ -110,6 +110,7 @@ def paste_app_factory( global_conf, **kwargs ):
webapp.add_client_route( '/workflow' )
webapp.add_client_route( '/workflows/list_published' )
webapp.add_client_route( '/visualizations/list_published' )
webapp.add_client_route( '/visualizations/list' )
webapp.add_client_route( '/pages/list' )
webapp.add_client_route( '/pages/list_published' )
webapp.add_client_route( '/histories/list' )
Expand Down
23 changes: 15 additions & 8 deletions lib/galaxy/webapps/galaxy/controllers/visualization.py
Expand Up @@ -178,7 +178,7 @@ def get_display_name( self, trans, item ):
grids.GridOperation( "Open in Circster", allow_multiple=False, condition=( lambda item: item.type == 'trackster' ), url_args=dict( action='circster' ) ),
grids.GridOperation( "Edit Attributes", allow_multiple=False, url_args=dict( action='edit'), target="inbound" ),
grids.GridOperation( "Copy", allow_multiple=False, condition=( lambda item: not item.deleted )),
grids.GridOperation( "Share or Publish", allow_multiple=False, condition=( lambda item: not item.deleted ), async_compatible=False ),
grids.GridOperation( "Share or Publish", allow_multiple=False, condition=( lambda item: not item.deleted ), url_args=dict( action='sharing' ) ),
grids.GridOperation( "Delete", condition=( lambda item: not item.deleted ), confirm="Are you sure you want to delete this visualization?" ),
]

Expand Down Expand Up @@ -219,7 +219,7 @@ def apply_query_filter( self, trans, query, **kwargs ):

class VisualizationController( BaseUIController, SharableMixin, UsesVisualizationMixin,
UsesAnnotations, UsesItemRatings ):
_user_list_grid = VisualizationListGrid()
_visualization_list_grid = VisualizationListGrid()
_published_list_grid = VisualizationAllPublishedGrid()
_history_datasets_grid = HistoryDatasetsSelectionGrid()
_library_datasets_grid = LibraryDatasetsSelectionGrid()
Expand Down Expand Up @@ -272,6 +272,7 @@ def list_published( self, trans, *args, **kwargs ):
return self._published_list_grid( trans, **kwargs )

@web.expose
@web.json
@web.require_login( "use Galaxy visualizations", use_panels=True )
def list( self, trans, *args, **kwargs ):

Expand All @@ -284,12 +285,15 @@ def list( self, trans, *args, **kwargs ):
item = session.query( model.Visualization ).get( self.decode_id( id ) )
if operation == "delete":
item.deleted = True
if operation == "share or publish":
return self.sharing( trans, **kwargs )
if operation == "copy":
self.copy( trans, **kwargs )
session.flush()

# Build grid
kwargs[ 'embedded' ] = True
kwargs[ 'dict_format' ] = True
grid = self._visualization_list_grid( trans, *args, **kwargs )

# Build list of visualizations shared with user.
shared_by_others = trans.sa_session \
.query( model.VisualizationUserShareAssociation ) \
Expand All @@ -299,9 +303,12 @@ def list( self, trans, *args, **kwargs ):
.order_by( desc( model.Visualization.update_time ) ) \
.all()

kwargs[ 'embedded' ] = True
grid = self._user_list_grid( trans, *args, **kwargs )
return trans.fill_template( "visualization/list.mako", embedded_grid=grid, shared_by_others=shared_by_others )
# Add sharing details to grid dictionary
grid[ 'shared_by_others' ] = [ {
'username' : v.visualization.user.username,
'slug' : v.visualization.slug,
'title' : v.visualization.title } for v in shared_by_others ]
return grid

#
# -- Functions for operating on visualizations. --
Expand Down Expand Up @@ -433,7 +440,7 @@ def sharing( self, trans, id, **kwargs ):

session.flush()

return trans.fill_template( "/sharing_base.mako", item=visualization, use_panels=True )
return trans.fill_template( "/sharing_base.mako", item=visualization, controller_list='visualizations', use_panels=True )

@web.expose
@web.require_login( "share Galaxy visualizations" )
Expand Down

0 comments on commit d079136

Please sign in to comment.