diff --git a/rhodecode/config/routing.py b/rhodecode/config/routing.py
--- a/rhodecode/config/routing.py
+++ b/rhodecode/config/routing.py
@@ -389,8 +389,12 @@ def make_map(config):
#SEARCH
rmap.connect('search', '%s/search' % ADMIN_PREFIX, controller='search',)
- rmap.connect('search_repo', '%s/search/{search_repo:.*}' % ADMIN_PREFIX,
- controller='search')
+ rmap.connect('search_repo_admin', '%s/search/{repo_name:.*}' % ADMIN_PREFIX,
+ controller='search')
+ rmap.connect('search_repo', '/{repo_name:.*?}/search',
+ controller='search',
+ conditions=dict(function=check_repo),
+ )
#LOGIN/LOGOUT/REGISTER/SIGN IN
rmap.connect('login_home', '%s/login' % ADMIN_PREFIX, controller='login')
diff --git a/rhodecode/controllers/search.py b/rhodecode/controllers/search.py
--- a/rhodecode/controllers/search.py
+++ b/rhodecode/controllers/search.py
@@ -29,7 +29,7 @@ from pylons.i18n.translation import _
from pylons import request, config, tmpl_context as c
from rhodecode.lib.auth import LoginRequired
-from rhodecode.lib.base import BaseController, render
+from rhodecode.lib.base import BaseRepoController, render
from rhodecode.lib.indexers import CHGSETS_SCHEMA, SCHEMA, CHGSET_IDX_NAME, \
IDX_NAME, WhooshResultWrapper
@@ -46,14 +46,14 @@ from rhodecode.lib.utils2 import safe_st
log = logging.getLogger(__name__)
-class SearchController(BaseController):
+class SearchController(BaseRepoController):
@LoginRequired()
def __before__(self):
super(SearchController, self).__before__()
- def index(self, search_repo=None):
- c.repo_name = search_repo
+ def index(self, repo_name=None):
+ c.repo_name = repo_name
c.formated_results = []
c.runtime = ''
c.cur_query = request.GET.get('q', None)
diff --git a/rhodecode/templates/base/base.html b/rhodecode/templates/base/base.html
--- a/rhodecode/templates/base/base.html
+++ b/rhodecode/templates/base/base.html
@@ -221,7 +221,7 @@
%if c.rhodecode_db_repo.fork:
${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.repo_name,org_ref_type='branch',org_ref=request.GET.get('branch') or 'default',other_ref_type='branch',other_ref='default',repo=c.rhodecode_db_repo.fork.repo_name),class_='compare_request')}
%endif
- ${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}
+ ${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}
%if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
%if c.rhodecode_db_repo.locked[0]:
diff --git a/rhodecode/templates/search/search.html b/rhodecode/templates/search/search.html
--- a/rhodecode/templates/search/search.html
+++ b/rhodecode/templates/search/search.html
@@ -1,43 +1,47 @@
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
+
<%def name="title()">
- %if c.cur_query:
+ %if c.repo_name:
+ ${_('Search repository')} ${c.repo_name} - ${c.rhodecode_name}
+ %else:
+ ${_('Search in all repositories')}
+ %endif
+%def>
+
+<%def name="breadcrumbs_links()">
+ %if c.repo_name:
+ ${h.link_to(_(u'Home'),h.url('/'))}
+ »
+ ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
+ »
+ ${_('Search')}
+ %else:
+ ${_('Search in all repositories')}
+ %endif
+ %if c.cur_query:
+ »
+ ${c.cur_query}
+ %endif
+%def>
+
+<%def name="page_nav()">
%if c.repo_name:
- ${_('Search "%s" in repository: %s') % (c.cur_query, c.repo_name)}
- %else:
- ${_('Search "%s" in all repositories') % c.cur_query}
- %endif
- %else:
- %if c.repo_name:
- ${_('Search in repository: %s') % c.repo_name}
+ ${self.menu('options')}
%else:
- ${_('Search in all repositories')}
+ ${self.menu('search')}
%endif
- %endif
- - ${c.rhodecode_name}
-%def>
-<%def name="breadcrumbs()">
- ${c.rhodecode_name}
-%def>
-<%def name="page_nav()">
- ${self.menu('search')}
%def>
<%def name="main()">
-
- %if c.repo_name:
- ${_('Search in repository: %s') % c.repo_name}
- %else:
- ${_('Search in all repositories')}
- %endif
-
+ ${self.breadcrumbs()}
%if c.repo_name:
- ${h.form(h.url('search_repo',search_repo=c.repo_name),method='get')}
+ ${h.form(h.url('search_repo',repo_name=c.repo_name),method='get')}
%else:
${h.form(h.url('search'),method='get')}
%endif