Add client-side routes to connect visualization edit controller endpoint with front-end form builder

This commit is contained in:
guerler
2017-09-23 18:18:41 -04:00
parent 52b100e6a2
commit a373bbbfe5
6 changed files with 18 additions and 10 deletions
+5
View File
@@ -47,6 +47,7 @@ window.app = function app( options, bootstrapped ){
'(/)workflow(/)' : 'show_workflows',
'(/)workflow/run(/)' : 'show_run',
'(/)pages(/)(:action_id)' : 'show_pages',
'(/)visualizations(/)edit(/)' : 'show_visualizations_edit',
'(/)visualizations/(:action_id)' : 'show_visualizations',
'(/)workflows/list_published(/)' : 'show_workflows_published',
'(/)histories(/)rename(/)' : 'show_histories_rename',
@@ -89,6 +90,10 @@ window.app = function app( options, bootstrapped ){
this.page.display( new GridShared.View( { action_id: action_id, plural: 'Visualizations', item: 'visualization' } ) );
},
show_visualizations_edit : function() {
this.page.display( new FormWrapper.View ( { url : 'visualization/edit?id=' + QueryStringParsing.get( 'id' ), redirect: 'visualizations/list' } ) );
},
show_workflows_published : function() {
this.page.display( new GridView( { url_base: Galaxy.root + 'workflow/list_published', dict_format: true } ) );
},
+1
View File
@@ -118,6 +118,7 @@ def paste_app_factory(global_conf, **kwargs):
webapp.add_client_route('/workflows/list_published')
webapp.add_client_route('/visualizations/list_published')
webapp.add_client_route('/visualizations/list')
webapp.add_client_route('/visualizations/edit')
webapp.add_client_route('/pages/list')
webapp.add_client_route('/pages/list_published')
webapp.add_client_route('/histories/list')
@@ -176,7 +176,7 @@ class VisualizationListGrid(grids.Grid):
operations = [
grids.GridOperation("Open", allow_multiple=False, url_args=get_url_args),
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("Edit Attributes", allow_multiple=False, url_args=dict(controller="", action='visualizations/edit')),
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), url_args=dict(action='sharing')),
grids.GridOperation("Delete", condition=(lambda item: not item.deleted), confirm="Are you sure you want to delete this visualization?"),
@@ -605,12 +605,14 @@ class VisualizationController(BaseUIController, SharableMixin, UsesVisualization
vis_annotation = annotation or vis_config.get('annotation', None)
return self.save_visualization(trans, vis_config, vis_type, vis_id, vis_title, vis_dbkey, vis_annotation)
@web.expose
@web.expose_api
@web.require_login("edit visualizations")
def edit(self, trans, id, visualization_title="", visualization_slug="", visualization_annotation=""):
def edit(self, trans, payload=None, **kwds):
"""
Edit a visualization's attributes.
"""
return {'title': 'test', 'inputs': []}
#, id, visualization_title="", visualization_slug="", visualization_annotation=""
visualization = self.get_visualization(trans, id, check_ownership=True)
session = trans.sa_session
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long