Show More
The requested changes are too big and content was truncated. Show full diff
@@ -0,0 +1,41 b'' | |||
|
1 | |RCE| 4.17.1 |RNS| | |
|
2 | ------------------ | |
|
3 | ||
|
4 | Release Date | |
|
5 | ^^^^^^^^^^^^ | |
|
6 | ||
|
7 | - 2019-07-04 | |
|
8 | ||
|
9 | ||
|
10 | New Features | |
|
11 | ^^^^^^^^^^^^ | |
|
12 | ||
|
13 | ||
|
14 | ||
|
15 | General | |
|
16 | ^^^^^^^ | |
|
17 | ||
|
18 | ||
|
19 | ||
|
20 | Security | |
|
21 | ^^^^^^^^ | |
|
22 | ||
|
23 | ||
|
24 | ||
|
25 | Performance | |
|
26 | ^^^^^^^^^^^ | |
|
27 | ||
|
28 | ||
|
29 | ||
|
30 | Fixes | |
|
31 | ^^^^^ | |
|
32 | ||
|
33 | - Database: fixed mysql migration issues. | |
|
34 | - Artifacts: fixed problem with non-ascii file uploads. | |
|
35 | - Artifacts: increase timeout, and allow setting custom time via ?timeout=N GET flag | |
|
36 | ||
|
37 | ||
|
38 | Upgrade notes | |
|
39 | ^^^^^^^^^^^^^ | |
|
40 | ||
|
41 | - Un-scheduled release addressing problems in 4.17.X releases. |
@@ -0,0 +1,40 b'' | |||
|
1 | |RCE| 4.17.2 |RNS| | |
|
2 | ------------------ | |
|
3 | ||
|
4 | Release Date | |
|
5 | ^^^^^^^^^^^^ | |
|
6 | ||
|
7 | - 2019-07-05 | |
|
8 | ||
|
9 | ||
|
10 | New Features | |
|
11 | ^^^^^^^^^^^^ | |
|
12 | ||
|
13 | ||
|
14 | ||
|
15 | General | |
|
16 | ^^^^^^^ | |
|
17 | ||
|
18 | ||
|
19 | ||
|
20 | Security | |
|
21 | ^^^^^^^^ | |
|
22 | ||
|
23 | ||
|
24 | ||
|
25 | Performance | |
|
26 | ^^^^^^^^^^^ | |
|
27 | ||
|
28 | ||
|
29 | ||
|
30 | Fixes | |
|
31 | ^^^^^ | |
|
32 | ||
|
33 | - UI: fixed missing icons on some cases. | |
|
34 | - Commits: hide links icon of message that don't expand. | |
|
35 | ||
|
36 | ||
|
37 | Upgrade notes | |
|
38 | ^^^^^^^^^^^^^ | |
|
39 | ||
|
40 | - Un-scheduled release addressing problems in 4.17.X releases. |
@@ -41,6 +41,7 b' syntax: regexp' | |||
|
41 | 41 | ^result$ |
|
42 | 42 | ^rhodecode/public/css/style.css$ |
|
43 | 43 | ^rhodecode/public/css/style-polymer.css$ |
|
44 | ^rhodecode/public/css/style-ipython.css$ | |
|
44 | 45 | ^rhodecode/public/js/rhodecode-components.html$ |
|
45 | 46 | ^rhodecode/public/js/rhodecode-components.js$ |
|
46 | 47 | ^rhodecode/public/js/scripts.js$ |
@@ -52,3 +52,6 b' 4aaa40b605b01af78a9f6882eca561c54b525ef0' | |||
|
52 | 52 | 797744642eca86640ed20bef2cd77445780abaec v4.16.0 |
|
53 | 53 | 6c3452c7c25ed35ff269690929e11960ed6ad7d3 v4.16.1 |
|
54 | 54 | 5d8057df561c4b6b81b6401aed7d2f911e6e77f7 v4.16.2 |
|
55 | 13acfc008896ef4c62546bab5074e8f6f89b4fa7 v4.17.0 | |
|
56 | 45b9b610976f483877142fe75321808ce9ebac59 v4.17.1 | |
|
57 | ad5bd0c4bd322fdbd04bb825a3d027e08f7a3901 v4.17.2 |
@@ -9,6 +9,8 b' Release Notes' | |||
|
9 | 9 | .. toctree:: |
|
10 | 10 | :maxdepth: 1 |
|
11 | 11 | |
|
12 | release-notes-4.17.2.rst | |
|
13 | release-notes-4.17.1.rst | |
|
12 | 14 | release-notes-4.17.0.rst |
|
13 | 15 | release-notes-4.16.2.rst |
|
14 | 16 | release-notes-4.16.1.rst |
@@ -1718,7 +1718,7 b' self: super: {' | |||
|
1718 | 1718 | }; |
|
1719 | 1719 | }; |
|
1720 | 1720 | "rhodecode-enterprise-ce" = super.buildPythonPackage { |
|
1721 |
name = "rhodecode-enterprise-ce-4.17. |
|
|
1721 | name = "rhodecode-enterprise-ce-4.17.2"; | |
|
1722 | 1722 | buildInputs = [ |
|
1723 | 1723 | self."pytest" |
|
1724 | 1724 | self."py" |
@@ -369,6 +369,10 b' def includeme(config):' | |||
|
369 | 369 | name='edit_repo_perms', |
|
370 | 370 | pattern='/{repo_name:.*?[^/]}/settings/permissions', repo_route=True) |
|
371 | 371 | |
|
372 | config.add_route( | |
|
373 | name='edit_repo_perms_set_private', | |
|
374 | pattern='/{repo_name:.*?[^/]}/settings/permissions/set_private', repo_route=True) | |
|
375 | ||
|
372 | 376 | # Permissions Branch (EE feature) |
|
373 | 377 | config.add_route( |
|
374 | 378 | name='edit_repo_perms_branch', |
@@ -481,13 +485,21 b' def includeme(config):' | |||
|
481 | 485 | name='edit_repo_audit_logs', |
|
482 | 486 | pattern='/{repo_name:.*?[^/]}/settings/audit_logs', repo_route=True) |
|
483 | 487 | |
|
484 | # ATOM/RSS Feed | |
|
488 | # ATOM/RSS Feed, shouldn't contain slashes for outlook compatibility | |
|
485 | 489 | config.add_route( |
|
486 | 490 | name='rss_feed_home', |
|
491 | pattern='/{repo_name:.*?[^/]}/feed-rss', repo_route=True) | |
|
492 | ||
|
493 | config.add_route( | |
|
494 | name='atom_feed_home', | |
|
495 | pattern='/{repo_name:.*?[^/]}/feed-atom', repo_route=True) | |
|
496 | ||
|
497 | config.add_route( | |
|
498 | name='rss_feed_home_old', | |
|
487 | 499 | pattern='/{repo_name:.*?[^/]}/feed/rss', repo_route=True) |
|
488 | 500 | |
|
489 | 501 | config.add_route( |
|
490 | name='atom_feed_home', | |
|
502 | name='atom_feed_home_old', | |
|
491 | 503 | pattern='/{repo_name:.*?[^/]}/feed/atom', repo_route=True) |
|
492 | 504 | |
|
493 | 505 | # NOTE(marcink): needs to be at the end for catch-all |
@@ -27,8 +27,10 b' def route_path(name, params=None, **kwar' | |||
|
27 | 27 | import urllib |
|
28 | 28 | |
|
29 | 29 | base_url = { |
|
30 |
'rss_feed_home': '/{repo_name}/feed |
|
|
31 |
'atom_feed_home': '/{repo_name}/feed |
|
|
30 | 'rss_feed_home': '/{repo_name}/feed-rss', | |
|
31 | 'atom_feed_home': '/{repo_name}/feed-atom', | |
|
32 | 'rss_feed_home_old': '/{repo_name}/feed/rss', | |
|
33 | 'atom_feed_home_old': '/{repo_name}/feed/atom', | |
|
32 | 34 | }[name].format(**kwargs) |
|
33 | 35 | |
|
34 | 36 | if params: |
@@ -73,6 +75,42 b' class TestFeedView(TestController):' | |||
|
73 | 75 | |
|
74 | 76 | assert response.content_type == content_type |
|
75 | 77 | |
|
78 | @pytest.mark.parametrize("feed_type, content_type", [ | |
|
79 | ('rss', "application/rss+xml"), | |
|
80 | ('atom', "application/atom+xml") | |
|
81 | ]) | |
|
82 | def test_feed_with_auth_token_by_uid( | |
|
83 | self, backend, user_admin, feed_type, content_type): | |
|
84 | auth_token = user_admin.feed_token | |
|
85 | assert auth_token != '' | |
|
86 | ||
|
87 | response = self.app.get( | |
|
88 | route_path( | |
|
89 | '{}_feed_home'.format(feed_type), | |
|
90 | repo_name='_{}'.format(backend.repo.repo_id), | |
|
91 | params=dict(auth_token=auth_token)), | |
|
92 | status=200) | |
|
93 | ||
|
94 | assert response.content_type == content_type | |
|
95 | ||
|
96 | @pytest.mark.parametrize("feed_type, content_type", [ | |
|
97 | ('rss', "application/rss+xml"), | |
|
98 | ('atom', "application/atom+xml") | |
|
99 | ]) | |
|
100 | def test_feed_old_urls_with_auth_token( | |
|
101 | self, backend, user_admin, feed_type, content_type): | |
|
102 | auth_token = user_admin.feed_token | |
|
103 | assert auth_token != '' | |
|
104 | ||
|
105 | response = self.app.get( | |
|
106 | route_path( | |
|
107 | '{}_feed_home_old'.format(feed_type), | |
|
108 | repo_name=backend.repo_name, | |
|
109 | params=dict(auth_token=auth_token)), | |
|
110 | status=200) | |
|
111 | ||
|
112 | assert response.content_type == content_type | |
|
113 | ||
|
76 | 114 | @pytest.mark.parametrize("feed_type", ['rss', 'atom']) |
|
77 | 115 | def test_feed_with_auth_token_of_wrong_type( |
|
78 | 116 | self, backend, user_util, feed_type): |
@@ -40,8 +40,6 b' log = logging.getLogger(__name__)' | |||
|
40 | 40 | class RepoFeedView(RepoAppView): |
|
41 | 41 | def load_default_context(self): |
|
42 | 42 | c = self._get_local_tmpl_context() |
|
43 | ||
|
44 | ||
|
45 | 43 | self._load_defaults() |
|
46 | 44 | return c |
|
47 | 45 | |
@@ -117,6 +115,9 b' class RepoFeedView(RepoAppView):' | |||
|
117 | 115 | @view_config( |
|
118 | 116 | route_name='atom_feed_home', request_method='GET', |
|
119 | 117 | renderer=None) |
|
118 | @view_config( | |
|
119 | route_name='atom_feed_home_old', request_method='GET', | |
|
120 | renderer=None) | |
|
120 | 121 | def atom(self): |
|
121 | 122 | """ |
|
122 | 123 | Produce an atom-1.0 feed via feedgenerator module |
@@ -181,6 +182,9 b' class RepoFeedView(RepoAppView):' | |||
|
181 | 182 | @view_config( |
|
182 | 183 | route_name='rss_feed_home', request_method='GET', |
|
183 | 184 | renderer=None) |
|
185 | @view_config( | |
|
186 | route_name='rss_feed_home_old', request_method='GET', | |
|
187 | renderer=None) | |
|
184 | 188 | def rss(self): |
|
185 | 189 | """ |
|
186 | 190 | Produce an rss2 feed via feedgenerator module |
@@ -105,3 +105,30 b' class RepoSettingsPermissionsView(RepoAp' | |||
|
105 | 105 | |
|
106 | 106 | raise HTTPFound( |
|
107 | 107 | h.route_path('edit_repo_perms', repo_name=self.db_repo_name)) |
|
108 | ||
|
109 | @LoginRequired() | |
|
110 | @HasRepoPermissionAnyDecorator('repository.admin') | |
|
111 | @CSRFRequired() | |
|
112 | @view_config( | |
|
113 | route_name='edit_repo_perms_set_private', request_method='POST', | |
|
114 | renderer='json_ext') | |
|
115 | def edit_permissions_set_private_repo(self): | |
|
116 | _ = self.request.translate | |
|
117 | self.load_default_context() | |
|
118 | ||
|
119 | try: | |
|
120 | RepoModel().update( | |
|
121 | self.db_repo, **{'repo_private': True, 'repo_name': self.db_repo_name}) | |
|
122 | Session().commit() | |
|
123 | ||
|
124 | h.flash(_('Repository `{}` private mode set successfully').format(self.db_repo_name), | |
|
125 | category='success') | |
|
126 | except Exception: | |
|
127 | log.exception("Exception during update of repository") | |
|
128 | h.flash(_('Error occurred during update of repository {}').format( | |
|
129 | self.db_repo_name), category='error') | |
|
130 | ||
|
131 | return { | |
|
132 | 'redirect_url': h.route_path('edit_repo_perms', repo_name=self.db_repo_name), | |
|
133 | 'private': True | |
|
134 | } |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
@@ -4,6 +4,7 b' import logging' | |||
|
4 | 4 | |
|
5 | 5 | from alembic.migration import MigrationContext |
|
6 | 6 | from alembic.operations import Operations |
|
7 | from sqlalchemy import String | |
|
7 | 8 | |
|
8 | 9 | from rhodecode.lib.dbmigrate.versions import _reset_base |
|
9 | 10 | from rhodecode.model import init_model_encryption |
@@ -28,7 +29,7 b' def upgrade(migrate_engine):' | |||
|
28 | 29 | repo_group = db_4_16_0_2.RepoGroup.__table__ |
|
29 | 30 | |
|
30 | 31 | with op.batch_alter_table(repo_group.name) as batch_op: |
|
31 | batch_op.alter_column("repo_group_name_hash", nullable=False) | |
|
32 | batch_op.alter_column("repo_group_name_hash", type_=String(1024), nullable=False) | |
|
32 | 33 | |
|
33 | 34 | |
|
34 | 35 | def downgrade(migrate_engine): |
@@ -147,7 +147,7 b' class RemoteRepo(object):' | |||
|
147 | 147 | |
|
148 | 148 | def _call_with_logging(self, name, *args, **kwargs): |
|
149 | 149 | context_uid = self._wire.get('context') |
|
150 | log.debug('Calling %s@%s with args:%r. wire_context: %s', | |
|
150 | log.debug('Calling %s@%s with args:%.10240r. wire_context: %s', | |
|
151 | 151 | self.url, name, args, context_uid) |
|
152 | 152 | return RemoteRepo._call(self, name, *args, **kwargs) |
|
153 | 153 |
@@ -1841,6 +1841,10 b' class Repository(Base, BaseModel):' | |||
|
1841 | 1841 | return q.all() |
|
1842 | 1842 | |
|
1843 | 1843 | @property |
|
1844 | def repo_uid(self): | |
|
1845 | return '_{}'.format(self.repo_id) | |
|
1846 | ||
|
1847 | @property | |
|
1844 | 1848 | def forks(self): |
|
1845 | 1849 | """ |
|
1846 | 1850 | Return forks of this repo |
@@ -4111,7 +4115,7 b' class PullRequest(Base, _PullRequestBase' | |||
|
4111 | 4115 | def pull_request_version_id(self): |
|
4112 | 4116 | return getattr(pull_request_obj, 'pull_request_version_id', None) |
|
4113 | 4117 | |
|
4114 | attrs = StrictAttributeDict(pull_request_obj.get_api_data()) | |
|
4118 | attrs = StrictAttributeDict(pull_request_obj.get_api_data(with_merge_state=False)) | |
|
4115 | 4119 | |
|
4116 | 4120 | attrs.author = StrictAttributeDict( |
|
4117 | 4121 | pull_request_obj.author.get_api_data()) |
@@ -33,7 +33,7 b' from rhodecode import events' | |||
|
33 | 33 | from rhodecode.integrations.types.base import EEIntegration |
|
34 | 34 | from rhodecode.lib.caching_query import FromCache |
|
35 | 35 | from rhodecode.model import BaseModel |
|
36 | from rhodecode.model.db import Integration, Repository, RepoGroup, true, false | |
|
36 | from rhodecode.model.db import Integration, Repository, RepoGroup, true, false, case | |
|
37 | 37 | from rhodecode.integrations import integration_type_registry |
|
38 | 38 | |
|
39 | 39 | log = logging.getLogger(__name__) |
@@ -155,6 +155,7 b' class IntegrationModel(BaseModel):' | |||
|
155 | 155 | """ |
|
156 | 156 | Get integrations that match an event |
|
157 | 157 | """ |
|
158 | # base query | |
|
158 | 159 | query = self.sa.query( |
|
159 | 160 | Integration |
|
160 | 161 | ).filter( |
@@ -164,7 +165,7 b' class IntegrationModel(BaseModel):' | |||
|
164 | 165 | global_integrations_filter = and_( |
|
165 | 166 | Integration.repo_id == None, |
|
166 | 167 | Integration.repo_group_id == None, |
|
167 |
Integration.child_repos_only == |
|
|
168 | Integration.child_repos_only == false(), | |
|
168 | 169 | ) |
|
169 | 170 | |
|
170 | 171 | if isinstance(event, events.RepoEvent): |
@@ -177,42 +178,61 b' class IntegrationModel(BaseModel):' | |||
|
177 | 178 | clauses = [ |
|
178 | 179 | global_integrations_filter, |
|
179 | 180 | ] |
|
181 | cases = [ | |
|
182 | (global_integrations_filter, 1), | |
|
183 | (root_repos_integrations_filter, 2), | |
|
184 | ] | |
|
180 | 185 | |
|
181 | # repo integrations | |
|
182 | if event.repo.repo_id: # pre create events dont have a repo_id yet | |
|
183 | clauses.append( | |
|
184 | Integration.repo_id == event.repo.repo_id | |
|
185 | ) | |
|
186 | ||
|
186 | # repo group integrations | |
|
187 | 187 | if event.repo.group: |
|
188 | clauses.append( | |
|
189 |
|
|
|
188 | # repo group with only root level repos | |
|
189 | group_child_repos_filter = and_( | |
|
190 | 190 |
|
|
191 | 191 |
|
|
192 | 192 |
|
|
193 | ||
|
194 | clauses.append(group_child_repos_filter) | |
|
195 | cases.append( | |
|
196 | (group_child_repos_filter, 3), | |
|
193 | 197 | ) |
|
198 | ||
|
194 | 199 | # repo group cascade to kids |
|
195 | clauses.append( | |
|
196 | and_( | |
|
200 | group_recursive_repos_filter = and_( | |
|
197 | 201 |
|
|
198 |
|
|
|
199 | event.repo.groups_with_parents] | |
|
202 | [group.group_id for group in event.repo.groups_with_parents] | |
|
200 | 203 |
|
|
201 | 204 |
|
|
202 | 205 |
|
|
206 | clauses.append(group_recursive_repos_filter) | |
|
207 | cases.append( | |
|
208 | (group_recursive_repos_filter, 4), | |
|
203 | 209 | ) |
|
204 | 210 | |
|
205 | 211 | if not event.repo.group: # root repo |
|
206 | 212 | clauses.append(root_repos_integrations_filter) |
|
207 | 213 | |
|
214 | # repo integrations | |
|
215 | if event.repo.repo_id: # pre create events dont have a repo_id yet | |
|
216 | specific_repo_filter = Integration.repo_id == event.repo.repo_id | |
|
217 | clauses.append(specific_repo_filter) | |
|
218 | cases.append( | |
|
219 | (specific_repo_filter, 5), | |
|
220 | ) | |
|
221 | ||
|
222 | order_by_criterion = case(cases) | |
|
223 | ||
|
208 | 224 | query = query.filter(or_(*clauses)) |
|
225 | query = query.order_by(order_by_criterion) | |
|
209 | 226 | |
|
210 | 227 | if cache: |
|
211 | 228 | cache_key = "get_enabled_repo_integrations_%i" % event.repo.repo_id |
|
212 | 229 | query = query.options( |
|
213 | 230 | FromCache("sql_cache_short", cache_key)) |
|
214 | 231 | else: # only global integrations |
|
232 | order_by_criterion = Integration.integration_id | |
|
233 | ||
|
215 | 234 | query = query.filter(global_integrations_filter) |
|
235 | query = query.order_by(order_by_criterion) | |
|
216 | 236 | if cache: |
|
217 | 237 | query = query.options( |
|
218 | 238 | FromCache("sql_cache_short", "get_enabled_global_integrations")) |
@@ -374,8 +374,7 b' class RepoModel(BaseModel):' | |||
|
374 | 374 | ) |
|
375 | 375 | |
|
376 | 376 | # handle extra fields |
|
377 | for field in filter(lambda k: k.startswith(RepositoryField.PREFIX), | |
|
378 | kwargs): | |
|
377 | for field in filter(lambda k: k.startswith(RepositoryField.PREFIX), kwargs): | |
|
379 | 378 | k = RepositoryField.un_prefix_key(field) |
|
380 | 379 | ex_field = RepositoryField.get_by_key_name( |
|
381 | 380 | key=k, repo=cur_repo) |
@@ -53,7 +53,7 b' input[type="button"] {' | |||
|
53 | 53 | .border ( @border-thickness, @grey4 ); |
|
54 | 54 | } |
|
55 | 55 | |
|
56 |
.icon-remove |
|
|
56 | .icon-remove { | |
|
57 | 57 | display: none; |
|
58 | 58 | } |
|
59 | 59 |
@@ -536,7 +536,7 b' th {' | |||
|
536 | 536 | .glyphicon-minus-sign:before { |
|
537 | 537 | content: "\e082"; |
|
538 | 538 | } |
|
539 |
.glyphicon-remove |
|
|
539 | .glyphicon-remove:before { | |
|
540 | 540 | content: "\e083"; |
|
541 | 541 | } |
|
542 | 542 | .glyphicon-ok-sign:before { |
@@ -1622,8 +1622,14 b' table.integrations {' | |||
|
1622 | 1622 | margin-left: 8px; |
|
1623 | 1623 | } |
|
1624 | 1624 | |
|
1625 | #pull_request_overview { | |
|
1625 | 1626 | div.ancestor { |
|
1626 |
margin: -3 |
|
|
1627 | margin: -33px 0; | |
|
1628 | } | |
|
1629 | } | |
|
1630 | ||
|
1631 | div.ancestor { | |
|
1632 | line-height: 33px; | |
|
1627 | 1633 | } |
|
1628 | 1634 | |
|
1629 | 1635 | .cs_icon_td input[type="checkbox"] { |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Add another comment', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Show more', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Start following this repository', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Stop following this repository', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Submitting...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Unfollow', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'files', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Add another comment', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Show more', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Start following this repository', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Stop following this repository', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Submitting...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Unfollow', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'files', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Add another comment', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Show more', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Start following this repository', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Stop following this repository', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Submitting...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Unfollow', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'files', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Add another comment', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Show more', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Start following this repository', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Stop following this repository', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Submitting...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Unfollow', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'files', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Add another comment', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Show more', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Suivre ce dépôt', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Arrêter de suivre ce dépôt', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Envoi…', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Unfollow', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'Activé', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'Fichiers', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} mois', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Aggiungi un altro commento', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Mostra ancora', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Inizia a seguire il repository', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Smetti di seguire il repository', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Inoltro...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'Al momento non ci sono richieste di PULL che richiedono il tuo intervento', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Smetti di seguire', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'abilitato', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'i file', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': '別のコメントを追加', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'ステータスを承認にする', |
|
64 | 65 | 'Set status to Rejected': 'ステータスを拒否にする', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'もっと表示', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'このリポジトリのフォローする', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'ステータスレビュー', |
|
74 | 77 | 'Stop following this repository': 'このリポジトリのフォローをやめる', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': '送信中...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'アンフォロー', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': '{0} 件のみ選択できます', |
|
87 | 93 | 'You can only select {0} items': '{0} 件のみ選択できます', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': '有効', |
|
93 | 99 | 'file': 'ファイル', |
|
94 | 100 | 'files': 'ファイル', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} 分', |
|
119 | 126 | '{0} month': '{0} ヶ月', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} 件の結果があります。矢印キーの上下で選択できます。', |
|
124 | 133 | '{0} sec': '{0} 秒', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -2,6 +2,7 b'' | |||
|
2 | 2 | _gettext('(from usergroup {0})'); |
|
3 | 3 | _gettext('Add another comment'); |
|
4 | 4 | _gettext('Adding new reviewers is forbidden.'); |
|
5 | _gettext('All Authors'); | |
|
5 | 6 | _gettext('All individual reviewers must vote.'); |
|
6 | 7 | _gettext('All reviewers must vote.'); |
|
7 | 8 | _gettext('At least {0} reviewer must vote.'); |
@@ -57,6 +58,7 b'' | |||
|
57 | 58 | _gettext('Set status to Approved'); |
|
58 | 59 | _gettext('Set status to Rejected'); |
|
59 | 60 | _gettext('Show at Commit '); |
|
61 | _gettext('Show commit range {0} ... {1}'); | |
|
60 | 62 | _gettext('Show full context diff'); |
|
61 | 63 | _gettext('Show more'); |
|
62 | 64 | _gettext('Show selected commit __S'); |
@@ -64,8 +66,10 b'' | |||
|
64 | 66 | _gettext('Show whitespace changes'); |
|
65 | 67 | _gettext('Specified expiration date'); |
|
66 | 68 | _gettext('Start following this repository'); |
|
69 | _gettext('Started watching this repository'); | |
|
67 | 70 | _gettext('Status Review'); |
|
68 | 71 | _gettext('Stop following this repository'); |
|
72 | _gettext('Stopped watching this repository'); | |
|
69 | 73 | _gettext('Submitting...'); |
|
70 | 74 | _gettext('Switch to chat'); |
|
71 | 75 | _gettext('Switch to comment'); |
@@ -74,9 +78,11 b'' | |||
|
74 | 78 | _gettext('There are currently no open pull requests requiring your participation.'); |
|
75 | 79 | _gettext('Toggle Wide Mode diff'); |
|
76 | 80 | _gettext('Unfollow'); |
|
81 | _gettext('Unwatch'); | |
|
77 | 82 | _gettext('Updating...'); |
|
78 | 83 | _gettext('User `{0}` already in reviewers'); |
|
79 | 84 | _gettext('User `{0}` not allowed to be a reviewer'); |
|
85 | _gettext('Watch'); | |
|
80 | 86 | _gettext('You can only select {0} item'); |
|
81 | 87 | _gettext('You can only select {0} items'); |
|
82 | 88 | _gettext('activated'); |
@@ -86,6 +92,7 b'' | |||
|
86 | 92 | _gettext('enabled'); |
|
87 | 93 | _gettext('file'); |
|
88 | 94 | _gettext('files'); |
|
95 | _gettext('go to numeric commit'); | |
|
89 | 96 | _gettext('in {0}'); |
|
90 | 97 | _gettext('in {0} and {1}'); |
|
91 | 98 | _gettext('in {0}, {1}'); |
@@ -112,8 +119,10 b'' | |||
|
112 | 119 | _gettext('{0} min'); |
|
113 | 120 | _gettext('{0} month'); |
|
114 | 121 | _gettext('{0} months'); |
|
122 | _gettext('{0} of {1} repository groups'); | |
|
115 | 123 | _gettext('{0} out of {1} ssh keys'); |
|
116 | 124 | _gettext('{0} out of {1} users'); |
|
125 | _gettext('{0} repository groups'); | |
|
117 | 126 | _gettext('{0} results are available, use up and down arrow keys to navigate.'); |
|
118 | 127 | _gettext('{0} sec'); |
|
119 | 128 | _gettext('{0} user groups ({1} inactive)'); |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Dodaj kolejny komentarz', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Pokaż więcej', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Zacznij obserwację tego repozytorium', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Zakończyć obserwację tego repozytorium', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Przesyłanie...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Nie obserwuj', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'pliki', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Adicionar outro comentário', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Mostrar mais', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Passar a seguir este repositório', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Parar de seguir este repositório', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Enviando...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Parar de seguir', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'arquivos', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Добавить другой комментарий', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Показать еще', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': 'Наблюдать за репозиторием', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': 'Отменить наблюдение за репозиторием', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': 'Применение...', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Не наблюдать', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': 'файлы', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -8,6 +8,7 b' var _TM = {' | |||
|
8 | 8 | '(from usergroup {0})': '(from usergroup {0})', |
|
9 | 9 | 'Add another comment': 'Add another comment', |
|
10 | 10 | 'Adding new reviewers is forbidden.': 'Adding new reviewers is forbidden.', |
|
11 | 'All Authors': 'All Authors', | |
|
11 | 12 | 'All individual reviewers must vote.': 'All individual reviewers must vote.', |
|
12 | 13 | 'All reviewers must vote.': 'All reviewers must vote.', |
|
13 | 14 | 'At least {0} reviewer must vote.': 'At least {0} reviewer must vote.', |
@@ -63,6 +64,7 b' var _TM = {' | |||
|
63 | 64 | 'Set status to Approved': 'Set status to Approved', |
|
64 | 65 | 'Set status to Rejected': 'Set status to Rejected', |
|
65 | 66 | 'Show at Commit ': 'Show at Commit ', |
|
67 | 'Show commit range {0} ... {1}': 'Show commit range {0} ... {1}', | |
|
66 | 68 | 'Show full context diff': 'Show full context diff', |
|
67 | 69 | 'Show more': 'Show more', |
|
68 | 70 | 'Show selected commit __S': 'Show selected commit __S', |
@@ -70,8 +72,10 b' var _TM = {' | |||
|
70 | 72 | 'Show whitespace changes': 'Show whitespace changes', |
|
71 | 73 | 'Specified expiration date': 'Specified expiration date', |
|
72 | 74 | 'Start following this repository': '开始关注该版本库', |
|
75 | 'Started watching this repository': 'Started watching this repository', | |
|
73 | 76 | 'Status Review': 'Status Review', |
|
74 | 77 | 'Stop following this repository': '停止关注该版本库', |
|
78 | 'Stopped watching this repository': 'Stopped watching this repository', | |
|
75 | 79 | 'Submitting...': '提交中……', |
|
76 | 80 | 'Switch to chat': 'Switch to chat', |
|
77 | 81 | 'Switch to comment': 'Switch to comment', |
@@ -80,9 +84,11 b' var _TM = {' | |||
|
80 | 84 | 'There are currently no open pull requests requiring your participation.': 'There are currently no open pull requests requiring your participation.', |
|
81 | 85 | 'Toggle Wide Mode diff': 'Toggle Wide Mode diff', |
|
82 | 86 | 'Unfollow': 'Unfollow', |
|
87 | 'Unwatch': 'Unwatch', | |
|
83 | 88 | 'Updating...': 'Updating...', |
|
84 | 89 | 'User `{0}` already in reviewers': 'User `{0}` already in reviewers', |
|
85 | 90 | 'User `{0}` not allowed to be a reviewer': 'User `{0}` not allowed to be a reviewer', |
|
91 | 'Watch': 'Watch', | |
|
86 | 92 | 'You can only select {0} item': 'You can only select {0} item', |
|
87 | 93 | 'You can only select {0} items': 'You can only select {0} items', |
|
88 | 94 | 'activated': 'activated', |
@@ -92,6 +98,7 b' var _TM = {' | |||
|
92 | 98 | 'enabled': 'enabled', |
|
93 | 99 | 'file': 'file', |
|
94 | 100 | 'files': '文件', |
|
101 | 'go to numeric commit': 'go to numeric commit', | |
|
95 | 102 | 'in {0}': 'in {0}', |
|
96 | 103 | 'in {0} and {1}': 'in {0} and {1}', |
|
97 | 104 | 'in {0}, {1}': 'in {0}, {1}', |
@@ -118,8 +125,10 b' var _TM = {' | |||
|
118 | 125 | '{0} min': '{0} min', |
|
119 | 126 | '{0} month': '{0} month', |
|
120 | 127 | '{0} months': '{0} months', |
|
128 | '{0} of {1} repository groups': '{0} of {1} repository groups', | |
|
121 | 129 | '{0} out of {1} ssh keys': '{0} out of {1} ssh keys', |
|
122 | 130 | '{0} out of {1} users': '{0} out of {1} users', |
|
131 | '{0} repository groups': '{0} repository groups', | |
|
123 | 132 | '{0} results are available, use up and down arrow keys to navigate.': '{0} results are available, use up and down arrow keys to navigate.', |
|
124 | 133 | '{0} sec': '{0} sec', |
|
125 | 134 | '{0} user groups ({1} inactive)': '{0} user groups ({1} inactive)', |
@@ -239,6 +239,7 b' function registerRCRoutes() {' | |||
|
239 | 239 | pyroutes.register('edit_repo_advanced_hooks', '/%(repo_name)s/settings/advanced/hooks', ['repo_name']); |
|
240 | 240 | pyroutes.register('edit_repo_caches', '/%(repo_name)s/settings/caches', ['repo_name']); |
|
241 | 241 | pyroutes.register('edit_repo_perms', '/%(repo_name)s/settings/permissions', ['repo_name']); |
|
242 | pyroutes.register('edit_repo_perms_set_private', '/%(repo_name)s/settings/permissions/set_private', ['repo_name']); | |
|
242 | 243 | pyroutes.register('edit_repo_maintenance', '/%(repo_name)s/settings/maintenance', ['repo_name']); |
|
243 | 244 | pyroutes.register('edit_repo_maintenance_execute', '/%(repo_name)s/settings/maintenance/execute', ['repo_name']); |
|
244 | 245 | pyroutes.register('edit_repo_fields', '/%(repo_name)s/settings/fields', ['repo_name']); |
@@ -262,8 +263,10 b' function registerRCRoutes() {' | |||
|
262 | 263 | pyroutes.register('strip_check', '/%(repo_name)s/settings/strip_check', ['repo_name']); |
|
263 | 264 | pyroutes.register('strip_execute', '/%(repo_name)s/settings/strip_execute', ['repo_name']); |
|
264 | 265 | pyroutes.register('edit_repo_audit_logs', '/%(repo_name)s/settings/audit_logs', ['repo_name']); |
|
265 |
pyroutes.register('rss_feed_home', '/%(repo_name)s/feed |
|
|
266 |
pyroutes.register('atom_feed_home', '/%(repo_name)s/feed |
|
|
266 | pyroutes.register('rss_feed_home', '/%(repo_name)s/feed-rss', ['repo_name']); | |
|
267 | pyroutes.register('atom_feed_home', '/%(repo_name)s/feed-atom', ['repo_name']); | |
|
268 | pyroutes.register('rss_feed_home_old', '/%(repo_name)s/feed/rss', ['repo_name']); | |
|
269 | pyroutes.register('atom_feed_home_old', '/%(repo_name)s/feed/atom', ['repo_name']); | |
|
267 | 270 | pyroutes.register('repo_summary', '/%(repo_name)s', ['repo_name']); |
|
268 | 271 | pyroutes.register('repo_summary_slash', '/%(repo_name)s/', ['repo_name']); |
|
269 | 272 | pyroutes.register('edit_repo_group', '/%(repo_group_name)s/_edit', ['repo_group_name']); |
@@ -107,7 +107,10 b' var CommitsController = function () {' | |||
|
107 | 107 | |
|
108 | 108 | $.each($('.message.truncate'), function(idx, value) { |
|
109 | 109 | if(!(value.offsetWidth < value.scrollWidth)){ |
|
110 |
$(this).closest('td').siblings('.expand_commit') |
|
|
110 | var expandTd = $(this).closest('td').siblings('.expand_commit'); | |
|
111 | expandTd.find('i').hide(); | |
|
112 | expandTd.removeAttr('title'); | |
|
113 | expandTd.removeClass('expand_commit'); | |
|
111 | 114 | } |
|
112 | 115 | }); |
|
113 | 116 |
@@ -11,7 +11,7 b'' | |||
|
11 | 11 | <div class="input"> |
|
12 | 12 | ${h.text('repo_name', class_="medium")} |
|
13 | 13 | <div class="info-block"> |
|
14 |
<a id="remote_clone_toggle" href="#"> |
|
|
14 | <a id="remote_clone_toggle" href="#">${_('Import Existing Repository ?')}</a> | |
|
15 | 15 | </div> |
|
16 | 16 | %if not c.rhodecode_user.is_admin: |
|
17 | 17 | ${h.hidden('user_created',True)} |
@@ -161,7 +161,7 b'' | |||
|
161 | 161 | <div class="field"> |
|
162 | 162 | <button class="btn btn-small btn-danger" type="submit" |
|
163 | 163 | onclick="return confirm('${_('Confirm to archive this repository: %s') % c.repo_name}');"> |
|
164 |
<i class="icon-remove |
|
|
164 | <i class="icon-remove"></i> | |
|
165 | 165 | ${_('Archive this repository')} |
|
166 | 166 | </button> |
|
167 | 167 | </div> |
@@ -217,7 +217,7 b'' | |||
|
217 | 217 | <div class="field"> |
|
218 | 218 | <button class="btn btn-small btn-danger" type="submit" |
|
219 | 219 | onclick="return confirm('${_('Confirm to delete this repository: %s') % c.repo_name}');"> |
|
220 |
<i class="icon-remove |
|
|
220 | <i class="icon-remove"></i> | |
|
221 | 221 | ${_('Delete this repository')} |
|
222 | 222 | </button> |
|
223 | 223 | </div> |
@@ -105,6 +105,10 b'' | |||
|
105 | 105 | member="${_user.user_id}" member_type="user"> |
|
106 | 106 | ${_('Remove')} |
|
107 | 107 | </span> |
|
108 | %elif _user.username == h.DEFAULT_USER: | |
|
109 | <span class="tooltip btn btn-link btn-default" onclick="enablePrivateRepo(); return false" title="${_('Private repositories are only visible to people explicitly added as collaborators.')}"> | |
|
110 | ${_('set private mode')} | |
|
111 | </span> | |
|
108 | 112 | %endif |
|
109 | 113 | </td> |
|
110 | 114 | <td class="quick_repo_menu"> |
@@ -199,4 +203,20 b'' | |||
|
199 | 203 | markRevokePermInput($(this), 'repository'); |
|
200 | 204 | }); |
|
201 | 205 | quick_repo_menu(); |
|
206 | ||
|
207 | var enablePrivateRepo = function () { | |
|
208 | var postData = { | |
|
209 | 'csrf_token': CSRF_TOKEN | |
|
210 | }; | |
|
211 | ||
|
212 | var success = function(o) { | |
|
213 | var defaultUrl = pyroutes.url('edit_repo_perms', {"repo_name": templateContext.repo_name}); | |
|
214 | window.location = o.redirect_url || defaultUrl; | |
|
215 | }; | |
|
216 | ||
|
217 | ajaxPOST( | |
|
218 | pyroutes.url('edit_repo_perms_set_private', {"repo_name": templateContext.repo_name}), | |
|
219 | postData, | |
|
220 | success); | |
|
221 | } | |
|
202 | 222 | </script> |
@@ -57,7 +57,7 b'' | |||
|
57 | 57 | % if not c.form['repo_clone_uri'].error: |
|
58 | 58 | <div id="clone_uri_hidden" class='text-as-placeholder'> |
|
59 | 59 | <span id="clone_uri_hidden_value">${c.rhodecode_db_repo.clone_uri_hidden}</span> |
|
60 |
<span class="link" id="edit_clone_uri" |
|
|
60 | <span class="link" id="edit_clone_uri">${_('edit')}</span> | |
|
61 | 61 | </div> |
|
62 | 62 | % endif |
|
63 | 63 | |
@@ -99,7 +99,7 b'' | |||
|
99 | 99 | % if not c.form['repo_push_uri'].error: |
|
100 | 100 | <div id="push_uri_hidden" class='text-as-placeholder'> |
|
101 | 101 | <span id="push_uri_hidden_value">${c.rhodecode_db_repo.push_uri_hidden}</span> |
|
102 |
<span class="link" id="edit_push_uri" |
|
|
102 | <span class="link" id="edit_push_uri">${_('edit')}</span> | |
|
103 | 103 | </div> |
|
104 | 104 | % endif |
|
105 | 105 |
@@ -27,7 +27,7 b'' | |||
|
27 | 27 | <div class="field"> |
|
28 | 28 | <button class="btn btn-small btn-danger" type="submit" |
|
29 | 29 | onclick="return confirm('${_('Confirm to delete this exception')}');"> |
|
30 |
<i class="icon-remove |
|
|
30 | <i class="icon-remove"></i> | |
|
31 | 31 | ${_('Delete This Exception')} |
|
32 | 32 | </button> |
|
33 | 33 | </div> |
@@ -17,7 +17,7 b'' | |||
|
17 | 17 | <div class="field"> |
|
18 | 18 | <button class="btn btn-small btn-danger" type="submit" |
|
19 | 19 | onclick="return confirm('${_('Confirm to delete all exceptions')}');"> |
|
20 |
<i class="icon-remove |
|
|
20 | <i class="icon-remove"></i> | |
|
21 | 21 | % if c.type_filter: |
|
22 | 22 | ${_('Delete All `{}`').format(c.type_filter)} |
|
23 | 23 | % else: |
@@ -108,8 +108,8 b'' | |||
|
108 | 108 | <div style="padding: 10px 0px"></div> |
|
109 | 109 | <div class="textarea text-area"> |
|
110 | 110 | ${h.textarea('rhodecode_pre_code',cols=23,rows=5,class_="medium")} |
|
111 |
<span class="help-block">${_('Custom js/css code added at the end of the <head |
|
|
112 |
${_('Use <script/> or < |
|
|
111 | <span class="help-block">${_('Custom js/css code added at the end of the <head/> tag.')} | |
|
112 | ${_('Use <script/> or <style/> tags to define custom scripting or styling.')}</span> | |
|
113 | 113 | </div> |
|
114 | 114 | </div> |
|
115 | 115 | </div> |
@@ -131,7 +131,7 b'' | |||
|
131 | 131 | <div class="textarea text-area"> |
|
132 | 132 | ${h.textarea('rhodecode_post_code',cols=23,rows=5, class_="medium")} |
|
133 | 133 | <span class="help-block">${_('Custom js/css code added at the end of the <body> tag.')} |
|
134 |
${_('Use <script> or < |
|
|
134 | ${_('Use <script> or <style> tags to define custom scripting or styling.')}</span> | |
|
135 | 135 | </div> |
|
136 | 136 | </div> |
|
137 | 137 | </div> |
@@ -77,7 +77,7 b'' | |||
|
77 | 77 | ${h.hidden('force', 1)} |
|
78 | 78 | <button class="btn btn-small btn-danger" type="submit" |
|
79 | 79 | onclick="return confirm('${_('Confirm to delete user group `%(ugroup)s` with all permission assignments') % {'ugroup': c.user_group.users_group_name}}');"> |
|
80 |
<i class="icon-remove |
|
|
80 | <i class="icon-remove"></i> | |
|
81 | 81 | ${_('Delete This User Group')} |
|
82 | 82 | </button> |
|
83 | 83 | ${h.end_form()} |
@@ -86,7 +86,7 b'' | |||
|
86 | 86 | </td> |
|
87 | 87 | <td class=""> |
|
88 | 88 | <div class="usergroup_member_remove action_button" onclick="removeUserGroupMember(${user.user_id}, true)" style="visibility: visible;"> |
|
89 |
<i class="icon-remove |
|
|
89 | <i class="icon-remove"></i> | |
|
90 | 90 | </div> |
|
91 | 91 | </td> |
|
92 | 92 | </tr> |
@@ -155,7 +155,7 b'' | |||
|
155 | 155 | '</td>'+ |
|
156 | 156 | '<td class="td-author-new-entry">'+ |
|
157 | 157 | '<div class="usergroup_member_remove action_button" onclick="removeUserGroupMember({5}, true)" style="visibility: visible;">'+ |
|
158 |
'<i class="icon-remove |
|
|
158 | '<i class="icon-remove"></i>'+ | |
|
159 | 159 | '</div>'+ |
|
160 | 160 | '</td>'+ |
|
161 | 161 | '</tr>').format(gravatar, userLink, username, |
@@ -217,7 +217,7 b'' | |||
|
217 | 217 | ## Context Actions |
|
218 | 218 | <div class="pull-right"> |
|
219 | 219 | %if c.rhodecode_user.username != h.DEFAULT_USER: |
|
220 |
<a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_ |
|
|
220 | <a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_uid, _query=dict(auth_token=c.rhodecode_user.feed_token))}" title="${_('RSS Feed')}" class="btn btn-sm"><i class="icon-rss-sign"></i>RSS</a> | |
|
221 | 221 | |
|
222 | 222 | <a href="#WatchRepo" onclick="toggleFollowingRepo(this, templateContext.repo_id); return false" title="${_('Watch this Repository and actions on it in your personalized journal')}" class="btn btn-sm ${('watching' if c.repository_is_user_following else '')}"> |
|
223 | 223 | % if c.repository_is_user_following: |
@@ -228,7 +228,7 b'' | |||
|
228 | 228 | |
|
229 | 229 | </a> |
|
230 | 230 | %else: |
|
231 |
<a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_ |
|
|
231 | <a href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_uid)}" title="${_('RSS Feed')}" class="btn btn-sm"><i class="icon-rss-sign"></i>RSS</a> | |
|
232 | 232 | %endif |
|
233 | 233 | </div> |
|
234 | 234 |
@@ -556,7 +556,7 b' def get_comments_for(diff_type, comments' | |||
|
556 | 556 | %if line_old_comments: |
|
557 | 557 | <% has_outdated = any([x.outdated for x in line_old_comments]) %> |
|
558 | 558 | % if has_outdated: |
|
559 |
<i title="${_('comments including outdated')}:${len(line_old_comments)}" class="icon-comment |
|
|
559 | <i title="${_('comments including outdated')}:${len(line_old_comments)}" class="icon-comment-toggle" onclick="return Rhodecode.comments.toggleLineComments(this)"></i> | |
|
560 | 560 | % else: |
|
561 | 561 | <i title="${_('comments')}: ${len(line_old_comments)}" class="icon-comment" onclick="return Rhodecode.comments.toggleLineComments(this)"></i> |
|
562 | 562 | % endif |
@@ -599,7 +599,7 b' def get_comments_for(diff_type, comments' | |||
|
599 | 599 | %if line_new_comments: |
|
600 | 600 | <% has_outdated = any([x.outdated for x in line_new_comments]) %> |
|
601 | 601 | % if has_outdated: |
|
602 |
<i title="${_('comments including outdated')}:${len(line_new_comments)}" class="icon-comment |
|
|
602 | <i title="${_('comments including outdated')}:${len(line_new_comments)}" class="icon-comment-toggle" onclick="return Rhodecode.comments.toggleLineComments(this)"></i> | |
|
603 | 603 | % else: |
|
604 | 604 | <i title="${_('comments')}: ${len(line_new_comments)}" class="icon-comment" onclick="return Rhodecode.comments.toggleLineComments(this)"></i> |
|
605 | 605 | % endif |
@@ -655,7 +655,7 b' def get_comments_for(diff_type, comments' | |||
|
655 | 655 | % if comments: |
|
656 | 656 | <% has_outdated = any([x.outdated for x in comments]) %> |
|
657 | 657 | % if has_outdated: |
|
658 |
<i title="${_('comments including outdated')}:${len(comments)}" class="icon-comment |
|
|
658 | <i title="${_('comments including outdated')}:${len(comments)}" class="icon-comment-toggle" onclick="return Rhodecode.comments.toggleLineComments(this)"></i> | |
|
659 | 659 | % else: |
|
660 | 660 | <i title="${_('comments')}: ${len(comments)}" class="icon-comment" onclick="return Rhodecode.comments.toggleLineComments(this)"></i> |
|
661 | 661 | % endif |
@@ -165,7 +165,8 b'' | |||
|
165 | 165 | <div> |
|
166 | 166 | <div class="grid_edit"> |
|
167 | 167 | <a href="${h.route_path('edit_repo',repo_name=repo_name)}" title="${_('Edit')}"> |
|
168 | <i class="icon-pencil"></i>Edit</a> | |
|
168 | Edit | |
|
169 | </a> | |
|
169 | 170 | </div> |
|
170 | 171 | <div class="grid_delete"> |
|
171 | 172 | ${h.secure_form(h.route_path('edit_repo_advanced_delete', repo_name=repo_name), request=request)} |
@@ -252,7 +253,8 b'' | |||
|
252 | 253 | <%def name="user_actions(user_id, username)"> |
|
253 | 254 | <div class="grid_edit"> |
|
254 | 255 | <a href="${h.route_path('user_edit',user_id=user_id)}" title="${_('Edit')}"> |
|
255 | <i class="icon-pencil"></i>${_('Edit')}</a> | |
|
256 | ${_('Edit')} | |
|
257 | </a> | |
|
256 | 258 | </div> |
|
257 | 259 | <div class="grid_delete"> |
|
258 | 260 | ${h.secure_form(h.route_path('user_delete', user_id=user_id), request=request)} |
@@ -470,7 +470,7 b'' | |||
|
470 | 470 | <a class="btn btn-mini" href="/example/annotate/fc252256eb0fcb4f2613e66f0126ea27967ae28c/rhodecode/websetup.py">annotation</a> |
|
471 | 471 | <a class="btn btn-mini" href="/example/raw/fc252256eb0fcb4f2613e66f0126ea27967ae28c/rhodecode/websetup.py">raw</a> |
|
472 | 472 | <a class="btn btn-mini" href="/example/rawfile/fc252256eb0fcb4f2613e66f0126ea27967ae28c/rhodecode/websetup.py"> |
|
473 |
|
|
|
473 | download | |
|
474 | 474 | </a> |
|
475 | 475 | |
|
476 | 476 | <a class="btn btn-mini disabled tooltip" href="#" title="Editing files allowed only when on branch head commit">edit</a> |
@@ -648,7 +648,7 b' File Edit' | |||
|
648 | 648 | <a class="btn btn-mini" href="/example/files/80ead1899f50a894889e19ffeb49c9cebf5bf045/rhodecode/websetup.py">source</a> |
|
649 | 649 | <a class="btn btn-mini" href="/example/raw/80ead1899f50a894889e19ffeb49c9cebf5bf045/rhodecode/websetup.py">raw</a> |
|
650 | 650 | <a class="btn btn-mini" href="/example/rawfile/80ead1899f50a894889e19ffeb49c9cebf5bf045/rhodecode/websetup.py"> |
|
651 |
|
|
|
651 | download | |
|
652 | 652 | </a> |
|
653 | 653 | </div> |
|
654 | 654 | </div> |
@@ -150,7 +150,7 b'' | |||
|
150 | 150 | </div> |
|
151 | 151 | <input id="reviewer_70_input" type="hidden" value="70" name="review_members"> |
|
152 | 152 | <div class="reviewer_member_remove action_button" onclick="removeReviewMember(70, true)" style="visibility: hidden;"> |
|
153 |
<i class="icon-remove |
|
|
153 | <i class="icon-remove"></i> | |
|
154 | 154 | </div> |
|
155 | 155 | </li> |
|
156 | 156 | <li id="reviewer_33" class="collapsable-content" data-toggle="reviewers"> |
@@ -250,7 +250,7 b'' | |||
|
250 | 250 | <div class='input'> |
|
251 | 251 | <input id="05_example_input" type="text" readonly="readonly" placeholder="Example input"> |
|
252 | 252 | <span class="btn action_button btn-x"> |
|
253 |
<i class="icon-remove |
|
|
253 | <i class="icon-remove"></i> | |
|
254 | 254 | delete |
|
255 | 255 | </span> |
|
256 | 256 | <span class="help-block"> |
@@ -42,7 +42,7 b'' | |||
|
42 | 42 | <div class='input'> |
|
43 | 43 | <div class='text-as-placeholder'> |
|
44 | 44 | http://something.example.com |
|
45 |
<span class="link" id="edit_clone_uri"> |
|
|
45 | <span class="link" id="edit_clone_uri">${_('edit')}</span> | |
|
46 | 46 | </div> |
|
47 | 47 | <p class='help-block'>Help text in a paragraph.</p> |
|
48 | 48 | </div> |
@@ -339,7 +339,7 b'' | |||
|
339 | 339 | <div class='input'> |
|
340 | 340 | <input id="05_example_input" type="text" readonly="readonly" placeholder="Example input"> |
|
341 | 341 | <span class="btn btn-x"> |
|
342 |
<i class="icon-remove |
|
|
342 | <i class="icon-remove"></i> | |
|
343 | 343 | delete |
|
344 | 344 | </span> |
|
345 | 345 | <button class='btn btn-primary'>Action</button> |
@@ -47,7 +47,6 b'' | |||
|
47 | 47 | <td> |
|
48 | 48 | <div class="grid_edit"> |
|
49 | 49 | <a class="edit_issuetracker_entry" uid="4980baa2985b361e6e91b932f4a897d5" title="edit" href="#"> |
|
50 | <i class="icon-pencil"></i> | |
|
51 | 50 | <input type="submit" value="edit" class="btn btn-link"> |
|
52 | 51 | </a> |
|
53 | 52 | </div> |
@@ -59,7 +58,7 b'' | |||
|
59 | 58 | |
|
60 | 59 | <div style="display: none;"><input type="hidden" value="05adf5bfb9be3766186f25db19b545134c6b0077" name="csrf_token" id="csrf_token"></div> |
|
61 | 60 | <input type="hidden" value="4980baa2985b361e6e91b932f4a897d5" name="del_uid" id="del_uid"> |
|
62 |
<i class="icon-remove |
|
|
61 | <i class="icon-remove"></i> | |
|
63 | 62 | <input type="submit" value="delete" onclick="return confirm('Confirm to remove this pattern: kjlakjlkjlkj;lkjl;kjl;kjl;kjl;kj;lkj');" id="remove_user_3" class="btn btn-link btn-danger"> |
|
64 | 63 | </form> |
|
65 | 64 | </div> |
@@ -74,7 +73,6 b'' | |||
|
74 | 73 | <td> |
|
75 | 74 | <div class="grid_edit"> |
|
76 | 75 | <a class="edit_issuetracker_entry" uid="98ac51a4ab43bb36a4feceed15ac5b21" title="edit" href="#"> |
|
77 | <i class="icon-pencil"></i> | |
|
78 | 76 | <input type="submit" value="edit" class="btn btn-link"> |
|
79 | 77 | </a> |
|
80 | 78 | </div> |
@@ -86,7 +84,7 b'' | |||
|
86 | 84 | |
|
87 | 85 | <div style="display: none;"><input type="hidden" value="05adf5bfb9be3766186f25db19b545134c6b0077" name="csrf_token" id="csrf_token"></div> |
|
88 | 86 | <input type="hidden" value="98ac51a4ab43bb36a4feceed15ac5b21" name="del_uid" id="del_uid"> |
|
89 |
<i class="icon-remove |
|
|
87 | <i class="icon-remove"></i> | |
|
90 | 88 | <input type="submit" value="delete" onclick="return confirm('Confirm to remove this pattern: kajls;kdjfal;skdjflaskdjflksjdlfksjdlfksjdlfkjsldkfjslkdjflskdjflkdsjf');" id="remove_user_3" class="btn btn-link btn-danger"> |
|
91 | 89 | </form> |
|
92 | 90 | </div> |
@@ -101,7 +99,6 b'' | |||
|
101 | 99 | <td> |
|
102 | 100 | <div class="grid_edit"> |
|
103 | 101 | <a class="edit_issuetracker_entry" uid="098f6bcd4621d373cade4e832627b4f6" title="edit" href="#"> |
|
104 | <i class="icon-pencil"></i> | |
|
105 | 102 | <input type="submit" value="edit" class="btn btn-link"> |
|
106 | 103 | </a> |
|
107 | 104 | </div> |
@@ -113,7 +110,7 b'' | |||
|
113 | 110 | |
|
114 | 111 | <div style="display: none;"><input type="hidden" value="05adf5bfb9be3766186f25db19b545134c6b0077" name="csrf_token" id="csrf_token"></div> |
|
115 | 112 | <input type="hidden" value="098f6bcd4621d373cade4e832627b4f6" name="del_uid" id="del_uid"> |
|
116 |
<i class="icon-remove |
|
|
113 | <i class="icon-remove"></i> | |
|
117 | 114 | <input type="submit" value="delete" onclick="return confirm('Confirm to remove this pattern: test');" id="remove_user_3" class="btn btn-link btn-danger"> |
|
118 | 115 | </form> |
|
119 | 116 | </div> |
@@ -236,11 +236,12 b'' | |||
|
236 | 236 | <td class="td-action"> |
|
237 | 237 | <div class="grid_edit"> |
|
238 | 238 | <a href="/_admin/users/2/edit" title="edit"> |
|
239 | <i class="icon-pencil"></i>Edit</a> | |
|
239 | Edit | |
|
240 | </a> | |
|
240 | 241 | </div> |
|
241 | 242 | <div class="grid_delete"> |
|
242 | 243 | <form action="/_admin/users/2" method="post"> |
|
243 |
<i class="icon-remove |
|
|
244 | <i class="icon-remove"></i> | |
|
244 | 245 | <input class="btn btn-danger btn-link" id="remove_user_2" name="remove_" type="submit" value="delete"> |
|
245 | 246 | </form> |
|
246 | 247 | </div> |
@@ -104,12 +104,12 b' var CG = new ColorGenerator();' | |||
|
104 | 104 | |
|
105 | 105 | <% if (mandatory) { %> |
|
106 | 106 | <div class="reviewer_member_mandatory_remove" style="visibility: <%= edit_visibility %>;"> |
|
107 |
<i class="icon-remove |
|
|
107 | <i class="icon-remove"></i> | |
|
108 | 108 | </div> |
|
109 | 109 | <% } else { %> |
|
110 | 110 | <% if (allowed_to_update) { %> |
|
111 | 111 | <div class="reviewer_member_remove action_button" onclick="reviewersController.removeReviewMember(<%= member.user_id %>, true)" style="visibility: <%= edit_visibility %>;"> |
|
112 |
<i class="icon-remove |
|
|
112 | <i class="icon-remove" ></i> | |
|
113 | 113 | </div> |
|
114 | 114 | <% } %> |
|
115 | 115 | <% } %> |
@@ -186,7 +186,7 b'' | |||
|
186 | 186 | % else: |
|
187 | 187 | <span class="enabled"> |
|
188 | 188 | <a id="archive_link" class="btn btn-small" href="${h.route_path('repo_archivefile',repo_name=c.rhodecode_db_repo.repo_name,fname='tip.zip')}"> |
|
189 |
|
|
|
189 | tip.zip | |
|
190 | 190 | ## replaced by some JS on select |
|
191 | 191 | </a> |
|
192 | 192 | </span> |
@@ -90,7 +90,7 b'' | |||
|
90 | 90 | var fname = e.added.raw_id + ext; |
|
91 | 91 | var href = pyroutes.url('repo_archivefile', {'repo_name': templateContext.repo_name, 'fname':fname}); |
|
92 | 92 | // set new label |
|
93 |
$('#archive_link').html(' |
|
|
93 | $('#archive_link').html('{0}{1}'.format(escapeHtml(e.added.text), ext)); | |
|
94 | 94 | |
|
95 | 95 | // set new url to button, |
|
96 | 96 | $('#archive_link').attr('href', href) |
@@ -2,7 +2,7 b'' | |||
|
2 | 2 | |
|
3 | 3 | <%def name="title()"> |
|
4 | 4 | ## represents page title |
|
5 |
${_(' |
|
|
5 | ${_('{} Summary').format(c.repo_name)} | |
|
6 | 6 | %if c.rhodecode_name: |
|
7 | 7 | · ${h.branding(c.rhodecode_name)} |
|
8 | 8 | %endif |
@@ -10,8 +10,8 b'' | |||
|
10 | 10 | |
|
11 | 11 | |
|
12 | 12 | <%def name="head_extra()"> |
|
13 |
<link href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_ |
|
|
14 |
<link href="${h.route_path('rss_feed_home', repo_name=c.rhodecode_db_repo.repo_ |
|
|
13 | <link href="${h.route_path('atom_feed_home', repo_name=c.rhodecode_db_repo.repo_uid, _query=dict(auth_token=c.rhodecode_user.feed_token))}" rel="alternate" title="${h.tooltip(_('%s ATOM feed') % c.repo_name)}" type="application/atom+xml" /> | |
|
14 | <link href="${h.route_path('rss_feed_home', repo_name=c.rhodecode_db_repo.repo_uid, _query=dict(auth_token=c.rhodecode_user.feed_token))}" rel="alternate" title="${h.tooltip(_('%s RSS feed') % c.repo_name)}" type="application/rss+xml" /> | |
|
15 | 15 | </%def> |
|
16 | 16 | |
|
17 | 17 |
@@ -151,9 +151,9 b' def test_enabled_integration_repo_scopes' | |||
|
151 | 151 | |
|
152 | 152 | assert triggered_integrations == [ |
|
153 | 153 | integrations['global'], |
|
154 | integrations['other_repo'], | |
|
155 | 154 | integrations['other_group'], |
|
156 | 155 | integrations['other_group_recursive'], |
|
156 | integrations['other_repo'], | |
|
157 | 157 | ] |
|
158 | 158 | |
|
159 | 159 | triggered_integrations = IntegrationModel().get_for_event( |
@@ -161,9 +161,9 b' def test_enabled_integration_repo_scopes' | |||
|
161 | 161 | |
|
162 | 162 | assert triggered_integrations == [ |
|
163 | 163 | integrations['global'], |
|
164 | integrations['parent_repo'], | |
|
165 | 164 | integrations['parent_group'], |
|
166 | 165 | integrations['parent_group_recursive'], |
|
166 | integrations['parent_repo'], | |
|
167 | 167 | ] |
|
168 | 168 | |
|
169 | 169 | triggered_integrations = IntegrationModel().get_for_event( |
@@ -171,10 +171,10 b' def test_enabled_integration_repo_scopes' | |||
|
171 | 171 | |
|
172 | 172 | assert triggered_integrations == [ |
|
173 | 173 | integrations['global'], |
|
174 |
integrations['child_ |
|
|
174 | integrations['child_group'], | |
|
175 | 175 | integrations['parent_group_recursive'], |
|
176 | integrations['child_group'], | |
|
177 | 176 | integrations['child_group_recursive'], |
|
177 | integrations['child_repo'], | |
|
178 | 178 | ] |
|
179 | 179 | |
|
180 | 180 |
@@ -19,51 +19,55 b'' | |||
|
19 | 19 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
20 | 20 | |
|
21 | 21 | import timeit |
|
22 | import logging | |
|
23 | import click | |
|
22 | 24 | |
|
23 | server = "localhost:5000" | |
|
25 | log = logging.getLogger(__name__) | |
|
26 | ||
|
24 | 27 | |
|
25 | pages = [ | |
|
26 | "cpython", | |
|
27 | "cpython/annotate/74236c8bf064188516b32bf95016971227ec72a9/Makefile.pre.in", | |
|
28 | "cpython/changelog", | |
|
29 | "cpython/changeset/e0f681f4ade3af52915d5f32daac97ada580d71a", | |
|
30 | "cpython/compare/tag@v3.4.1rc1...tag@v3.4.1?target_repo=cpython", | |
|
31 | "cpython/files/tip/", | |
|
32 | "cpython/files/74236c8bf064188516b32bf95016971227ec72a9/Grammar", | |
|
33 | "", | |
|
34 | "git", | |
|
35 | "git/annotate/6c4ab27f2378ce67940b4496365043119d7ffff2/gitk-git/.gitignore", | |
|
36 | "git/changelog", | |
|
37 | "git/changeset/d299e9e550c1bf8640907fdba1f03cc585ee71df", | |
|
38 | "git/compare/rev@1200...rev@1300?target_repo=git", | |
|
39 | "git/files/tip/", | |
|
40 | "git/files/6c4ab27f2378ce67940b4496365043119d7ffff2/.gitignore" | |
|
41 | ] | |
|
28 | @click.command() | |
|
29 | @click.option('--server', help='Server url to connect to. e.g http://rc.local.com', required=True) | |
|
30 | @click.option('--pages', help='load pages to visit from a file', required=True, type=click.File()) | |
|
31 | @click.option('--repeat', help='number of times to repeat', default=10, type=int) | |
|
32 | def main(server, repeat, pages): | |
|
42 | 33 | |
|
43 | svn_pages = [ | |
|
44 | "svn-apache", | |
|
45 | "svn-apache/annotate/672129/cocoon/trunk/README.txt", | |
|
46 | "svn-apache/changelog", | |
|
47 | "svn-apache/changeset/1164362", | |
|
48 | "svn-apache/compare/rev@1164350...rev@1164360?target_repo=svn-apache", | |
|
49 | "svn-apache/compare/rev@1164300...rev@1164360?target_repo=svn-apache", | |
|
50 | "svn-apache/files/tip/", | |
|
51 | "svn-apache/files/1164363/cocoon/trunk/README.txt", | |
|
52 | ] | |
|
34 | print("Repeating each URL %d times\n" % repeat) | |
|
35 | pages = pages.readlines() | |
|
53 | 36 | |
|
54 | # Uncomment to check also svn performance | |
|
55 | # pages = pages + svn_pages | |
|
37 | for page_url in pages: | |
|
56 | 38 | |
|
57 | repeat = 10 | |
|
58 | ||
|
59 | print("Repeating each URL x%d\n" % repeat) | |
|
60 | for page in pages: | |
|
61 | url = "http://%s/%s" % (server, page) | |
|
39 | url = "%s/%s" % (server, page_url.strip()) | |
|
62 | 40 | print(url) |
|
63 | 41 | |
|
64 |
stmt = " |
|
|
65 |
t = timeit.Timer(stmt=stmt, setup="import |
|
|
42 | stmt = "requests.get('%s', timeout=120)" % url | |
|
43 | t = timeit.Timer(stmt=stmt, setup="import requests") | |
|
66 | 44 | |
|
67 | 45 | result = t.repeat(repeat=repeat, number=1) |
|
68 |
print(" |
|
|
46 | print(" %.3f (min) - %.3f (max) - %.3f (avg)\n" % | |
|
69 | 47 | (min(result), max(result), sum(result)/len(result))) |
|
48 | ||
|
49 | ||
|
50 | if __name__ == '__main__': | |
|
51 | main() | |
|
52 | ||
|
53 | ||
|
54 | ||
|
55 | ||
|
56 | ||
|
57 | ||
|
58 | ||
|
59 | ||
|
60 | ||
|
61 | ||
|
62 | ||
|
63 | ||
|
64 | ||
|
65 | ||
|
66 | ||
|
67 | ||
|
68 | ||
|
69 | ||
|
70 | ||
|
71 | ||
|
72 | ||
|
73 |
@@ -108,12 +108,12 b' class Repository(object):' | |||
|
108 | 108 | self.name = name |
|
109 | 109 | self.path = os.path.join(base_path, name) |
|
110 | 110 | self.api = api |
|
111 | self.url = None | |
|
111 | 112 | |
|
112 | 113 | def create(self): |
|
113 | 114 | self._create_filesystem_repo(self.path) |
|
114 | 115 | try: |
|
115 | self.url = self.api.create_repo( | |
|
116 | self.name, self.TYPE, 'Performance tests') | |
|
116 | self.url = self.api.create_repo(self.name, self.TYPE, 'Performance tests') | |
|
117 | 117 | except ApiError as e: |
|
118 | 118 | log.error('api: {}'.format(e)) |
|
119 | 119 | |
@@ -127,7 +127,7 b' class Repository(object):' | |||
|
127 | 127 | def create_commits(self, number, file_size): |
|
128 | 128 | for i in xrange(number): |
|
129 | 129 | file_name = self.FILE_NAME_TEMPLATE.format(i) |
|
130 | log.debug("Create commit {}".format(file_name)) | |
|
130 | log.debug("Create commit[{}] {}".format(self.name, file_name)) | |
|
131 | 131 | self._create_file(file_name, file_size) |
|
132 | 132 | self._create_commit(file_name) |
|
133 | 133 | |
@@ -258,8 +258,8 b' class Benchmark(object):' | |||
|
258 | 258 | for operation in operations: |
|
259 | 259 | for type_ in repos: |
|
260 | 260 | times = self._measure(repos[type_], *operation) |
|
261 | print("Mean {} {} time: {:.3f} sec.".format( | |
|
262 | type_, operation[0], mean(times))) | |
|
261 | print("Mean[of {}] {:5s} {:5s} time: {:.3f} sec.".format( | |
|
262 | len(times), type_, operation[0], mean(times))) | |
|
263 | 263 | |
|
264 | 264 | def cleanup(self): |
|
265 | 265 | log.info("Cleaning up...") |
@@ -296,6 +296,7 b' class Benchmark(object):' | |||
|
296 | 296 | log.addHandler(handler) |
|
297 | 297 | log.setLevel(log_level) |
|
298 | 298 | |
|
299 | ||
|
299 | 300 | if __name__ == '__main__': |
|
300 | 301 | config = Config() |
|
301 | 302 | benchmark = Benchmark(config) |
General Comments 0
You need to be logged in to leave comments.
Login now