Show More
@@ -1,104 +1,117 b'' | |||||
1 | import logging |
|
1 | import logging | |
2 |
|
2 | |||
3 | from pylons import request, response, session, tmpl_context as c, url, config, app_globals as g |
|
3 | from pylons import request, response, session, tmpl_context as c, url, config, app_globals as g | |
4 | from pylons.controllers.util import abort, redirect |
|
4 | from pylons.controllers.util import abort, redirect | |
5 |
|
5 | |||
6 | from pylons_app.lib.base import BaseController, render |
|
6 | from pylons_app.lib.base import BaseController, render | |
7 | from pylons_app.lib.utils import get_repo_slug |
|
7 | from pylons_app.lib.utils import get_repo_slug | |
8 | from pylons_app.model.hg_model import HgModel |
|
8 | from pylons_app.model.hg_model import HgModel | |
9 | from vcs.utils import diffs as differ |
|
9 | from vcs.utils import diffs as differ | |
10 | from vcs.exceptions import RepositoryError, ChangesetError |
|
10 | from vcs.exceptions import RepositoryError, ChangesetError | |
11 |
|
11 | |||
12 | log = logging.getLogger(__name__) |
|
12 | log = logging.getLogger(__name__) | |
13 |
|
13 | |||
14 | class FilesController(BaseController): |
|
14 | class FilesController(BaseController): | |
15 | def __before__(self): |
|
15 | def __before__(self): | |
16 | c.repos_prefix = config['repos_name'] |
|
16 | c.repos_prefix = config['repos_name'] | |
17 | c.repo_name = get_repo_slug(request) |
|
17 | c.repo_name = get_repo_slug(request) | |
18 |
|
18 | |||
19 | def index(self, repo_name, revision, f_path): |
|
19 | def index(self, repo_name, revision, f_path): | |
20 | hg_model = HgModel() |
|
20 | hg_model = HgModel() | |
21 | c.repo = repo = hg_model.get_repo(c.repo_name) |
|
21 | c.repo = repo = hg_model.get_repo(c.repo_name) | |
22 | revision = request.POST.get('at_rev', None) or revision |
|
22 | revision = request.POST.get('at_rev', None) or revision | |
23 |
|
23 | |||
24 | def get_next_rev(cur): |
|
24 | def get_next_rev(cur): | |
25 | max_rev = len(c.repo.revisions) - 1 |
|
25 | max_rev = len(c.repo.revisions) - 1 | |
26 | r = cur + 1 |
|
26 | r = cur + 1 | |
27 | if r > max_rev: |
|
27 | if r > max_rev: | |
28 | r = max_rev |
|
28 | r = max_rev | |
29 | return r |
|
29 | return r | |
30 |
|
30 | |||
31 | def get_prev_rev(cur): |
|
31 | def get_prev_rev(cur): | |
32 | r = cur - 1 |
|
32 | r = cur - 1 | |
33 | return r |
|
33 | return r | |
34 |
|
34 | |||
35 | c.f_path = f_path |
|
35 | c.f_path = f_path | |
36 |
|
36 | |||
37 |
|
37 | |||
38 | try: |
|
38 | try: | |
39 | cur_rev = repo.get_changeset(revision).revision |
|
39 | cur_rev = repo.get_changeset(revision).revision | |
40 | prev_rev = repo.get_changeset(get_prev_rev(cur_rev)).raw_id |
|
40 | prev_rev = repo.get_changeset(get_prev_rev(cur_rev)).raw_id | |
41 | next_rev = repo.get_changeset(get_next_rev(cur_rev)).raw_id |
|
41 | next_rev = repo.get_changeset(get_next_rev(cur_rev)).raw_id | |
42 |
|
42 | |||
43 | c.url_prev = url('files_home', repo_name=c.repo_name, |
|
43 | c.url_prev = url('files_home', repo_name=c.repo_name, | |
44 | revision=prev_rev, f_path=f_path) |
|
44 | revision=prev_rev, f_path=f_path) | |
45 | c.url_next = url('files_home', repo_name=c.repo_name, |
|
45 | c.url_next = url('files_home', repo_name=c.repo_name, | |
46 | revision=next_rev, f_path=f_path) |
|
46 | revision=next_rev, f_path=f_path) | |
47 |
|
47 | |||
48 | c.changeset = repo.get_changeset(revision) |
|
48 | c.changeset = repo.get_changeset(revision) | |
49 | try: |
|
49 | try: | |
50 | c.file_msg = c.changeset.get_file_message(f_path) |
|
50 | c.file_msg = c.changeset.get_file_message(f_path) | |
51 | except: |
|
51 | except: | |
52 | c.file_msg = None |
|
52 | c.file_msg = None | |
53 |
|
53 | |||
54 | c.cur_rev = c.changeset.raw_id |
|
54 | c.cur_rev = c.changeset.raw_id | |
55 | c.rev_nr = c.changeset.revision |
|
55 | c.rev_nr = c.changeset.revision | |
56 | c.files_list = c.changeset.get_node(f_path) |
|
56 | c.files_list = c.changeset.get_node(f_path) | |
57 | c.file_history = self._get_history(repo, c.files_list, f_path) |
|
57 | c.file_history = self._get_history(repo, c.files_list, f_path) | |
58 |
|
58 | |||
59 | except (RepositoryError, ChangesetError): |
|
59 | except (RepositoryError, ChangesetError): | |
60 | c.files_list = None |
|
60 | c.files_list = None | |
61 |
|
61 | |||
62 | return render('files/files.html') |
|
62 | return render('files/files.html') | |
63 |
|
63 | |||
64 | def rawfile(self, repo_name, revision, f_path): |
|
64 | def rawfile(self, repo_name, revision, f_path): | |
65 | hg_model = HgModel() |
|
65 | hg_model = HgModel() | |
66 | c.repo = hg_model.get_repo(c.repo_name) |
|
66 | c.repo = hg_model.get_repo(c.repo_name) | |
67 | file_node = c.repo.get_changeset(revision).get_node(f_path) |
|
67 | file_node = c.repo.get_changeset(revision).get_node(f_path) | |
68 |
response. |
|
68 | response.content_type = file_node.mimetype | |
69 |
response. |
|
69 | response.content_disposition = 'attachment; filename=%s' \ | |
70 | % f_path.split('/')[-1] |
|
70 | % f_path.split('/')[-1] | |
71 | return file_node.content |
|
71 | return file_node.content | |
72 |
|
72 | |||
73 | def archivefile(self, repo_name, revision, fileformat): |
|
73 | def archivefile(self, repo_name, revision, fileformat): | |
74 | return '%s %s %s' % (repo_name, revision, fileformat) |
|
74 | return '%s %s %s' % (repo_name, revision, fileformat) | |
75 |
|
75 | |||
76 | def diff(self, repo_name, f_path): |
|
76 | def diff(self, repo_name, f_path): | |
77 | hg_model = HgModel() |
|
77 | hg_model = HgModel() | |
78 | diff1 = request.GET.get('diff1') |
|
78 | diff1 = request.GET.get('diff1') | |
79 | diff2 = request.GET.get('diff2') |
|
79 | diff2 = request.GET.get('diff2') | |
|
80 | c.action = action = request.GET.get('diff') | |||
80 | c.no_changes = diff1 == diff2 |
|
81 | c.no_changes = diff1 == diff2 | |
81 | c.f_path = f_path |
|
82 | c.f_path = f_path | |
82 | c.repo = hg_model.get_repo(c.repo_name) |
|
83 | c.repo = hg_model.get_repo(c.repo_name) | |
83 | c.changeset_1 = c.repo.get_changeset(diff1) |
|
84 | c.changeset_1 = c.repo.get_changeset(diff1) | |
84 | c.changeset_2 = c.repo.get_changeset(diff2) |
|
85 | c.changeset_2 = c.repo.get_changeset(diff2) | |
85 |
|
86 | |||
86 | c.diff1 = 'r%s:%s' % (c.changeset_1.revision, c.changeset_1._short) |
|
87 | c.diff1 = 'r%s:%s' % (c.changeset_1.revision, c.changeset_1._short) | |
87 | c.diff2 = 'r%s:%s' % (c.changeset_2.revision, c.changeset_2._short) |
|
88 | c.diff2 = 'r%s:%s' % (c.changeset_2.revision, c.changeset_2._short) | |
88 |
|
||||
89 |
|
||||
90 | f_udiff = differ.get_udiff(c.changeset_1.get_node(f_path), |
|
89 | f_udiff = differ.get_udiff(c.changeset_1.get_node(f_path), | |
91 | c.changeset_2.get_node(f_path)) |
|
90 | c.changeset_2.get_node(f_path)) | |
92 | c.differ = differ.DiffProcessor(f_udiff) |
|
91 | ||
|
92 | diff = differ.DiffProcessor(f_udiff) | |||
|
93 | ||||
|
94 | if action == 'download': | |||
|
95 | diff_name = '%s_vs_%s.diff' % (diff1, diff2) | |||
|
96 | response.content_type = 'text/plain' | |||
|
97 | response.content_disposition = 'attachment; filename=%s' \ | |||
|
98 | % diff_name | |||
|
99 | return diff.raw_diff() | |||
|
100 | ||||
|
101 | elif action == 'raw': | |||
|
102 | c.cur_diff = '<pre class="raw">%s</pre>' % diff.raw_diff() | |||
|
103 | elif action == 'diff': | |||
|
104 | c.cur_diff = diff.as_html() | |||
|
105 | ||||
93 | return render('files/file_diff.html') |
|
106 | return render('files/file_diff.html') | |
94 |
|
107 | |||
95 | def _get_history(self, repo, node, f_path): |
|
108 | def _get_history(self, repo, node, f_path): | |
96 | from vcs.nodes import NodeKind |
|
109 | from vcs.nodes import NodeKind | |
97 | if not node.kind is NodeKind.FILE: |
|
110 | if not node.kind is NodeKind.FILE: | |
98 | return [] |
|
111 | return [] | |
99 | changesets = node.history |
|
112 | changesets = node.history | |
100 | hist_l = [] |
|
113 | hist_l = [] | |
101 | for chs in changesets: |
|
114 | for chs in changesets: | |
102 | n_desc = 'r%s:%s' % (chs.revision, chs._short) |
|
115 | n_desc = 'r%s:%s' % (chs.revision, chs._short) | |
103 | hist_l.append((chs._short, n_desc,)) |
|
116 | hist_l.append((chs._short, n_desc,)) | |
104 | return hist_l |
|
117 | return hist_l |
@@ -1,103 +1,107 b'' | |||||
1 | div.diffblock { |
|
1 | div.diffblock { | |
2 | overflow: auto; |
|
2 | overflow: auto; | |
3 | padding: 0px; |
|
3 | padding: 0px; | |
4 | border: 1px solid #ccc; |
|
4 | border: 1px solid #ccc; | |
5 | background: #f8f8f8; |
|
5 | background: #f8f8f8; | |
6 | font-size: 100%; |
|
6 | font-size: 100%; | |
7 | line-height: 100%; |
|
7 | line-height: 100%; | |
8 | /* new */ |
|
8 | /* new */ | |
9 | line-height: 125%; |
|
9 | line-height: 125%; | |
10 | } |
|
10 | } | |
11 | div.diffblock .code-header{ |
|
11 | div.diffblock .code-header{ | |
12 | border-bottom: 1px solid #CCCCCC; |
|
12 | border-bottom: 1px solid #CCCCCC; | |
13 | background: #EEEEEE; |
|
13 | background: #EEEEEE; | |
14 | color:blue; |
|
14 | color:blue; | |
15 | padding:10px 0 10px 0; |
|
15 | padding:10px 0 10px 0; | |
16 | } |
|
16 | } | |
17 |
div.diffblock .code-header |
|
17 | div.diffblock .code-header div{ | |
18 | margin-left:25px; |
|
18 | margin-left:25px; | |
19 | font-weight: bold; |
|
19 | font-weight: bold; | |
20 | } |
|
20 | } | |
21 | div.diffblock .code-body{ |
|
21 | div.diffblock .code-body{ | |
22 | background: #EEEEEE; |
|
22 | background: #EEEEEE; | |
23 | } |
|
23 | } | |
|
24 | div.diffblock pre.raw{ | |||
|
25 | background: #FFFFFF; | |||
|
26 | color:#000000; | |||
|
27 | } | |||
24 |
|
28 | |||
25 | .code-difftable{ |
|
29 | .code-difftable{ | |
26 | border-collapse: collapse; |
|
30 | border-collapse: collapse; | |
27 | width: 99%; |
|
31 | width: 99%; | |
28 | } |
|
32 | } | |
29 | .code-difftable td:target *{ |
|
33 | .code-difftable td:target *{ | |
30 | background: repeat scroll 0 0 #FFFFBE !important; |
|
34 | background: repeat scroll 0 0 #FFFFBE !important; | |
31 | text-decoration: underline; |
|
35 | text-decoration: underline; | |
32 | } |
|
36 | } | |
33 | .code-difftable .context{ |
|
37 | .code-difftable .context{ | |
34 | background:none repeat scroll 0 0 #DDE7EF; |
|
38 | background:none repeat scroll 0 0 #DDE7EF; | |
35 | } |
|
39 | } | |
36 | .code-difftable .add{ |
|
40 | .code-difftable .add{ | |
37 | background:none repeat scroll 0 0 #DDFFDD; |
|
41 | background:none repeat scroll 0 0 #DDFFDD; | |
38 | } |
|
42 | } | |
39 | .code-difftable .add ins{ |
|
43 | .code-difftable .add ins{ | |
40 | background:none repeat scroll 0 0 #AAFFAA; |
|
44 | background:none repeat scroll 0 0 #AAFFAA; | |
41 | text-decoration:none; |
|
45 | text-decoration:none; | |
42 | } |
|
46 | } | |
43 |
|
47 | |||
44 | .code-difftable .del{ |
|
48 | .code-difftable .del{ | |
45 | background:none repeat scroll 0 0 #FFDDDD; |
|
49 | background:none repeat scroll 0 0 #FFDDDD; | |
46 | } |
|
50 | } | |
47 | .code-difftable .del del{ |
|
51 | .code-difftable .del del{ | |
48 | background:none repeat scroll 0 0 #FFAAAA; |
|
52 | background:none repeat scroll 0 0 #FFAAAA; | |
49 | text-decoration:none; |
|
53 | text-decoration:none; | |
50 | } |
|
54 | } | |
51 |
|
55 | |||
52 | .code-difftable .lineno{ |
|
56 | .code-difftable .lineno{ | |
53 | background:none repeat scroll 0 0 #EEEEEE !important; |
|
57 | background:none repeat scroll 0 0 #EEEEEE !important; | |
54 | border-right:1px solid #DDDDDD; |
|
58 | border-right:1px solid #DDDDDD; | |
55 | padding-left:2px; |
|
59 | padding-left:2px; | |
56 | padding-right:2px; |
|
60 | padding-right:2px; | |
57 | text-align:right; |
|
61 | text-align:right; | |
58 | width:20px; |
|
62 | width:20px; | |
59 | -moz-user-select:none; |
|
63 | -moz-user-select:none; | |
60 | -webkit-user-select: none; |
|
64 | -webkit-user-select: none; | |
61 | } |
|
65 | } | |
62 | .code-difftable .lineno pre{ |
|
66 | .code-difftable .lineno pre{ | |
63 | color:#747474 !important; |
|
67 | color:#747474 !important; | |
64 | font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important; |
|
68 | font:11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important; | |
65 | letter-spacing:-1px; |
|
69 | letter-spacing:-1px; | |
66 | text-align:right; |
|
70 | text-align:right; | |
67 | width:20px; |
|
71 | width:20px; | |
68 | } |
|
72 | } | |
69 | .code-difftable .lineno a{ |
|
73 | .code-difftable .lineno a{ | |
70 | color:#0000CC !important; |
|
74 | color:#0000CC !important; | |
71 | } |
|
75 | } | |
72 | .code-difftable .code td{ |
|
76 | .code-difftable .code td{ | |
73 | margin:0; |
|
77 | margin:0; | |
74 | padding: 0; |
|
78 | padding: 0; | |
75 | } |
|
79 | } | |
76 | .code-difftable .code pre{ |
|
80 | .code-difftable .code pre{ | |
77 | margin:0; |
|
81 | margin:0; | |
78 | padding:0; |
|
82 | padding:0; | |
79 | } |
|
83 | } | |
80 |
|
84 | |||
81 |
|
85 | |||
82 | .code { |
|
86 | .code { | |
83 | display: block; |
|
87 | display: block; | |
84 | width: 100%; |
|
88 | width: 100%; | |
85 | } |
|
89 | } | |
86 | .code-diff { |
|
90 | .code-diff { | |
87 | padding: 0px; |
|
91 | padding: 0px; | |
88 | margin-top: 5px; |
|
92 | margin-top: 5px; | |
89 | margin-bottom: 5px; |
|
93 | margin-bottom: 5px; | |
90 | border-left: 2px solid #ccc; |
|
94 | border-left: 2px solid #ccc; | |
91 | } |
|
95 | } | |
92 | .code-diff pre, .line pre { |
|
96 | .code-diff pre, .line pre { | |
93 | padding: 3px; |
|
97 | padding: 3px; | |
94 | margin: 0; |
|
98 | margin: 0; | |
95 | } |
|
99 | } | |
96 | .lineno a { |
|
100 | .lineno a { | |
97 | text-decoration: none; |
|
101 | text-decoration: none; | |
98 | } |
|
102 | } | |
99 |
|
103 | |||
100 | .line{ |
|
104 | .line{ | |
101 | padding:0; |
|
105 | padding:0; | |
102 | margin:0; |
|
106 | margin:0; | |
103 | } No newline at end of file |
|
107 | } |
@@ -1,558 +1,584 b'' | |||||
1 | /*** Initial Settings ***/ |
|
1 | /*** Initial Settings ***/ | |
2 | #mainhtml{ |
|
2 | #mainhtml{ | |
3 | margin: 15px 50px; |
|
3 | margin: 15px 50px; | |
4 | background: #DBD4C6; |
|
4 | background: #DBD4C6; | |
5 | font-family: sans-serif; |
|
5 | font-family: sans-serif; | |
6 | } |
|
6 | } | |
7 |
|
7 | |||
8 | a { |
|
8 | a { | |
9 | color: #0000cc; |
|
9 | color: #0000cc; | |
10 | text-decoration: none; |
|
10 | text-decoration: none; | |
11 | } |
|
11 | } | |
12 | a:HOVER{ |
|
12 | a:HOVER{ | |
13 | text-decoration: underline; |
|
13 | text-decoration: underline; | |
14 | } |
|
14 | } | |
15 |
/*** end of Initial Settings ***/ |
|
15 | /*** end of Initial Settings ***/ | |
|
16 | ||||
|
17 | /** common settings **/ | |||
16 | div#main { |
|
18 | div#main { | |
17 | padding: 5px; |
|
19 | padding: 5px; | |
18 | } |
|
20 | } | |
19 |
|
21 | |||
20 | div#container { |
|
22 | div#container { | |
21 | background: #FFFFFF; |
|
23 | background: #FFFFFF; | |
22 | position: relative; |
|
24 | position: relative; | |
23 | color: #666; |
|
25 | color: #666; | |
24 | } |
|
26 | } | |
25 |
|
27 | |||
26 | div.page-header { |
|
28 | div.page-header { | |
27 | padding: 50px 20px 0; |
|
29 | padding: 50px 20px 0; | |
28 | background: #556cb5 top left repeat-x; |
|
30 | background: #556cb5 top left repeat-x; | |
29 | position: relative; |
|
31 | position: relative; | |
30 | } |
|
32 | } | |
31 |
|
33 | |||
32 | div.page-header h1 { |
|
34 | div.page-header h1 { | |
33 | margin: 10px 0 30px; |
|
35 | margin: 10px 0 30px; | |
34 | font-size: 1.8em; |
|
36 | font-size: 1.8em; | |
35 | font-weight: bold; |
|
37 | font-weight: bold; | |
36 | font-family: sans-serif; |
|
38 | font-family: sans-serif; | |
37 | letter-spacing: 1px; |
|
39 | letter-spacing: 1px; | |
38 | color: #DDD; |
|
40 | color: #DDD; | |
39 | } |
|
41 | } | |
40 |
|
42 | |||
41 | div.page-header h1 a { |
|
43 | div.page-header h1 a { | |
42 | font-weight: bold; |
|
44 | font-weight: bold; | |
43 | color: #FFF; |
|
45 | color: #FFF; | |
44 | } |
|
46 | } | |
45 |
|
47 | |||
46 | div.page-header a { |
|
48 | div.page-header a { | |
47 | text-decoration: none; |
|
49 | text-decoration: none; | |
48 | } |
|
50 | } | |
49 |
|
51 | |||
50 | div.page-header form { |
|
52 | div.page-header form { | |
51 | position: absolute; |
|
53 | position: absolute; | |
52 | margin-bottom: 2px; |
|
54 | margin-bottom: 2px; | |
53 | bottom: 0; |
|
55 | bottom: 0; | |
54 | right: 20px; |
|
56 | right: 20px; | |
55 | } |
|
57 | } | |
56 |
|
58 | |||
57 | div.page-header form label { |
|
59 | div.page-header form label { | |
58 | color: #DDD; |
|
60 | color: #DDD; | |
59 | } |
|
61 | } | |
60 |
|
62 | |||
61 | div.page-header form input { |
|
63 | div.page-header form input { | |
62 | padding: 2px; |
|
64 | padding: 2px; | |
63 | border: solid 1px #DDD; |
|
65 | border: solid 1px #DDD; | |
64 | } |
|
66 | } | |
65 |
|
67 | |||
66 | div.page-header form dl { |
|
68 | div.page-header form dl { | |
67 | overflow: hidden; |
|
69 | overflow: hidden; | |
68 | } |
|
70 | } | |
69 |
|
71 | |||
70 | div.page-header form dl dt { |
|
72 | div.page-header form dl dt { | |
71 | font-size: 1.2em; |
|
73 | font-size: 1.2em; | |
72 | } |
|
74 | } | |
73 |
|
75 | |||
74 | div.page-header form dl dt,div.page-header form dl dd { |
|
76 | div.page-header form dl dt,div.page-header form dl dd { | |
75 | margin: 0 0 0 5px; |
|
77 | margin: 0 0 0 5px; | |
76 | float: left; |
|
78 | float: left; | |
77 | height: 24px; |
|
79 | height: 24px; | |
78 | line-height: 20px; |
|
80 | line-height: 20px; | |
79 | } |
|
81 | } | |
80 |
|
82 | |||
81 | ul.page-nav { |
|
83 | ul.page-nav { | |
82 | margin: 10px 0 0 0; |
|
84 | margin: 10px 0 0 0; | |
83 | list-style-type: none; |
|
85 | list-style-type: none; | |
84 | overflow: hidden; |
|
86 | overflow: hidden; | |
85 | width: 800px; |
|
87 | width: 800px; | |
86 | padding: 0; |
|
88 | padding: 0; | |
87 | } |
|
89 | } | |
88 |
|
90 | |||
89 | ul.page-nav li { |
|
91 | ul.page-nav li { | |
90 | margin: 0 2px 0 0; |
|
92 | margin: 0 2px 0 0; | |
91 | float: left; |
|
93 | float: left; | |
92 | height: 24px; |
|
94 | height: 24px; | |
93 | font-size: 1.1em; |
|
95 | font-size: 1.1em; | |
94 | line-height: 24px; |
|
96 | line-height: 24px; | |
95 | text-align: center; |
|
97 | text-align: center; | |
96 | background: #DDD; |
|
98 | background: #DDD; | |
97 | } |
|
99 | } | |
98 |
|
100 | |||
99 | ul.page-nav li.current { |
|
101 | ul.page-nav li.current { | |
100 | background: #FFF; |
|
102 | background: #FFF; | |
101 | padding-right: 5px; |
|
103 | padding-right: 5px; | |
102 | padding-left: 5px; |
|
104 | padding-left: 5px; | |
103 | } |
|
105 | } | |
104 |
|
106 | |||
105 | ul.page-nav li a { |
|
107 | ul.page-nav li a { | |
106 | height: 24px; |
|
108 | height: 24px; | |
107 | color: #666; |
|
109 | color: #666; | |
108 | padding-right: 5px; |
|
110 | padding-right: 5px; | |
109 | padding-left: 5px; |
|
111 | padding-left: 5px; | |
110 | display: block; |
|
112 | display: block; | |
111 | text-decoration: none; |
|
113 | text-decoration: none; | |
112 | } |
|
114 | } | |
113 |
|
115 | |||
114 | ul.page-nav li a:hover { |
|
116 | ul.page-nav li a:hover { | |
115 | color: #333; |
|
117 | color: #333; | |
116 | background: #FFF; |
|
118 | background: #FFF; | |
117 | } |
|
119 | } | |
118 |
|
120 | |||
119 | ul.submenu { |
|
121 | ul.submenu { | |
120 | margin: 10px 0 -10px 20px; |
|
122 | margin: 10px 0 -10px 20px; | |
121 | list-style-type: none; |
|
123 | list-style-type: none; | |
122 | } |
|
124 | } | |
123 |
|
125 | |||
124 | ul.submenu li { |
|
126 | ul.submenu li { | |
125 | margin: 0 10px 0 0; |
|
127 | margin: 0 10px 0 0; | |
126 | font-size: 1.2em; |
|
128 | font-size: 1.2em; | |
127 | display: inline; |
|
129 | display: inline; | |
128 | } |
|
130 | } | |
129 |
|
131 | |||
130 | h2 { |
|
132 | h2 { | |
131 | margin: 20px 0 10px; |
|
133 | margin: 20px 0 10px; | |
132 | height: 30px; |
|
134 | height: 30px; | |
133 | line-height: 30px; |
|
135 | line-height: 30px; | |
134 | text-indent: 20px; |
|
136 | text-indent: 20px; | |
135 | background: #FFF; |
|
137 | background: #FFF; | |
136 | font-size: 1.2em; |
|
138 | font-size: 1.2em; | |
137 | border-top: dotted 1px #D5E1E6; |
|
139 | border-top: dotted 1px #D5E1E6; | |
138 | font-weight: bold; |
|
140 | font-weight: bold; | |
139 | } |
|
141 | } | |
140 |
|
142 | |||
141 | h2.no-link { |
|
143 | h2.no-link { | |
142 | color: #006699; |
|
144 | color: #006699; | |
143 | } |
|
145 | } | |
144 |
|
146 | |||
145 | h2.no-border { |
|
147 | h2.no-border { | |
146 | color: #FFF; |
|
148 | color: #FFF; | |
147 | background: #556CB5; |
|
149 | background: #556CB5; | |
148 | border: 0; |
|
150 | border: 0; | |
149 | } |
|
151 | } | |
150 |
|
152 | |||
151 | h2 a { |
|
153 | h2 a { | |
152 | font-weight: bold; |
|
154 | font-weight: bold; | |
153 | color: #006699; |
|
155 | color: #006699; | |
154 | } |
|
156 | } | |
155 |
|
157 | |||
156 | div.page-path { |
|
158 | div.page-path { | |
157 | text-align: right; |
|
159 | text-align: right; | |
158 | padding: 20px 30px 10px 0; |
|
160 | padding: 20px 30px 10px 0; | |
159 | border: solid #d9d8d1; |
|
161 | border: solid #d9d8d1; | |
160 | border-width: 0px 0px 1px; |
|
162 | border-width: 0px 0px 1px; | |
161 | font-size: 1.2em; |
|
163 | font-size: 1.2em; | |
162 | } |
|
164 | } | |
163 |
|
165 | |||
164 | div.page-footer { |
|
166 | div.page-footer { | |
165 | margin: 50px 0 0; |
|
167 | margin: 50px 0 0; | |
166 | position: relative; |
|
168 | position: relative; | |
167 | } |
|
169 | } | |
168 |
|
170 | |||
169 | div.page-footer p { |
|
171 | div.page-footer p { | |
170 | position: relative; |
|
172 | position: relative; | |
171 | left: 20px; |
|
173 | left: 20px; | |
172 | bottom: 5px; |
|
174 | bottom: 5px; | |
173 | font-size: 1.2em; |
|
175 | font-size: 1.2em; | |
174 | } |
|
176 | } | |
175 |
|
177 | |||
176 | ul.rss-logo { |
|
178 | ul.rss-logo { | |
177 | position: absolute; |
|
179 | position: absolute; | |
178 | top: -10px; |
|
180 | top: -10px; | |
179 | right: 20px; |
|
181 | right: 20px; | |
180 | height: 20px; |
|
182 | height: 20px; | |
181 | list-style-type: none; |
|
183 | list-style-type: none; | |
182 | } |
|
184 | } | |
183 |
|
185 | |||
184 | ul.rss-logo li { |
|
186 | ul.rss-logo li { | |
185 | display: inline; |
|
187 | display: inline; | |
186 | } |
|
188 | } | |
187 |
|
189 | |||
188 | ul.rss-logo li a { |
|
190 | ul.rss-logo li a { | |
189 | padding: 3px 6px; |
|
191 | padding: 3px 6px; | |
190 | line-height: 10px; |
|
192 | line-height: 10px; | |
191 | border: 1px solid; |
|
193 | border: 1px solid; | |
192 | border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e; |
|
194 | border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e; | |
193 | color: #ffffff; |
|
195 | color: #ffffff; | |
194 | background-color: #ff6600; |
|
196 | background-color: #ff6600; | |
195 | font-weight: bold; |
|
197 | font-weight: bold; | |
196 | font-family: sans-serif; |
|
198 | font-family: sans-serif; | |
197 | font-size: 10px; |
|
199 | font-size: 10px; | |
198 | text-align: center; |
|
200 | text-align: center; | |
199 | text-decoration: none; |
|
201 | text-decoration: none; | |
200 | } |
|
202 | } | |
201 |
|
203 | |||
202 | div.rss-logo li a:hover { |
|
204 | div.rss-logo li a:hover { | |
203 | background-color: #ee5500; |
|
205 | background-color: #ee5500; | |
204 | } |
|
206 | } | |
205 |
|
207 | |||
206 | p.normal { |
|
208 | p.normal { | |
207 | margin: 20px 0 20px 30px; |
|
209 | margin: 20px 0 20px 30px; | |
208 | font-size: 1.2em; |
|
210 | font-size: 1.2em; | |
209 | } |
|
211 | } | |
210 |
|
212 | |||
211 | table tr.parity0:hover,table tr.parity1:hover { |
|
213 | table tr.parity0:hover,table tr.parity1:hover { | |
212 | background: #D5E1E6; |
|
214 | background: #D5E1E6; | |
213 | } |
|
215 | } | |
214 |
|
216 | |||
215 | table tr.parity0 { |
|
217 | table tr.parity0 { | |
216 | background: #EAEAE9; |
|
218 | background: #EAEAE9; | |
217 | } |
|
219 | } | |
218 |
|
220 | |||
219 | table tr.parity1 { |
|
221 | table tr.parity1 { | |
220 | background: #FFFFFF; |
|
222 | background: #FFFFFF; | |
221 | } |
|
223 | } | |
222 |
|
224 | |||
223 | span.logtags span { |
|
225 | span.logtags span { | |
224 | background-repeat: no-repeat; |
|
226 | background-repeat: no-repeat; | |
225 | height: 16px; |
|
227 | height: 16px; | |
226 | padding-left: 20px; |
|
228 | padding-left: 20px; | |
227 | padding-top: 0px; |
|
229 | padding-top: 0px; | |
228 | text-align: left; |
|
230 | text-align: left; | |
229 | font-weight: bold; |
|
231 | font-weight: bold; | |
230 | } |
|
232 | } | |
231 |
|
233 | |||
232 | span.logtags span.tagtag { |
|
234 | span.logtags span.tagtag { | |
233 | background-image: url("/images/label_16.png"); |
|
235 | background-image: url("/images/label_16.png"); | |
234 | } |
|
236 | } | |
235 |
|
237 | |||
236 | span.logtags span.branchtag { |
|
238 | span.logtags span.branchtag { | |
237 | background-image: url("/images/left_16.png"); |
|
239 | background-image: url("/images/left_16.png"); | |
238 | color: #628F53; |
|
240 | color: #628F53; | |
239 | } |
|
241 | } | |
240 |
|
242 | |||
241 | span.logtags span.inbranchtag { |
|
243 | span.logtags span.inbranchtag { | |
242 | background-image: url("/images/left_16.png"); |
|
244 | background-image: url("/images/left_16.png"); | |
243 | } |
|
245 | } | |
244 |
|
246 | |||
245 | div.diff pre { |
|
247 | div.diff pre { | |
246 | margin: 10px 0 0 0; |
|
248 | margin: 10px 0 0 0; | |
247 | } |
|
249 | } | |
248 |
|
250 | |||
249 | div.diff pre span { |
|
251 | div.diff pre span { | |
250 | font-family: monospace; |
|
252 | font-family: monospace; | |
251 | white-space: pre; |
|
253 | white-space: pre; | |
252 | font-size: 1.2em; |
|
254 | font-size: 1.2em; | |
253 | padding: 3px 0; |
|
255 | padding: 3px 0; | |
254 | } |
|
256 | } | |
255 |
|
257 | |||
256 | td.source { |
|
258 | td.source { | |
257 | white-space: pre; |
|
259 | white-space: pre; | |
258 | font-family: monospace; |
|
260 | font-family: monospace; | |
259 | margin: 10px 30px 0; |
|
261 | margin: 10px 30px 0; | |
260 | font-size: 1.2em; |
|
262 | font-size: 1.2em; | |
261 | font-family: monospace; |
|
263 | font-family: monospace; | |
262 | } |
|
264 | } | |
263 |
|
265 | |||
264 | div.source div.parity0,div.source div.parity1 { |
|
266 | div.source div.parity0,div.source div.parity1 { | |
265 | padding: 1px; |
|
267 | padding: 1px; | |
266 | font-size: 1.2em; |
|
268 | font-size: 1.2em; | |
267 | } |
|
269 | } | |
268 |
|
270 | |||
269 | div.source div.parity0 { |
|
271 | div.source div.parity0 { | |
270 | background: #F1F6F7; |
|
272 | background: #F1F6F7; | |
271 | } |
|
273 | } | |
272 |
|
274 | |||
273 | div.source div.parity1 { |
|
275 | div.source div.parity1 { | |
274 | background: #FFFFFF; |
|
276 | background: #FFFFFF; | |
275 | } |
|
277 | } | |
276 |
|
278 | |||
277 | div.parity0:hover,div.parity1:hover { |
|
279 | div.parity0:hover,div.parity1:hover { | |
278 | background: #D5E1E6; |
|
280 | background: #D5E1E6; | |
279 | } |
|
281 | } | |
280 |
|
282 | |||
281 | .linenr { |
|
283 | .linenr { | |
282 | color: #999; |
|
284 | color: #999; | |
283 | text-align: right; |
|
285 | text-align: right; | |
284 | } |
|
286 | } | |
285 |
|
287 | |||
286 | .lineno { |
|
288 | .lineno { | |
287 | text-align: right; |
|
289 | text-align: right; | |
288 | } |
|
290 | } | |
289 |
|
291 | |||
290 | .lineno a { |
|
292 | .lineno a { | |
291 | color: #999; |
|
293 | color: #999; | |
292 | } |
|
294 | } | |
293 |
|
295 | |||
294 | td.linenr { |
|
296 | td.linenr { | |
295 | width: 60px; |
|
297 | width: 60px; | |
296 | } |
|
298 | } | |
297 |
|
299 | |||
298 | div#powered-by { |
|
300 | div#powered-by { | |
299 | position: absolute; |
|
301 | position: absolute; | |
300 | width: 75px; |
|
302 | width: 75px; | |
301 | top: 15px; |
|
303 | top: 15px; | |
302 | right: 20px; |
|
304 | right: 20px; | |
303 | font-size: 1.2em; |
|
305 | font-size: 1.2em; | |
304 | } |
|
306 | } | |
305 |
|
307 | |||
306 | div#powered-by a { |
|
308 | div#powered-by a { | |
307 | color: #EEE; |
|
309 | color: #EEE; | |
308 | text-decoration: none; |
|
310 | text-decoration: none; | |
309 | } |
|
311 | } | |
310 |
|
312 | |||
311 | div#powered-by a:hover { |
|
313 | div#powered-by a:hover { | |
312 | text-decoration: underline; |
|
314 | text-decoration: underline; | |
313 | } |
|
315 | } | |
314 |
|
316 | |||
315 | dl.overview { |
|
317 | dl.overview { | |
316 | margin: 0 0 0 30px; |
|
318 | margin: 0 0 0 30px; | |
317 | font-size: 1.1em; |
|
319 | font-size: 1.1em; | |
318 | overflow: hidden; |
|
320 | overflow: hidden; | |
319 | } |
|
321 | } | |
320 |
|
322 | |||
321 | dl.overview dt,dl.overview dd { |
|
323 | dl.overview dt,dl.overview dd { | |
322 | margin: 5px 0; |
|
324 | margin: 5px 0; | |
323 | float: left; |
|
325 | float: left; | |
324 | } |
|
326 | } | |
325 |
|
327 | |||
326 | dl.overview dt { |
|
328 | dl.overview dt { | |
327 | clear: left; |
|
329 | clear: left; | |
328 | font-weight: bold; |
|
330 | font-weight: bold; | |
329 | width: 150px; |
|
331 | width: 150px; | |
330 | } |
|
332 | } | |
331 |
|
333 | |||
332 | /** end of summary **/ |
|
334 | /** end of summary **/ | |
333 |
|
335 | |||
334 | /** chagelog **/ |
|
336 | /** chagelog **/ | |
335 | h3.changelog { |
|
337 | h3.changelog { | |
336 | margin: 20px 0 5px 30px; |
|
338 | margin: 20px 0 5px 30px; | |
337 | padding: 0 0 2px; |
|
339 | padding: 0 0 2px; | |
338 | font-size: 1.4em; |
|
340 | font-size: 1.4em; | |
339 | border-bottom: dotted 1px #D5E1E6; |
|
341 | border-bottom: dotted 1px #D5E1E6; | |
340 | } |
|
342 | } | |
341 |
|
343 | |||
342 | ul.changelog-entry { |
|
344 | ul.changelog-entry { | |
343 | margin: 0 0 10px 30px; |
|
345 | margin: 0 0 10px 30px; | |
344 | list-style-type: none; |
|
346 | list-style-type: none; | |
345 | position: relative; |
|
347 | position: relative; | |
346 | } |
|
348 | } | |
347 |
|
349 | |||
348 | ul.changelog-entry li span.revdate { |
|
350 | ul.changelog-entry li span.revdate { | |
349 | font-size: 1.1em; |
|
351 | font-size: 1.1em; | |
350 | } |
|
352 | } | |
351 |
|
353 | |||
352 | ul.changelog-entry li.age { |
|
354 | ul.changelog-entry li.age { | |
353 | position: absolute; |
|
355 | position: absolute; | |
354 | top: -25px; |
|
356 | top: -25px; | |
355 | right: 10px; |
|
357 | right: 10px; | |
356 | font-size: 1.4em; |
|
358 | font-size: 1.4em; | |
357 | color: #CCC; |
|
359 | color: #CCC; | |
358 | font-weight: bold; |
|
360 | font-weight: bold; | |
359 | font-style: italic; |
|
361 | font-style: italic; | |
360 | } |
|
362 | } | |
361 |
|
363 | |||
362 | ul.changelog-entry li span.name { |
|
364 | ul.changelog-entry li span.name { | |
363 | font-size: 1.2em; |
|
365 | font-size: 1.2em; | |
364 | font-weight: bold; |
|
366 | font-weight: bold; | |
365 | } |
|
367 | } | |
366 |
|
368 | |||
367 | ul.changelog-entry li.description { |
|
369 | ul.changelog-entry li.description { | |
368 | margin: 10px 0 0; |
|
370 | margin: 10px 0 0; | |
369 | font-size: 1.1em; |
|
371 | font-size: 1.1em; | |
370 | } |
|
372 | } | |
371 |
|
373 | |||
372 | /** end of changelog **/ |
|
374 | /** end of changelog **/ | |
373 |
|
375 | |||
374 | /** file **/ |
|
376 | /** file **/ | |
375 | p.files { |
|
377 | p.files { | |
376 | margin: 0 0 0 20px; |
|
378 | margin: 0 0 0 20px; | |
377 | font-size: 2.0em; |
|
379 | font-size: 2.0em; | |
378 | font-weight: bold; |
|
380 | font-weight: bold; | |
379 | } |
|
381 | } | |
380 |
|
382 | |||
381 | /** end of file **/ |
|
383 | /** end of file **/ | |
382 |
|
384 | |||
383 | /** changeset **/ |
|
385 | /** changeset **/ | |
384 | h3.changeset { |
|
|||
385 | margin: 20px 0 5px 20px; |
|
|||
386 | padding: 0 0 2px; |
|
|||
387 | font-size: 1.6em; |
|
|||
388 | border-bottom: dotted 1px #D5E1E6; |
|
|||
389 | } |
|
|||
390 |
|
386 | |||
391 | p.changeset-age { |
|
387 | .cs_files{ | |
392 | position: relative; |
|
388 | border: 2px solid #CCCCCC; | |
|
389 | width: 60%; | |||
|
390 | ||||
393 | } |
|
391 | } | |
394 |
|
392 | .cs_files .cs_added{ | ||
395 | p.changeset-age span { |
|
393 | background:#BBFFBB; | |
396 | position: absolute; |
|
|||
397 | top: -25px; |
|
|||
398 | right: 10px; |
|
|||
399 | font-size: 1.4em; |
|
|||
400 | color: #CCC; |
|
|||
401 | font-weight: bold; |
|
|||
402 | font-style: italic; |
|
|||
403 | } |
|
394 | } | |
404 |
|
395 | .cs_files .cs_changed{ | ||
405 | p.description { |
|
396 | background: #FFDD88; | |
406 | margin: 10px 30px 0 30px; |
|
397 | } | |
407 | padding: 10px; |
|
398 | .cs_files .cs_removed{ | |
408 | border: solid 1px #CCC; |
|
399 | background: #FF8888; | |
409 | font-size: 1.2em; |
|
|||
410 | } |
|
400 | } | |
411 |
|
401 | |||
412 | /** end of changeset **/ |
|
402 | /** end of changeset **/ | |
413 |
|
403 | |||
414 | /** canvas **/ |
|
404 | /** canvas **/ | |
415 | div#wrapper { |
|
|||
416 | position: relative; |
|
|||
417 | font-size: 1.2em; |
|
|||
418 | } |
|
|||
419 |
|
||||
420 | canvas { |
|
405 | canvas { | |
421 | position: absolute; |
|
406 | position: absolute; | |
422 | z-index: 5; |
|
407 | z-index: 5; | |
423 | top: -0.7em; |
|
408 | top: -0.7em; | |
424 | } |
|
409 | } | |
|
410 | #graph{ | |||
|
411 | overflow: hidden; | |||
425 |
|
412 | |||
426 | ul#nodebgs li.parity0 { |
|
413 | } | |
427 | background: #F1F6F7; |
|
414 | #graph_nodes{ | |
|
415 | width:160px; | |||
|
416 | float:left; | |||
428 | } |
|
417 | } | |
429 |
|
418 | |||
430 | ul#nodebgs li.parity1 { |
|
419 | #graph_content{ | |
431 | background: #FFFFFF; |
|
420 | width:800px; | |
|
421 | float:left; | |||
|
422 | } | |||
|
423 | #graph_content .container_header{ | |||
|
424 | border:1px solid #CCCCCC; | |||
|
425 | height:30px; | |||
|
426 | background: #EEEEEE; | |||
|
427 | } | |||
|
428 | ||||
|
429 | ||||
|
430 | #graph_content .container .wrapper{ | |||
|
431 | width: 600px; | |||
|
432 | } | |||
|
433 | #graph_content .container{ | |||
|
434 | border-bottom: 1px solid #CCCCCC; | |||
|
435 | border-left: 1px solid #CCCCCC; | |||
|
436 | border-right: 1px solid #CCCCCC; | |||
|
437 | height:120px; | |||
432 | } |
|
438 | } | |
433 |
|
439 | |||
434 | ul#graphnodes { |
|
440 | #graph_content .container .left{ | |
435 | position: absolute; |
|
441 | float:left; | |
436 | z-index: 10; |
|
442 | width: 70%; | |
437 | top: 7px; |
|
443 | padding-left: 5px; | |
438 | list-style: none inside none; |
|
|||
439 | } |
|
444 | } | |
440 |
|
445 | |||
441 | ul#nodebgs { |
|
446 | #graph_content .container .right{ | |
442 | list-style: none inside none; |
|
447 | float:right; | |
|
448 | width: 25%; | |||
|
449 | } | |||
|
450 | #graph_content .container .left .date{ | |||
|
451 | font-weight:bold; | |||
|
452 | } | |||
|
453 | #graph_content .container .left .author{ | |||
|
454 | ||||
|
455 | } | |||
|
456 | #graph_content .container .left .message{ | |||
|
457 | font-size: 80%; | |||
443 | } |
|
458 | } | |
444 |
|
459 | |||
445 | ul#graphnodes li,ul#nodebgs li { |
|
460 | .right .added,.changed,.removed{ | |
446 | height: 39px; |
|
461 | border:1px solid #DDDDDD; | |
|
462 | display:block; | |||
|
463 | float:right; | |||
|
464 | font-size:0.75em; | |||
|
465 | text-align:center; | |||
|
466 | min-width:15px; | |||
447 | } |
|
467 | } | |
448 |
|
468 | .right .added{ | ||
449 | ul#graphnodes li .info { |
|
469 | background:#BBFFBB; | |
450 | display: block; |
|
|||
451 | position: relative; |
|
|||
452 | } |
|
470 | } | |
453 |
|
471 | .right .changed{ | ||
|
472 | background: #FFDD88; | |||
|
473 | } | |||
|
474 | .right .removed{ | |||
|
475 | background: #FF8888; | |||
|
476 | } | |||
454 | /** end of canvas **/ |
|
477 | /** end of canvas **/ | |
455 |
|
478 | |||
456 | /* FILE BROWSER */ |
|
479 | /* FILE BROWSER */ | |
457 | div.browserblock { |
|
480 | div.browserblock { | |
458 | overflow: hidden; |
|
481 | overflow: hidden; | |
459 | padding: 0px; |
|
482 | padding: 0px; | |
460 | border: 1px solid #ccc; |
|
483 | border: 1px solid #ccc; | |
461 | background: #f8f8f8; |
|
484 | background: #f8f8f8; | |
462 | font-size: 100%; |
|
485 | font-size: 100%; | |
463 | line-height: 100%; |
|
486 | line-height: 100%; | |
464 | /* new */ |
|
487 | /* new */ | |
465 | line-height: 125%; |
|
488 | line-height: 125%; | |
466 | } |
|
489 | } | |
467 | div.browserblock .browser-header{ |
|
490 | div.browserblock .browser-header{ | |
468 | border-bottom: 1px solid #CCCCCC; |
|
491 | border-bottom: 1px solid #CCCCCC; | |
469 | background: #EEEEEE; |
|
492 | background: #EEEEEE; | |
470 | color:blue; |
|
493 | color:blue; | |
471 | padding:10px 0 10px 0; |
|
494 | padding:10px 0 10px 0; | |
472 | } |
|
495 | } | |
473 | div.browserblock .browser-header span{ |
|
496 | div.browserblock .browser-header span{ | |
474 | margin-left:25px; |
|
497 | margin-left:25px; | |
475 | font-weight: bold; |
|
498 | font-weight: bold; | |
476 | } |
|
499 | } | |
477 | div.browserblock .browser-body{ |
|
500 | div.browserblock .browser-body{ | |
478 | background: #EEEEEE; |
|
501 | background: #EEEEEE; | |
479 | } |
|
502 | } | |
480 |
|
503 | |||
481 | table.code-browser { |
|
504 | table.code-browser { | |
482 |
border-collapse:collapse; |
|
505 | border-collapse:collapse; | |
|
506 | width: 100%; | |||
483 | } |
|
507 | } | |
484 | table.code-browser tr{ |
|
508 | table.code-browser tr{ | |
485 | margin:3px; |
|
509 | margin:3px; | |
486 | } |
|
510 | } | |
487 |
|
511 | |||
488 | table.code-browser thead th { |
|
512 | table.code-browser thead th { | |
489 | background-color: #EEEEEE; |
|
513 | background-color: #EEEEEE; | |
490 | height: 20px; |
|
514 | height: 20px; | |
491 | font-size: 1.1em; |
|
515 | font-size: 1.1em; | |
492 | font-weight: bold; |
|
516 | font-weight: bold; | |
493 | text-align: center; |
|
517 | text-align: center; | |
|
518 | text-align: left; | |||
|
519 | padding-left: 10px; | |||
494 | } |
|
520 | } | |
495 | table.code-browser tbody tr { |
|
521 | table.code-browser tbody tr { | |
496 |
|
522 | |||
497 | } |
|
523 | } | |
498 |
|
524 | |||
499 | table.code-browser tbody td { |
|
525 | table.code-browser tbody td { | |
500 |
|
526 | |||
501 | padding-left:10px; |
|
527 | padding-left:10px; | |
502 | height: 20px; |
|
528 | height: 20px; | |
503 | } |
|
529 | } | |
504 |
|
530 | |||
505 | .info-table { |
|
531 | .info-table { | |
506 | background: none repeat scroll 0 0 #FAFAFA; |
|
532 | background: none repeat scroll 0 0 #FAFAFA; | |
507 | border-bottom: 1px solid #DDDDDD; |
|
533 | border-bottom: 1px solid #DDDDDD; | |
508 | width: 100%; |
|
534 | width: 100%; | |
509 | } |
|
535 | } | |
510 |
|
536 | |||
511 | .rss_logo { |
|
537 | .rss_logo { | |
512 | background-image: url("/images/feed.png"); |
|
538 | background-image: url("/images/feed.png"); | |
513 | background-repeat: no-repeat; |
|
539 | background-repeat: no-repeat; | |
514 | display: block; |
|
540 | display: block; | |
515 | height: 16px; |
|
541 | height: 16px; | |
516 | padding-left: 20px; |
|
542 | padding-left: 20px; | |
517 | padding-top: 0px; |
|
543 | padding-top: 0px; | |
518 | text-align: left; |
|
544 | text-align: left; | |
519 | } |
|
545 | } | |
520 |
|
546 | |||
521 | .atom_logo { |
|
547 | .atom_logo { | |
522 | background-image: url("/images/atom.png"); |
|
548 | background-image: url("/images/atom.png"); | |
523 | background-repeat: no-repeat; |
|
549 | background-repeat: no-repeat; | |
524 | display: block; |
|
550 | display: block; | |
525 | height: 16px; |
|
551 | height: 16px; | |
526 | padding-left: 20px; |
|
552 | padding-left: 20px; | |
527 | padding-top: 0px; |
|
553 | padding-top: 0px; | |
528 | text-align: left; |
|
554 | text-align: left; | |
529 | } |
|
555 | } | |
530 |
|
556 | |||
531 | .browser-file { |
|
557 | .browser-file { | |
532 | background-image: url("/images/document_16.png"); |
|
558 | background-image: url("/images/document_16.png"); | |
533 | background-repeat: no-repeat; |
|
559 | background-repeat: no-repeat; | |
534 | display: block; |
|
560 | display: block; | |
535 | height: 16px; |
|
561 | height: 16px; | |
536 | padding-left: 20px; |
|
562 | padding-left: 20px; | |
537 | padding-top: 0px; |
|
563 | padding-top: 0px; | |
538 | text-align: left; |
|
564 | text-align: left; | |
539 | } |
|
565 | } | |
540 |
|
566 | |||
541 | .browser-dir { |
|
567 | .browser-dir { | |
542 | background-image: url("/images/folder_16.png"); |
|
568 | background-image: url("/images/folder_16.png"); | |
543 | background-repeat: no-repeat; |
|
569 | background-repeat: no-repeat; | |
544 | display: block; |
|
570 | display: block; | |
545 | height: 16px; |
|
571 | height: 16px; | |
546 | padding-left: 20px; |
|
572 | padding-left: 20px; | |
547 | padding-top: 0px; |
|
573 | padding-top: 0px; | |
548 | text-align: left; |
|
574 | text-align: left; | |
549 | } |
|
575 | } | |
550 |
|
576 | |||
551 | .current_submenu { |
|
577 | .current_submenu { | |
552 | border-bottom: 2px solid; |
|
578 | border-bottom: 2px solid; | |
553 | } |
|
579 | } | |
554 |
|
580 | |||
555 | #repos_list { |
|
581 | #repos_list { | |
556 | border: 1px solid #556CB5; |
|
582 | border: 1px solid #556CB5; | |
557 | background: #FFFFFF; |
|
583 | background: #FFFFFF; | |
558 | } No newline at end of file |
|
584 | } |
@@ -1,41 +1,50 b'' | |||||
1 | <%inherit file="/base/base.html"/> |
|
1 | <%inherit file="/base/base.html"/> | |
2 |
|
2 | |||
3 | <%def name="title()"> |
|
3 | <%def name="title()"> | |
4 | ${_('Repository managment')} |
|
4 | ${_('Repository managment')} | |
5 | </%def> |
|
5 | </%def> | |
6 | <%def name="breadcrumbs()"> |
|
6 | <%def name="breadcrumbs()"> | |
7 | ${h.link_to(u'Home',h.url('/'))} |
|
7 | ${h.link_to(u'Home',h.url('/'))} | |
8 | / |
|
8 | / | |
9 | ${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))} |
|
9 | ${h.link_to(c.repo_name,h.url('files_home',repo_name=c.repo_name))} | |
10 | / |
|
10 | / | |
11 | ${_('files')} |
|
11 | ${_('files')} | |
12 | </%def> |
|
12 | </%def> | |
13 | <%def name="page_nav()"> |
|
13 | <%def name="page_nav()"> | |
14 | <form action="log"> |
|
14 | <form action="log"> | |
15 | <dl class="search"> |
|
15 | <dl class="search"> | |
16 | <dt><label>Search: </label></dt> |
|
16 | <dt><label>Search: </label></dt> | |
17 | <dd><input type="text" name="rev" /></dd> |
|
17 | <dd><input type="text" name="rev" /></dd> | |
18 | </dl> |
|
18 | </dl> | |
19 | </form> |
|
19 | </form> | |
20 |
|
20 | |||
21 | ${self.menu('files')} |
|
21 | ${self.menu('files')} | |
22 | </%def> |
|
22 | </%def> | |
23 | <%def name="css()"> |
|
23 | <%def name="css()"> | |
24 | <link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" /> |
|
24 | <link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" /> | |
25 | <link rel="stylesheet" href="/css/diff.css" type="text/css" /> |
|
25 | <link rel="stylesheet" href="/css/diff.css" type="text/css" /> | |
26 | </%def> |
|
26 | </%def> | |
27 | <%def name="main()"> |
|
27 | <%def name="main()"> | |
28 | <h2 class="no-link no-border">${'%s: %s %s %s' % (_('File diff'),c.diff2,'→',c.diff1)|n}</h2> |
|
28 | <h2 class="no-link no-border">${'%s: %s %s %s' % (_('File diff'),c.diff2,'→',c.diff1)|n}</h2> | |
29 | <div id="body" class="diffblock"> |
|
29 | <div id="body" class="diffblock"> | |
30 | <div class="code-header"> |
|
30 | <div class="code-header"> | |
31 | <span>${h.link_to(c.f_path,h.url('files_home',repo_name=c.repo_name,revision=c.diff2.split(':')[1],f_path=c.f_path))}</span> |
|
31 | <div> | |
|
32 | <span>${h.link_to(c.f_path,h.url('files_home',repo_name=c.repo_name, | |||
|
33 | revision=c.diff2.split(':')[1],f_path=c.f_path))}</span> | |||
|
34 | » <span style="font-size:77%">${h.link_to(_('diff'), | |||
|
35 | h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='diff'))}</span> | |||
|
36 | » <span style="font-size:77%">${h.link_to(_('raw diff'), | |||
|
37 | h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='raw'))}</span> | |||
|
38 | » <span style="font-size:77%">${h.link_to(_('download diff'), | |||
|
39 | h.url.current(diff2=c.diff2.split(':')[-1],diff1=c.diff1.split(':')[-1],diff='download'))}</span> | |||
|
40 | </div> | |||
32 | </div> |
|
41 | </div> | |
33 | <div class="code-body"> |
|
42 | <div class="code-body"> | |
34 | %if c.no_changes: |
|
43 | %if c.no_changes: | |
35 | ${_('No changes')} |
|
44 | ${_('No changes')} | |
36 | %else: |
|
45 | %else: | |
37 |
${c.diff |
|
46 | ${c.cur_diff|n} | |
38 | %endif |
|
47 | %endif | |
39 | </div> |
|
48 | </div> | |
40 | </div> |
|
49 | </div> | |
41 | </%def> No newline at end of file |
|
50 | </%def> |
General Comments 0
You need to be logged in to leave comments.
Login now