##// END OF EJS Templates
merge with UI branch
marcink -
r3543:6af65ba4 merge beta
parent child Browse files
Show More
@@ -0,0 +1,367 b''
1 /**
2 * Stylesheets for the context bar
3 */
4
5 #quick .repo_switcher { background-image: url("../images/icons/database.png"); }
6 #quick .journal { background-image: url("../images/icons/book.png"); }
7 #quick .search { background-image: url("../images/icons/search_16.png"); }
8 #quick .admin { background-image: url("../images/icons/cog_edit.png"); }
9
10 #context-bar button.follow { background-image: url("../images/icons/heart.png"); }
11 #context-bar button.following { background-image: url("../images/icons/heart_delete.png"); }
12 #context-bar a.fork { background-image: url("../images/icons/arrow_divide.png"); }
13 #context-bar a.summary { background-image: url("../images/icons/clipboard_16.png"); }
14 #context-bar a.changelogs { background-image: url("../images/icons/time.png"); }
15 #context-bar a.files { background-image: url("../images/icons/file.png"); }
16 #context-bar a.switch-to { background-image: url("../images/icons/arrow_switch.png"); }
17 #context-bar a.options { background-image: url("../images/icons/table_gear.png"); }
18 #context-bar a.pull-request { background-image: url("../images/icons/arrow_join.png"); }
19 #context-bar a.branches { background-image: url("../images/icons/arrow_branch.png"); }
20 #context-bar a.tags { background-image: url("../images/icons/tag_blue.png"); }
21 #context-bar a.bookmarks { background-image: url("../images/icons/tag_green.png"); }
22 #context-bar a.settings { background-image: url("../images/icons/cog.png"); }
23 #context-bar a.shortlog { background-image: url("../images/icons/time.png"); }
24 #context-bar a.search { background-image: url("../images/icons/search_16.png"); }
25 #context-bar a.admin { background-image: url("../images/icons/cog_edit.png"); }
26
27 #context-bar a.journal { background-image: url("../images/icons/book.png"); }
28 #context-bar a.repos { background-image: url("../images/icons/database_edit.png"); }
29 #context-bar a.repos_groups { background-image: url("../images/icons/database_link.png"); }
30 #context-bar a.users { background-image: url("../images/icons/user_edit.png"); }
31 #context-bar a.groups { background-image: url("../images/icons/group_edit.png"); }
32 #context-bar a.permissions { background-image: url("../images/icons/key.png"); }
33 #context-bar a.ldap { background-image: url("../images/icons/server_key.png"); }
34 #context-bar a.defaults { background-image: url("../images/icons/wrench.png"); }
35 #context-bar a.settings { background-image: url("../images/icons/cog_edit.png"); }
36 #context-bar a.compare_request { background-image: url('../images/icons/arrow_inout.png')}
37 #context-bar a.locking_del { background-image: url('../images/icons/lock_delete.png')}
38 #context-bar a.locking_add { background-image: url('../images/icons/lock_add.png')}
39
40 #content #context-bar {
41 position: relative;
42 background-color: #003B76 !important;
43 padding: 0px;
44 overflow: visible;
45 }
46
47 #header #header-inner #quick a,
48 #content #context-bar,
49 #content #context-bar a,
50 #content #context-bar button {
51 color: #FFFFFF;
52 }
53
54 #header #header-inner #quick a:hover,
55 #content #context-bar a:hover,
56 #content #context-bar button:hover {
57 text-decoration: none;
58 }
59
60 #content #context-bar .icon {
61 display: inline-block;
62 width: 16px;
63 height: 16px;
64 vertical-align: text-bottom;
65 }
66
67 ul.horizontal-list {
68 display: block;
69 }
70
71 ul.horizontal-list > li {
72 float: left;
73 position: relative;
74 }
75
76 #header #header-inner #quick ul,
77 ul.horizontal-list > li ul {
78 position: absolute;
79 display: none;
80 right: 0;
81 z-index: 999;
82 }
83
84 #header #header-inner #quick li:hover > ul,
85 ul.horizontal-list li:hover > ul {
86 display: block;
87 }
88
89 #header #header-inner #quick li ul li,
90 ul.horizontal-list ul li {
91 position: relative;
92 border-bottom: 1px solid rgba(0,0,0,0.1);
93 border-top: 1px solid rgba(255,255,255,0.1);
94 }
95
96 ul.horizontal-list > li ul ul {
97 position: absolute;
98 right: 100%;
99 top: -1px;
100 min-width: 200px;
101 max-height: 400px;
102 overflow-x: hidden;
103 overflow-y: auto;
104 }
105
106 #header #header-inner #quick ul a,
107 ul.horizontal-list li a {
108 white-space: nowrap;
109 }
110
111 #breadcrumbs {
112 float: left;
113 padding: 5px 0;
114 padding-left: 5px;
115 font-weight: bold;
116 font-size: 14px;
117 }
118
119 #breadcrumbs span {
120 font-weight: bold;
121 font-size: 2em;
122 }
123
124 #context-top {
125 position: relative;
126 overflow: hidden;
127 border-bottom: 1px solid #003162;
128 padding: 5px;
129 }
130
131 #header #header-inner #quick ul,
132 #revision-changer,
133 #context-pages,
134 #context-pages ul {
135 background: #3b6998; /* Old browsers */
136 background: -moz-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* FF3.6+ */
137 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4574a2), color-stop(100%,#2f5d8b)); /* Chrome,Safari4+ */
138 background: -webkit-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Chrome10+,Safari5.1+ */
139 background: -o-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Opera 11.10+ */
140 background: -ms-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* IE10+ */
141 background: linear-gradient(to bottom, #4574a2 0%, #2f5d8b 100%); /* W3C */
142 /*Filter on IE will also use overflow:hidden implicitly, and that would clip our inner menus.*/
143 /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4574a2', endColorstr='#2f5d8b',GradientType=0 ); /* IE6-9 */*/
144 }
145
146 #header #header-inner #quick a,
147 #context-actions a,
148 #context-pages a {
149 background-repeat: no-repeat;
150 background-position: 10px 50%;
151 padding-left: 30px;
152 }
153
154 #quick a,
155 #context-pages ul ul a {
156 padding-left: 10px;
157 }
158
159 ul#context-actions {
160 display: inline-block;
161 float: right;
162 border-radius: 4px;
163 background-image: linear-gradient(top, #4574a2 0%, #2f5d8b 100%);
164 }
165 #content ul#context-actions li {
166 padding: 0px;
167 border-right: 1px solid rgba(0,0,0,0.1);
168 border-left: 1px solid rgba(255,255,255,0.1);
169 }
170
171 #context-actions button,
172 #context-actions a {
173 display: block;
174 cursor: pointer;
175 background: none;
176 border: none;
177 margin: 0px;
178 height: auto;
179 padding: 10px 10px 10px 30px;
180 background-repeat: no-repeat;
181 background-position: 10px 50%;
182 font-size: 1em;
183 }
184
185 #context-actions a {
186 padding: 11px 10px 12px 30px;
187 }
188
189 #header #header-inner #quick li:hover,
190 #revision-changer:hover,
191 #context-pages li:hover,
192 #context-actions li:hover,
193 #content #context-actions li:hover,
194 #header #header-inner #quick li.current,
195 #context-pages li.current {
196 background: #6388ad; /* Old browsers */
197 background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
198 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
199 background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
200 background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
201 background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
202 background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
203 /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */*/
204 }
205
206
207 #content #context-actions li:first-child {
208 border-left: none;
209 border-radius: 4px 0 0px 4px;
210 }
211
212 #content #context-actions li:last-child {
213 border-right: none;
214 border-radius: 0 4px 4px 0;
215 }
216
217 #content #context-actions .icon {
218 margin: auto;
219 margin-bottom: 5px;
220 display: block;
221 clear: both;
222 float: none;
223 }
224
225 #content #context-actions button.follow,
226 #content #context-actions button.following {
227 width: auto;
228 float: none;
229 }
230
231 #content #context-actions button .show-following,
232 #content #context-actions button .show-follow {
233 display: none;
234 }
235
236 #content #context-bar #context-actions button.follow .show-follow {
237 display: block;
238 }
239
240 #content #context-bar #context-actions button.following .show-following {
241 display: block;
242 }
243
244 #context-state {
245 background-color: #336699;
246 border-top: 1px solid #517da8;
247 min-height: 36px;
248 }
249
250 #context-pages {
251 float: right;
252 border-left: 1px solid rgba(0,0,0,0.1);
253 }
254
255 #context-pages li.curreasdnt {
256 background: #535353; /* Old browsers */
257 background: -moz-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* FF3.6+ */
258 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5d5d5d), color-stop(100%,#484848)); /* Chrome,Safari4+ */
259 background: -webkit-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Chrome10+,Safari5.1+ */
260 background: -o-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Opera 11.10+ */
261 background: -ms-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* IE10+ */
262 background: linear-gradient(to bottom, #5d5d5d 0%, #484848 100%); /* W3C */
263 }
264
265 #content #context-pages .icon {
266 margin-right: 5px;
267 }
268
269 #header #header-inner #quick li,
270 #content #context-pages li {
271 border-right: 1px solid rgba(0,0,0,0.1);
272 border-left: 1px solid rgba(255,255,255,0.1);
273 padding: 0;
274 }
275 #header #header-inner #quick li:last-child,
276 #content #context-pages li:last-child {
277 border-right: none;
278 }
279
280 #header #header-inner #quick li:first-child {
281 border-left: none;
282 }
283
284 #header #header-inner #quick > li:first-child > a {
285 border-radius: 4px 0 0 4px;
286 }
287
288 #header #header-inner #quick a,
289 #context-pages a,
290 #context-pages .admin_menu a {
291 display: block;
292 padding: 0px 10px 1px 30px;
293 padding-left: 30px;
294 line-height: 35px;
295 }
296
297 #header #header-inner #quick a.thin,
298 #context-pages a.thin,
299 #context-pages .admin_menu a.thin {
300 line-height: 28px !important;
301 }
302
303 #header #header-inner #quick a#quick_login_link {
304 padding-left: 0px;
305 }
306
307 #header #header-inner #quick a {
308 overflow: hidden;
309 }
310 #quick a.childs:after,
311 #revision-changer:before,
312 #context-pages a.childs:after,
313 #context-pages a.dropdown:after {
314 content: ' \25BE';
315 }
316 #context-pages a.childs {
317 padding-right: 20px;
318 }
319 #context-pages a.childs:after {
320 position: absolute;
321 float: right;
322 padding-left: 5px;
323 padding-right: 5px;
324 }
325
326 #revision-changer:before {
327 position: absolute;
328 top: 0px;
329 right: 0px;
330 border-right: 1px solid rgba(0,0,0,0.1);
331 height: 25px;
332 padding-top: 10px;
333 padding-right: 10px;
334 }
335
336 #context-pages li:last-child a {
337 padding-right: 10px;
338 }
339
340 #context-bar #revision-changer {
341 position: relative;
342 cursor: pointer;
343 border: none;
344 padding: 0;
345 margin: 0;
346 color: #FFFFFF;
347 font-size: 0.85em;
348 padding: 2px 15px;
349 padding-bottom: 3px;
350 padding-right: 30px;
351 border-right: 1px solid rgba(255,255,255,0.1);
352 }
353
354 #revision-changer .branch-name,
355 #revision-changer .revision {
356 display: block;
357 text-align: center;
358 line-height: 1.5em;
359 }
360
361 #revision-changer .branch-name {
362 font-weight: bold;
363 }
364
365 #revision-changer .revision {
366 text-transform: uppercase;
367 } No newline at end of file
@@ -72,8 +72,6 b' class SummaryController(BaseRepoControll'
72 72
73 73 def index(self, repo_name):
74 74 c.dbrepo = dbrepo = c.rhodecode_db_repo
75 c.following = self.scm_model.is_following_repo(repo_name,
76 self.rhodecode_user.user_id)
77 75
78 76 def url_generator(**kw):
79 77 return url('shortlog_home', repo_name=repo_name, size=10, **kw)
@@ -313,6 +313,8 b' class BaseRepoController(BaseController)'
313 313 c.rhodecode_db_repo: instance of db
314 314 c.repository_followers: number of followers
315 315 c.repository_forks: number of forks
316 c.repository_following: weather the current user is following the current repo
317
316 318 """
317 319
318 320 def __before__(self):
@@ -333,3 +335,5 b' class BaseRepoController(BaseController)'
333 335 c.repository_followers = self.scm_model.get_followers(dbr)
334 336 c.repository_forks = self.scm_model.get_forks(dbr)
335 337 c.repository_pull_requests = self.scm_model.get_pull_requests(dbr)
338 c.repository_following = self.scm_model.is_following_repo(c.repo_name,
339 self.rhodecode_user.user_id)
@@ -363,7 +363,7 b' from rhodecode.lib.vcs.utils import auth'
363 363 from rhodecode.lib.utils2 import credentials_filter, age as _age
364 364 from rhodecode.model.db import User, ChangesetStatus
365 365
366 age = lambda x: _age(x)
366 age = lambda x,y=False: _age(x,y)
367 367 capitalize = lambda x: x.capitalize()
368 368 email = author_email
369 369 short_id = lambda x: x[:12]
@@ -914,13 +914,13 b' def repo_link(groups_and_repos, last_url'
914 914
915 915 if not groups:
916 916 if last_url:
917 return last_link
918 return repo_name
917 return literal('<span>%s</span>' % last_link)
918 return literal('<span>%s</span>' % repo_name)
919 919 else:
920 920 def make_link(group):
921 921 return link_to(group.name,
922 922 url('repos_group_home', group_name=group.group_name))
923 return literal(' &raquo; '.join(map(make_link, groups) + [last_link]))
923 return literal(' &raquo; '.join(map(make_link, groups) + ['<span>' + last_link + '</span>']))
924 924
925 925
926 926 def fancy_file_stats(stats):
@@ -349,11 +349,15 b' def engine_from_config(configuration, pr'
349 349 return engine
350 350
351 351
352 def age(prevdate):
352 def age(prevdate, show_short_version=False):
353 353 """
354 354 turns a datetime into an age string.
355 If show_short_version is True, then it will generate a not so accurate but shorter string,
356 example: 2days ago, instead of 2 days and 23 hours ago.
357
355 358
356 359 :param prevdate: datetime object
360 :param show_short_version: if it should aproximate the date and return a shorter string
357 361 :rtype: unicode
358 362 :returns: unicode words describing age
359 363 """
@@ -423,7 +427,7 b' def age(prevdate):'
423 427 else:
424 428 sub_value = 0
425 429
426 if sub_value == 0:
430 if sub_value == 0 or show_short_version:
427 431 if future:
428 432 return _(u'in %s') % fmt_funcs[part](value)
429 433 else:
This diff has been collapsed as it changes many lines, (702 lines changed) Show them Hide them
@@ -396,37 +396,14 b' div:hover > a.permalink {'
396 396 color: #bfe3ff;
397 397 }
398 398
399 #header #header-inner #quick, #header #header-inner #quick ul {
399 #header #header-inner #quick {
400 400 position: relative;
401 401 float: right;
402 402 list-style-type: none;
403 403 list-style-position: outside;
404 margin: 8px 8px 0 0;
405 padding: 0;
406 }
407
408 #header #header-inner #quick li {
409 position: relative;
410 float: left;
411 margin: 0 5px 0 0;
404 margin: 4px 8px 0 0;
412 405 padding: 0;
413 }
414
415 #header #header-inner #quick li a.menu_link {
416 top: 0;
417 left: 0;
418 height: 1%;
419 display: block;
420 clear: both;
421 overflow: hidden;
422 color: #FFF;
423 font-weight: 700;
424 text-decoration: none;
425 background: #369;
426 padding: 0;
427 -webkit-border-radius: 4px 4px 4px 4px;
428 -khtml-border-radius: 4px 4px 4px 4px;
429 border-radius: 4px 4px 4px 4px;
406 border-radius: 4px;
430 407 }
431 408
432 409 #header #header-inner #quick li span.short {
@@ -434,14 +411,8 b' div:hover > a.permalink {'
434 411 }
435 412
436 413 #header #header-inner #quick li span {
437 top: 0;
438 right: 0;
439 height: 1%;
440 display: block;
441 float: left;
442 border-left: 1px solid #3f6f9f;
414 display: inline;
443 415 margin: 0;
444 padding: 10px 12px 8px 10px;
445 416 }
446 417
447 418 #header #header-inner #quick li span.normal {
@@ -450,13 +421,9 b' div:hover > a.permalink {'
450 421 }
451 422
452 423 #header #header-inner #quick li span.icon {
453 top: 0;
454 left: 0;
424
455 425 border-left: none;
456 border-right: 1px solid #2e5c89;
457 padding: 8px 6px 4px;
458 min-width: 16px;
459 min-height: 16px;
426 padding-left: 10px ;
460 427 }
461 428
462 429 #header #header-inner #quick li span.icon_short {
@@ -468,39 +435,8 b' div:hover > a.permalink {'
468 435 }
469 436
470 437 #header #header-inner #quick li span.icon img, #header #header-inner #quick li span.icon_short img {
471 margin: 0px -2px 0px 0px;
472 }
473
474 #header #header-inner #quick li.current a,
475 #header #header-inner #quick li a:hover {
476 background: #4e4e4e no-repeat top left;
477 }
478
479 #header #header-inner #quick li.current a span,
480 #header #header-inner #quick li a:hover span {
481 border-left: 1px solid #545454;
482 }
483
484 #header #header-inner #quick li.current a span.icon,
485 #header #header-inner #quick li.current a span.icon_short,
486 #header #header-inner #quick li a:hover span.icon,
487 #header #header-inner #quick li a:hover span.icon_short {
488 border-left: none;
489 border-right: 1px solid #464646;
490 }
491
492 #header #header-inner #quick ul {
493 top: 29px;
494 right: 0;
495 min-width: 200px;
496 display: none;
497 position: absolute;
498 background: #FFF;
499 border: 1px solid #666;
500 border-top: 1px solid #003367;
501 z-index: 100;
502 margin: 0px 0px 0px 0px;
503 padding: 0;
438 vertical-align: middle;
439 margin-bottom: 2px;
504 440 }
505 441
506 442 #header #header-inner #quick ul.repo_switcher {
@@ -510,216 +446,113 b' div:hover > a.permalink {'
510 446 }
511 447
512 448 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
513 float: none;
514 margin: 0;
515 border-bottom: 2px solid #003367;
449 padding: 2px 3px;
450 padding-right: 17px;
451 }
452
453 #header #header-inner #quick ul.repo_switcher li.qfilter_rs input {
454 width: 100%;
455 border-radius: 10px;
456 padding: 2px 7px;
516 457 }
517 458
518 459 #header #header-inner #quick .repo_switcher_type {
519 460 position: absolute;
520 461 left: 0;
521 462 top: 9px;
522 }
523
524 #header #header-inner #quick li ul li {
525 border-bottom: 1px solid #ddd;
526 }
527
528 #header #header-inner #quick li ul li a {
529 width: 182px;
530 height: auto;
531 display: block;
532 float: left;
533 background: #FFF;
534 color: #003367;
535 font-weight: 400;
536 margin: 0;
537 padding: 7px 9px;
538 }
539
540 #header #header-inner #quick li ul li a:hover {
541 color: #000;
542 background: #FFF;
543 }
544
545 #header #header-inner #quick ul ul {
546 top: auto;
547 }
548
549 #header #header-inner #quick li ul ul {
550 right: 200px;
551 max-height: 290px;
552 overflow: auto;
553 overflow-x: hidden;
554 white-space: normal;
463 margin: 0px 2px 0px 2px;
555 464 }
556 465
557 466 #header #header-inner #quick li ul li a.journal, #header #header-inner #quick li ul li a.journal:hover {
558 background: url("../images/icons/book.png") no-repeat scroll 4px 9px
559 #FFF;
560 width: 167px;
561 margin: 0;
562 padding: 12px 9px 7px 24px;
467 background-image: url("../images/icons/book.png");
563 468 }
564 469
565 470 #header #header-inner #quick li ul li a.private_repo, #header #header-inner #quick li ul li a.private_repo:hover {
566 background: url("../images/icons/lock.png") no-repeat scroll 4px 9px
567 #FFF;
568 min-width: 167px;
569 margin: 0;
570 padding: 12px 9px 7px 24px;
471 background-image: url("../images/icons/lock.png")
571 472 }
572 473
573 474 #header #header-inner #quick li ul li a.public_repo, #header #header-inner #quick li ul li a.public_repo:hover {
574 background: url("../images/icons/lock_open.png") no-repeat scroll 4px
575 9px #FFF;
576 min-width: 167px;
577 margin: 0;
578 padding: 12px 9px 7px 24px;
475 background-image: url("../images/icons/lock_open.png");
579 476 }
580 477
581 478 #header #header-inner #quick li ul li a.hg, #header #header-inner #quick li ul li a.hg:hover {
582 background: url("../images/icons/hgicon.png") no-repeat scroll 4px 9px
583 #FFF;
584 min-width: 167px;
585 margin: 0 0 0 14px;
586 padding: 12px 9px 7px 24px;
479 background-image: url("../images/icons/hgicon.png");
480 padding-left: 42px;
481 background-position: 20px 9px;
587 482 }
588 483
589 484 #header #header-inner #quick li ul li a.git, #header #header-inner #quick li ul li a.git:hover {
590 background: url("../images/icons/giticon.png") no-repeat scroll 4px 9px
591 #FFF;
592 min-width: 167px;
593 margin: 0 0 0 14px;
594 padding: 12px 9px 7px 24px;
485 background-image: url("../images/icons/giticon.png");
486 padding-left: 42px;
487 background-position: 20px 9px;
595 488 }
596 489
597 490 #header #header-inner #quick li ul li a.repos, #header #header-inner #quick li ul li a.repos:hover {
598 background: url("../images/icons/database_edit.png") no-repeat scroll
599 4px 9px #FFF;
600 width: 167px;
601 margin: 0;
602 padding: 12px 9px 7px 24px;
491 background-image: url("../images/icons/database_edit.png");
603 492 }
604 493
605 494 #header #header-inner #quick li ul li a.repos_groups, #header #header-inner #quick li ul li a.repos_groups:hover {
606 background: url("../images/icons/database_link.png") no-repeat scroll
607 4px 9px #FFF;
608 width: 167px;
609 margin: 0;
610 padding: 12px 9px 7px 24px;
495 background-image: url("../images/icons/database_link.png");
611 496 }
612 497
613 498 #header #header-inner #quick li ul li a.users, #header #header-inner #quick li ul li a.users:hover {
614 background: #FFF url("../images/icons/user_edit.png") no-repeat 4px 9px;
615 width: 167px;
616 margin: 0;
617 padding: 12px 9px 7px 24px;
499 background-image: url("../images/icons/user_edit.png");
618 500 }
619 501
620 502 #header #header-inner #quick li ul li a.groups, #header #header-inner #quick li ul li a.groups:hover {
621 background: #FFF url("../images/icons/group_edit.png") no-repeat 4px 9px;
622 width: 167px;
623 margin: 0;
624 padding: 12px 9px 7px 24px;
503 background-image: url("../images/icons/group_edit.png");
625 504 }
626 505
627 506 #header #header-inner #quick li ul li a.defaults, #header #header-inner #quick li ul li a.defaults:hover {
628 background: #FFF url("../images/icons/wrench.png") no-repeat 4px 9px;
629 width: 167px;
630 margin: 0;
631 padding: 12px 9px 7px 24px;
507 background-image: url("../images/icons/wrench.png");
632 508 }
633 509
634 510 #header #header-inner #quick li ul li a.settings, #header #header-inner #quick li ul li a.settings:hover {
635 background: #FFF url("../images/icons/cog.png") no-repeat 4px 9px;
636 width: 167px;
637 margin: 0;
638 padding: 12px 9px 7px 24px;
511 background-image: url("../images/icons/cog.png");
639 512 }
640 513
641 514 #header #header-inner #quick li ul li a.permissions, #header #header-inner #quick li ul li a.permissions:hover {
642 background: #FFF url("../images/icons/key.png") no-repeat 4px 9px;
643 width: 167px;
644 margin: 0;
645 padding: 12px 9px 7px 24px;
515 background-image: url("../images/icons/key.png");
646 516 }
647 517
648 518 #header #header-inner #quick li ul li a.ldap, #header #header-inner #quick li ul li a.ldap:hover {
649 background: #FFF url("../images/icons/server_key.png") no-repeat 4px 9px;
650 width: 167px;
651 margin: 0;
652 padding: 12px 9px 7px 24px;
519 background-image: url("../images/icons/server_key.png");
653 520 }
654 521
655 522 #header #header-inner #quick li ul li a.fork, #header #header-inner #quick li ul li a.fork:hover {
656 background: #FFF url("../images/icons/arrow_divide.png") no-repeat 4px
657 9px;
658 width: 167px;
659 margin: 0;
660 padding: 12px 9px 7px 24px;
523 background-image: url("../images/icons/arrow_divide.png");
661 524 }
662 525
663 526 #header #header-inner #quick li ul li a.locking_add, #header #header-inner #quick li ul li a.locking_add:hover {
664 background: #FFF url("../images/icons/lock_add.png") no-repeat 4px
665 9px;
666 width: 167px;
667 margin: 0;
668 padding: 12px 9px 7px 24px;
527 background-image: url("../images/icons/lock_add.png");
669 528 }
670 529
671 530 #header #header-inner #quick li ul li a.locking_del, #header #header-inner #quick li ul li a.locking_del:hover {
672 background: #FFF url("../images/icons/lock_delete.png") no-repeat 4px
673 9px;
674 width: 167px;
675 margin: 0;
676 padding: 12px 9px 7px 24px;
531 background-image: url("../images/icons/lock_delete.png");
677 532 }
678 533
679 534 #header #header-inner #quick li ul li a.pull_request, #header #header-inner #quick li ul li a.pull_request:hover {
680 background: #FFF url("../images/icons/arrow_join.png") no-repeat 4px
681 9px;
682 width: 167px;
683 margin: 0;
684 padding: 12px 9px 7px 24px;
535 background-image: url("../images/icons/arrow_join.png") ;
685 536 }
686 537
687 538 #header #header-inner #quick li ul li a.compare_request, #header #header-inner #quick li ul li a.compare_request:hover {
688 background: #FFF url("../images/icons/arrow_inout.png") no-repeat 4px
689 9px;
690 width: 167px;
691 margin: 0;
692 padding: 12px 9px 7px 24px;
539 background-image: url("../images/icons/arrow_inout.png");
693 540 }
694 541
695 542 #header #header-inner #quick li ul li a.search, #header #header-inner #quick li ul li a.search:hover {
696 background: #FFF url("../images/icons/search_16.png") no-repeat 4px 9px;
697 width: 167px;
698 margin: 0;
699 padding: 12px 9px 7px 24px;
543 background-image: url("../images/icons/search_16.png");
700 544 }
701 545
702 546 #header #header-inner #quick li ul li a.shortlog, #header #header-inner #quick li ul li a.shortlog:hover {
703 background: #FFF url("../images/icons/clock_16.png") no-repeat 4px 9px;
704 width: 167px;
705 margin: 0;
706 padding: 12px 9px 7px 24px;
707 }
708
547 background-image: url("../images/icons/clock_16.png");
548 }
709 549
710 550 #header #header-inner #quick li ul li a.delete, #header #header-inner #quick li ul li a.delete:hover {
711 background: #FFF url("../images/icons/delete.png") no-repeat 4px 9px;
712 width: 167px;
713 margin: 0;
714 padding: 12px 9px 7px 24px;
551 background-image: url("../images/icons/delete.png");
715 552 }
716 553
717 554 #header #header-inner #quick li ul li a.branches, #header #header-inner #quick li ul li a.branches:hover {
718 background: #FFF url("../images/icons/arrow_branch.png") no-repeat 4px
719 9px;
720 width: 167px;
721 margin: 0;
722 padding: 12px 9px 7px 24px;
555 background-image: url("../images/icons/arrow_branch.png");
723 556 }
724 557
725 558 #header #header-inner #quick li ul li a.tags,
@@ -1076,7 +909,6 b' tbody .yui-dt-editable { cursor: pointer'
1076 909
1077 910 #content div.box {
1078 911 clear: both;
1079 overflow: hidden;
1080 912 background: #fff;
1081 913 margin: 0 0 10px;
1082 914 padding: 0 0 10px;
@@ -1115,6 +947,7 b' tbody .yui-dt-editable { cursor: pointer'
1115 947 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
1116 948 margin: 0 0 20px;
1117 949 padding: 0;
950 border-radius: 4px 4px 0 0;
1118 951 }
1119 952
1120 953 #content div.box div.title h5 {
@@ -1255,6 +1088,7 b' tbody .yui-dt-editable { cursor: pointer'
1255 1088 background: linear-gradient(to bottom,rgba(255,255,255,0),rgba(64,96,128,0.1));
1256 1089
1257 1090 display: none;
1091 overflow: hidden;
1258 1092 }
1259 1093 #content div.box div.expand .expandtext {
1260 1094 background-color: #ffffff;
@@ -1844,7 +1678,71 b' div.form div.fields div.field div.button'
1844 1678 padding: 0 3px 2px;
1845 1679 }
1846 1680
1847 #summary {
1681 #content div.box #summary {
1682 margin-right: 200px;
1683 }
1684
1685 #summary-menu-stats {
1686 float: left;
1687 width: 180px;
1688 position: absolute;
1689 top: 0;
1690 right: 0;
1691 }
1692
1693 #summary-menu-stats ul {
1694 margin: 0 10px;
1695 display: block;
1696 background-color: #f9f9f9;
1697 border: 1px solid #d1d1d1;
1698 border-radius: 4px;
1699 }
1700
1701 #content #summary-menu-stats li {
1702 border-top: 1px solid #d1d1d1;
1703 padding: 0;
1704 }
1705
1706 #content #summary-menu-stats li:hover {
1707 background: #f0f0f0;
1708 }
1709
1710 #content #summary-menu-stats li:first-child {
1711 border-top: none;
1712 }
1713
1714 #summary-menu-stats a.followers { background-image: url('../images/icons/heart.png')}
1715 #summary-menu-stats a.forks { background-image: url('../images/icons/arrow_divide.png')}
1716 #summary-menu-stats a.settings { background-image: url('../images/icons/cog_edit.png')}
1717 #summary-menu-stats a.feed { background-image: url('../images/icons/rss_16.png')}
1718 #summary-menu-stats a.repo-size { background-image: url('../images/icons/server.png')}
1719
1720 #summary-menu-stats a {
1721 display: block;
1722 padding: 12px 30px;
1723 background-repeat: no-repeat;
1724 background-position: 10px 50%;
1725 padding-right: 10px;
1726 }
1727
1728
1729 #repo_size_2 {
1730 margin-left: 30px;
1731 display: block;
1732 padding-right: 10px;
1733 padding-bottom: 7px;
1734 }
1735
1736 #summary-menu-stats a:hover {
1737 text-decoration: none;
1738 }
1739
1740 #summary-menu-stats a span {
1741 background-color: #FFF;
1742 border: 1px inset #f0f0f0;
1743 border-radius: 7px;
1744 padding: 1px;
1745 font-size: 10px;
1848 1746 }
1849 1747
1850 1748 #summary .metatag {
@@ -2085,7 +1983,7 b' a.metatag[tag="license"]:hover {'
2085 1983 }
2086 1984
2087 1985 #quick_login .password_forgoten {
2088 padding-right: 10px;
1986 padding-right: 0px;
2089 1987 padding-top: 0px;
2090 1988 text-align: left;
2091 1989 }
@@ -2093,6 +1991,8 b' a.metatag[tag="license"]:hover {'
2093 1991 #quick_login .password_forgoten a {
2094 1992 font-size: 10px;
2095 1993 color: #fff;
1994 padding: 0px !important;
1995 line-height: 20px !important;
2096 1996 }
2097 1997
2098 1998 #quick_login .register {
@@ -2104,6 +2004,8 b' a.metatag[tag="license"]:hover {'
2104 2004 #quick_login .register a {
2105 2005 font-size: 10px;
2106 2006 color: #fff;
2007 padding: 0px !important;
2008 line-height: 20px !important;
2107 2009 }
2108 2010
2109 2011 #quick_login .submit {
@@ -2127,15 +2029,16 b' a.metatag[tag="license"]:hover {'
2127 2029 padding: 4px 0px 0px 6px;
2128 2030 }
2129 2031 #quick_login .notifications {
2130 padding: 4px 0px 0px 6px;
2032 padding: 2px 0px 0px 6px;
2131 2033 color: #FFFFFF;
2132 2034 font-weight: bold;
2035 line-height: 10px !important;
2133 2036 }
2134 2037 #quick_login .notifications a,
2135 2038 #quick_login .unread a {
2136 2039 color: #FFFFFF;
2137 2040 display: block;
2138 padding: 2px;
2041 padding: 0px !important;
2139 2042 }
2140 2043 #quick_login .notifications a:hover,
2141 2044 #quick_login .unread a:hover {
@@ -2462,10 +2365,10 b' h3.files_location {'
2462 2365 text-align: right;
2463 2366 }
2464 2367
2465 #changeset_content .container .left .message {
2368 #changeset_content .container .message {
2466 2369 white-space: pre-wrap;
2467 2370 }
2468 #changeset_content .container .left .message a:hover {
2371 #changeset_content .container .message a:hover {
2469 2372 text-decoration: none;
2470 2373 }
2471 2374 .cs_files .cur_cs {
@@ -2561,23 +2464,30 b' h3.files_location {'
2561 2464 text-align: left;
2562 2465 }
2563 2466
2467 .table {
2468 position: relative;
2469 }
2470
2564 2471 #graph {
2472 position: relative;
2565 2473 overflow: hidden;
2566 2474 }
2567 2475
2568 2476 #graph_nodes {
2569 float: left;
2570 margin-right: 0px;
2571 margin-top: 0px;
2477 position: absolute;
2478 }
2479
2480 #graph_content,
2481 #graph .info_box,
2482 #graph .container_header {
2483 margin-left: 100px;
2572 2484 }
2573 2485
2574 2486 #graph_content {
2575 width: 80%;
2576 float: left;
2577 }
2578
2579 #graph_content .container_header {
2580 border-bottom: 1px solid #DDD;
2487 position: relative;
2488 }
2489
2490 #graph .container_header {
2581 2491 padding: 10px;
2582 2492 height: 25px;
2583 2493 }
@@ -2592,49 +2502,143 b' h3.files_location {'
2592 2502 margin: 0px 0px 0px 3px;
2593 2503 }
2594 2504
2505 #graph_content #changesets {
2506 table-layout: fixed;
2507 border-collapse: collapse;
2508 border-left: none;
2509 border-right: none;
2510 border-color: #cdcdcd;
2511 }
2512
2595 2513 #graph_content .container {
2596 border-bottom: 1px solid #DDD;
2597 height: 56px;
2514
2515 }
2516
2517 #graph_content #changesets td {
2598 2518 overflow: hidden;
2599 }
2600
2601 #graph_content .container .right {
2602 float: right;
2603 width: 23%;
2604 text-align: right;
2605 }
2606
2607 #graph_content .container .left {
2608 float: left;
2609 width: 25%;
2610 padding-left: 5px;
2519 text-overflow: ellipsis;
2520 white-space: nowrap;
2521 height: 31px;
2522 border-color: #cdcdcd;
2523 text-align: left;
2524 }
2525
2526 #graph_content .container .author {
2527 width: 105px;
2528 }
2529
2530 #graph_content .container .hash {
2531 width: 85px;
2532 font-size: 0.85em;
2533 }
2534
2535 #graph_content #changesets .container .date {
2536 width: 76px;
2537 color: #666;
2538 font-size: 10px;
2539 }
2540
2541 #graph_content #changesets .container .right {
2542 width: 120px;
2543 padding-right: 0px;
2544 overflow: visible;
2545 position: relative;
2611 2546 }
2612 2547
2613 2548 #graph_content .container .mid {
2549 padding: 0;
2550 }
2551
2552 #graph_content .log-container {
2553 position: relative;
2554 }
2555
2556 #graph_content #changesets td.checkbox {
2557 width: 20px;
2558 }
2559
2560 #graph_content .container .changeset_range {
2614 2561 float: left;
2615 width: 49%;
2616 }
2617
2618
2619 #graph_content .container .left .date {
2620 color: #666;
2621 padding-left: 22px;
2622 font-size: 10px;
2623 }
2624
2625 #graph_content .container .left .author {
2626 height: 22px;
2627 }
2628
2629 #graph_content .container .left .author .user {
2562 margin: 6px 3px;
2563 }
2564
2565 #graph_content .container .author img {
2566 vertical-align: middle;
2567 }
2568
2569 #graph_content .container .author .user {
2630 2570 color: #444444;
2631 float: left;
2632 margin-left: -4px;
2633 margin-top: 4px;
2634 2571 }
2635 2572
2636 2573 #graph_content .container .mid .message {
2637 2574 white-space: pre-wrap;
2575 padding: 0;
2576 overflow: hidden;
2577 height: 1.1em;
2578 }
2579
2580 #graph_content .container .extra-container {
2581 display: block;
2582 position: absolute;
2583 top: -15px;
2584 right: 0;
2585 padding-left: 5px;
2586 background: #FFFFFF;
2587 height: 41px;
2588 }
2589
2590 #graph_content .comments-container,
2591 #graph_content .logtags {
2592 display: block;
2593 float: left;
2594 overflow: hidden;
2595 padding: 0;
2596 margin: 0;
2597 }
2598
2599 #graph_content .comments-container {
2600 margin: 0.8em 0;
2601 margin-right: 0.5em;
2602 }
2603
2604 #graph_content .tagcontainer {
2605 width: 80px;
2606 position: relative;
2607 float: right;
2608 height: 100%;
2609 top: 7px;
2610 margin-left: 0.5em;
2611 }
2612
2613 #graph_content .logtags {
2614 min-width: 80px;
2615 height: 1.1em;
2616 position: absolute;
2617 left: 0px;
2618 width: auto;
2619 top: 0px;
2620 }
2621
2622 #graph_content .logtags.tags {
2623 top: 14px;
2624 }
2625
2626 #graph_content .logtags:hover {
2627 overflow: visible;
2628 position: absolute;
2629 width: auto;
2630 right: 0;
2631 left: initial;
2632 }
2633
2634 #graph_content .logtags .bookbook,
2635 #graph_content .logtags .tagtag {
2636 float: left;
2637 line-height: 1em;
2638 margin-bottom: 1px;
2639 margin-right: 1px;
2640 padding: 1px 3px;
2641 font-size: 10px;
2638 2642 }
2639 2643
2640 2644 #graph_content .container .mid .message a:hover {
@@ -2676,17 +2680,18 b' h3.files_location {'
2676 2680 .code-header .changeset-status-container .changeset-status-ico, .container .changeset-status-ico {
2677 2681 float: left;
2678 2682 }
2679 .right .comments-container {
2680 padding-right: 5px;
2681 margin-top: 1px;
2682 float: right;
2683 height: 14px;
2684 }
2685
2686 .right .comments-cnt {
2687 float: left;
2683
2684 #graph_content .comments-cnt {
2688 2685 color: rgb(136, 136, 136);
2689 padding-right: 2px;
2686 padding: 5px 0;
2687 }
2688
2689 #graph_content .comments-cnt a {
2690 background-image: url('../images/icons/comments.png');
2691 background-repeat: no-repeat;
2692 background-position: 100% 50%;
2693 padding: 5px 0;
2694 padding-right: 20px;
2690 2695 }
2691 2696
2692 2697 .right .changes {
@@ -2731,7 +2736,6 b' h3.files_location {'
2731 2736 padding: 1px 3px 1px 3px;
2732 2737 background-color: #fca062;
2733 2738 font-size: 10px;
2734 font-weight: bold;
2735 2739 color: #ffffff;
2736 2740 text-transform: uppercase;
2737 2741 white-space: nowrap;
@@ -2745,65 +2749,101 b' h3.files_location {'
2745 2749 clear: both;
2746 2750 }
2747 2751 .right .logtags {
2748 padding: 2px 2px 2px 2px;
2749 }
2750 .right .logtags .branchtag, .right .logtags .tagtag, .right .logtags .booktag {
2752 line-height: 2.2em;
2753 }
2754 .branchtag, .logtags .tagtag, .logtags .booktag {
2751 2755 margin: 0px 2px;
2752 2756 }
2753 2757
2758 .branchtag,
2759 .tagtag,
2760 .bookbook,
2761 .spantag {
2762 padding: 1px 3px 1px 3px;
2763 font-size: 10px;
2764 color: #336699;
2765 white-space: nowrap;
2766 -webkit-border-radius: 4px;
2767 border-radius: 4px;
2768 border: 1px solid #d9e8f8;
2769 line-height: 1.5em;
2770 }
2771
2772 #graph_content .branchtag,
2773 #graph_content .tagtag,
2774 #graph_content .bookbook {
2775 margin: 1.1em 0;
2776 margin-right: 0.5em;
2777 }
2778
2779 .branchtag,
2780 .tagtag,
2781 .bookbook {
2782 float: left;
2783 }
2784
2754 2785 .right .logtags .branchtag,
2755 .logtags .branchtag,
2756 .spantag {
2786 .logtags .tagtag,
2787 .right .merge {
2788 float: right;
2789 line-height: 1em;
2790 margin: 1px 1px !important;
2791 display: block;
2792 }
2793
2794 .bookbook {
2795 border-color: #46A546;
2796 color: #46A546;
2797 }
2798
2799 .tagtag {
2800 border-color: #62cffc;
2801 color: #62cffc;
2802 }
2803
2804 .logtags .branchtag a:hover,
2805 .logtags .branchtag a,
2806 .branchtag a,
2807 .branchtag a:hover {
2808 text-decoration: none;
2809 color: inherit;
2810 }
2811 .logtags .tagtag {
2757 2812 padding: 1px 3px 1px 3px;
2758 background-color: #bfbfbf;
2813 background-color: #62cffc;
2759 2814 font-size: 10px;
2760 font-weight: bold;
2761 2815 color: #ffffff;
2762 2816 white-space: nowrap;
2763 2817 -webkit-border-radius: 3px;
2764 2818 border-radius: 3px;
2765 2819 }
2766 .right .logtags .branchtag a:hover, .logtags .branchtag a {
2767 color: #ffffff;
2768 }
2769 .right .logtags .branchtag a:hover, .logtags .branchtag a:hover {
2820
2821 .tagtag a,
2822 .tagtag a:hover,
2823 .logtags .tagtag a,
2824 .logtags .tagtag a:hover {
2770 2825 text-decoration: none;
2771 color: #ffffff;
2772 }
2773 .right .logtags .tagtag, .logtags .tagtag {
2826 color: inherit;
2827 }
2828 .logbooks .bookbook, .logbooks .bookbook, .logtags .bookbook, .logtags .bookbook {
2774 2829 padding: 1px 3px 1px 3px;
2775 background-color: #62cffc;
2830 background-color: #46A546;
2776 2831 font-size: 10px;
2777 font-weight: bold;
2778 2832 color: #ffffff;
2779 2833 white-space: nowrap;
2780 2834 -webkit-border-radius: 3px;
2781 2835 border-radius: 3px;
2782 2836 }
2783 .right .logtags .tagtag a:hover, .logtags .tagtag a {
2784 color: #ffffff;
2785 }
2786 .right .logtags .tagtag a:hover, .logtags .tagtag a:hover {
2787 text-decoration: none;
2837 .logbooks .bookbook, .logbooks .bookbook a, .right .logtags .bookbook, .logtags .bookbook a {
2788 2838 color: #ffffff;
2789 2839 }
2790 .right .logbooks .bookbook, .logbooks .bookbook, .right .logtags .bookbook, .logtags .bookbook {
2791 padding: 1px 3px 1px 3px;
2792 background-color: #46A546;
2793 font-size: 10px;
2794 font-weight: bold;
2795 color: #ffffff;
2796 text-transform: uppercase;
2797 white-space: nowrap;
2798 -webkit-border-radius: 3px;
2799 border-radius: 3px;
2800 }
2801 .right .logbooks .bookbook, .logbooks .bookbook a, .right .logtags .bookbook, .logtags .bookbook a {
2802 color: #ffffff;
2803 }
2804 .right .logbooks .bookbook, .logbooks .bookbook a:hover, .right .logtags .bookbook, .logtags .bookbook a:hover {
2840
2841 .logbooks .bookbook, .logbooks .bookbook a:hover,
2842 .logtags .bookbook, .logtags .bookbook a:hover,
2843 .bookbook a,
2844 .bookbook a:hover {
2805 2845 text-decoration: none;
2806 color: #ffffff;
2846 color: inherit;
2807 2847 }
2808 2848 div.browserblock {
2809 2849 overflow: hidden;
@@ -3468,7 +3508,6 b' div.gravatar img {'
3468 3508
3469 3509 #content {
3470 3510 clear: both;
3471 overflow: hidden;
3472 3511 padding: 10px 10px 14px 10px;
3473 3512 }
3474 3513
@@ -3616,7 +3655,6 b' ins, div.options a:hover {'
3616 3655
3617 3656 img,
3618 3657 #header #header-inner #quick li a:hover span.normal,
3619 #header #header-inner #quick li ul li.last,
3620 3658 #content div.box div.form div.fields div.field div.textarea table td table td a,
3621 3659 #clone_url,
3622 3660 #clone_url_id
@@ -3660,8 +3698,17 b' div#legend_data, div#legend_container, d'
3660 3698 padding: 0 10px 10px;
3661 3699 }
3662 3700
3663 #content div.box div.title ul.links li a:hover, #content div.box div.title ul.links li.ui-tabs-selected a {
3664 color: #bfe3ff;
3701 #content div.box div.title ul.links li a:hover,
3702 #content div.box div.title ul.links li.ui-tabs-selected a {
3703
3704 background: #6388ad; /* Old browsers */
3705 background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
3706 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
3707 background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
3708 background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
3709 background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
3710 background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
3711 /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */*/
3665 3712 }
3666 3713
3667 3714 #content div.box ol.lower-roman, #content div.box ol.upper-roman, #content div.box ol.lower-alpha, #content div.box ol.upper-alpha, #content div.box ol.decimal {
@@ -3669,6 +3716,7 b' div#legend_data, div#legend_container, d'
3669 3716 }
3670 3717
3671 3718 #content div.box div.form, #content div.box div.table, #content div.box div.traffic {
3719 position: relative;
3672 3720 clear: both;
3673 3721 overflow: hidden;
3674 3722 margin: 0;
@@ -3752,7 +3800,6 b' div.form div.fields div.field div.button'
3752 3800 #content div.box div.form div.fields div.buttons input
3753 3801 div.form div.fields div.buttons input,
3754 3802 #content div.box div.action div.button input {
3755 /*color: #000;*/
3756 3803 font-size: 11px;
3757 3804 font-weight: 700;
3758 3805 margin: 0;
@@ -3926,13 +3973,7 b' div.form div.fields div.field div.highli'
3926 3973 width: 600px;
3927 3974 }
3928 3975
3929 #changeset_content .container .left {
3930 float: left;
3931 width: 75%;
3932 padding-left: 5px;
3933 }
3934
3935 #changeset_content .container .left .date, .ac .match {
3976 #changeset_content .container .date, .ac .match {
3936 3977 font-weight: 700;
3937 3978 padding-top: 5px;
3938 3979 padding-bottom: 5px;
@@ -4352,21 +4393,6 b' div.comment-inline-form {'
4352 4393 padding: 4px 0px 6px 0px;
4353 4394 }
4354 4395
4355
4356 tr.hl-comment {
4357 /*
4358 background-color: #FFFFCC !important;
4359 */
4360 }
4361
4362 /*
4363 tr.hl-comment pre {
4364 border-top: 2px solid #FFEE33;
4365 border-left: 2px solid #FFEE33;
4366 border-right: 2px solid #FFEE33;
4367 }
4368 */
4369
4370 4396 .comment-inline-form strong {
4371 4397 display: block;
4372 4398 margin-bottom: 15px;
@@ -4467,22 +4493,16 b' form.comment-inline-form {'
4467 4493 margin: 2px 0px 8px 5px !important
4468 4494 }
4469 4495
4470
4471 4496 .notification-paginator {
4472 4497 padding: 0px 0px 4px 16px;
4473 4498 float: left;
4474 4499 }
4475 4500
4476 .menu_link_user {
4477 padding: 10px 8px 8px 8px !important;
4478 }
4479
4501 #context-pages .pull-request span,
4480 4502 .menu_link_notifications {
4481 4503 padding: 4px 4px !important;
4482 margin: 7px 4px 0px 0px !important;
4483 4504 text-align: center;
4484 4505 color: #888 !important;
4485 font-size: 10px;
4486 4506 background-color: #DEDEDE !important;
4487 4507 border-radius: 4px !important;
4488 4508 -webkit-border-radius: 4px !important;
@@ -509,7 +509,7 b' var show_changeset_tooltip = function(){'
509 509 };
510 510
511 511 var onSuccessFollow = function(target){
512 var f = YUD.get(target.id);
512 var f = YUD.get(target);
513 513 var f_cnt = YUD.get('current_followers_count');
514 514
515 515 if(YUD.hasClass(f, 'follow')){
@@ -576,6 +576,7 b' var showRepoSize = function(target, repo'
576 576 return false;
577 577 }
578 578
579
579 580 /**
580 581 * TOOLTIP IMPL.
581 582 */
@@ -6,11 +6,7 b''
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_(u'Home'),h.url('/'))}
10 &raquo;
11 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
12 &raquo;
13 ${_('edit')}
9 ${_('Edit Repository Settings')}
14 10 </%def>
15 11
16 12 <%def name="page_nav()">
@@ -18,6 +14,7 b''
18 14 </%def>
19 15
20 16 <%def name="main()">
17 ${self.context_bar('options')}
21 18 <div class="box box-left">
22 19 <!-- box / title -->
23 20 <div class="title">
@@ -61,11 +61,144 b''
61 61 </div>
62 62 </%def>
63 63
64 <%def name="context_bar(current=None)">
65 %if c.repo_name:
66 ${repo_context_bar(current)}
67 %endif
68 </%def>
69
70 <%def name="admin_menu()">
71 <ul class="admin_menu">
72 <li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal ')}</li>
73 <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
74 <li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
75 <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
76 <li>${h.link_to(_('user groups'),h.url('users_groups'),class_='groups')}</li>
77 <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
78 <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
79 <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
80 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
81 </ul>
82 </%def>
83
84 <%def name="admin_menu_simple()">
85 <ul>
86 <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
87 </ul>
88 </%def>
89
90 <%def name="repo_context_bar(current=None)">
91 <%
92 def follow_class():
93 if c.repository_following:
94 return h.literal('following')
95 else:
96 return h.literal('follow')
97 %>
98 <%
99 def is_current(selected):
100 if selected == current:
101 return h.literal('class="current"')
102 %>
103
104 <!--- CONTEXT BAR -->
105 <div id="context-bar" class="box">
106 <div id="context-top">
107 <div id="breadcrumbs">
108 ${h.link_to(_(u'Repositories'),h.url('home'))}
109 »
110 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
111 </div>
112 ## TODO: this check feels wrong, it would be better to have a check for permissions
113 ## also it feels like a job for the controller
114 %if c.rhodecode_user.username != 'default':
115 <ul id="context-actions" class="horizontal-list">
116 <li>
117 <button class="${follow_class()}" onclick="javascript:toggleFollowingRepo(this,${c.rhodecode_db_repo.repo_id},'${str(h.get_token())}');">
118 <!--span class="icon show-follow follow"></span>
119 <span class="icon show-following following"></span-->
120 <span class="show-follow">${_('Follow')}</span>
121 <span class="show-following">${_('Unfollow')}</span>
122 </button>
123 </li>
124 <li><a href="${h.url('repo_fork_home',repo_name=c.repo_name)}" class="fork">${_('Fork')}</a></li>
125 %if h.is_hg(c.rhodecode_repo):
126 <li><a href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="pull-request">${_('Create Pull Request')}</a></li>
127 %endif
128 </ul>
129 %endif
130 </div>
131 <div id="context-state">
132 <!--button id="revision-changer">
133 <span class="branch-name">graphics/shader-move</span>
134 <span class="revision">@73318:8d3d6ee94072</span>
135 </button-->
136 <ul id="context-pages" class="horizontal-list">
137 <li ${is_current('summary')}><a href="${h.url('summary_home', repo_name=c.repo_name)}" class="summary">${_('Summary')}</a></li>
138 <li ${is_current('changelog')}><a href="${h.url('changelog_home', repo_name=c.repo_name)}" class="changelogs">${_('Changelog')}</a></li>
139 <li ${is_current('files')}><a href="${h.url('files_home', repo_name=c.repo_name)}" class="files"></span>${_('Files')}</a></li>
140 <li ${is_current('switch-to')}>
141 <a href="#" id="branch_tag_switcher_2" class="dropdown switch-to"></span>${_('Switch To')}</a>
142 <ul id="switch_to_list_2" class="switch_to submenu">
143 <li><a href="#">${_('loading...')}</a></li>
144 </ul>
145 </li>
146 <li ${is_current('options')}>
147 <a href="#" class="dropdown options"></span>Options</a>
148 <ul>
149 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
150 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
151 <li>${h.link_to(_('Settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
152 %else:
153 <li>${h.link_to(_('Settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
154 %endif
155 %endif
156 %if c.rhodecode_db_repo.fork:
157 <li>${h.link_to(_('Compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
158 %endif
159 <li>${h.link_to(_('Lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
160 <li>${h.link_to(_('Search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
161
162 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
163 %if c.rhodecode_db_repo.locked[0]:
164 <li>${h.link_to(_('Unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
165 %else:
166 <li>${h.link_to(_('Lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
167 %endif
168 %endif
169 </ul>
170 </li>
171 <li ${is_current('showpullrequest')}>
172 <a href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}" title="${_('Show Pull Requests')}" class="pull-request">Pull Requests
173 %if c.repository_pull_requests:
174 <span>${c.repository_pull_requests}</span>
175 %endif
176 </a>
177 </li>
178 </ul>
179 </div>
180 </div>
181 <script type="text/javascript">
182 YUE.on('branch_tag_switcher_2','mouseover',function(){
183 var loaded = YUD.hasClass('branch_tag_switcher_2','loaded');
184 if(!loaded){
185 YUD.addClass('branch_tag_switcher_2','loaded');
186 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list_2',
187 function(o){},
188 function(o){YUD.removeClass('branch_tag_switcher_2','loaded');}
189 ,null);
190 }
191 return false;
192 });
193 </script>
194 <!--- END CONTEXT BAR -->
195 </%def>
196
64 197 <%def name="usermenu()">
65 198 ## USER MENU
66 199 <li>
67 <a class="menu_link" id="quick_login_link">
68 <span class="icon" style="padding:5px 5px 0px 5px">
200 <a class="menu_link childs" id="quick_login_link">
201 <span class="icon">
69 202 <img src="${h.gravatar_url(c.rhodecode_user.email,20)}" alt="avatar">
70 203 </span>
71 204 %if c.rhodecode_user.username != 'default':
@@ -122,12 +255,12 b''
122 255 <div class="full_name">${c.rhodecode_user.full_name_or_username}</div>
123 256 <div class="email">${c.rhodecode_user.email}</div>
124 257 <div class="big_gravatar"><img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,48)}" /></div>
125 <div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
126 <div class="unread"><a href="${h.url('notifications')}">${_('Unread')}: ${c.unread_notifications}</a></div>
258 ##<div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
259 <div class="unread"><a href="${h.url('notifications')}">${_('Unread notifications')}: ${c.unread_notifications}</a></div>
127 260 </div>
128 261 <div class="links_right">
129 262 <ol class="links">
130 <li>${h.link_to(_(u'Home'),h.url('home'))}</li>
263 ##<li>${h.link_to(_(u'Home'),h.url('home'))}</li>
131 264 <li>${h.link_to(_(u'Journal'),h.url('journal'))}</li>
132 265 <li>${h.link_to(_(u'My account'),h.url('admin_settings_my_account'))}</li>
133 266 <li class="logout">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
@@ -146,14 +279,11 b''
146 279 if selected == current:
147 280 return h.literal('class="current"')
148 281 %>
149 <ul id="quick">
282 <ul id="quick" class="horizontal-list">
150 283 <!-- repo switcher -->
151 284 <li ${is_current('home')}>
152 <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
153 <span class="icon">
154 <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
155 </span>
156 <span>${_('Repositories')}</span>
285 <a class="menu_link repo_switcher childs" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
286 ${_('Repositories')}
157 287 </a>
158 288 <ul id="repo_switcher_list" class="repo_switcher">
159 289 <li>
@@ -161,202 +291,41 b''
161 291 </li>
162 292 </ul>
163 293 </li>
164 ## we render this menu only not for those pages
165 %if current not in ['home','admin', 'search', 'journal']:
166 ##REGULAR MENU
167 <li ${is_current('summary')}>
168 <a class="menu_link" title="${_('Summary page')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
169 <span class="icon">
170 <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
171 </span>
172 <span>${_('Summary')}</span>
173 </a>
174 </li>
175 <li ${is_current('changelog')}>
176 <a class="menu_link" title="${_('Changeset list')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
177 <span class="icon">
178 <img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" />
179 </span>
180 <span>${_('Changelog')}</span>
181 </a>
294 ##ROOT MENU
295 %if c.rhodecode_user.username != 'default':
296 <li ${is_current('journal')}>
297 <a class="menu_link journal" title="${_('Show recent activity')}" href="${h.url('journal')}">
298 ${_('Journal')}
299 </a>
182 300 </li>
183 <li ${is_current('switch_to')}>
184 <a class="menu_link" id="branch_tag_switcher" title="${_('Switch to')}" href="#">
185 <span class="icon">
186 <img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" />
187 </span>
188 <span>${_('Switch to')}</span>
189 </a>
190 <ul id="switch_to_list" class="switch_to">
191 <li><a href="#">${_('loading...')}</a></li>
192 </ul>
193 </li>
194 <li ${is_current('files')}>
195 <a class="menu_link" title="${_('Show repository content')}" href="${h.url('files_home',repo_name=c.repo_name)}">
196 <span class="icon">
197 <img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" />
198 </span>
199 <span>${_('Files')}</span>
200 </a>
301 %else:
302 <li ${is_current('journal')}>
303 <a class="menu_link journal" title="${_('Public journal')}" href="${h.url('public_journal')}">
304 ${_('Public journal')}
305 </a>
201 306 </li>
202 <li ${is_current('options')}>
203 <a class="menu_link" title="${_('Options')}" href="#">
204 <span class="icon">
205 <img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" />
206 </span>
207 <span>${_('Options')}</span>
208 </a>
209 <ul>
210 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
211 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
212 <li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
213 %else:
214 <li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
215 %endif
216 %endif
217
218 <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
219 %if h.is_hg(c.rhodecode_repo):
220 <li>${h.link_to(_('open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}</li>
221 %endif
222 %if c.rhodecode_db_repo.fork:
223 <li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
224 %endif
225 <li>${h.link_to(_('lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
226 <li>${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
227
228 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
229 %if c.rhodecode_db_repo.locked[0]:
230 <li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
231 %else:
232 <li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
233 %endif
234 %endif
235
236 % if h.HasPermissionAll('hg.admin')('access admin main page'):
237 <li>
238 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
239 <%def name="admin_menu()">
240 <ul>
241 <li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal')}</li>
242 <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
243 <li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
244 <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
245 <li>${h.link_to(_('user groups'),h.url('users_groups'),class_='groups')}</li>
246 <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
247 <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
248 <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
249 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
250 </ul>
251 </%def>
252 ## ADMIN MENU
253 ${admin_menu()}
254 </li>
255 ## if you're a admin of any groups, show admin menu for it
256 % elif c.rhodecode_user.groups_admin:
257 <li>
258 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
259 <%def name="admin_menu_simple()">
260 <ul>
261 <li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
262 </ul>
263 </%def>
264 ## ADMIN MENU
265 ${admin_menu_simple()}
266 </li>
267 % endif
268 </ul>
269 </li>
270 <li>
271 <a class="menu_link" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
272 <span class="icon_short">
273 <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
274 </span>
275 <span id="current_followers_count" class="short">${c.repository_followers}</span>
276 </a>
307 %endif
308 <li ${is_current('search')}>
309 <a class="menu_link search" title="${_('Search in repositories')}" href="${h.url('search')}">
310 ${_('Search')}
311 </a>
312 </li>
313 % if h.HasPermissionAll('hg.admin')('access admin main page'):
314 <li ${is_current('admin')}>
315 <a class="menu_link admin childs" title="${_('Admin')}" href="${h.url('admin_home')}">
316 ${_('Admin')}
317 </a>
318 ${admin_menu()}
277 319 </li>
278 <li>
279 <a class="menu_link" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
280 <span class="icon_short">
281 <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
282 </span>
283 <span class="short">${c.repository_forks}</span>
284 </a>
285 </li>
286 <li>
287 <a class="menu_link" title="${_('Pull requests')}" href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}">
288 <span class="icon_short">
289 <img src="${h.url('/images/icons/arrow_join.png')}" alt="${_('Pull requests')}" />
290 </span>
291 <span class="short">${c.repository_pull_requests}</span>
292 </a>
293 </li>
294 ${usermenu()}
295 <script type="text/javascript">
296 YUE.on('branch_tag_switcher','mouseover',function(){
297 var loaded = YUD.hasClass('branch_tag_switcher','loaded');
298 if(!loaded){
299 YUD.addClass('branch_tag_switcher','loaded');
300 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
301 function(o){},
302 function(o){YUD.removeClass('branch_tag_switcher','loaded');}
303 ,null);
304 }
305 return false;
306 });
307 </script>
308 %else:
309 ##ROOT MENU
310 %if c.rhodecode_user.username != 'default':
311 <li ${is_current('journal')}>
312 <a class="menu_link" title="${_('Show recent activity')}" href="${h.url('journal')}">
313 <span class="icon">
314 <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
315 </span>
316 <span>${_('Journal')}</span>
317 </a>
318 </li>
319 %else:
320 <li ${is_current('journal')}>
321 <a class="menu_link" title="${_('Public journal')}" href="${h.url('public_journal')}">
322 <span class="icon">
323 <img src="${h.url('/images/icons/book.png')}" alt="${_('Public journal')}" />
324 </span>
325 <span>${_('Public journal')}</span>
326 </a>
327 </li>
328 %endif
329 <li ${is_current('search')}>
330 <a class="menu_link" title="${_('Search in repositories')}" href="${h.url('search')}">
331 <span class="icon">
332 <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
333 </span>
334 <span>${_('Search')}</span>
335 </a>
336 </li>
337 % if h.HasPermissionAll('hg.admin')('access admin main page'):
338 <li ${is_current('admin')}>
339 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
340 <span class="icon">
341 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
342 </span>
343 <span>${_('Admin')}</span>
344 </a>
345 ${admin_menu()}
346 </li>
347 % elif c.rhodecode_user.groups_admin:
348 <li ${is_current('admin')}>
349 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
350 <span class="icon">
351 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
352 </span>
353 <span>${_('Admin')}</span>
354 </a>
355 ${admin_menu_simple()}
356 </li>
357 % endif
358 ${usermenu()}
359 %endif
320 % elif c.rhodecode_user.groups_admin:
321 <li ${is_current('admin')}>
322 <a class="menu_link admin childs" title="${_('Admin')}" href="${h.url('admin_home')}">
323 ${_('Admin')}
324 </a>
325 ${admin_menu_simple()}
326 </li>
327 % endif
328 ${usermenu()}
360 329 <script type="text/javascript">
361 330 YUE.on('repo_switcher','mouseover',function(){
362 331 var target = 'q_filter_rs';
@@ -11,6 +11,8 b''
11 11 <%def name="css()">
12 12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css', ver=c.rhodecode_version)}" media="screen"/>
13 13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.rhodecode_version)}"/>
14
15 <link rel="stylesheet" type="text/css" href="${h.url('/css/contextbar.css', ver=c.rhodecode_version)}"/>
14 16 ## EXTRA FOR CSS
15 17 ${self.css_extra()}
16 18 </%def>
@@ -8,11 +8,7 b''
8 8
9 9 <%def name="breadcrumbs_links()">
10 10 <input class="q_filter_box" id="q_filter_bookmarks" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
11 ${h.link_to(_(u'Home'),h.url('/'))}
12 &raquo;
13 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
14 &raquo;
15 ${_('bookmarks')}
11 ${_('Bookmarks')}
16 12 </%def>
17 13
18 14 <%def name="page_nav()">
@@ -20,6 +16,7 b''
20 16 </%def>
21 17 <%def name="main()">
22 18 <div class="box">
19 ${self.context_bar('switch-to')}
23 20 <!-- box / title -->
24 21 <div class="title">
25 22 ${self.breadcrumbs()}
@@ -7,11 +7,7 b''
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 <input class="q_filter_box" id="q_filter_branches" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
10 ${h.link_to(_(u'Home'),h.url('/'))}
11 &raquo;
12 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
13 &raquo;
14 ${_('branches')}
10 ${_('Branches')}
15 11 </%def>
16 12
17 13 <%def name="page_nav()">
@@ -19,6 +15,7 b''
19 15 </%def>
20 16
21 17 <%def name="main()">
18 ${self.context_bar('switch-to')}
22 19 <div class="box">
23 20 <!-- box / title -->
24 21 <div class="title">
@@ -7,12 +7,8 b''
7 7 </%def>
8 8
9 9 <%def name="breadcrumbs_links()">
10 ${h.link_to(_(u'Home'),h.url('/'))}
11 &raquo;
12 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
13 &raquo;
14 10 <% size = c.size if c.size <= c.total_cs else c.total_cs %>
15 ${_('changelog')} - ${ungettext('showing %d out of %d revision', 'showing %d out of %d revisions', size) % (size, c.total_cs)}
11 ${_('Changelog')} - ${ungettext('showing %d out of %d revision', 'showing %d out of %d revisions', size) % (size, c.total_cs)}
16 12 </%def>
17 13
18 14 <%def name="page_nav()">
@@ -20,6 +16,7 b''
20 16 </%def>
21 17
22 18 <%def name="main()">
19 ${self.context_bar('changelog')}
23 20 <div class="box">
24 21 <!-- box / title -->
25 22 <div class="title">
@@ -28,10 +25,6 b''
28 25 <div class="table">
29 26 % if c.pagination:
30 27 <div id="graph">
31 <div id="graph_nodes">
32 <canvas id="graph_canvas"></canvas>
33 </div>
34 <div id="graph_content">
35 28 <div class="info_box" style="clear: both;padding: 10px 6px;min-height: 12px;text-align: right;">
36 29 <a href="#" class="ui-btn small" id="rev_range_container" style="display:none"></a>
37 30 <a href="#" class="ui-btn small" id="rev_range_clear" style="display:none">${_('Clear selection')}</a>
@@ -42,123 +35,105 b''
42 35 %if h.is_hg(c.rhodecode_repo):
43 36 <a id="open_new_pr" href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="ui-btn small">${_('Open new pull request')}</a>
44 37 %endif
38 </div>
39 <div class="container_header">
40 ${h.form(h.url.current(),method='get')}
41 <div style="float:left">
42 ${h.submit('set',_('Show'),class_="ui-btn")}
43 ${h.text('size',size=1,value=c.size)}
44 ${_('revisions')}
45 45 </div>
46 <div class="container_header">
47 ${h.form(h.url.current(),method='get')}
48 <div class="info_box" style="float:left">
49 ${h.submit('set',_('Show'),class_="ui-btn")}
50 ${h.text('size',size=1,value=c.size)}
51 ${_('revisions')}
52 </div>
53 ${h.end_form()}
46 ${h.end_form()}
54 47 <div style="float:right">${h.select('branch_filter',c.branch_name,c.branch_filters)}</div>
55 </div>
48 </div>
49 <div id="graph_nodes">
50 <canvas id="graph_canvas"></canvas>
51 </div>
52 <div id="graph_content">
56 53
54 <table id="changesets">
55 <tbody>
57 56 %for cnt,cs in enumerate(c.pagination):
58 <div id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
59 <div class="left">
60 <div>
57 <tr id="chg_${cnt+1}" class="container ${'tablerow%s' % (cnt%2)}">
58 <td class="checkbox">
61 59 ${h.checkbox(cs.raw_id,class_="changeset_range")}
62 <span class="tooltip" title="${h.tooltip(h.age(cs.date))}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}"><span class="changeset_id">${cs.revision}:<span class="changeset_hash">${h.short_id(cs.raw_id)}</span></span></a></span>
63 </div>
64 <div class="author">
65 <div class="gravatar">
66 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),16)}"/>
67 </div>
68 <div title="${cs.author}" class="user">${h.shorter(h.person(cs.author),22)}</div>
69 </div>
70 <div class="date">${h.fmt_date(cs.date)}</div>
71 </div>
72 <div class="mid">
73 <div class="message">${h.urlify_commit(cs.message, c.repo_name,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
74 <div class="expand"><span class="expandtext">&darr; ${_('Show more')} &darr;</span></div>
75 </div>
76 <div class="right">
77 <div class="changes">
78 <div id="changed_total_${cs.raw_id}" style="float:right;" class="changed_total tooltip" title="${h.tooltip(_('Affected number of files, click to show more details'))}">${len(cs.affected_files)}</div>
60 </td>
61 <td class="author">
62 <img alt="gravatar" src="${h.gravatar_url(h.email_or_none(cs.author),16)}"/>
63 <span title="${cs.author}" class="user">${h.shorter(h.person(cs.author),22)}</span>
64 </td>
65 <td class="hash">
66 <a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}">
67 <span class="changeset_hash">${h.short_id(cs.raw_id)}</span>
68 </a>
69 </td>
70 <td class="date">
71 <div class="date">${h.age(cs.date,True)}</div>
72 </td>
73 <td class="mid">
74 <div class="log-container">
75 <div class="message">${h.urlify_commit(cs.message, c.repo_name,h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
76 <div class="expand"><span class="expandtext">&darr; ${_('Show more')} &darr;</span></div>
77 <div class="extra-container">
78 %if c.comments.get(cs.raw_id,[]):
79 79 <div class="comments-container">
80 %if len(c.comments.get(cs.raw_id,[])) > 0:
81 80 <div class="comments-cnt" title="${('comments')}">
82 <a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id,anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
83 <div class="comments-cnt">${len(c.comments[cs.raw_id])}</div>
84 <img src="${h.url('/images/icons/comments.png')}">
85 </a>
81 <a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id,anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
82 ${len(c.comments[cs.raw_id])}
83 </a>
86 84 </div>
87 %endif
88 85 </div>
89 <div class="changeset-status-container">
90 %if c.statuses.get(cs.raw_id):
91 <div title="${_('Changeset status')}" class="changeset-status-lbl">${c.statuses.get(cs.raw_id)[1]}</div>
92 <div class="changeset-status-ico">
93 %if c.statuses.get(cs.raw_id)[2]:
94 <a class="tooltip" title="${_('Click to open associated pull request #%s' % c.statuses.get(cs.raw_id)[2])}" href="${h.url('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}"><img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" /></a>
95 %else:
96 <img src="${h.url('/images/icons/flag_status_%s.png' % c.statuses.get(cs.raw_id)[0])}" />
97 %endif
98 </div>
99 %endif
100 </div>
101 </div>
102 %if cs.parents:
103 %for p_cs in reversed(cs.parents):
104 <div class="parent">${_('Parent')}
105 <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id),
106 h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span>
86 %endif
87 %if h.is_hg(c.rhodecode_repo):
88 %for book in cs.bookmarks:
89 <div class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
90 ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
91 </div>
92 %endfor
93 %endif
94 %for tag in cs.tags:
95 <div class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
96 ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
107 97 </div>
108 98 %endfor
109 %else:
110 <div class="parent">${_('No parents')}</div>
111 %endif
112
113 <span class="logtags">
114 %if len(cs.parents)>1:
115 <span class="merge">${_('merge')}</span>
116 %endif
117 %if cs.branch:
118 <span class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
119 ${h.link_to(h.shorter(cs.branch),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
120 </span>
99 %if (not c.branch_name) and cs.branch:
100 <div class="branchtag" title="${'%s %s' % (_('branch'),cs.branch)}">
101 ${h.link_to(h.shorter(cs.branch),h.url('changelog_home',repo_name=c.repo_name,branch=cs.branch))}
102 </div>
121 103 %endif
122 %if h.is_hg(c.rhodecode_repo):
123 %for book in cs.bookmarks:
124 <span class="bookbook" title="${'%s %s' % (_('bookmark'),book)}">
125 ${h.link_to(h.shorter(book),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}
126 </span>
127 %endfor
128 %endif
129 %for tag in cs.tags:
130 <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}">
131 ${h.link_to(h.shorter(tag),h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id))}</span>
132 %endfor
133 </span>
134 </div>
135 </div>
104 </div>
105 </div>
106 </td>
107 </tr>
108 %endfor
109 </tbody>
110 </table>
136 111
137 %endfor
112
138 113 <div class="pagination-wh pagination-left">
139 114 ${c.pagination.pager('$link_previous ~2~ $link_next')}
140 115 </div>
141 </div>
142 116 </div>
117 </div>
143 118
144 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
145 <script type="text/javascript">
146 YAHOO.util.Event.onDOMReady(function(){
119 <script type="text/javascript" src="${h.url('/js/graph.js')}"></script>
120 <script type="text/javascript">
121 YAHOO.util.Event.onDOMReady(function(){
147 122
148 //Monitor range checkboxes and build a link to changesets
149 //ranges
150 var checkboxes = YUD.getElementsByClassName('changeset_range');
151 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
152 var pr_tmpl = "${h.url('pullrequest_home',repo_name=c.repo_name)}";
123 //Monitor range checkboxes and build a link to changesets
124 //ranges
125 var checkboxes = YUD.getElementsByClassName('changeset_range');
126 var url_tmpl = "${h.url('changeset_home',repo_name=c.repo_name,revision='__REVRANGE__')}";
127 var pr_tmpl = "${h.url('pullrequest_home',repo_name=c.repo_name)}";
153 128
154 129 var checkbox_checker = function(e){
155 var checked_checkboxes = [];
156 for (pos in checkboxes){
157 if(checkboxes[pos].checked){
158 checked_checkboxes.push(checkboxes[pos]);
159 }
130 var checked_checkboxes = [];
131 for (pos in checkboxes){
132 if(checkboxes[pos].checked){
133 checked_checkboxes.push(checkboxes[pos]);
160 134 }
161 if(YUD.get('open_new_pr')){
135 }
136 if(YUD.get('open_new_pr')){
162 137 if(checked_checkboxes.length>1){
163 138 YUD.setStyle('open_new_pr','display','none');
164 139 } else {
@@ -171,29 +146,28 b''
171 146 }
172 147 }
173 148
174 if(checked_checkboxes.length>0){
175 var rev_end = checked_checkboxes[0].name;
176 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
177 var url = url_tmpl.replace('__REVRANGE__',
178 rev_start+'...'+rev_end);
149 if(checked_checkboxes.length>0){
150 var rev_end = checked_checkboxes[0].name;
151 var rev_start = checked_checkboxes[checked_checkboxes.length-1].name;
152 var url = url_tmpl.replace('__REVRANGE__',
153 rev_start+'...'+rev_end);
179 154
180 var link = (rev_start == rev_end)
181 ? _TM['Show selected change __S']
182 : _TM['Show selected changes __S -> __E'];
155 var link = (rev_start == rev_end)
156 ? _TM['Show selected change __S']
157 : _TM['Show selected changes __S -> __E'];
183 158
184 link = link.replace('__S',rev_start.substr(0,6));
185 link = link.replace('__E',rev_end.substr(0,6));
186 YUD.get('rev_range_container').href = url;
187 YUD.get('rev_range_container').innerHTML = link;
188 YUD.setStyle('rev_range_container','display','');
189 YUD.setStyle('rev_range_clear','display','');
159 link = link.replace('__S',rev_start.substr(0,6));
160 link = link.replace('__E',rev_end.substr(0,6));
161 YUD.get('rev_range_container').href = url;
162 YUD.get('rev_range_container').innerHTML = link;
163 YUD.setStyle('rev_range_container','display','');
164 YUD.setStyle('rev_range_clear','display','');
190 165
191 YUD.get('open_new_pr').href = pr_tmpl + '?rev_start={0}&rev_end={1}'.format(rev_start,rev_end);
166 YUD.get('open_new_pr').href = pr_tmpl + '?rev_start={0}&rev_end={1}'.format(rev_start,rev_end);
192 167 YUD.setStyle('compare_fork','display','none');
193 }
194 else{
195 YUD.setStyle('rev_range_container','display','none');
196 YUD.setStyle('rev_range_clear','display','none');
168 } else{
169 YUD.setStyle('rev_range_container','display','none');
170 YUD.setStyle('rev_range_clear','display','none');
197 171 if (checkboxes){
198 172 YUD.get('open_new_pr').href = pr_tmpl + '?rev_end={0}'.format(checkboxes[0].name);
199 173 }
@@ -203,94 +177,86 b''
203 177 YUE.onDOMReady(checkbox_checker);
204 178 YUE.on(checkboxes,'click', checkbox_checker);
205 179
206 YUE.on('rev_range_clear','click',function(e){
207 for (var i=0; i<checkboxes.length; i++){
208 var cb = checkboxes[i];
209 cb.checked = false;
210 }
180 YUE.on('rev_range_clear','click',function(e){
181 for (var i=0; i<checkboxes.length; i++){
182 var cb = checkboxes[i];
183 cb.checked = false;
184 }
211 185 checkbox_checker();
212 YUE.preventDefault(e);
213 })
214
215 var msgs = YUQ('.message');
216 // get first element height
217 var el = YUQ('#graph_content .container')[0];
218 var row_h = el.clientHeight;
219 for(var i=0;i<msgs.length;i++){
220 var m = msgs[i];
221
222 var h = m.clientHeight;
223 var pad = YUD.getStyle(m,'padding');
224 if(h > row_h){
225 var offset = row_h - (h+12);
226 YUD.setStyle(m.nextElementSibling,'display','block');
227 YUD.setStyle(m.nextElementSibling,'margin-top',offset+'px');
228 };
229 }
230 YUE.on(YUQ('.expand'),'click',function(e){
231 var elem = e.currentTarget.parentNode.parentNode;
232 YUD.setStyle(e.currentTarget,'display','none');
233 YUD.setStyle(elem,'height','auto');
234
235 //redraw the graph, line_count and jsdata are global vars
236 set_canvas(100);
237
238 var r = new BranchRenderer();
239 r.render(jsdata,100,line_count);
240
241 })
186 YUE.preventDefault(e);
187 });
242 188
243 // Fetch changeset details
244 YUE.on(YUD.getElementsByClassName('changed_total'),'click',function(e){
245 var id = e.currentTarget.id;
246 var url = "${h.url('changelog_details',repo_name=c.repo_name,cs='__CS__')}";
247 var url = url.replace('__CS__',id.replace('changed_total_',''));
248 ypjax(url,id,function(){tooltip_activate()});
249 });
250
251 // change branch filter
252 YUE.on(YUD.get('branch_filter'),'change',function(e){
253 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
254 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
255 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
256 var url = url.replace('__BRANCH__',selected_branch);
257 if(selected_branch != ''){
258 window.location = url;
259 }else{
260 window.location = url_main;
261 }
262
263 });
189 var msgs = YUQ('.message');
190 // get first element height
191 var el = YUQ('#graph_content .container')[0];
192 var row_h = el.clientHeight;
193 for(var i=0;i<msgs.length;i++){
194 var m = msgs[i];
264 195
265 function set_canvas(width) {
266 var c = document.getElementById('graph_nodes');
267 var t = document.getElementById('graph_content');
268 canvas = document.getElementById('graph_canvas');
269 var div_h = t.clientHeight;
270 c.style.height=div_h+'px';
271 canvas.setAttribute('height',div_h);
272 c.style.height=width+'px';
273 canvas.setAttribute('width',width);
196 var h = m.clientHeight;
197 var pad = YUD.getStyle(m,'padding');
198 if(h > row_h){
199 var offset = row_h - (h+12);
200 YUD.setStyle(m.nextElementSibling,'display','block');
201 YUD.setStyle(m.nextElementSibling,'margin-top',offset+'px');
274 202 };
275 var heads = 1;
276 var line_count = 0;
277 var jsdata = ${c.jsdata|n};
203 }
204 YUE.on(YUQ('.expand'),'click',function(e){
205 var elem = e.currentTarget.parentNode.parentNode;
206 YUD.setStyle(e.currentTarget,'display','none');
207 YUD.setStyle(elem,'height','auto');
278 208
279 for (var i=0;i<jsdata.length;i++) {
280 var in_l = jsdata[i][2];
281 for (var j in in_l) {
282 var m = in_l[j][1];
283 if (m > line_count)
284 line_count = m;
285 }
286 }
209 //redraw the graph, line_count and jsdata are global vars
287 210 set_canvas(100);
288 211
289 212 var r = new BranchRenderer();
290 213 r.render(jsdata,100,line_count);
291 214
292 215 });
293 </script>
216
217 // change branch filter
218 YUE.on(YUD.get('branch_filter'),'change',function(e){
219 var selected_branch = e.currentTarget.options[e.currentTarget.selectedIndex].value;
220 var url_main = "${h.url('changelog_home',repo_name=c.repo_name)}";
221 var url = "${h.url('changelog_home',repo_name=c.repo_name,branch='__BRANCH__')}";
222 var url = url.replace('__BRANCH__',selected_branch);
223 if(selected_branch != ''){
224 window.location = url;
225 }else{
226 window.location = url_main;
227 }
228
229 });
230
231 function set_canvas(width) {
232 var c = document.getElementById('graph_nodes');
233 var t = document.getElementById('graph_content');
234 canvas = document.getElementById('graph_canvas');
235 var div_h = t.clientHeight;
236 //c.style.height=div_h+'px';
237 canvas.setAttribute('height',div_h);
238 //c.style.height=width+'px';
239 canvas.setAttribute('width',width);
240 };
241 var heads = 1;
242 var line_count = 0;
243 var jsdata = ${c.jsdata|n};
244
245 for (var i=0;i<jsdata.length;i++) {
246 var in_l = jsdata[i][2];
247 for (var j in in_l) {
248 var m = in_l[j][1];
249 if (m > line_count)
250 line_count = m;
251 }
252 }
253 set_canvas(100);
254
255 var r = new BranchRenderer();
256 r.render(jsdata,100,line_count);
257
258 });
259 </script>
294 260 %else:
295 261 ${_('There are no changes yet')}
296 262 %endif
@@ -7,10 +7,6 b''
7 7 </%def>
8 8
9 9 <%def name="breadcrumbs_links()">
10 ${h.link_to(_(u'Home'),h.url('/'))}
11 &raquo;
12 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
13 &raquo;
14 10 ${_('changeset')} - <span class='hash'>r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}</span>
15 11 </%def>
16 12
@@ -19,6 +15,7 b''
19 15 </%def>
20 16
21 17 <%def name="main()">
18 ${self.context_bar('changelog')}
22 19 <div class="box">
23 20 <!-- box / title -->
24 21 <div class="title">
@@ -5,11 +5,7 b''
5 5 </%def>
6 6
7 7 <%def name="breadcrumbs_links()">
8 ${h.link_to(_(u'Home'),h.url('/'))}
9 &raquo;
10 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
11 &raquo;
12 ${_('files')}
8 ${_('Files')}
13 9 %if c.file:
14 10 @ r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
15 11 %endif
@@ -20,6 +16,7 b''
20 16 </%def>
21 17
22 18 <%def name="main()">
19 ${self.context_bar('files')}
23 20 <div class="box">
24 21 <!-- box / title -->
25 22 <div class="title">
@@ -6,17 +6,14 b''
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_(u'Home'),h.url('/'))}
10 &raquo;
11 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
12 &raquo;
13 ${_('followers')}
9 ${_('Followers')}
14 10 </%def>
15 11
16 12 <%def name="page_nav()">
17 13 ${self.menu('followers')}
18 14 </%def>
19 15 <%def name="main()">
16 ${self.context_bar('followers')}
20 17 <div class="box">
21 18 <!-- box / title -->
22 19 <div class="title">
@@ -6,17 +6,14 b''
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 ${h.link_to(_(u'Home'),h.url('/'))}
10 &raquo;
11 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
12 &raquo;
13 ${_('forks')}
9 ${_('Forks')}
14 10 </%def>
15 11
16 12 <%def name="page_nav()">
17 13 ${self.menu('forks')}
18 14 </%def>
19 15 <%def name="main()">
16 ${self.context_bar('forks')}
20 17 <div class="box">
21 18 <!-- box / title -->
22 19 <div class="title">
@@ -295,7 +295,7 b''
295 295
296 296 MSG_SORTASC:"${_('Click to sort ascending')}",
297 297 MSG_SORTDESC:"${_('Click to sort descending')}",
298 MSG_EMPTY:"${_('No records found.')}",
298 MSG_EMPTY:"${_('No repositories found.')}",
299 299 MSG_ERROR:"${_('Data error.')}",
300 300 MSG_LOADING:"${_('Loading...')}",
301 301 }
@@ -5,15 +5,11 b''
5 5 </%def>
6 6
7 7 <%def name="breadcrumbs_links()">
8 ${h.link_to(_(u'Home'),h.url('/'))}
9 &raquo;
10 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
11 &raquo;
12 ${_('pull requests')}
8 ${_('Pull requests')}
13 9 </%def>
14 10
15 11 <%def name="main()">
16
12 ${self.context_bar('showpullrequest')}
17 13 <div class="box">
18 14 <!-- box / title -->
19 15 <div class="title">
@@ -11,6 +11,6 b''
11 11 %elif not repo['dbrepo']['private'] and c.visual.show_public_icon:
12 12 <img src="${h.url('/images/icons/lock_open.png')}" alt="${_('Public repository')}" class="repo_switcher_type" />
13 13 %endif
14 ${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']),class_="repo_name %s" % repo['dbrepo']['repo_type'])}
14 ${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']),class_="repo_name thin %s" % repo['dbrepo']['repo_type'])}
15 15 </li>
16 16 %endfor
@@ -11,13 +11,9 b''
11 11
12 12 <%def name="breadcrumbs_links()">
13 13 %if c.repo_name:
14 ${h.link_to(_(u'Home'),h.url('/'))}
15 &raquo;
16 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
17 &raquo;
18 ${_('search')}
14 ${_('Search')}
19 15 %else:
20 ${_('search in all repositories')}
16 ${_('Search in all repositories')}
21 17 %endif
22 18 %if c.cur_query:
23 19 &raquo;
@@ -33,7 +29,7 b''
33 29 %endif
34 30 </%def>
35 31 <%def name="main()">
36
32 ${self.context_bar('options')}
37 33 <div class="box">
38 34 <!-- box / title -->
39 35 <div class="title">
@@ -7,16 +7,12 b''
7 7
8 8
9 9 <%def name="breadcrumbs_links()">
10 ${h.link_to(_(u'Home'),h.url('/'))}
11 &raquo;
12 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
13 &raquo;
14 10 %if c.file_history:
15 ${h.link_to(_('shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
11 ${h.link_to(_('Shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
16 12 &raquo;
17 13 ${c.file_history}
18 14 %else:
19 ${_('shortlog')}
15 ${_('Shortlog')}
20 16 %endif
21 17 </%def>
22 18
@@ -24,6 +20,7 b''
24 20 ${self.menu('shortlog')}
25 21 </%def>
26 22 <%def name="main()">
23 ${self.context_bar('options')}
27 24 <div class="box">
28 25 <!-- box / title -->
29 26 <div class="title">
@@ -5,11 +5,7 b''
5 5 </%def>
6 6
7 7 <%def name="breadcrumbs_links()">
8 ${h.link_to(_(u'Home'),h.url('/'))}
9 &raquo;
10 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
11 &raquo;
12 ${_('summary')}
8 ${_('Summary')}
13 9 </%def>
14 10
15 11 <%def name="page_nav()">
@@ -22,6 +18,7 b''
22 18 </%def>
23 19
24 20 <%def name="main()">
21 ${self.context_bar('summary')}
25 22 <%
26 23 summary = lambda n:{False:'summary-short'}.get(n)
27 24 %>
@@ -43,30 +40,6 b''
43 40 <label>${_('Name')}:</label>
44 41 </div>
45 42 <div class="input ${summary(c.show_stats)}">
46 <div style="float:right;padding:5px 0px 0px 5px">
47 %if c.rhodecode_user.username != 'default':
48 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='atom_icon')}
49 %else:
50 ${h.link_to(_('ATOM'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='atom_icon')}
51 %endif
52 </div>
53 %if c.rhodecode_user.username != 'default':
54 %if c.following:
55 <span id="follow_toggle" class="following tooltip" title="${_('Stop following this repository')}"
56 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
57 </span>
58 %else:
59 <span id="follow_toggle" class="follow tooltip" title="${_('Start following this repository')}"
60 onclick="javascript:toggleFollowingRepo(this,${c.dbrepo.repo_id},'${str(h.get_token())}')">
61 </span>
62 %endif
63 <div style="float:right;padding:0px 0px 0px 0px">
64 <span class="reposize tooltip" title="${_('Click to show size of repository')}"
65 onclick="javascript:showRepoSize('repo_size','${c.dbrepo.repo_name}','${str(h.get_token())}')">
66 </span>
67 <span id="repo_size"></span>
68 </div>
69 %endif:
70 43
71 44 ## locking icon
72 45 %if c.rhodecode_db_repo.enable_locking:
@@ -96,7 +69,7 b''
96 69
97 70 ##FORK
98 71 %if c.dbrepo.fork:
99 <div style="margin-top:5px;clear:both"">
72 <div style="margin-top:5px;clear:both">
100 73 <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
101 74 ${_('Fork of')} ${c.dbrepo.fork.repo_name}
102 75 </a>
@@ -188,7 +161,45 b''
188 161 %endif
189 162 </div>
190 163 </div>
191 </div>
164 </div>
165 <div id="summary-menu-stats">
166 <ul>
167 <li>
168 <a class="followers" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
169 ${_('Followers')}
170 <span id="current_followers_count">${c.repository_followers}</span>
171 </a>
172 </li>
173 <li>
174 <a class="forks" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
175 ${_('Forks')}
176 <span>${c.repository_forks}</span>
177 </a>
178 </li>
179 <li>
180 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
181 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
182 ${h.link_to(_('Settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}
183 %else:
184 ${h.link_to(_('Settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}
185 %endif
186 %endif
187 </li>
188 <li>
189 %if c.rhodecode_user.username != 'default':
190 ${h.link_to(_('Feed'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key),class_='feed')}
191 %else:
192 ${h.link_to(_('Feed'),h.url('atom_feed_home',repo_name=c.dbrepo.repo_name),class_='feed')}
193 %endif
194 </li>
195 %if c.rhodecode_user.username != 'default':
196 <li class="repo_size">
197 <a href="#" class="repo-size" onclick="javascript:showRepoSize('repo_size_2','${c.dbrepo.repo_name}','${str(h.get_token())}')">Repository Size</a>
198 <span id="repo_size_2"></span>
199 </li>
200 %endif
201 </ul>
202 </div>
192 203 </div>
193 204 </div>
194 205
@@ -8,17 +8,14 b''
8 8
9 9 <%def name="breadcrumbs_links()">
10 10 <input class="q_filter_box" id="q_filter_tags" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
11 ${h.link_to(_(u'Home'),h.url('/'))}
12 &raquo;
13 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
14 &raquo;
15 ${_('tags')}
11 ${_('Tags')}
16 12 </%def>
17 13
18 14 <%def name="page_nav()">
19 15 ${self.menu('tags')}
20 16 </%def>
21 17 <%def name="main()">
18 ${self.context_bar('switch-to')}
22 19 <div class="box">
23 20 <!-- box / title -->
24 21 <div class="title">
General Comments 0
You need to be logged in to leave comments. Login now