Commit 34e15801845f806e0f0f04aff8ba78962f8a9086
1 parent
bcf03b5d
Exists in
master
and in
4 other branches
Improved file browse page, prepared for downloads tab
Showing
8 changed files
with
157 additions
and
166 deletions
Show diff stats
app/assets/stylesheets/common.scss
@@ -583,13 +583,6 @@ ul.bordered-list li:last-child { border:none } | @@ -583,13 +583,6 @@ ul.bordered-list li:last-child { border:none } | ||
583 | } | 583 | } |
584 | } | 584 | } |
585 | 585 | ||
586 | -.project-refs-form.commit-refs-form .chzn-container { | ||
587 | - position: relative; | ||
588 | - top: 0; | ||
589 | - left: 0; | ||
590 | - margin-right: 10px; | ||
591 | -} | ||
592 | - | ||
593 | li.commit { | 586 | li.commit { |
594 | .avatar { | 587 | .avatar { |
595 | width:24px; | 588 | width:24px; |
app/assets/stylesheets/highlight.scss
@@ -10,7 +10,8 @@ table.highlighttable | @@ -10,7 +10,8 @@ table.highlighttable | ||
10 | margin:0px; | 10 | margin:0px; |
11 | padding:0px; | 11 | padding:0px; |
12 | font-size:12px; | 12 | font-size:12px; |
13 | - table-layout:fixed | 13 | + table-layout:fixed; |
14 | + background: #F7F7F7; | ||
14 | } | 15 | } |
15 | 16 | ||
16 | td.code, | 17 | td.code, |
@@ -25,6 +26,8 @@ td.linenos{ | @@ -25,6 +26,8 @@ td.linenos{ | ||
25 | background:none; | 26 | background:none; |
26 | padding:10px 0px 0px 10px; | 27 | padding:10px 0px 0px 10px; |
27 | margin-left:0px; | 28 | margin-left:0px; |
29 | + border-left: 1px solid #DEE2E3; | ||
30 | + background: white; | ||
28 | } | 31 | } |
29 | 32 | ||
30 | .linenodiv pre, | 33 | .linenodiv pre, |
app/assets/stylesheets/ref_select.scss
@@ -13,9 +13,10 @@ | @@ -13,9 +13,10 @@ | ||
13 | } | 13 | } |
14 | 14 | ||
15 | .project-refs-form .chzn-container { | 15 | .project-refs-form .chzn-container { |
16 | - position:relative; | ||
17 | - top: -5px; | ||
18 | - left: -11px; | 16 | + position: relative; |
17 | + top: 0; | ||
18 | + left: 0; | ||
19 | + margin-right: 10px; | ||
19 | 20 | ||
20 | .chzn-drop { | 21 | .chzn-drop { |
21 | margin:7px 0; | 22 | margin:7px 0; |
app/assets/stylesheets/tree.scss
1 | -#tree-content-holder { | ||
2 | - float:left; | ||
3 | - width:100%; | ||
4 | -} | ||
5 | -#tree-readme-holder { | ||
6 | - float:left; | ||
7 | - width:100%; | ||
8 | - .readme { | ||
9 | - @include round-borders-all(4px); | ||
10 | - padding:4px 15px; | ||
11 | - background: #F7F7F7; | 1 | +#tree-holder { |
2 | + #tree-content-holder { | ||
3 | + float:left; | ||
4 | + width:100%; | ||
12 | } | 5 | } |
13 | -} | ||
14 | -#tree-breadcrumbs { | ||
15 | - div { | ||
16 | - margin:0; | ||
17 | - margin-bottom:20px; | 6 | + #tree-readme-holder { |
18 | float:left; | 7 | float:left; |
19 | - font-size:14px; | 8 | + width:100%; |
9 | + .readme { | ||
10 | + @include round-borders-all(4px); | ||
11 | + padding:4px 15px; | ||
12 | + background: #F7F7F7; | ||
13 | + } | ||
20 | } | 14 | } |
21 | -} | ||
22 | 15 | ||
23 | -.tree_progress { | ||
24 | - display:none; | ||
25 | - margin:20px; | ||
26 | - &.loading { | ||
27 | - display:block; | 16 | + .tree_progress { |
17 | + display:none; | ||
18 | + margin:20px; | ||
19 | + &.loading { | ||
20 | + display:block; | ||
21 | + } | ||
28 | } | 22 | } |
29 | -} | ||
30 | 23 | ||
31 | 24 | ||
32 | -/** FILE CONTENT VIEW **/ | ||
33 | -.view_file_content{ | ||
34 | - .old_line, .new_line { | ||
35 | - background:#ECECEC; | ||
36 | - color:#777; | ||
37 | - width:15px; | ||
38 | - float:left; | ||
39 | - padding: 0px 10px; | ||
40 | - border-right: 1px solid #ccc; | ||
41 | - } | ||
42 | - .old_line{ | ||
43 | - display:none; | 25 | + /** FILE CONTENT VIEW **/ |
26 | + .view_file_content{ | ||
27 | + .old_line, .new_line { | ||
28 | + background:#ECECEC; | ||
29 | + color:#777; | ||
30 | + width:15px; | ||
31 | + float:left; | ||
32 | + padding: 0px 10px; | ||
33 | + border-right: 1px solid #ccc; | ||
34 | + } | ||
35 | + .old_line{ | ||
36 | + display:none; | ||
37 | + } | ||
44 | } | 38 | } |
45 | -} | ||
46 | 39 | ||
47 | -.view_file .view_file_header, | ||
48 | -.diff_file .diff_file_header { | ||
49 | - background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8)); | ||
50 | - background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8); | ||
51 | - background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8); | ||
52 | - background-image: -o-linear-gradient(#fefefe 7.6%, #F6F7F8); | 40 | + .view_file .view_file_header, |
41 | + .diff_file .diff_file_header { | ||
42 | + background:#f5f5f5; | ||
53 | margin: 0; | 43 | margin: 0; |
54 | font-weight: normal; | 44 | font-weight: normal; |
55 | font-weight: bold; | 45 | font-weight: bold; |
56 | text-align: left; | 46 | text-align: left; |
57 | color: #666; | 47 | color: #666; |
58 | - border-bottom: 1px solid #DEE2E3; | 48 | + border-bottom: 1px solid #ccc; |
59 | padding: 7px 10px; | 49 | padding: 7px 10px; |
60 | 50 | ||
61 | .mode_text, | 51 | .mode_text, |
62 | .file_icon { | 52 | .file_icon { |
63 | - margin-right:15px; | ||
64 | - padding-right:15px; | ||
65 | - border-right:1px solid $lite_border_color; | ||
66 | - float:left; | ||
67 | color:#aaa; | 53 | color:#aaa; |
68 | } | 54 | } |
55 | + } | ||
69 | 56 | ||
70 | - .file_icon { | ||
71 | - padding-left:15px; | ||
72 | - } | ||
73 | -} | 57 | + .view_file { |
58 | + border:1px solid #CCC; | ||
59 | + margin-bottom:1em; | ||
74 | 60 | ||
75 | -.view_file { | ||
76 | - border:1px solid #CCC; | ||
77 | - margin-bottom:1em; | ||
78 | - | ||
79 | - .view_file_content { | ||
80 | - background:#fff; | ||
81 | - color:#514721; | ||
82 | - font-size: 11px; | ||
83 | - } | ||
84 | - .view_file_content_image { | ||
85 | - background:#eee; | ||
86 | - text-align:center; | ||
87 | - img { | ||
88 | - padding:100px; | ||
89 | - max-width:300px; | 61 | + .view_file_content { |
62 | + background:#fff; | ||
63 | + color:#514721; | ||
64 | + font-size: 11px; | ||
65 | + } | ||
66 | + .view_file_content_image { | ||
67 | + background:#eee; | ||
68 | + text-align:center; | ||
69 | + img { | ||
70 | + padding:100px; | ||
71 | + max-width:300px; | ||
72 | + } | ||
90 | } | 73 | } |
91 | } | 74 | } |
92 | -} | ||
93 | 75 | ||
94 | -td.code { | ||
95 | - width: 100%; | ||
96 | - .highlight { | ||
97 | - margin-left: 55px; | ||
98 | - overflow:auto; | ||
99 | - overflow-y:hidden; | ||
100 | - border-left: 1px solid #DEE2E3; | ||
101 | - background: white; | 76 | + td.code { |
77 | + width: 100%; | ||
78 | + .highlight { | ||
79 | + margin-left: 55px; | ||
80 | + overflow:auto; | ||
81 | + overflow-y:hidden; | ||
82 | + } | ||
83 | + } | ||
84 | + .highlight pre { | ||
85 | + white-space: pre; | ||
86 | + word-wrap:normal; | ||
102 | } | 87 | } |
103 | -} | ||
104 | -.highlight pre { | ||
105 | - white-space: pre; | ||
106 | - word-wrap:normal; | ||
107 | -} | ||
108 | - | ||
109 | -table.highlighttable { | ||
110 | - border: none; | ||
111 | - background: #F7F7F7; | ||
112 | -} | ||
113 | -body.project-page table.highlighttable td { border: none } | ||
114 | -table.highlighttable tr:hover { background:none;} | ||
115 | - | ||
116 | -table.highlighttable pre{ | ||
117 | - line-height:16px !important; | ||
118 | - font-size:12px !important; | ||
119 | -} | ||
120 | 88 | ||
121 | -table.highlighttable .linenodiv pre { | ||
122 | - text-align: right; | ||
123 | - padding-right: 4px; | ||
124 | - color:#888; | ||
125 | -} | 89 | + table.highlighttable { |
90 | + border: none; | ||
91 | + } | ||
92 | + body.project-page table.highlighttable td { border: none } | ||
93 | + table.highlighttable tr:hover { background:none;} | ||
126 | 94 | ||
127 | -.tree-item { | ||
128 | - &:hover { | ||
129 | - background: $hover; | ||
130 | - cursor:pointer; | 95 | + table.highlighttable pre{ |
96 | + line-height:16px !important; | ||
97 | + font-size:12px !important; | ||
131 | } | 98 | } |
132 | 99 | ||
100 | + table.highlighttable .linenodiv pre { | ||
101 | + text-align: right; | ||
102 | + padding-right: 4px; | ||
103 | + color:#888; | ||
104 | + } | ||
133 | 105 | ||
134 | - .tree-item-file-name { | ||
135 | - font-weight:bold; | ||
136 | - a { | ||
137 | - color:$style_color; | 106 | + .tree-item { |
107 | + &:hover { | ||
108 | + background: $hover; | ||
109 | + cursor:pointer; | ||
138 | } | 110 | } |
139 | 111 | ||
140 | - img { | ||
141 | - position: relative; | ||
142 | - top: 2px; | 112 | + |
113 | + .tree-item-file-name { | ||
114 | + font-weight:bold; | ||
115 | + a { | ||
116 | + color:$style_color; | ||
117 | + } | ||
118 | + | ||
119 | + img { | ||
120 | + position: relative; | ||
121 | + top: 2px; | ||
122 | + } | ||
143 | } | 123 | } |
144 | } | 124 | } |
145 | -} | ||
146 | 125 | ||
147 | -.breadcrumb { | ||
148 | - background:white; | ||
149 | - border:none; | 126 | + ul.breadcrumb { |
127 | + background:white; | ||
128 | + border:none; | ||
150 | 129 | ||
151 | - a { | ||
152 | - color:$link_color; | ||
153 | - font-weight:bold; | ||
154 | - font-size:13px; | 130 | + a { |
131 | + color:#666; | ||
132 | + font-weight:bold; | ||
133 | + font-size:14px; | ||
134 | + } | ||
155 | } | 135 | } |
156 | -} | ||
157 | 136 | ||
158 | -#tree-slider { | ||
159 | - @include shade; | 137 | + #tree-slider { |
138 | + @include shade; | ||
160 | 139 | ||
161 | - td { | ||
162 | - padding:7px; | ||
163 | - border-color:#f1f1f1; | 140 | + td { |
141 | + padding:7px; | ||
142 | + border-color:#f1f1f1; | ||
143 | + } | ||
144 | + | ||
145 | + th { | ||
146 | + background:#f5f5f5; | ||
147 | + } | ||
164 | } | 148 | } |
165 | 149 | ||
166 | - th { | ||
167 | - background:#f5f5f5; | 150 | + .tree-commit-link { |
151 | + color:#333; | ||
168 | } | 152 | } |
169 | -} | ||
170 | 153 | ||
171 | -.tree-commit-link { | ||
172 | - color:#333; | ||
173 | -} | 154 | + #tree-content-holder .view_file{ |
155 | + @include shade; | ||
156 | + } | ||
174 | 157 | ||
175 | -#tree-content-holder .view_file{ | ||
176 | - @include shade; | ||
177 | -} | 158 | + #tree-readme-holder .readme { |
159 | + @include shade; | ||
160 | + margin-bottom:20px; | ||
161 | + } | ||
178 | 162 | ||
179 | -#tree-readme-holder .readme { | ||
180 | - @include shade; | ||
181 | - margin-bottom:20px; | ||
182 | -} | 163 | + a.tree-commit-link { |
164 | + color: #666; | ||
165 | + &:hover { | ||
166 | + text-decoration: underline; | ||
167 | + } | ||
168 | + } | ||
183 | 169 | ||
184 | -a.tree-commit-link { | ||
185 | - color: #666; | ||
186 | - &:hover { | ||
187 | - text-decoration: underline; | 170 | + .arrow { |
171 | + background: url("images.png") no-repeat -85px -77px; | ||
172 | + width: 19px; | ||
173 | + height: 16px; | ||
174 | + float: left; | ||
175 | + position: relative; | ||
176 | + left: -10px; | ||
188 | } | 177 | } |
189 | } | 178 | } |
app/views/commits/_head.html.haml
1 | %ul.tabs | 1 | %ul.tabs |
2 | %li | 2 | %li |
3 | - = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form commit-refs-form" do | 3 | + = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form" do |
4 | = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select" | 4 | = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select" |
5 | = hidden_field_tag :destination, "commits" | 5 | = hidden_field_tag :destination, "commits" |
6 | 6 |
app/views/refs/_tree.html.haml
1 | %ul.breadcrumb | 1 | %ul.breadcrumb |
2 | %li | 2 | %li |
3 | - = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form left", :remote => true do | ||
4 | - = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select" | ||
5 | - = hidden_field_tag :destination, "tree" | ||
6 | - = hidden_field_tag :path, params[:path] | ||
7 | - | ||
8 | - %li | 3 | + %span.arrow |
9 | = link_to tree_project_ref_path(@project, @ref, :path => nil), :remote => true do | 4 | = link_to tree_project_ref_path(@project, @ref, :path => nil), :remote => true do |
10 | - = @project.code | 5 | + = @project.name |
11 | - tree.breadcrumbs(6) do |link| | 6 | - tree.breadcrumbs(6) do |link| |
12 | \/ | 7 | \/ |
13 | %li= link | 8 | %li= link |
app/views/refs/_tree_file.html.haml
1 | :css | 1 | :css |
2 | .view_file | 2 | .view_file |
3 | .view_file_header | 3 | .view_file_header |
4 | - %strong | ||
5 | - %span.file_icon= image_tag "txt.png" | ||
6 | - %span.mode_text= file.mode | ||
7 | - %span.file_name= name | ||
8 | - = link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path] ), :class => "right", :target => "_blank" | ||
9 | - = link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref ), :class => "right", :style => "margin-right:10px;" | ||
10 | - %br/ | 4 | + .row |
5 | + .span1.file_icon= image_tag "txt.png" | ||
6 | + .span2.mode_text= file.mode | ||
7 | + .span7.file_name= name | ||
8 | + .span4.right | ||
9 | + = link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path] ), :class => "right", :target => "_blank" | ||
10 | + = link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref ), :class => "right", :style => "margin-right:10px;" | ||
11 | - if file.text? | 11 | - if file.text? |
12 | .view_file_content | 12 | .view_file_content |
13 | - unless file.empty? | 13 | - unless file.empty? |
app/views/refs/tree.html.haml
1 | +%ul.tabs | ||
2 | + %li | ||
3 | + = form_tag switch_project_refs_path(@project), :method => :get, :class => "project-refs-form", :remote => true do | ||
4 | + = select_tag "ref", grouped_options_refs, :onchange => "$(this.form).trigger('submit');", :class => "project-refs-select" | ||
5 | + = hidden_field_tag :destination, "tree" | ||
6 | + = hidden_field_tag :path, params[:path] | ||
7 | + %li{:class => "#{'active' if (controller.controller_name == "refs") }"} | ||
8 | + = link_to tree_project_ref_path(@project, @ref) do | ||
9 | + Code | ||
10 | + | ||
1 | #tree-holder= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree} | 11 | #tree-holder= render :partial => "tree", :locals => {:repo => @repo, :commit => @commit, :tree => @tree} |
2 | 12 | ||
3 | :javascript | 13 | :javascript |