in app/addons/search/routes.js [82:131]
search: function (databaseName, partitionKey, ddocName, indexName, query) {
this.databaseName = databaseName;
this.ddocName = ddocName;
this.indexName = indexName;
const selectedNavItem = new SidebarItemSelection('designDoc', {
designDocName: ddocName,
designDocSection: 'Search Indexes',
indexName: indexName
});
SidebarActions.dispatchExpandSelectedItem(selectedNavItem);
const dropDownLinks = this.getCrumbs(this.database);
Actions.dispatchInitSearchIndex({
databaseName: databaseName,
partitionKey: partitionKey,
designDoc: ddocName,
indexName: indexName,
query: query
});
DatabasesActions.fetchSelectedDatabaseInfo(databaseName);
const encodedPartKey = partitionKey ? encodeURIComponent(partitionKey) : '';
const endpointUrl = FauxtonAPI.urls('search', 'apiurl', this.databaseName, encodedPartKey, this.ddocName,
this.indexName, (query ? query : '*:*'));
const encodedQuery = query ? `?${encodeURIComponent(query)}` : '';
const navigateToPartitionedView = (partKey) => {
const baseUrl = FauxtonAPI.urls('partitioned_search', 'app', encodeURIComponent(databaseName),
encodeURIComponent(partKey), encodeURIComponent(ddocName));
FauxtonAPI.navigate('#/' + baseUrl + encodeURIComponent(indexName) + encodedQuery);
};
const navigateToGlobalView = () => {
const baseUrl = FauxtonAPI.urls('search', 'app', encodeURIComponent(databaseName), encodeURIComponent(ddocName));
FauxtonAPI.navigate('#/' + baseUrl + encodeURIComponent(indexName) + encodedQuery);
};
return <Layout
section={'search'}
dropDownLinks={dropDownLinks}
endpoint={endpointUrl}
docURL={FauxtonAPI.constants.DOC_URLS.SEARCH_INDEXES}
database={this.database}
indexName={indexName}
selectedNavItem={selectedNavItem}
partitionKey={partitionKey}
onPartitionKeySelected={navigateToPartitionedView}
onGlobalModeSelected={navigateToGlobalView}
globalMode={partitionKey === ''}
/>;
},