loader.items().map(function(item) {
return m('tr', [
m('td', [
- // Guess workbench.{apihostport} is a
- // Workbench... unless the host part of
- // apihostport is an IPv4 or [IPv6]
- // address.
- item.session.baseURL.match('://(\\[|\\d+\\.\\d+\\.\\d+\\.\\d+[:/])') ? null :
+ item.workbenchBaseURL() &&
m('a.btn.btn-xs.btn-default', {
- href: item.session.baseURL.replace('://', '://workbench.')+'collections/'+item.uuid,
+ href: item.workbenchBaseURL()+'collections/'+item.uuid,
}, 'Show'),
]),
m('td.arvados-uuid', item.uuid),
vnode.state.loader = new MergingLoader({
children: Object.keys(sessions).map(function(key) {
var session = sessions[key]
+ var workbenchBaseURL = function() {
+ return vnode.state.sessionDB.workbenchBaseURL(session)
+ }
return new MultipageLoader({
sessionKey: key,
loadFunc: function(filters) {
- if (q)
- filters.push(['any', '@@', q+':*'])
+ var tsquery = to_tsquery(q)
+ if (tsquery) {
+ filters = filters.slice(0)
+ filters.push(['any', '@@', tsquery])
+ }
return vnode.state.sessionDB.request(session, 'arvados/v1/collections', {
data: {
filters: JSON.stringify(filters),
},
}).then(function(resp) {
resp.items.map(function(item) {
- item.session = session
+ item.workbenchBaseURL = workbenchBaseURL
})
return resp
})