15429: Changes full text searching on wb1 utilizing new trigram indexes.
[arvados.git] / apps / workbench / app / assets / javascripts / components / search.js
index f854411455888e57d5f3e4b184789be92fc17676..6af2dcaccbbba7f8f8e25eed03f86c95a320e147 100644 (file)
@@ -57,23 +57,20 @@ window.SearchResultsTable = {
                     // Add the salted token to search result links from federated
                     // remote hosts.
                     if (!session.isFromRails && session.token.indexOf('v2/') == 0) {
-                        tokenParam = '?api_token='+session.token
+                        tokenParam = session.token
                     }
                     return m('tr', [
                         m('td', m('form', {
-                            onsubmit: function() {
-                                return false;
-                            }
+                            action: item.workbenchBaseURL() + '/' + item.objectType.wb_path + '/' + item.uuid,
+                            method: 'GET'
                         }, [
+                            tokenParam !== '' &&
+                                m('input[type=hidden][name=api_token]', {value: tokenParam}),
                             item.workbenchBaseURL() &&
                                 m('button.btn.btn-xs.btn-default[type=submit]', {
-                                    onclick: m.withAttr('href', function(v) {
-                                        document.location = v;
-                                    }),
                                     'data-original-title': 'show '+item.objectType.description,
                                     'data-placement': 'top',
                                     'data-toggle': 'tooltip',
-                                    href: item.workbenchBaseURL()+'/'+item.objectType.wb_path+'/'+item.uuid+tokenParam,
                                     // Bootstrap's tooltip feature
                                     oncreate: function(vnode) { $(vnode.dom).tooltip() },
                                 }, iconsMap[item.objectType.wb_path]),
@@ -107,6 +104,7 @@ window.SearchResultsTable = {
 window.Search = {
     oninit: function(vnode) {
         vnode.state.sessionDB = new SessionDB()
+        vnode.state.sessionDB.autoRedirectToHomeCluster('/search')
         vnode.state.searchEntered = m.stream()
         vnode.state.searchActive = m.stream()
         // When searchActive changes (e.g., when restoring state
@@ -145,10 +143,9 @@ window.Search = {
                                 loadFunc: function(filters) {
                                     // Apply additional type dependant filters
                                     filters = filters.concat(obj_type.filters)
-                                    var tsquery = to_tsquery(q)
-                                    if (tsquery) {
-                                        filters.push(['any', '@@', tsquery])
-                                    }
+                                    to_tsquery_filters(q).forEach(function(f) {
+                                        filters.push(f)
+                                    })
                                     return vnode.state.sessionDB.request(session, obj_type.api_path, {
                                         data: {
                                             filters: JSON.stringify(filters),