blob: 0faf1bc3d6ec56a19795f0b92300f096507d3a0b [file] [log] [blame]
var urlUtil = require('url');
var qsUtil = require('querystring');
var exists = require('../lib/exists');
module.exports = function(routes) {
// Url pattern: /browse/veyronNameSpace?glob=*
routes.addRoute('/browse/:namespace?', handleBrowseRoute);
};
module.exports.createUrl = function(namespace, globquery) {
var path = '/browse';
if (exists(namespace)) {
namespace = encodeURIComponent(namespace);
path += '/' + namespace;
}
var query;
if (exists(globquery)) {
query = {
'glob': globquery
};
}
return '#' + urlUtil.format({
pathname: path,
query: query
});
};
function handleBrowseRoute(state, events, params) {
// Set the page to browse
state.navigation.pageKey.set('browse');
var namespace = '';
var globquery = '';
if (params.namespace) {
var parsed = urlUtil.parse(params.namespace);
namespace = parsed.pathname || '';
if (parsed.query) {
globquery = qsUtil.parse(parsed.query).glob;
}
}
// Trigger browse components browseNamespace event
events.browse.browseNamespace({
'namespace': namespace,
'globQuery': globquery
});
}