Skip to content

Commit

Permalink
Changes the way search is handled.
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Norling committed May 3, 2018
1 parent ced9c8f commit 0eee07c
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 14 deletions.
12 changes: 5 additions & 7 deletions backend/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,23 +177,21 @@ def get(self, dataset, variant):


class Search(handlers.UnsafeHandler):
def get(self, dataset):
def get(self, dataset, query):
redirect_page = "/dataset/{}/browser/not_found".format(dataset)
try:
db = connect_db(dataset, False)
db_shared = connect_db(dataset, True)

query = self.get_argument('query', "")
datatype, identifier = lookups.get_awesomebar_result(db, db_shared, query)

if datatype in ["error", "not_found"]:
self.redirect("/dataset/{}/browser/not_found".format(dataset))
if datatype == "dbsnp_variant_set":
datatype = "dbsnp"

self.redirect("/dataset/{}/browser/{}/{}".format(dataset,datatype,identifier))
if datatype not in ["error", "not_found"]:
redirect_page = "/dataset/{}/browser/{}/{}".format(dataset, datatype, identifier)
except Exception as e:
logging.error('{} when connecting to database for dataset {}.'.format(type(e), dataset))
self.redirect("/dataset/{}/browser/not_found".format(dataset))
self.finish( {'redirect':redirect_page} )


class Autocomplete(handlers.UnsafeHandler):
Expand Down
2 changes: 1 addition & 1 deletion backend/route.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def __init__(self, settings):
(r"/api/datasets/(?P<dataset>[^\/]+)/browser/transcript/(?P<transcript>[^\/]+)", browser.GetTranscript),
(r"/api/datasets/(?P<dataset>[^\/]+)/browser/variant/(?P<variant>[^\/]+)", browser.GetVariant),
(r"/api/datasets/(?P<dataset>[^\/]+)/browser/autocomplete/(?P<query>[^\/]+)", browser.Autocomplete),
(r"/dataset/(?P<dataset>[^\/]+)/browser/search", browser.Search),
(r"/api/datasets/(?P<dataset>[^\/]+)/browser/search/(?P<query>[^\/]+)", browser.Search),
### Beacon API
(r"/api/beacon/query", beacon.Query),
(r"/api/beacon/info", beacon.Info),
Expand Down
18 changes: 16 additions & 2 deletions frontend/src/js/controller.browserController.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
(function() {
angular.module("App")
.controller("browserController", ["$routeParams", "$scope", "User", "Dataset", "Browser",
function( $routeParams, $scope, User, Dataset, Browser) {
.controller("browserController", ["$routeParams", "$scope", "$window", "User", "Dataset", "Browser",
function( $routeParams, $scope, $window, User, Dataset, Browser) {
var localThis = this;
$scope.search = {"query":"", "autocomplete":[]};
localThis.browserLink = browserLink;
localThis.dataset = {'shortName':$routeParams.dataset};
localThis.search = search;
localThis.autocomplete = autocomplete;
activate();

Expand Down Expand Up @@ -49,6 +50,19 @@
return "/dataset/" + $routeParams.dataset + "/browser/" + link;
}

function search(query) {
if (query) {
$scope.search.query = query;
}
if ($scope.search.query) {
Browser.search($routeParams.dataset, $scope.search.query).then( function(data) {
if (data.redirect) {
$window.location.href = data.redirect;
}
})
}
}

function autocomplete() {
if ($scope.search.query) {
Browser.autocomplete($routeParams.dataset, $scope.search.query)
Expand Down
7 changes: 7 additions & 0 deletions frontend/src/js/factory.browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
getRegion: getRegion,
getTranscript: getTranscript,
getVariant: getVariant,
search: search,
autocomplete: autocomplete,
};

Expand Down Expand Up @@ -33,6 +34,12 @@
});
}

function search(dataset, query) {
return $http.get("/api/datasets/" + dataset + "/browser/search/" + query).then(function(data) {
return data.data;
});
}

function autocomplete(dataset, query) {
return $http.get("/api/datasets/" + dataset + "/browser/autocomplete/" + query).then(function(data) {
return data.data;
Expand Down
8 changes: 4 additions & 4 deletions frontend/templates/ng-templates/dataset-browser.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<div class="dataset-body">
<div>
<div class="dropdown">
<form action="{{ ctrl.browserLink('search') }}">
<form ng-submit="ctrl.search()">
<input type="submit"
style="display: none;"/>
<input id="home-searchbox-input"
Expand All @@ -23,16 +23,16 @@
<input type="submit"
style="position: absolute; left: -9999px"/>
<ul class="dropdown-menu" style="overflow:visible;">
<li ng-repeat="term in search.autocomplete"><a href="{{ ctrl.browserLink('search?query=' + term) }}" target="_self">{{ term }}</a></li>
<li ng-repeat="term in search.autocomplete"><a href="" ng-click="ctrl.search(term)">{{ term }}</a></li>
</ul>
</form>
</div>
<p class="text-muted">Examples - Gene:
<a href="{{ ctrl.browserLink('search?query=PCSK9') }}" target="_self">PCSK9</a>, Transcript:
<a href="" ng-click="ctrl.search('PCSK9')" target="_self">PCSK9</a>, Transcript:
<a href="{{ ctrl.browserLink('transcript/ENST00000407236') }}">ENST00000407236</a>, Variant:
<a href="{{ ctrl.browserLink('variant/22-46615880-T-C') }}">22-46615880-T-C</a>, Multi-allelic
variant:
<a href="{{ ctrl.browserLink('search?query=rs1800234') }}" target="_self">rs1800234</a>, Region:
<a href="" ng-click="ctrl.search('rs1800234')" target="_self">rs1800234</a>, Region:
<a href="{{ ctrl.browserLink('region/22-46615715-46615880') }}">22:46615715-46615880</a></p>
</div>
<div class="row" style="font-size: 16px;">
Expand Down

0 comments on commit 0eee07c

Please sign in to comment.