Show More
@@ -0,0 +1,42 b'' | |||
|
1 | # -*- coding: utf-8 -*- | |
|
2 | ||
|
3 | # Copyright (C) 2010-2016 RhodeCode GmbH | |
|
4 | # | |
|
5 | # This program is free software: you can redistribute it and/or modify | |
|
6 | # it under the terms of the GNU Affero General Public License, version 3 | |
|
7 | # (only), as published by the Free Software Foundation. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU Affero General Public License | |
|
15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
|
16 | # | |
|
17 | # This program is dual-licensed. If you wish to learn more about the | |
|
18 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
|
19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
|
20 | ||
|
21 | def generate_jsroutes_content(jsroutes): | |
|
22 | statements = [] | |
|
23 | for url_name, url, fields in jsroutes: | |
|
24 | statements.append( | |
|
25 | "pyroutes.register('%s', '%s', %s);" % (url_name, url, fields)) | |
|
26 | return u''' | |
|
27 | /****************************************************************************** | |
|
28 | * * | |
|
29 | * DO NOT CHANGE THIS FILE MANUALLY * | |
|
30 | * * | |
|
31 | * * | |
|
32 | * This file is automatically generated when the app starts up. * | |
|
33 | * * | |
|
34 | * To add a route here pass jsroute=True to the route definition in the app * | |
|
35 | * * | |
|
36 | ******************************************************************************/ | |
|
37 | function registerRCRoutes() { | |
|
38 | // routes registration | |
|
39 | %s | |
|
40 | } | |
|
41 | ''' % '\n '.join(statements) | |
|
42 |
@@ -27,10 +27,12 b' import logging' | |||
|
27 | 27 | import rhodecode |
|
28 | 28 | import platform |
|
29 | 29 | import re |
|
30 | import io | |
|
30 | 31 | |
|
31 | 32 | from mako.lookup import TemplateLookup |
|
32 | 33 | from pylons.configuration import PylonsConfig |
|
33 | 34 | from pylons.error import handle_mako_error |
|
35 | from pyramid.settings import asbool | |
|
34 | 36 | |
|
35 | 37 | # don't remove this import it does magic for celery |
|
36 | 38 | from rhodecode.lib import celerypylons # noqa |
@@ -39,6 +41,7 b' import rhodecode.lib.app_globals as app_' | |||
|
39 | 41 | |
|
40 | 42 | from rhodecode.config import utils |
|
41 | 43 | from rhodecode.config.routing import make_map |
|
44 | from rhodecode.config.jsroutes import generate_jsroutes_content | |
|
42 | 45 | |
|
43 | 46 | from rhodecode.lib import helpers |
|
44 | 47 | from rhodecode.lib.auth import set_available_permissions |
@@ -51,7 +54,6 b' from rhodecode.model.scm import ScmModel' | |||
|
51 | 54 | |
|
52 | 55 | log = logging.getLogger(__name__) |
|
53 | 56 | |
|
54 | ||
|
55 | 57 | def load_environment(global_conf, app_conf, initial=False, |
|
56 | 58 | test_env=None, test_index=None): |
|
57 | 59 | """ |
@@ -80,34 +82,15 b' def load_environment(global_conf, app_co' | |||
|
80 | 82 | config['app_conf'].get('celery.always.eager')) |
|
81 | 83 | |
|
82 | 84 | config['routes.map'] = make_map(config) |
|
85 | ||
|
86 | if asbool(config['debug']): | |
|
83 | 87 | jsroutes = config['routes.map'].jsroutes() |
|
84 | statements = [] | |
|
85 | for url_name, url, fields in jsroutes: | |
|
86 | statements.append( | |
|
87 | "pyroutes.register('%s', '%s', %s);" % (url_name, url, fields)) | |
|
88 | import io | |
|
89 | import textwrap | |
|
90 | template = textwrap.dedent(u''' | |
|
91 | /****************************************************************************** | |
|
92 | * * | |
|
93 | * DO NOT CHANGE THIS FILE MANUALLY * | |
|
94 | * * | |
|
95 | * * | |
|
96 | * This file is automatically generated when the app starts up. * | |
|
97 | * * | |
|
98 | * To add a route here pass jsroute=True to the route definition in the app * | |
|
99 | * * | |
|
100 | ******************************************************************************/ | |
|
101 | function registerRCRoutes() { | |
|
102 | // routes registration | |
|
103 | %s | |
|
104 | } | |
|
105 | ''').strip() | |
|
106 | content = template % '\n '.join(statements) | |
|
107 | js_routes_filepath = os.path.join( | |
|
88 | jsroutes_file_content = generate_jsroutes_content(jsroutes) | |
|
89 | jsroutes_file_path = os.path.join( | |
|
108 | 90 | paths['static_files'], 'js', 'rhodecode', 'routes.js') |
|
109 | with io.open(js_routes_filepath, 'w', encoding='utf-8') as f: | |
|
110 | f.write(content) | |
|
91 | ||
|
92 | with io.open(jsroutes_file_path, 'w', encoding='utf-8') as f: | |
|
93 | f.write(jsroutes_file_content) | |
|
111 | 94 | |
|
112 | 95 | config['pylons.app_globals'] = app_globals.Globals(config) |
|
113 | 96 | config['pylons.h'] = helpers |
@@ -580,6 +580,8 b' def make_map(config):' | |||
|
580 | 580 | action='index', conditions={'method': ['GET']}) |
|
581 | 581 | m.connect('new_gist', '/gists/new', jsroute=True, |
|
582 | 582 | action='new', conditions={'method': ['GET']}) |
|
583 | m.connect('gists', '/gists', jsroute=True, | |
|
584 | action='index', conditions={'method': ['GET']}) | |
|
583 | 585 | |
|
584 | 586 | m.connect('/gists/{gist_id}', |
|
585 | 587 | action='delete', conditions={'method': ['DELETE']}) |
@@ -1,3 +1,4 b'' | |||
|
1 | ||
|
1 | 2 | /****************************************************************************** |
|
2 | 3 | * * |
|
3 | 4 | * DO NOT CHANGE THIS FILE MANUALLY * |
@@ -16,6 +17,7 b' function registerRCRoutes() {' | |||
|
16 | 17 | pyroutes.register('edit_user_group_members', '/_admin/user_groups/%(user_group_id)s/edit/members', ['user_group_id']); |
|
17 | 18 | pyroutes.register('gists', '/_admin/gists', []); |
|
18 | 19 | pyroutes.register('new_gist', '/_admin/gists/new', []); |
|
20 | pyroutes.register('gists', '/_admin/gists', []); | |
|
19 | 21 | pyroutes.register('toggle_following', '/_admin/toggle_following', []); |
|
20 | 22 | pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']); |
|
21 | 23 | pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']); |
@@ -46,4 +48,4 b' function registerRCRoutes() {' | |||
|
46 | 48 | pyroutes.register('files_metadata_list_home', '/%(repo_name)s/metadata_list/%(revision)s/%(f_path)s', ['repo_name', 'revision', 'f_path']); |
|
47 | 49 | pyroutes.register('summary_home_slash', '/%(repo_name)s/', ['repo_name']); |
|
48 | 50 | pyroutes.register('summary_home', '/%(repo_name)s', ['repo_name']); |
|
49 | } No newline at end of file | |
|
51 | } |
General Comments 0
You need to be logged in to leave comments.
Login now