changeset 3289:666fc6ac9ce5 beta

search: repo search is a repo thing - show it that way in ui and url
author Mads Kiilerich <madski@unity3d.com>
date Wed, 30 Jan 2013 21:17:03 +0100
parents 6cdf2cd9d9d8
children e4025b361fcf
files rhodecode/config/routing.py rhodecode/controllers/search.py rhodecode/templates/base/base.html rhodecode/templates/search/search.html
diffstat 4 files changed, 40 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/config/routing.py	Wed Jan 30 21:13:47 2013 +0100
+++ b/rhodecode/config/routing.py	Wed Jan 30 21:17:03 2013 +0100
@@ -389,8 +389,12 @@
 
     #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')
--- a/rhodecode/controllers/search.py	Wed Jan 30 21:13:47 2013 +0100
+++ b/rhodecode/controllers/search.py	Wed Jan 30 21:17:03 2013 +0100
@@ -29,7 +29,7 @@
 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 @@
 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)
--- a/rhodecode/templates/base/base.html	Wed Jan 30 21:13:47 2013 +0100
+++ b/rhodecode/templates/base/base.html	Wed Jan 30 21:17:03 2013 +0100
@@ -221,7 +221,7 @@
                 %if c.rhodecode_db_repo.fork:
                  <li>${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')}</li>
                 %endif
-                <li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
+                <li>${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
 
                 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
                   %if c.rhodecode_db_repo.locked[0]:
--- a/rhodecode/templates/search/search.html	Wed Jan 30 21:13:47 2013 +0100
+++ b/rhodecode/templates/search/search.html	Wed Jan 30 21:17:03 2013 +0100
@@ -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('/'))}
+    &raquo;
+    ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
+    &raquo;
+    ${_('Search')}
+  %else:
+    ${_('Search in all repositories')}
+  %endif
+  %if c.cur_query:
+    &raquo;
+    ${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()">
 
 <div class="box">
     <!-- box / title -->
     <div class="title">
-        <h5>
-        %if c.repo_name:
-            ${_('Search in repository: %s') % c.repo_name}
-        %else:
-            ${_('Search in all repositories')}
-        %endif
-        </h5>
+        ${self.breadcrumbs()}
     </div>
     <!-- end box / title -->
     %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