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