Commit 7f6e41fa028e4293e50edbf9fe2ea6cc19957533
1 parent
05d76fc4
Exists in
master
and in
4 other branches
Bootstrap: application layout
Showing
22 changed files
with
951 additions
and
204 deletions
Show diff stats
app/assets/stylesheets/common.scss
@@ -105,6 +105,19 @@ $blue_link: "#2fa0bb"; | @@ -105,6 +105,19 @@ $blue_link: "#2fa0bb"; | ||
105 | border-right: 1px solid $border_color; | 105 | border-right: 1px solid $border_color; |
106 | height:100%; | 106 | height:100%; |
107 | min-height:450px; | 107 | min-height:450px; |
108 | + | ||
109 | + .fixed { | ||
110 | + position:fixed; | ||
111 | + } | ||
112 | + | ||
113 | + aside a { | ||
114 | + display:block; | ||
115 | + position:relative; | ||
116 | + padding:15px 10px; | ||
117 | + margin:10px 0 0 0; | ||
118 | + font-size:13px; | ||
119 | + font-weight:bold; | ||
120 | + } | ||
108 | } | 121 | } |
109 | 122 | ||
110 | .container-fluid > .content { | 123 | .container-fluid > .content { |
@@ -112,6 +125,17 @@ $blue_link: "#2fa0bb"; | @@ -112,6 +125,17 @@ $blue_link: "#2fa0bb"; | ||
112 | margin-top:20px; | 125 | margin-top:20px; |
113 | } | 126 | } |
114 | 127 | ||
128 | +aside.projects { | ||
129 | + margin-left: 0; | ||
130 | + padding-left: 20px; | ||
131 | +} | ||
132 | + | ||
133 | +img.avatar { | ||
134 | + width:32px; | ||
135 | + float:left; | ||
136 | + padding-right:5px; | ||
137 | +} | ||
138 | + | ||
115 | @import "reset_bootstrap.scss"; | 139 | @import "reset_bootstrap.scss"; |
116 | @import "top_panel.scss"; | 140 | @import "top_panel.scss"; |
117 | @import "projects.css.scss"; | 141 | @import "projects.css.scss"; |
app/assets/stylesheets/projects.css.scss
1 | .git_url_wrapper { | 1 | .git_url_wrapper { |
2 | margin-right:50px | 2 | margin-right:50px |
3 | } | 3 | } |
4 | - | ||
5 | -.project { | ||
6 | - .sidebar { | ||
7 | - .fixed { | ||
8 | - position:fixed; | ||
9 | - } | ||
10 | - | ||
11 | - aside a { | ||
12 | - display:block; | ||
13 | - position:relative; | ||
14 | - padding:15px 10px; | ||
15 | - margin:10px 0 0 0; | ||
16 | - font-size:13px; | ||
17 | - font-weight:bold; | ||
18 | - } | ||
19 | - } | ||
20 | -} | ||
21 | .file_stats { | 4 | .file_stats { |
22 | span { | 5 | span { |
23 | img { | 6 | img { |
@@ -0,0 +1,384 @@ | @@ -0,0 +1,384 @@ | ||
1 | +.git_url_wrapper { margin-right:50px } | ||
2 | + | ||
3 | +.sidebar aside a{ | ||
4 | + display: block; | ||
5 | + position: relative; | ||
6 | + padding: 15px 10px; | ||
7 | + margin: 10px 0 0 0; | ||
8 | + | ||
9 | + span.number{ | ||
10 | + float: right; border-radius: 5px; text-shadow: none; background: rgba(0,0,0,.12); text-align: center; padding: 5px 8px; position: absolute; top: 10px; right: 10px; | ||
11 | + } | ||
12 | + &.current { | ||
13 | + color: white; | ||
14 | + background: $active_bg_color; | ||
15 | + border: 1px solid $active_bd_color; | ||
16 | + border-radius:5px; | ||
17 | + | ||
18 | + -webkit-border-top-right-radius: 0; | ||
19 | + -webkit-border-bottom-right-radius: 0; | ||
20 | + -moz-border-radius-topright: 0px; | ||
21 | + -moz-border-radius-bottomright: 0px; | ||
22 | + border-top-right-radius: 0; | ||
23 | + border-bottom-right-radius: 0; | ||
24 | + margin-right: -1px; | ||
25 | + } | ||
26 | +} | ||
27 | + | ||
28 | +body table .commit a{color: #{$blue_link}} | ||
29 | +body table th, body table td{ border-bottom: 1px solid #DEE2E3;} | ||
30 | +body .fixed{position: fixed; } | ||
31 | + | ||
32 | +/** File stat **/ | ||
33 | +.file_stats { | ||
34 | + span { | ||
35 | + img { | ||
36 | + width:14px; | ||
37 | + float:left; | ||
38 | + margin-right: 6px; | ||
39 | + padding:2px 0; | ||
40 | + } | ||
41 | + } | ||
42 | +} | ||
43 | + | ||
44 | +.round-borders { | ||
45 | + @include round-borders-all(4px); | ||
46 | + padding: 4px 0px; | ||
47 | +} | ||
48 | + | ||
49 | +table.round-borders { | ||
50 | + float:left; | ||
51 | + text-align: left; | ||
52 | +} | ||
53 | + | ||
54 | + | ||
55 | + | ||
56 | +/** PROJECTS **/ | ||
57 | +input.ssh_project_url { | ||
58 | + padding:5px; | ||
59 | + margin:0px; | ||
60 | + float:right; | ||
61 | + width:400px; | ||
62 | + text-align:center; | ||
63 | +} | ||
64 | + | ||
65 | +#projects-list .project { | ||
66 | + height:50px; | ||
67 | +} | ||
68 | + | ||
69 | +#tree-slider .tree-item, | ||
70 | +#projects-list .project, | ||
71 | +#snippets-table .snippet, | ||
72 | +#issues-table .issue{ | ||
73 | + cursor:pointer; | ||
74 | +} | ||
75 | + | ||
76 | +.clear { | ||
77 | + clear: both; | ||
78 | +} | ||
79 | + | ||
80 | + | ||
81 | + | ||
82 | +#user_projects_limit{ | ||
83 | + width: 60px; | ||
84 | +} | ||
85 | + | ||
86 | +.handle:hover{ | ||
87 | + cursor: move; | ||
88 | +} | ||
89 | + | ||
90 | +.project-refs-form { | ||
91 | + span { | ||
92 | + background: none !important; | ||
93 | + position:static !important; | ||
94 | + width:auto !important; | ||
95 | + height: auto !important; | ||
96 | + } | ||
97 | +} | ||
98 | + | ||
99 | +.project-refs-select { | ||
100 | + width:200px; | ||
101 | +} | ||
102 | + | ||
103 | +.filter .left { margin-right:15px; } | ||
104 | + | ||
105 | +body table .commit { | ||
106 | + a.tree-commit-link { | ||
107 | + color:#444; | ||
108 | + &:hover { | ||
109 | + text-decoration:underline; | ||
110 | + } | ||
111 | + } | ||
112 | +} | ||
113 | + | ||
114 | +/** NEW PROJECT **/ | ||
115 | +.new-project-hodler { | ||
116 | + .icon span { background-position: -31px -70px; } | ||
117 | + td { border-bottom: 1px solid #DEE2E3; } | ||
118 | +} | ||
119 | + | ||
120 | +/** Feed entry **/ | ||
121 | +.commit, | ||
122 | +.snippet, | ||
123 | +.message { | ||
124 | + .title { | ||
125 | + color:#666; | ||
126 | + a { color:#666 !important; } | ||
127 | + p { margin-top:0px; } | ||
128 | + } | ||
129 | + .author { color: #999 } | ||
130 | +} | ||
131 | + | ||
132 | +/** JQuery UI **/ | ||
133 | +.ui-autocomplete { @include round-borders-all(5px); } | ||
134 | +.ui-menu-item { cursor: pointer } | ||
135 | +.ui-selectmenu{ | ||
136 | + @include round-borders-all(4px); | ||
137 | + margin-right:10px; | ||
138 | + font-size:1.5em; | ||
139 | + height:auto; | ||
140 | + font-weight:bold; | ||
141 | + .ui-selectmenu-status { | ||
142 | + padding:3px 10px; | ||
143 | + } | ||
144 | +} | ||
145 | + | ||
146 | +#holder { | ||
147 | + background:#FAFAFA; | ||
148 | + border: 1px solid #EEE; | ||
149 | + cursor: move; | ||
150 | + height: 70%; | ||
151 | + overflow: hidden; | ||
152 | +} | ||
153 | + | ||
154 | +/* Project Dashboard Page */ | ||
155 | +html, body { height: 100%; } | ||
156 | + | ||
157 | +.news-feed h2{float: left;} | ||
158 | +.news-feed .project-updates {margin-bottom: 20px; display: block; width: 100%;} | ||
159 | +.news-feed .project-updates .data{ padding: 0} | ||
160 | +.news-feed .project-updates a.project-update {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} | ||
161 | +.news-feed .project-updates a.project-update:last-child{border-bottom: 0} | ||
162 | +.news-feed .project-updates a.project-update img{float: left; margin-right: 10px;} | ||
163 | +.news-feed .project-updates a.project-update span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;} | ||
164 | +.news-feed .project-updates a.project-update span.update-title{margin-bottom: 10px} | ||
165 | +.news-feed .project-updates a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;} | ||
166 | +.news-feed .project-updates a.project-update span.update-author strong{font-weight: bold; font-style: normal;} | ||
167 | +/* eo Dashboard Page */ | ||
168 | + | ||
169 | + | ||
170 | +/** Update entry **/ | ||
171 | +.update-data { padding: 0 } | ||
172 | +.update-data { width:100%; } | ||
173 | +.update-data.ui-box .data { padding:0; } | ||
174 | +a.update-item {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} | ||
175 | +a.update-item:last-child{border-bottom: 0} | ||
176 | +a.update-item img{float: left; margin-right: 10px;} | ||
177 | +a.update-item span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;} | ||
178 | +a.update-item span.update-title{margin-bottom: 10px} | ||
179 | +a.update-item span.update-author{color: #999; font-weight: normal; font-style: italic;} | ||
180 | +a.update-item span.update-author strong{font-weight: bold; font-style: normal;} | ||
181 | + | ||
182 | + | ||
183 | +body .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; } | ||
184 | + | ||
185 | +body.projects-page input.text.git-url.project_list_url { width:165px; } | ||
186 | + | ||
187 | + | ||
188 | +body table.no-borders th { | ||
189 | + background:none; | ||
190 | + border-bottom:1px solid #CCC; | ||
191 | + color:#333; | ||
192 | +} | ||
193 | + | ||
194 | +body table.no-borders tr, | ||
195 | +body table.no-borders td{ | ||
196 | + border:none; | ||
197 | +} | ||
198 | + | ||
199 | +.ajax-tab-loading { | ||
200 | + padding:40px; | ||
201 | + display:none; | ||
202 | +} | ||
203 | + | ||
204 | +#tree-content-holder { float:left; width:100%; } | ||
205 | + | ||
206 | +#tree-readme-holder { | ||
207 | + float:left; | ||
208 | + width:100%; | ||
209 | + | ||
210 | + .readme { | ||
211 | + @include round-borders-all(4px); | ||
212 | + padding: 4px 15px; | ||
213 | + background:#F7F7F7; | ||
214 | + } | ||
215 | +} | ||
216 | + | ||
217 | + | ||
218 | + | ||
219 | +/* Commit Page */ | ||
220 | +.entity-info {float: right;} | ||
221 | +.entity-button{ | ||
222 | + background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4)); | ||
223 | + background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4); | ||
224 | + background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4); | ||
225 | + background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4); | ||
226 | + box-shadow: 0 -1px 0 white inset; | ||
227 | + display: block; | ||
228 | + border: 1px solid #eee; | ||
229 | + border-radius: 5px; | ||
230 | + margin-bottom: 2px; | ||
231 | + position: relative; | ||
232 | + padding: 4px 10px; | ||
233 | + font-size: 11px; | ||
234 | + padding-right: 20px; | ||
235 | +} | ||
236 | + | ||
237 | +.entity-button i{ | ||
238 | + background: url('images.png') no-repeat -138px -27px; | ||
239 | + width: 6px; | ||
240 | + height: 9px; | ||
241 | + float: right; | ||
242 | + position: absolute; | ||
243 | + top: 6px; | ||
244 | + right: 5px; | ||
245 | +} | ||
246 | +.box-arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999; margin: 1.5em 0;} | ||
247 | + | ||
248 | +h4.dash-tabs { | ||
249 | + margin: 0; | ||
250 | + border-bottom: 1px solid #ccc; | ||
251 | + padding: 10px 10px; | ||
252 | + font-size: 11px; | ||
253 | + padding-left:20px; | ||
254 | + font-weight: bold; text-transform: uppercase; | ||
255 | + background: #F7F7F7; | ||
256 | + margin-bottom:20px; | ||
257 | + height:13px; | ||
258 | + | ||
259 | +} | ||
260 | + | ||
261 | +.dash-button { | ||
262 | + border-right: 1px solid #ddd; | ||
263 | + background:none; | ||
264 | + padding: 10px 15px; | ||
265 | + float:left; | ||
266 | + position:relative; | ||
267 | + top:-10px; | ||
268 | + left:0px; | ||
269 | + height:13px; | ||
270 | + | ||
271 | + &:first-child { | ||
272 | + border-left: 1px solid #ddd; | ||
273 | + } | ||
274 | + &.active { | ||
275 | + background: #eaeaea; | ||
276 | + } | ||
277 | +} | ||
278 | + | ||
279 | + | ||
280 | +.dashboard-loader { | ||
281 | + float:right; | ||
282 | + margin-right:30px; | ||
283 | + display:none; | ||
284 | +} | ||
285 | + | ||
286 | + | ||
287 | +.merge-tabs { | ||
288 | + margin: 0; | ||
289 | + border: 1px solid #ccc; | ||
290 | + padding: 5px; | ||
291 | + font-size: 12px; | ||
292 | + background: #F7F7F7; | ||
293 | + margin-bottom:20px; | ||
294 | + height:26px; | ||
295 | + | ||
296 | + -moz-border-radius: 4px; | ||
297 | + -webkit-border-radius: 4px; | ||
298 | + border-radius: 4px; | ||
299 | + | ||
300 | + .tab { | ||
301 | + font-weight: bold; | ||
302 | + border-right: 1px solid #ddd; | ||
303 | + background:none; | ||
304 | + padding: 10px; | ||
305 | + min-width:60px; | ||
306 | + float:left; | ||
307 | + position:relative; | ||
308 | + top:-5px; | ||
309 | + left:-5px; | ||
310 | + height:16px; | ||
311 | + padding-left:34px; | ||
312 | + | ||
313 | + span { | ||
314 | + width: 20px; | ||
315 | + height: 20px; | ||
316 | + display: inline-block; | ||
317 | + position: absolute; | ||
318 | + left: 8px; | ||
319 | + top: 8px; | ||
320 | + } | ||
321 | + | ||
322 | + &.active { | ||
323 | + background: #eaeaea; | ||
324 | + } | ||
325 | + } | ||
326 | +} | ||
327 | +.merge-tabs.repository .tab span{ background: url("images.png") no-repeat -38px -77px; } | ||
328 | +.activities-tab span { background: url("images.png") no-repeat -161px -1px; } | ||
329 | +.stat-tab span, | ||
330 | +.team-tab span, | ||
331 | +.snippets-tab span { background: url("images.png") no-repeat -38px -77px; } | ||
332 | +.files-tab span { background: url("images.png") no-repeat -112px -23px; } | ||
333 | + | ||
334 | +.merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; } | ||
335 | +.merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; } | ||
336 | +.merge-diffs-tab span { background: url("images.png") no-repeat -118px 1px; } | ||
337 | +.merge-tabs .dashboard-loader { padding:8px; } | ||
338 | + | ||
339 | +.user-mention { | ||
340 | + color: #2FA0BB; | ||
341 | + font-weight: bold; | ||
342 | +} | ||
343 | + | ||
344 | +.author { | ||
345 | + color: #999; | ||
346 | +} | ||
347 | + | ||
348 | + | ||
349 | + | ||
350 | + | ||
351 | +.dark_scheme_box { | ||
352 | + padding:20px 0; | ||
353 | + | ||
354 | + label { | ||
355 | + float:left; | ||
356 | + box-shadow: 0 0px 5px rgba(0,0,0,.3); | ||
357 | + | ||
358 | + img { | ||
359 | + } | ||
360 | + } | ||
361 | +} | ||
362 | + | ||
363 | +a.project-update.titled { | ||
364 | + position: relative; | ||
365 | + padding-left: 235px !important; | ||
366 | + | ||
367 | + .title-block { | ||
368 | + padding: 10px; | ||
369 | + width: 205px; | ||
370 | + position: absolute; | ||
371 | + left: 0; | ||
372 | + top: 0; | ||
373 | + } | ||
374 | +} | ||
375 | + | ||
376 | +.add_new { | ||
377 | + float: right; | ||
378 | + background: #A6B807; | ||
379 | + color: white; | ||
380 | + padding: 4px 10px; | ||
381 | + @include round-borders-all(4px); | ||
382 | + font-size:11px; | ||
383 | + margin: 10px 0; | ||
384 | +} |
@@ -0,0 +1,385 @@ | @@ -0,0 +1,385 @@ | ||
1 | +.git_url_wrapper { margin-right:50px } | ||
2 | + | ||
3 | +.sidebar aside a{ | ||
4 | + display: block; | ||
5 | + position: relative; | ||
6 | + padding: 15px 10px; | ||
7 | + margin: 10px 0 0 0; | ||
8 | + | ||
9 | + font-size:13px; | ||
10 | + font-weight:bold; | ||
11 | + color:#333; | ||
12 | + | ||
13 | + &.current { | ||
14 | + color: white; | ||
15 | + background: $active_bg_color; | ||
16 | + border: 1px solid $active_bd_color; | ||
17 | + border-radius:5px; | ||
18 | + | ||
19 | + -webkit-border-top-right-radius: 0; | ||
20 | + -webkit-border-bottom-right-radius: 0; | ||
21 | + -moz-border-radius-topright: 0px; | ||
22 | + -moz-border-radius-bottomright: 0px; | ||
23 | + border-top-right-radius: 0; | ||
24 | + border-bottom-right-radius: 0; | ||
25 | + margin-right: -1px; | ||
26 | + } | ||
27 | +} | ||
28 | + | ||
29 | +body table .commit a{color: #{$blue_link}} | ||
30 | +body table th, body table td{ border-bottom: 1px solid #DEE2E3;} | ||
31 | +body .fixed{position: fixed; } | ||
32 | + | ||
33 | +/** File stat **/ | ||
34 | +.file_stats { | ||
35 | + span { | ||
36 | + img { | ||
37 | + width:14px; | ||
38 | + float:left; | ||
39 | + margin-right: 6px; | ||
40 | + padding:2px 0; | ||
41 | + } | ||
42 | + } | ||
43 | +} | ||
44 | + | ||
45 | +.round-borders { | ||
46 | + @include round-borders-all(4px); | ||
47 | + padding: 4px 0px; | ||
48 | +} | ||
49 | + | ||
50 | +table.round-borders { | ||
51 | + float:left; | ||
52 | + text-align: left; | ||
53 | +} | ||
54 | + | ||
55 | + | ||
56 | + | ||
57 | +/** PROJECTS **/ | ||
58 | +input.ssh_project_url { | ||
59 | + padding:5px; | ||
60 | + margin:0px; | ||
61 | + float:right; | ||
62 | + width:400px; | ||
63 | + text-align:center; | ||
64 | +} | ||
65 | + | ||
66 | +#projects-list .project { | ||
67 | + height:50px; | ||
68 | +} | ||
69 | + | ||
70 | +#tree-slider .tree-item, | ||
71 | +#projects-list .project, | ||
72 | +#snippets-table .snippet, | ||
73 | +#issues-table .issue{ | ||
74 | + cursor:pointer; | ||
75 | +} | ||
76 | + | ||
77 | +.clear { | ||
78 | + clear: both; | ||
79 | +} | ||
80 | + | ||
81 | + | ||
82 | + | ||
83 | +#user_projects_limit{ | ||
84 | + width: 60px; | ||
85 | +} | ||
86 | + | ||
87 | +.handle:hover{ | ||
88 | + cursor: move; | ||
89 | +} | ||
90 | + | ||
91 | +.project-refs-form { | ||
92 | + span { | ||
93 | + background: none !important; | ||
94 | + position:static !important; | ||
95 | + width:auto !important; | ||
96 | + height: auto !important; | ||
97 | + } | ||
98 | +} | ||
99 | + | ||
100 | +.project-refs-select { | ||
101 | + width:200px; | ||
102 | +} | ||
103 | + | ||
104 | +.filter .left { margin-right:15px; } | ||
105 | + | ||
106 | +body table .commit { | ||
107 | + a.tree-commit-link { | ||
108 | + color:#444; | ||
109 | + &:hover { | ||
110 | + text-decoration:underline; | ||
111 | + } | ||
112 | + } | ||
113 | +} | ||
114 | + | ||
115 | +/** NEW PROJECT **/ | ||
116 | +.new-project-hodler { | ||
117 | + .icon span { background-position: -31px -70px; } | ||
118 | + td { border-bottom: 1px solid #DEE2E3; } | ||
119 | +} | ||
120 | + | ||
121 | +/** Feed entry **/ | ||
122 | +.commit, | ||
123 | +.snippet, | ||
124 | +.message { | ||
125 | + .title { | ||
126 | + color:#666; | ||
127 | + a { color:#666 !important; } | ||
128 | + p { margin-top:0px; } | ||
129 | + } | ||
130 | + .author { color: #999 } | ||
131 | +} | ||
132 | + | ||
133 | +/** JQuery UI **/ | ||
134 | +.ui-autocomplete { @include round-borders-all(5px); } | ||
135 | +.ui-menu-item { cursor: pointer } | ||
136 | +.ui-selectmenu{ | ||
137 | + @include round-borders-all(4px); | ||
138 | + margin-right:10px; | ||
139 | + font-size:1.5em; | ||
140 | + height:auto; | ||
141 | + font-weight:bold; | ||
142 | + .ui-selectmenu-status { | ||
143 | + padding:3px 10px; | ||
144 | + } | ||
145 | +} | ||
146 | + | ||
147 | +#holder { | ||
148 | + background:#FAFAFA; | ||
149 | + border: 1px solid #EEE; | ||
150 | + cursor: move; | ||
151 | + height: 70%; | ||
152 | + overflow: hidden; | ||
153 | +} | ||
154 | + | ||
155 | +/* Project Dashboard Page */ | ||
156 | +html, body { height: 100%; } | ||
157 | + | ||
158 | +.news-feed h2{float: left;} | ||
159 | +.news-feed .project-updates {margin-bottom: 20px; display: block; width: 100%;} | ||
160 | +.news-feed .project-updates .data{ padding: 0} | ||
161 | +.news-feed .project-updates a.project-update {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} | ||
162 | +.news-feed .project-updates a.project-update:last-child{border-bottom: 0} | ||
163 | +.news-feed .project-updates a.project-update img{float: left; margin-right: 10px;} | ||
164 | +.news-feed .project-updates a.project-update span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;} | ||
165 | +.news-feed .project-updates a.project-update span.update-title{margin-bottom: 10px} | ||
166 | +.news-feed .project-updates a.project-update span.update-author{color: #999; font-weight: normal; font-style: italic;} | ||
167 | +.news-feed .project-updates a.project-update span.update-author strong{font-weight: bold; font-style: normal;} | ||
168 | +/* eo Dashboard Page */ | ||
169 | + | ||
170 | + | ||
171 | +/** Update entry **/ | ||
172 | +.update-data { padding: 0 } | ||
173 | +.update-data { width:100%; } | ||
174 | +.update-data.ui-box .data { padding:0; } | ||
175 | +a.update-item {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;} | ||
176 | +a.update-item:last-child{border-bottom: 0} | ||
177 | +a.update-item img{float: left; margin-right: 10px;} | ||
178 | +a.update-item span.update-title, .dashboard-page .news-feed .project-updates li a span.update-author{display: block;} | ||
179 | +a.update-item span.update-title{margin-bottom: 10px} | ||
180 | +a.update-item span.update-author{color: #999; font-weight: normal; font-style: italic;} | ||
181 | +a.update-item span.update-author strong{font-weight: bold; font-style: normal;} | ||
182 | + | ||
183 | + | ||
184 | +body .team_member_new .span-6, .team_member_edit .span-6{ padding:10px 0; } | ||
185 | + | ||
186 | +body.projects-page input.text.git-url.project_list_url { width:165px; } | ||
187 | + | ||
188 | + | ||
189 | +body table.no-borders th { | ||
190 | + background:none; | ||
191 | + border-bottom:1px solid #CCC; | ||
192 | + color:#333; | ||
193 | +} | ||
194 | + | ||
195 | +body table.no-borders tr, | ||
196 | +body table.no-borders td{ | ||
197 | + border:none; | ||
198 | +} | ||
199 | + | ||
200 | +.ajax-tab-loading { | ||
201 | + padding:40px; | ||
202 | + display:none; | ||
203 | +} | ||
204 | + | ||
205 | +#tree-content-holder { float:left; width:100%; } | ||
206 | + | ||
207 | +#tree-readme-holder { | ||
208 | + float:left; | ||
209 | + width:100%; | ||
210 | + | ||
211 | + .readme { | ||
212 | + @include round-borders-all(4px); | ||
213 | + padding: 4px 15px; | ||
214 | + background:#F7F7F7; | ||
215 | + } | ||
216 | +} | ||
217 | + | ||
218 | + | ||
219 | + | ||
220 | +/* Commit Page */ | ||
221 | +.entity-info {float: right;} | ||
222 | +.entity-button{ | ||
223 | + background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.192, #fff), to(#f4f4f4)); | ||
224 | + background-image: -webkit-linear-gradient(#fff 19.2%, #f4f4f4); | ||
225 | + background-image: -moz-linear-gradient(#fff 19.2%, #f4f4f4); | ||
226 | + background-image: -o-linear-gradient(#fff 19.2%, #f4f4f4); | ||
227 | + box-shadow: 0 -1px 0 white inset; | ||
228 | + display: block; | ||
229 | + border: 1px solid #eee; | ||
230 | + border-radius: 5px; | ||
231 | + margin-bottom: 2px; | ||
232 | + position: relative; | ||
233 | + padding: 4px 10px; | ||
234 | + font-size: 11px; | ||
235 | + padding-right: 20px; | ||
236 | +} | ||
237 | + | ||
238 | +.entity-button i{ | ||
239 | + background: url('images.png') no-repeat -138px -27px; | ||
240 | + width: 6px; | ||
241 | + height: 9px; | ||
242 | + float: right; | ||
243 | + position: absolute; | ||
244 | + top: 6px; | ||
245 | + right: 5px; | ||
246 | +} | ||
247 | +.box-arrow{float: right; background: #E3E5EA; padding: 10px; border-radius: 5px; margin-top: 2px; text-shadow: none; color: #999; margin: 1.5em 0;} | ||
248 | + | ||
249 | +h4.dash-tabs { | ||
250 | + margin: 0; | ||
251 | + border-bottom: 1px solid #ccc; | ||
252 | + padding: 10px 10px; | ||
253 | + font-size: 11px; | ||
254 | + padding-left:20px; | ||
255 | + font-weight: bold; text-transform: uppercase; | ||
256 | + background: #F7F7F7; | ||
257 | + margin-bottom:20px; | ||
258 | + height:13px; | ||
259 | + | ||
260 | +} | ||
261 | + | ||
262 | +.dash-button { | ||
263 | + border-right: 1px solid #ddd; | ||
264 | + background:none; | ||
265 | + padding: 10px 15px; | ||
266 | + float:left; | ||
267 | + position:relative; | ||
268 | + top:-10px; | ||
269 | + left:0px; | ||
270 | + height:13px; | ||
271 | + | ||
272 | + &:first-child { | ||
273 | + border-left: 1px solid #ddd; | ||
274 | + } | ||
275 | + &.active { | ||
276 | + background: #eaeaea; | ||
277 | + } | ||
278 | +} | ||
279 | + | ||
280 | + | ||
281 | +.dashboard-loader { | ||
282 | + float:right; | ||
283 | + margin-right:30px; | ||
284 | + display:none; | ||
285 | +} | ||
286 | + | ||
287 | + | ||
288 | +.merge-tabs { | ||
289 | + margin: 0; | ||
290 | + border: 1px solid #ccc; | ||
291 | + padding: 5px; | ||
292 | + font-size: 12px; | ||
293 | + background: #F7F7F7; | ||
294 | + margin-bottom:20px; | ||
295 | + height:26px; | ||
296 | + | ||
297 | + -moz-border-radius: 4px; | ||
298 | + -webkit-border-radius: 4px; | ||
299 | + border-radius: 4px; | ||
300 | + | ||
301 | + .tab { | ||
302 | + font-weight: bold; | ||
303 | + border-right: 1px solid #ddd; | ||
304 | + background:none; | ||
305 | + padding: 10px; | ||
306 | + min-width:60px; | ||
307 | + float:left; | ||
308 | + position:relative; | ||
309 | + top:-5px; | ||
310 | + left:-5px; | ||
311 | + height:16px; | ||
312 | + padding-left:34px; | ||
313 | + | ||
314 | + span { | ||
315 | + width: 20px; | ||
316 | + height: 20px; | ||
317 | + display: inline-block; | ||
318 | + position: absolute; | ||
319 | + left: 8px; | ||
320 | + top: 8px; | ||
321 | + } | ||
322 | + | ||
323 | + &.active { | ||
324 | + background: #eaeaea; | ||
325 | + } | ||
326 | + } | ||
327 | +} | ||
328 | +.merge-tabs.repository .tab span{ background: url("images.png") no-repeat -38px -77px; } | ||
329 | +.activities-tab span { background: url("images.png") no-repeat -161px -1px; } | ||
330 | +.stat-tab span, | ||
331 | +.team-tab span, | ||
332 | +.snippets-tab span { background: url("images.png") no-repeat -38px -77px; } | ||
333 | +.files-tab span { background: url("images.png") no-repeat -112px -23px; } | ||
334 | + | ||
335 | +.merge-notes-tab span { background: url("images.png") no-repeat -161px -1px; } | ||
336 | +.merge-commits-tab span { background: url("images.png") no-repeat -86px 1px; } | ||
337 | +.merge-diffs-tab span { background: url("images.png") no-repeat -118px 1px; } | ||
338 | +.merge-tabs .dashboard-loader { padding:8px; } | ||
339 | + | ||
340 | +.user-mention { | ||
341 | + color: #2FA0BB; | ||
342 | + font-weight: bold; | ||
343 | +} | ||
344 | + | ||
345 | +.author { | ||
346 | + color: #999; | ||
347 | +} | ||
348 | + | ||
349 | + | ||
350 | + | ||
351 | + | ||
352 | +.dark_scheme_box { | ||
353 | + padding:20px 0; | ||
354 | + | ||
355 | + label { | ||
356 | + float:left; | ||
357 | + box-shadow: 0 0px 5px rgba(0,0,0,.3); | ||
358 | + | ||
359 | + img { | ||
360 | + } | ||
361 | + } | ||
362 | +} | ||
363 | + | ||
364 | +a.project-update.titled { | ||
365 | + position: relative; | ||
366 | + padding-left: 235px !important; | ||
367 | + | ||
368 | + .title-block { | ||
369 | + padding: 10px; | ||
370 | + width: 205px; | ||
371 | + position: absolute; | ||
372 | + left: 0; | ||
373 | + top: 0; | ||
374 | + } | ||
375 | +} | ||
376 | + | ||
377 | +.add_new { | ||
378 | + float: right; | ||
379 | + background: #A6B807; | ||
380 | + color: white; | ||
381 | + padding: 4px 10px; | ||
382 | + @include round-borders-all(4px); | ||
383 | + font-size:11px; | ||
384 | + margin: 10px 0; | ||
385 | +} |
app/views/dashboard/_issues_feed.html.haml
@@ -4,8 +4,8 @@ | @@ -4,8 +4,8 @@ | ||
4 | .data | 4 | .data |
5 | - @issues.each do |update| | 5 | - @issues.each do |update| |
6 | %a.project-update{:href => dashboard_feed_path(update.project, update)} | 6 | %a.project-update{:href => dashboard_feed_path(update.project, update)} |
7 | - %strong.issue-number= "##{update.id}" | ||
8 | - %span.update-title | 7 | + .avatar= image_tag gravatar_icon(update.assignee_email), :class => "avatar", :width => 32 |
8 | + %div | ||
9 | = truncate update.title, :length => 35 | 9 | = truncate update.title, :length => 35 |
10 | .right= truncate update.project.name | 10 | .right= truncate update.project.name |
11 | %span.update-author | 11 | %span.update-author |
@@ -15,9 +15,9 @@ | @@ -15,9 +15,9 @@ | ||
15 | ago | 15 | ago |
16 | .right | 16 | .right |
17 | - if update.critical | 17 | - if update.critical |
18 | - %span.tag.high critical | 18 | + %span.label.important critical |
19 | - if update.today? | 19 | - if update.today? |
20 | - %span.tag.today today | 20 | + %span.label.new today |
21 | 21 | ||
22 | - else | 22 | - else |
23 | %h2 | 23 | %h2 |
app/views/dashboard/_projects_feed.html.haml
@@ -2,19 +2,18 @@ | @@ -2,19 +2,18 @@ | ||
2 | - @active_projects.first(3).each do |project| | 2 | - @active_projects.first(3).each do |project| |
3 | .project-box.project-updates.ui-box.ui-box-small.ui-box-big | 3 | .project-box.project-updates.ui-box.ui-box-small.ui-box-big |
4 | = link_to project do | 4 | = link_to project do |
5 | - %h3= project.name | ||
6 | - .data | ||
7 | - - project.updates(3).each do |update| | ||
8 | - %a.project-update{:href => dashboard_feed_path(project, update)} | ||
9 | - = image_tag gravatar_icon(update.author_email), :class => "left", :width => 40 | ||
10 | - %span.update-title | ||
11 | - = dashboard_feed_title(update) | ||
12 | - %span.update-author | ||
13 | - %strong= update.author_name | ||
14 | - authored | ||
15 | - = time_ago_in_words(update.created_at) | ||
16 | - ago | ||
17 | - .right | ||
18 | - - klass = update.class.to_s.split("::").last.downcase | ||
19 | - %span.tag{ :class => klass }= klass | 5 | + %h4= project.name |
6 | + - project.updates(3).each do |update| | ||
7 | + %a.project-update{:href => dashboard_feed_path(project, update)} | ||
8 | + = image_tag gravatar_icon(update.author_email), :class => "avatar", :width => 32 | ||
9 | + %div | ||
10 | + = dashboard_feed_title(update) | ||
11 | + %span.update-author | ||
12 | + %strong= update.author_name | ||
13 | + authored | ||
14 | + = time_ago_in_words(update.created_at) | ||
15 | + ago | ||
16 | + .right | ||
17 | + - klass = update.class.to_s.split("::").last.downcase | ||
18 | + %span.tag{ :class => klass }= klass | ||
20 | 19 |
app/views/dashboard/_sidebar.html.haml
@@ -1,16 +0,0 @@ | @@ -1,16 +0,0 @@ | ||
1 | -%aside | ||
2 | - %h4 | ||
3 | - Your Projects | ||
4 | - - if current_user.can_create_project? | ||
5 | - = link_to new_project_path, :class => "btn small" do | ||
6 | - New Project | ||
7 | - %ol.project-list | ||
8 | - - @projects.each do |project| | ||
9 | - %li | ||
10 | - %a{:href => project_path(project)} | ||
11 | - -#%span.arrow → | ||
12 | - %span.project-name= project.name | ||
13 | - %span.time | ||
14 | - %strong Last activity: | ||
15 | - = project.last_activity_date_cached ? time_ago_in_words(project.last_activity_date_cached) + " ago" : "Never" | ||
16 | - |
app/views/dashboard/index.html.haml
app/views/dashboard/issues.html.haml
app/views/dashboard/merge_requests.html.haml
@@ -0,0 +1,10 @@ | @@ -0,0 +1,10 @@ | ||
1 | +.fixed | ||
2 | + %aside | ||
3 | + = link_to "Activities", dashboard_path, :class => "#{"active" if current_page?(dashboard_path) || current_page?(root_path) }" | ||
4 | + = link_to "Projects", projects_path, :class => "#{"active" if current_page?(projects_path)}" | ||
5 | + = link_to "Issues", dashboard_issues_path, :class => "#{"active" if current_page?(dashboard_issues_path)}", :id => "issues_slide" | ||
6 | + = link_to "Requests", dashboard_merge_requests_path, :class => "#{"active" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" | ||
7 | + - if current_user.is_admin? | ||
8 | + = link_to admin_root_path, :class => "admin", :title => "Admin" do | ||
9 | + Admin | ||
10 | + = link_to "Help", help_path, :class => "#{"active" if controller.controller_name == "help"}" |
app/views/layouts/_head_panel.html.haml
@@ -16,18 +16,6 @@ | @@ -16,18 +16,6 @@ | ||
16 | = render :partial => "projects/refs", :locals => { :destination => controller.controller_name == "commits" ? "commits" : "tree" } | 16 | = render :partial => "projects/refs", :locals => { :destination => controller.controller_name == "commits" ? "commits" : "tree" } |
17 | = yield :rss_icon | 17 | = yield :rss_icon |
18 | 18 | ||
19 | - - else | ||
20 | - .dashboard_links | ||
21 | - = link_to "Activities", dashboard_path, :class => "#{"active" if current_page?(dashboard_path) || current_page?(root_path) }" | ||
22 | - = link_to "Projects", projects_path, :class => "#{"active" if current_page?(projects_path)}" | ||
23 | - = link_to "Issues", dashboard_issues_path, :class => "#{"active" if current_page?(dashboard_issues_path)}", :id => "issues_slide" | ||
24 | - = link_to "Requests", dashboard_merge_requests_path, :class => "#{"active" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" | ||
25 | - - if current_user.is_admin? | ||
26 | - = link_to admin_root_path, :class => "admin", :title => "Admin" do | ||
27 | - Admin | ||
28 | - = link_to "Help", help_path, :class => "#{"active" if controller.controller_name == "help"}" | ||
29 | - .search | ||
30 | - = text_field_tag "search", nil, :placeholder => "Search", :class => "search-input" | ||
31 | 19 | ||
32 | .account-box | 20 | .account-box |
33 | = link_to profile_path, :class => "pic" do | 21 | = link_to profile_path, :class => "pic" do |
@@ -36,16 +24,3 @@ | @@ -36,16 +24,3 @@ | ||
36 | = link_to profile_path, :class => "username" do | 24 | = link_to profile_path, :class => "username" do |
37 | My profile | 25 | My profile |
38 | = link_to 'Logout', destroy_user_session_path, :class => "logout", :method => :delete | 26 | = link_to 'Logout', destroy_user_session_path, :class => "logout", :method => :delete |
39 | - - if current_user | ||
40 | - = javascript_tag do | ||
41 | - $(function(){ | ||
42 | - $("#search").autocomplete({ | ||
43 | - source: #{raw search_autocomplete_source}, | ||
44 | - select: function(event, ui) { location.href = ui.item.url } | ||
45 | - }); | ||
46 | - }); | ||
47 | - | ||
48 | - -#- if current_user.require_ssh_key? | ||
49 | - #no_ssh_key_defined.big-message.error | ||
50 | - %p | ||
51 | - No SSH Key is defined. You won't be able to use any Git command!. Click #{link_to( 'here', keys_path )} to add one! |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +%aside.projects | ||
2 | + - if current_user.can_create_project? | ||
3 | + .alert-message.block-message.info | ||
4 | + You can create at least | ||
5 | + = current_user.projects_limit | ||
6 | + projects. Click on button to add a new one | ||
7 | + = link_to new_project_path, :class => "btn small" do | ||
8 | + New Project | ||
9 | + | ||
10 | + %h4 | ||
11 | + Recent Projects: | ||
12 | + %ul | ||
13 | + - current_user.projects.order("id DESC").limit(5).each do |project| | ||
14 | + %li | ||
15 | + = link_to project_path(project) do | ||
16 | + = project.name | ||
17 | + | ||
18 | + %h4 | ||
19 | + Recent Issues: | ||
20 | + %ul | ||
21 | + - current_user.assigned_issues.order("id DESC").limit(5).each do |issue| | ||
22 | + %li | ||
23 | + = link_to project_issue_path(issue.project, issue) do | ||
24 | + = truncate issue.title | ||
25 | + | ||
26 | + | ||
27 | + %h4 | ||
28 | + Recent Requests: | ||
29 | + %ul | ||
30 | + - current_user.assigned_merge_requests.order("id DESC").limit(5).each do |issue| | ||
31 | + %li | ||
32 | + = link_to project_merge_request_path(issue.project, issue) do | ||
33 | + = truncate issue.title | ||
34 | + | ||
35 | + |
app/views/layouts/admin.html.haml
@@ -11,19 +11,17 @@ | @@ -11,19 +11,17 @@ | ||
11 | = javascript_tag do | 11 | = javascript_tag do |
12 | REQ_URI = "#{request.env["REQUEST_URI"]}"; | 12 | REQ_URI = "#{request.env["REQUEST_URI"]}"; |
13 | REQ_REFFER = "#{request.env["HTTP_REFERER"]}"; | 13 | REQ_REFFER = "#{request.env["HTTP_REFERER"]}"; |
14 | - %body{ :class => body_class('project-page'), :id => yield(:boyd_id)} | 14 | + %body.admin |
15 | = render :partial => "layouts/flash" | 15 | = render :partial => "layouts/flash" |
16 | - #container | ||
17 | - = render :partial => "layouts/head_panel" | ||
18 | - .project-container | ||
19 | - .project-sidebar | ||
20 | - .fixed | ||
21 | - %aside | ||
22 | - = link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil | ||
23 | - = link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil | ||
24 | - = link_to "Teams", admin_team_members_path, :class => controller.controller_name == "team_members" ? "current" : nil | ||
25 | - = link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil | ||
26 | - = link_to "Resque", "/info/resque" | 16 | + = render :partial => "layouts/head_panel" |
17 | + .container-fluid | ||
18 | + .sidebar | ||
19 | + .fixed | ||
20 | + %aside | ||
21 | + = link_to "Users", admin_users_path, :class => controller.controller_name == "users" ? "current" : nil | ||
22 | + = link_to "Projects", admin_projects_path, :class => controller.controller_name == "projects" ? "current" : nil | ||
23 | + = link_to "Teams", admin_team_members_path, :class => controller.controller_name == "team_members" ? "current" : nil | ||
24 | + = link_to "Emails", admin_emails_path, :class => controller.controller_name == "mailer" ? "current" : nil | ||
25 | + = link_to "Resque", "/info/resque" | ||
27 | 26 | ||
28 | - .project-content | ||
29 | - = yield | 27 | + .content= yield |
app/views/layouts/application.html.haml
@@ -12,5 +12,9 @@ | @@ -12,5 +12,9 @@ | ||
12 | = render :partial => "layouts/flash" | 12 | = render :partial => "layouts/flash" |
13 | = render :partial => "layouts/head_panel" | 13 | = render :partial => "layouts/head_panel" |
14 | .container-fluid | 14 | .container-fluid |
15 | - .sidebar= render :partial => "dashboard/sidebar" | ||
16 | - .content= yield | 15 | + .sidebar |
16 | + = render :partial => "layouts/app_side" | ||
17 | + .content | ||
18 | + .row | ||
19 | + .span10= yield | ||
20 | + .span4= render "layouts/projects_side" |
app/views/projects/_form.html.haml
1 | = form_for(@project, :remote => true) do |f| | 1 | = form_for(@project, :remote => true) do |f| |
2 | - %div.form_content | ||
3 | - - unless @project.new_record? | ||
4 | - %h2.icon | ||
5 | - %span | ||
6 | - = @project.name | ||
7 | - .clear | ||
8 | - - if @project.errors.any? | ||
9 | - %ul.errors_holder | 2 | + - if @project.errors.any? |
3 | + .alert-message.block-message.error | ||
4 | + %ul | ||
10 | - @project.errors.full_messages.each do |msg| | 5 | - @project.errors.full_messages.each do |msg| |
11 | %li= msg | 6 | %li= msg |
12 | - %table | ||
13 | - %tr | ||
14 | - %td= f.label :name | ||
15 | - %td= f.text_field :name, :placeholder => "Example Project" | ||
16 | - %tr | ||
17 | - %td | ||
18 | - .left= f.label :path | ||
19 | - %cite.right= "git@#{GIT_HOST["host"]}:" | ||
20 | - %td | ||
21 | - = f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record? | ||
22 | - %tr | ||
23 | - %td | ||
24 | - .left= f.label :code | ||
25 | - %cite.right= "http://#{GIT_HOST["host"]}/" | ||
26 | - %td= f.text_field :code, :placeholder => "example" | 7 | + .clearfix |
8 | + = f.label :name | ||
9 | + .input= f.text_field :name, :placeholder => "Example Project" | ||
10 | + .clearfix | ||
11 | + = f.label :path do | ||
12 | + Path | ||
13 | + %cite= "git@#{GIT_HOST["host"]}:" | ||
14 | + .input= f.text_field :path, :placeholder => "example_project", :disabled => !@project.new_record? | ||
15 | + .clearfix | ||
16 | + = f.label :code do | ||
17 | + Code | ||
18 | + %cite= "http://#{GIT_HOST["host"]}/" | ||
19 | + .input= f.text_field :code, :placeholder => "example" | ||
27 | 20 | ||
28 | - - unless @project.new_record? || @project.heads.empty? | ||
29 | - %tr | ||
30 | - %td= f.label :default_branch, "Default Branch" | ||
31 | - %td= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:300px;") | 21 | + - unless @project.new_record? || @project.heads.empty? |
22 | + .clearfix | ||
23 | + = f.label :default_branch, "Default Branch" | ||
24 | + .input= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:300px;") | ||
32 | 25 | ||
33 | - -#%tr | ||
34 | - %td= f.label :tag_list | ||
35 | - %td= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field | ||
36 | - %tr | ||
37 | - %td= f.label :description | ||
38 | - %td= f.text_area :description, :placeholder => "project description", :style => "height:50px" | 26 | + |
27 | + .clearfix | ||
28 | + = f.label :description | ||
29 | + .input= f.text_area :description, :placeholder => "project description", :style => "height:50px" | ||
39 | 30 | ||
40 | - %br | ||
41 | - %div{ :class => "ajax_loader", :style => "display:none;height:200px;"} | ||
42 | - %center | ||
43 | - = image_tag "ajax-loader.gif", :class => "append-bottom" | ||
44 | - - if @project.new_record? | ||
45 | - %h3.prepend-top Creating project & repository. Please wait for few minutes | ||
46 | - - else | ||
47 | - %h3.prepend-top Updating project & repository. Please wait for few minutes | 31 | + %br |
48 | 32 | ||
49 | .merge-tabs | 33 | .merge-tabs |
50 | = f.submit 'Save', :class => "btn primary" | 34 | = f.submit 'Save', :class => "btn primary" |
51 | | 35 | |
52 | - unless @project.new_record? | 36 | - unless @project.new_record? |
53 | .right | 37 | .right |
54 | - = link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "red-button" | ||
55 | - | ||
56 | - | ||
57 | -:javascript | ||
58 | - $(function(){ | ||
59 | - $('.new_project, .edit_project').bind('ajax:before', function() { | ||
60 | - $(this).find(".form_content").hide(); | ||
61 | - $('.ajax_loader').show(); | ||
62 | - }); | ||
63 | - | ||
64 | - taggifyForm(); | ||
65 | - | ||
66 | - $('form #project_default_branch').chosen(); | ||
67 | - }) | 38 | + = link_to 'Remove', @project, :confirm => 'Are you sure?', :method => :delete, :class => "btn" |
app/views/projects/_tile.html.haml
1 | -- @projects.in_groups_of(3, false) do |projects| | ||
2 | - - projects.each_with_index do |project, i| | ||
3 | - %div.grid_1.projects_selector | ||
4 | - %div{ :class => "project-box ui-box ui-box-big" } | 1 | +- @projects.in_groups_of(2, false) do |projects| |
2 | + .row | ||
3 | + - projects.each_with_index do |project, i| | ||
4 | + .span4.well | ||
5 | = link_to project_path(project) do | 5 | = link_to project_path(project) do |
6 | %h3= truncate(project.name, :length => 20) | 6 | %h3= truncate(project.name, :length => 20) |
7 | - .data | ||
8 | - %p.title.repository.git_url_wrapper | ||
9 | - %span Repository: | ||
10 | - %input{ :value => project.url_to_repo, :class => ['git-url', 'one_click_select', 'text', 'project_list_url'], :readonly => 'readonly' } | ||
11 | - %p.title.activity | ||
12 | - %span Last Activity: | ||
13 | - - if project.last_activity_date_cached | ||
14 | - = project.last_activity_date_cached.stamp("Aug 24, 2011") | ||
15 | - - else | ||
16 | - Never | 7 | + %p.title.repository.git_url_wrapper |
8 | + %input{ :value => project.url_to_repo, :class => ['git-url', 'one_click_select', 'text', 'project_list_url'], :readonly => 'readonly' } | ||
17 | 9 | ||
18 | - .buttons | ||
19 | - %a.browse-code.button.yellow{:href => tree_project_ref_path(project, project.root_ref)} Browse code | ||
20 | - %a.commits.button.green{:href => project_commits_path(project)} Commits | 10 | + %a.btn{:href => tree_project_ref_path(project, project.root_ref)} Browse code |
11 | + %a.btn{:href => project_commits_path(project)} Commits |
app/views/projects/create.js.haml
app/views/projects/index.html.haml
1 | -- content_for(:body_class, "projects-page") | ||
2 | -.container_4 | ||
3 | - .grid_4 | ||
4 | - - if current_user.can_create_project? | ||
5 | - %a.grey-button.right{:href => new_project_path} Create new project | ||
6 | - %h2.icon | ||
7 | - %span | ||
8 | - Projects | 1 | +%h3 Projects |
2 | +%hr | ||
3 | +- unless @projects.empty? | ||
4 | + %div.tile= render "tile" | ||
9 | 5 | ||
10 | - %div.clear | ||
11 | - - unless @projects.empty? | ||
12 | - %div{:class => "tile"} | ||
13 | - = render "tile" | 6 | + -# If projects requris paging |
7 | + -# We add ajax loader & init script | ||
8 | + - if @projects.count == @limit | ||
9 | + .loading{ :style => "display:none;"} | ||
10 | + %center= image_tag "ajax-loader.gif" | ||
14 | 11 | ||
15 | - -# If projects requris paging | ||
16 | - -# We add ajax loader & init script | ||
17 | - - if @projects.count == @limit | ||
18 | - .clear | ||
19 | - .loading{ :style => "display:none;"} | ||
20 | - %center= image_tag "ajax-loader.gif" | ||
21 | - | ||
22 | - :javascript | ||
23 | - $(function(){ | ||
24 | - ProjectsList.init(16); | ||
25 | - }); | ||
26 | - - else | ||
27 | - %center.prepend-top | ||
28 | - %h2 | ||
29 | - %cite Nothing here | 12 | + :javascript |
13 | + $(function(){ | ||
14 | + ProjectsList.init(16); | ||
15 | + }); | ||
16 | +- else | ||
17 | + %h2 Nothing here |
app/views/projects/new.html.haml
1 | -- content_for(:body_class, "new-project-page") | ||
2 | -- content_for(:page_title) do | ||
3 | - .new-project-hodler | ||
4 | - .container | ||
5 | - %h2.icon | ||
6 | - %span | ||
7 | - New Project | ||
8 | - | ||
9 | - %div.clear | ||
10 | - = render 'form' | 1 | +%h3 New Project |
2 | +%hr | ||
3 | += render 'form' | ||
4 | +%div{ :class => "ajax_loader", :style => "display:none;height:200px;"} | ||
5 | + %center | ||
6 | + = image_tag "ajax-loader.gif", :class => "append-bottom" | ||
7 | + %h3.prepend-top Creating project & repository. Please wait for few minutes | ||
11 | 8 | ||
12 | :javascript | 9 | :javascript |
13 | $(function(){ | 10 | $(function(){ |
14 | - $("#project_name").change(function(){ | 11 | + $("#project_name").live("change", function(){ |
15 | var slug = slugify($(this).val()); | 12 | var slug = slugify($(this).val()); |
16 | $("#project_code").val(slug); | 13 | $("#project_code").val(slug); |
17 | $("#project_path").val(slug); | 14 | $("#project_path").val(slug); |
@@ -21,3 +18,11 @@ | @@ -21,3 +18,11 @@ | ||
21 | function slugify(text) { | 18 | function slugify(text) { |
22 | return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase(); | 19 | return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase(); |
23 | } | 20 | } |
21 | + | ||
22 | + $(function(){ | ||
23 | + $('.new_project').live('ajax:before', function() { | ||
24 | + $(this).hide(); | ||
25 | + $('.ajax_loader').show(); | ||
26 | + }); | ||
27 | + $('form #project_default_branch').chosen(); | ||
28 | + }) |
app/views/projects/update.js.haml
spec/requests/merge_requests_spec.rb
@@ -42,7 +42,7 @@ describe "MergeRequests" do | @@ -42,7 +42,7 @@ describe "MergeRequests" do | ||
42 | 42 | ||
43 | it { should have_content(@merge_request.title[0..10]) } | 43 | it { should have_content(@merge_request.title[0..10]) } |
44 | it "Show page should inform user that merge request closed" do | 44 | it "Show page should inform user that merge request closed" do |
45 | - within ".merge-tabs" do | 45 | + within ".tabs" do |
46 | page.should have_content "Reopen" | 46 | page.should have_content "Reopen" |
47 | end | 47 | end |
48 | end | 48 | end |