Loading lib/galaxy/datatypes/genetics.py +2 −7 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ from galaxy.util import ( unicodify, ) from galaxy.util.compression_utils import FileObjType from .util.generic_util import display_as_url gal_Log = logging.getLogger(__name__) verbose = False Loading Loading @@ -121,13 +122,7 @@ class GenomeGraphs(Tabular): action="display_at", filename=f"ucsc_{site_name}", ) display_url = "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) display_url = quote_plus(display_url) display_url = display_as_url(app, base_url, str(dataset.id), type) # was display_url = quote_plus( "%s/display_as?id=%i&display_app=%s" % (base_url, dataset.id, type) ) # redirect_url = quote_plus( "%sdb=%s&position=%s:%s-%s&hgt.customText=%%s" % (site_url, dataset.dbkey, chrom, start, stop) ) sl = [ Loading lib/galaxy/datatypes/interval.py +4 −27 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ from . import ( data, dataproviders, ) from .util.generic_util import display_as_url log = logging.getLogger(__name__) Loading Loading @@ -345,15 +346,7 @@ class Interval(Tabular): action="display_at", filename="ucsc_" + site_name, ) display_url = quote_plus( "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) ) display_url = display_as_url(app, base_url, str(dataset.id), type) redirect_url = quote_plus(f"{site_url}db={dataset.dbkey}&position={chrom}:{start}-{stop}&hgt.customText=%s") link = f"{internal_url}?redirect_url={redirect_url}&display_url={display_url}" ret_val.append((site_name, link)) Loading Loading @@ -783,15 +776,7 @@ class _RemoteCallMixin: """ internal_url = f"{app.url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename=f'{type}_{site_name}')}" base_url = app.config.get("display_at_callback", base_url) display_url = quote_plus( "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) ) display_url = display_as_url(app, base_url, str(dataset.id), type) link = f"{internal_url}?redirect_url={redirect_url}&display_url={display_url}" return link Loading Loading @@ -1566,15 +1551,7 @@ class CustomTrack(Tabular): for site_name, site_url in app.datatypes_registry.get_legacy_sites_by_build("ucsc", dataset.dbkey): if site_name in app.datatypes_registry.get_display_sites("ucsc"): internal_url = f"{app.url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename='ucsc_' + site_name)}" display_url = quote_plus( "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) ) display_url = display_as_url(app, base_url, str(dataset.id), type) redirect_url = quote_plus( f"{site_url}db={dataset.dbkey}&position={chrom}:{start}-{stop}&hgt.customText=%s" ) Loading lib/galaxy/datatypes/util/generic_util.py +20 −0 Original line number Diff line number Diff line from urllib.parse import ( quote_plus, urlencode, urljoin, ) from galaxy.util import commands Loading @@ -16,3 +22,17 @@ def count_special_lines(word, filename, invert=False): except commands.CommandLineException: return 0 return int(out) def display_as_url(app, base_url: str, dataset_id: str, display_app: str) -> str: """Generate a link to the ``display_as`` action the the ``root`` controller, encoded for use as a query param.""" display_base_url = urljoin(base_url, app.url_for(controller="root", action="display_as")) display_query = urlencode( { "id": dataset_id, "display_app": display_app, "authz_method": "display_at", } ) display_url = quote_plus(f"{display_base_url}?{display_query}") return display_url Loading
lib/galaxy/datatypes/genetics.py +2 −7 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ from galaxy.util import ( unicodify, ) from galaxy.util.compression_utils import FileObjType from .util.generic_util import display_as_url gal_Log = logging.getLogger(__name__) verbose = False Loading Loading @@ -121,13 +122,7 @@ class GenomeGraphs(Tabular): action="display_at", filename=f"ucsc_{site_name}", ) display_url = "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) display_url = quote_plus(display_url) display_url = display_as_url(app, base_url, str(dataset.id), type) # was display_url = quote_plus( "%s/display_as?id=%i&display_app=%s" % (base_url, dataset.id, type) ) # redirect_url = quote_plus( "%sdb=%s&position=%s:%s-%s&hgt.customText=%%s" % (site_url, dataset.dbkey, chrom, start, stop) ) sl = [ Loading
lib/galaxy/datatypes/interval.py +4 −27 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ from . import ( data, dataproviders, ) from .util.generic_util import display_as_url log = logging.getLogger(__name__) Loading Loading @@ -345,15 +346,7 @@ class Interval(Tabular): action="display_at", filename="ucsc_" + site_name, ) display_url = quote_plus( "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) ) display_url = display_as_url(app, base_url, str(dataset.id), type) redirect_url = quote_plus(f"{site_url}db={dataset.dbkey}&position={chrom}:{start}-{stop}&hgt.customText=%s") link = f"{internal_url}?redirect_url={redirect_url}&display_url={display_url}" ret_val.append((site_name, link)) Loading Loading @@ -783,15 +776,7 @@ class _RemoteCallMixin: """ internal_url = f"{app.url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename=f'{type}_{site_name}')}" base_url = app.config.get("display_at_callback", base_url) display_url = quote_plus( "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) ) display_url = display_as_url(app, base_url, str(dataset.id), type) link = f"{internal_url}?redirect_url={redirect_url}&display_url={display_url}" return link Loading Loading @@ -1566,15 +1551,7 @@ class CustomTrack(Tabular): for site_name, site_url in app.datatypes_registry.get_legacy_sites_by_build("ucsc", dataset.dbkey): if site_name in app.datatypes_registry.get_display_sites("ucsc"): internal_url = f"{app.url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename='ucsc_' + site_name)}" display_url = quote_plus( "%s%s/display_as?id=%i&display_app=%s&authz_method=display_at" % ( base_url, app.url_for(controller="root"), dataset.id, type, ) ) display_url = display_as_url(app, base_url, str(dataset.id), type) redirect_url = quote_plus( f"{site_url}db={dataset.dbkey}&position={chrom}:{start}-{stop}&hgt.customText=%s" ) Loading
lib/galaxy/datatypes/util/generic_util.py +20 −0 Original line number Diff line number Diff line from urllib.parse import ( quote_plus, urlencode, urljoin, ) from galaxy.util import commands Loading @@ -16,3 +22,17 @@ def count_special_lines(word, filename, invert=False): except commands.CommandLineException: return 0 return int(out) def display_as_url(app, base_url: str, dataset_id: str, display_app: str) -> str: """Generate a link to the ``display_as`` action the the ``root`` controller, encoded for use as a query param.""" display_base_url = urljoin(base_url, app.url_for(controller="root", action="display_as")) display_query = urlencode( { "id": dataset_id, "display_app": display_app, "authz_method": "display_at", } ) display_url = quote_plus(f"{display_base_url}?{display_query}") return display_url