Show More
@@ -8,8 +8,9 b' from pylons.i18n.translation import _' | |||
|
8 | 8 | from pylons_app.lib.base import BaseController, render |
|
9 | 9 | from pylons.middleware import media_path |
|
10 | 10 | from pylons_app.lib.utils import check_repo |
|
11 | from pylons_app.lib.filters import clean_repo | |
|
12 | log = logging.getLogger(__name__) | |
|
11 | 13 | |
|
12 | log = logging.getLogger(__name__) | |
|
13 | 14 | class ErrorController(BaseController): |
|
14 | 15 | """ |
|
15 | 16 | Generates error documents as and when they are required. |
@@ -20,9 +21,12 b' class ErrorController(BaseController):' | |||
|
20 | 21 | This behaviour can be altered by changing the parameters to the |
|
21 | 22 | ErrorDocuments middleware in your config/middleware.py file. |
|
22 | 23 | """ |
|
24 | # def __before__(self): | |
|
25 | # super(ErrorController, self).__before__() | |
|
23 | 26 | |
|
24 | 27 | def document(self): |
|
25 | 28 | resp = request.environ.get('pylons.original_response') |
|
29 | ||
|
26 | 30 | log.debug(resp.status) |
|
27 | 31 | |
|
28 | 32 | e = request.environ |
@@ -33,7 +37,10 b' class ErrorController(BaseController):' | |||
|
33 | 37 | |
|
34 | 38 | |
|
35 | 39 | if resp.status_int == 404: |
|
36 | if check_repo(c.repo_name, g.base_path): | |
|
40 | org_e = request.environ.get('pylons.original_request').environ | |
|
41 | c.repo_name = repo_name = org_e['PATH_INFO'].split('/')[1] | |
|
42 | c.repo_name_cleaned = clean_repo(c.repo_name) | |
|
43 | if check_repo(repo_name, g.base_path): | |
|
37 | 44 | return render('/errors/error_404.html') |
|
38 | 45 | |
|
39 | 46 | c.error_message = cgi.escape(request.GET.get('code', str(resp.status))) |
@@ -1,14 +1,12 b'' | |||
|
1 | from pylons import request, response, session, tmpl_context as c, url, \ | |
|
2 | app_globals as g | |
|
3 | from pylons.controllers.util import abort, redirect | |
|
4 | from pylons_app.lib.base import BaseController, render | |
|
5 | from pylons_app.lib.utils import check_repo, invalidate_cache | |
|
1 | 6 | import logging |
|
2 | 7 | import os |
|
3 | from pylons import request, response, session, tmpl_context as c, url, app_globals as g | |
|
4 | from pylons.controllers.util import abort, redirect | |
|
5 | from pylons_app.lib import auth | |
|
6 | from pylons_app.lib.base import BaseController, render | |
|
7 | from pylons_app.model.db import Users, UserLogs | |
|
8 | from pylons_app.model.hg_model import HgModel | |
|
9 | from operator import itemgetter | |
|
10 | 8 | import shutil |
|
11 |
from pylons_app.lib. |
|
|
9 | from pylons_app.lib.filters import clean_repo | |
|
12 | 10 | log = logging.getLogger(__name__) |
|
13 | 11 | |
|
14 | 12 | class ReposController(BaseController): |
@@ -31,10 +29,31 b' class ReposController(BaseController):' | |||
|
31 | 29 | def create(self): |
|
32 | 30 | """POST /repos: Create a new item""" |
|
33 | 31 | # url('repos') |
|
32 | name = request.POST.get('name') | |
|
33 | ||
|
34 | try: | |
|
35 | self._create_repo(name) | |
|
36 | #clear our cached list for refresh with new repo | |
|
37 | invalidate_cache('cached_repo_list') | |
|
38 | except Exception as e: | |
|
39 | log.error(e) | |
|
40 | ||
|
41 | return redirect('repos') | |
|
42 | ||
|
43 | def _create_repo(self, repo_name): | |
|
44 | repo_path = os.path.join(g.base_path, repo_name) | |
|
45 | if check_repo(repo_name, g.base_path): | |
|
46 | log.info('creating repo %s in %s', repo_name, repo_path) | |
|
47 | from vcs.backends.hg import MercurialRepository | |
|
48 | MercurialRepository(repo_path, create=True) | |
|
49 | ||
|
34 | 50 | |
|
35 | 51 | def new(self, format='html'): |
|
36 | 52 | """GET /repos/new: Form to create a new item""" |
|
37 | # url('new_repo') | |
|
53 | new_repo = request.GET.get('repo', '') | |
|
54 | c.new_repo = clean_repo(new_repo) | |
|
55 | ||
|
56 | return render('admin/repos/repo_add.html') | |
|
38 | 57 | |
|
39 | 58 | def update(self, id): |
|
40 | 59 | """PUT /repos/id: Update an existing item""" |
@@ -22,13 +22,14 b' from pylons_app.lib import filters' | |||
|
22 | 22 | </%def> |
|
23 | 23 | <%def name="main()"> |
|
24 | 24 | |
|
25 | <h2 class="no-link no-border">Not Found</h2> | |
|
26 |
<p class="normal">The specified repository " |
|
|
25 | <h2 class="no-link no-border">${_('Not Found')}</h2> | |
|
26 | <p class="normal">${_('The specified repository "%s" is unknown, sorry.') % c.repo_name}</p> | |
|
27 | 27 | <p class="normal"> |
|
28 | <a href="/_admin/add_repo/${c.repo_name|n,filters.clean_repo}">Create "${c.repo_name}" repository as ${c.repo_name|n,filters.clean_repo}</a> | |
|
28 | <a href="${h.url('new_repo',repo=c.repo_name_cleaned)}"> | |
|
29 | ${_('Create "%s" repository as %s' % (c.repo_name,c.repo_name_cleaned))}</a> | |
|
29 | 30 | |
|
30 | 31 | </p> |
|
31 |
<p class="normal">Go back to the |
|
|
32 | <p class="normal">${h.link_to(_('Go back to the main repository list page'),h.url('hg_home'))}</p> | |
|
32 | 33 | <div class="page-footer"> |
|
33 | 34 | </div> |
|
34 | 35 | </%def> No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now