search: function()

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 === ''}
    />;
  },