Commit 796784c7c8d385b72cd1e4b5a8f0885d630586fb
Exists in
master
and in
4 other branches
Merge branch 'events' of dev.gitlabhq.com:gitlabhq into events
Showing
23 changed files
with
471 additions
and
47 deletions
Show diff stats
Gemfile
@@ -58,5 +58,5 @@ end | @@ -58,5 +58,5 @@ end | ||
58 | group :test do | 58 | group :test do |
59 | gem "turn", :require => false | 59 | gem "turn", :require => false |
60 | gem "simplecov", :require => false | 60 | gem "simplecov", :require => false |
61 | - gem "shoulda", "~> 3.0.0.beta2" | 61 | + gem "shoulda", "3.0.0" |
62 | end | 62 | end |
Gemfile.lock
@@ -232,9 +232,9 @@ GEM | @@ -232,9 +232,9 @@ GEM | ||
232 | ffi (~> 1.0.9) | 232 | ffi (~> 1.0.9) |
233 | multi_json (~> 1.0.4) | 233 | multi_json (~> 1.0.4) |
234 | rubyzip | 234 | rubyzip |
235 | - shoulda (3.0.0.beta2) | ||
236 | - shoulda-context (~> 1.0.0.beta1) | ||
237 | - shoulda-matchers (~> 1.0.0.beta1) | 235 | + shoulda (3.0.0) |
236 | + shoulda-context (~> 1.0.0) | ||
237 | + shoulda-matchers (~> 1.0.0) | ||
238 | shoulda-context (1.0.0) | 238 | shoulda-context (1.0.0) |
239 | shoulda-matchers (1.0.0) | 239 | shoulda-matchers (1.0.0) |
240 | simplecov (0.5.4) | 240 | simplecov (0.5.4) |
@@ -322,7 +322,7 @@ DEPENDENCIES | @@ -322,7 +322,7 @@ DEPENDENCIES | ||
322 | rspec-rails | 322 | rspec-rails |
323 | sass-rails (= 3.2.3) | 323 | sass-rails (= 3.2.3) |
324 | seed-fu | 324 | seed-fu |
325 | - shoulda (~> 3.0.0.beta2) | 325 | + shoulda (= 3.0.0) |
326 | simplecov | 326 | simplecov |
327 | six | 327 | six |
328 | sqlite3 | 328 | sqlite3 |
app/assets/images/Gear-UI.PNG
940 Bytes
556 Bytes
app/assets/stylesheets/common.scss
@@ -40,6 +40,7 @@ a { | @@ -40,6 +40,7 @@ a { | ||
40 | .cred { color:#D12F19; } | 40 | .cred { color:#D12F19; } |
41 | .cgreen { color:#44aa22; } | 41 | .cgreen { color:#44aa22; } |
42 | .cblack { color:#111; } | 42 | .cblack { color:#111; } |
43 | +.cwhite { color:#fff !important } | ||
43 | 44 | ||
44 | /** COMMON STYLES **/ | 45 | /** COMMON STYLES **/ |
45 | .left { | 46 | .left { |
@@ -75,6 +76,10 @@ a { | @@ -75,6 +76,10 @@ a { | ||
75 | .no-borders { | 76 | .no-borders { |
76 | border:none; | 77 | border:none; |
77 | } | 78 | } |
79 | +table.no-borders { | ||
80 | + border:none; | ||
81 | + tr, td { border:none } | ||
82 | +} | ||
78 | .no-padding { | 83 | .no-padding { |
79 | padding:0 !important; | 84 | padding:0 !important; |
80 | } | 85 | } |
@@ -433,7 +438,7 @@ input.git_clone_url { | @@ -433,7 +438,7 @@ input.git_clone_url { | ||
433 | } | 438 | } |
434 | 439 | ||
435 | .project_list_url { | 440 | .project_list_url { |
436 | - width:270px; | 441 | + width:250px; |
437 | background:#fff !important; | 442 | background:#fff !important; |
438 | } | 443 | } |
439 | 444 | ||
@@ -441,7 +446,7 @@ input.git_clone_url { | @@ -441,7 +446,7 @@ input.git_clone_url { | ||
441 | @include shade; | 446 | @include shade; |
442 | @include round-borders-all(4px); | 447 | @include round-borders-all(4px); |
443 | margin-bottom:20px; | 448 | margin-bottom:20px; |
444 | - width:338px; | 449 | + width:298px; |
445 | float:left; | 450 | float:left; |
446 | margin-left:20px; | 451 | margin-left:20px; |
447 | border: 1px solid #DDD; | 452 | border: 1px solid #DDD; |
@@ -600,3 +605,24 @@ p.time { | @@ -600,3 +605,24 @@ p.time { | ||
600 | font-size: 90%; | 605 | font-size: 90%; |
601 | margin: 30px 3px 3px 2px; | 606 | margin: 30px 3px 3px 2px; |
602 | } | 607 | } |
608 | + | ||
609 | + | ||
610 | +.dashboard_category { | ||
611 | + margin-bottom:30px; | ||
612 | + | ||
613 | + .dashboard_block { | ||
614 | + width:700px; | ||
615 | + margin:auto; | ||
616 | + | ||
617 | + .wll { | ||
618 | + border:none; | ||
619 | + &:hover { | ||
620 | + background:none; | ||
621 | + } | ||
622 | + | ||
623 | + h4 { | ||
624 | + color:#666; | ||
625 | + } | ||
626 | + } | ||
627 | + } | ||
628 | +} |
app/assets/stylesheets/main.scss
@@ -71,6 +71,11 @@ $hover: #FDF5D9; | @@ -71,6 +71,11 @@ $hover: #FDF5D9; | ||
71 | @import "ui_basic.scss"; | 71 | @import "ui_basic.scss"; |
72 | 72 | ||
73 | /** | 73 | /** |
74 | + * UI mars theme | ||
75 | + */ | ||
76 | +@import "ui_mars.scss"; | ||
77 | + | ||
78 | +/** | ||
74 | * Most of application styles placed here. | 79 | * Most of application styles placed here. |
75 | * This file represent common UI that should not be changed between themes | 80 | * This file represent common UI that should not be changed between themes |
76 | * or project restyling like form width or user avatar class or commit title | 81 | * or project restyling like form width or user avatar class or commit title |
app/assets/stylesheets/ui_basic.scss
@@ -57,11 +57,30 @@ | @@ -57,11 +57,30 @@ | ||
57 | text-shadow: 0 1px 1px #FFF; | 57 | text-shadow: 0 1px 1px #FFF; |
58 | } | 58 | } |
59 | 59 | ||
60 | - img { | ||
61 | - float: left; | ||
62 | - position: relative; | ||
63 | - top: -9px; | ||
64 | - width:46px; | 60 | + &.home { |
61 | + img { | ||
62 | + float: left; | ||
63 | + position: relative; | ||
64 | + top: -9px; | ||
65 | + width:46px; | ||
66 | + | ||
67 | + } | ||
68 | + } | ||
69 | + &.admin_link { | ||
70 | + width:16px; | ||
71 | + height:16px; | ||
72 | + padding: 5px; | ||
73 | + border: 1px solid #ccc; | ||
74 | + border-radius: 4px; | ||
75 | + margin: 0px; | ||
76 | + background: #eee; | ||
77 | + margin-left:20px; | ||
78 | + &:hover { | ||
79 | + background:#f7f7f7; | ||
80 | + } | ||
81 | + img { | ||
82 | + width:16px; | ||
83 | + } | ||
65 | } | 84 | } |
66 | } | 85 | } |
67 | } | 86 | } |
@@ -0,0 +1,316 @@ | @@ -0,0 +1,316 @@ | ||
1 | +/** | ||
2 | + * This file represent some UI that can be changed | ||
3 | + * during web app restyle or theme select. | ||
4 | + * | ||
5 | + * Next items should be placed there | ||
6 | + * - link colors | ||
7 | + * - header styles | ||
8 | + * - main menu styles | ||
9 | + * | ||
10 | + */ | ||
11 | +.ui_mars { | ||
12 | + | ||
13 | + /* | ||
14 | + * Common styles | ||
15 | + * | ||
16 | + */ | ||
17 | + a { | ||
18 | + color: $link_color; | ||
19 | + &:hover { | ||
20 | + text-decoration:none; | ||
21 | + color: $style_color; | ||
22 | + } | ||
23 | + } | ||
24 | + | ||
25 | + | ||
26 | + /* | ||
27 | + * Application Header | ||
28 | + * | ||
29 | + */ | ||
30 | + header { | ||
31 | + width:100%; | ||
32 | + padding:0; | ||
33 | + margin:0; | ||
34 | + top:1px; | ||
35 | + left:0; | ||
36 | + | ||
37 | + | ||
38 | + background: #474D57 url('bg-header.png') repeat-x bottom; | ||
39 | + | ||
40 | + z-index:10; | ||
41 | + height:60px; | ||
42 | + | ||
43 | + .search-input { | ||
44 | + background:#474D57; | ||
45 | + border-color:#888; | ||
46 | + } | ||
47 | + .app_logo { | ||
48 | + width:230px; | ||
49 | + float:left; | ||
50 | + position:relative; | ||
51 | + top:-4px; | ||
52 | + | ||
53 | + a { | ||
54 | + float:left; | ||
55 | + | ||
56 | + h1 { | ||
57 | + | ||
58 | + background: url('images.png') no-repeat -3px -7px; | ||
59 | + width: 65px; | ||
60 | + height: 26px; | ||
61 | + margin: 5px 0; | ||
62 | + padding: 0; | ||
63 | + display: block; | ||
64 | + float: left; | ||
65 | + text-indent: -1000em; | ||
66 | + | ||
67 | + } | ||
68 | + | ||
69 | + &.home { | ||
70 | + img { | ||
71 | + display:none | ||
72 | + | ||
73 | + } | ||
74 | + } | ||
75 | + &.admin_link { | ||
76 | + width:16px; | ||
77 | + height:16px; | ||
78 | + padding: 5px; | ||
79 | + border: 1px solid #888; | ||
80 | + border-radius: 4px; | ||
81 | + margin: 0px; | ||
82 | + background:#474D57 ; | ||
83 | + margin-left:20px; | ||
84 | + margin-top:4px; | ||
85 | + &:hover { | ||
86 | + background:#f7f7f7; | ||
87 | + } | ||
88 | + img { | ||
89 | + width:16px; | ||
90 | + } | ||
91 | + } | ||
92 | + } | ||
93 | + } | ||
94 | + .wrapper { | ||
95 | + margin:auto; | ||
96 | + min-width:$min_app_width; | ||
97 | + max-width:$max_app_width; | ||
98 | + position:relative; | ||
99 | + padding:15px 0; | ||
100 | + | ||
101 | + .top_panel_content { | ||
102 | + margin:0 $app_padding; | ||
103 | + } | ||
104 | + } | ||
105 | + | ||
106 | + .project_name { | ||
107 | + float:left; | ||
108 | + width:400px; | ||
109 | + margin:0; | ||
110 | + margin-right:30px; | ||
111 | + font-size:20px; | ||
112 | + line-height:34px; | ||
113 | + font-weight:bold; | ||
114 | + color:#fff; | ||
115 | + text-shadow: 0 1px 1px #111; | ||
116 | + } | ||
117 | + | ||
118 | + .git_url_wrapper { | ||
119 | + padding:0px; | ||
120 | + margin:0px; | ||
121 | + float:left; | ||
122 | + | ||
123 | + .git-url { | ||
124 | + padding:0px; | ||
125 | + margin:0px; | ||
126 | + font-size: 12px; | ||
127 | + margin-right:10px; | ||
128 | + border-radius: 4px; | ||
129 | + -moz-border-radius: 4px; | ||
130 | + color: #666; | ||
131 | + border: 1px solid #AAA; | ||
132 | + padding: 0 10px 0 30px; | ||
133 | + background: transparent url('images.png') no-repeat 8px -42px; | ||
134 | + width: 260px; | ||
135 | + height:26px; | ||
136 | + } | ||
137 | + } | ||
138 | + | ||
139 | + /* Account box */ | ||
140 | + .account-box { | ||
141 | + position: absolute; | ||
142 | + right: 0; | ||
143 | + top: 13px; | ||
144 | + z-index: 10000; | ||
145 | + width: 128px; | ||
146 | + font-size: 11px; | ||
147 | + float: right; | ||
148 | + display: block; | ||
149 | + cursor: pointer; | ||
150 | + img { | ||
151 | + border-radius: 4px; | ||
152 | + right: 20px; | ||
153 | + position: absolute; | ||
154 | + width: 33px; | ||
155 | + height: 33px; | ||
156 | + display: block; | ||
157 | + top: 0; | ||
158 | + &:after { | ||
159 | + content: " "; | ||
160 | + display: block; | ||
161 | + position: absolute; | ||
162 | + top: 0; | ||
163 | + right: 0; | ||
164 | + left: 0; | ||
165 | + bottom: 0; | ||
166 | + float: right; | ||
167 | + border-radius: 5px; | ||
168 | + border: 1px solid rgba(255, 255, 255, 0.1); | ||
169 | + border-bottom: 0; | ||
170 | + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255, 255, 255, 0.15)), to(rgba(0, 0, 0, 0.25))), -webkit-gradient(linear, left top, right bottom, color-stop(0, rgba(255, 255, 255, 0)), color-stop(0.5, rgba(255, 255, 255, 0.1)), color-stop(0.501, rgba(255, 255, 255, 0)), color-stop(1, rgba(255, 255, 255, 0))); | ||
171 | + background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.25)), -moz-linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0)); | ||
172 | + background: linear-gradient(top, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.25)), linear-gradient(left top, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0)); | ||
173 | + -webkit-background-origin: border-box; | ||
174 | + -moz-background-origin: border; | ||
175 | + background-origin: border-box; } } } | ||
176 | + | ||
177 | + .account-box { | ||
178 | + &.hover { | ||
179 | + height: 138px; } | ||
180 | + &:hover > .account-links { | ||
181 | + display: block; } } | ||
182 | + | ||
183 | + .account-links { | ||
184 | + background: #79C3E0; | ||
185 | + display: none; | ||
186 | + border-radius: 5px; | ||
187 | + width: 100px; | ||
188 | + margin-top: 0; | ||
189 | + float: right; | ||
190 | + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); | ||
191 | + position: relative; | ||
192 | + &:before { | ||
193 | + content: "."; | ||
194 | + width: 0; | ||
195 | + height: 0; | ||
196 | + position: absolute; | ||
197 | + border: 5px solid transparent; | ||
198 | + border-color: rgba(255, 255, 255, 0); | ||
199 | + border-bottom-color: #333; | ||
200 | + text-indent: -9999px; | ||
201 | + top: -10px; | ||
202 | + line-height: 0; | ||
203 | + right: 10px; | ||
204 | + z-index: 10; } | ||
205 | + background: #333; | ||
206 | + display: none; | ||
207 | + z-index: 100000; | ||
208 | + border-radius: 5px; | ||
209 | + width: 100px; | ||
210 | + position: absolute; | ||
211 | + right: 20px; | ||
212 | + top: 46px; | ||
213 | + margin-top: 0; | ||
214 | + float: right; | ||
215 | + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); | ||
216 | + a { | ||
217 | + color: #EEE; | ||
218 | + padding: 6px 10px; | ||
219 | + display: block; | ||
220 | + text-shadow: none; | ||
221 | + border-bottom: 1px solid #555; | ||
222 | + &:hover { | ||
223 | + background: #444; } } } | ||
224 | + | ||
225 | + .account-box.hover .arrow-up { | ||
226 | + top: 41px; | ||
227 | + right: 6px; | ||
228 | + position: absolute; } | ||
229 | + | ||
230 | + .account-links a { | ||
231 | + &:first-child { | ||
232 | + -webkit-border-top-left-radius: 5px; | ||
233 | + -webkit-border-top-right-radius: 5px; | ||
234 | + -moz-border-radius-topleft: 5px; | ||
235 | + -moz-border-radius-topright: 5px; | ||
236 | + border-top-left-radius: 5px; | ||
237 | + border-top-right-radius: 5px; } | ||
238 | + &:last-child { | ||
239 | + -webkit-border-bottom-right-radius: 5px; | ||
240 | + -webkit-border-bottom-left-radius: 5px; | ||
241 | + -moz-border-radius-bottomright: 5px; | ||
242 | + -moz-border-radius-bottomleft: 5px; | ||
243 | + border-bottom-right-radius: 5px; | ||
244 | + border-bottom-left-radius: 5px; | ||
245 | + border-bottom: 0; } } | ||
246 | + | ||
247 | + } | ||
248 | + /* | ||
249 | + * End of Application Header | ||
250 | + * | ||
251 | + */ | ||
252 | + | ||
253 | + /* | ||
254 | + * Main Menu of Application | ||
255 | + * | ||
256 | + */ | ||
257 | + nav.main_menu { | ||
258 | + overflow:hidden; | ||
259 | + border-radius: 4px; | ||
260 | + margin: auto; | ||
261 | + margin:30px $app_padding; | ||
262 | + background:#eee; | ||
263 | + border:1px solid #ccc; | ||
264 | + height:38px; | ||
265 | + background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf)); | ||
266 | + background-image: -webkit-linear-gradient(#eee 6.6%, #dfdfdf); | ||
267 | + background-image: -moz-linear-gradient(#eee 6.6%, #dfdfdf); | ||
268 | + background-image: -o-linear-gradient(#eee 6.6%, #dfdfdf); | ||
269 | + @include shade; | ||
270 | + .count { | ||
271 | + color:#aaa; | ||
272 | + margin-left:3px; | ||
273 | + } | ||
274 | + .label { | ||
275 | + background:$hover; | ||
276 | + text-shadow:none; | ||
277 | + color:$style_color; | ||
278 | + } | ||
279 | + a { | ||
280 | + font-weight:bold; | ||
281 | + &:first-child{ | ||
282 | + -webkit-border-top-left-radius: 4px; | ||
283 | + -webkit-border-bottom-left-radius: 4px; | ||
284 | + -moz-border-radius-topleft: 4px; | ||
285 | + -moz-border-radius-bottomleft: 4px; | ||
286 | + border-top-left-radius: 4px; | ||
287 | + border-bottom-left-radius: 4px; | ||
288 | + } | ||
289 | + padding: 10px 25px; | ||
290 | + display: inline-block; | ||
291 | + color: $style_color; | ||
292 | + border-right: 1px solid #d5d5d5; | ||
293 | + position: relative; | ||
294 | + box-shadow: 1px 0 0 rgba(255, 255, 255, 0.1); | ||
295 | + margin: 0; | ||
296 | + float:left; | ||
297 | + text-shadow:0 1px 1px white; | ||
298 | + &.home { | ||
299 | + background: url(home_icon.PNG) no-repeat center center; | ||
300 | + text-indent:-9999px; | ||
301 | + min-width:40px; | ||
302 | + img { | ||
303 | + position:relative; | ||
304 | + top:4px; | ||
305 | + } | ||
306 | + } | ||
307 | + &.current { | ||
308 | + background-color:#DDD; | ||
309 | + } | ||
310 | + } | ||
311 | + } | ||
312 | + /* | ||
313 | + * End of Main Menu | ||
314 | + * | ||
315 | + */ | ||
316 | +} |
app/controllers/dashboard_controller.rb
@@ -3,7 +3,14 @@ class DashboardController < ApplicationController | @@ -3,7 +3,14 @@ class DashboardController < ApplicationController | ||
3 | 3 | ||
4 | def index | 4 | def index |
5 | @projects = current_user.projects.all | 5 | @projects = current_user.projects.all |
6 | + | ||
6 | @active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse | 7 | @active_projects = @projects.select(&:repo_exists?).select(&:last_activity_date_cached).sort_by(&:last_activity_date_cached).reverse |
8 | + | ||
9 | + @merge_requests = MergeRequest.where("author_id = :id or assignee_id = :id", :id => current_user.id).opened.order("created_at DESC").limit(10) | ||
10 | + | ||
11 | + @user = current_user | ||
12 | + @issues = current_user.assigned_issues.opened.order("created_at DESC").limit(10) | ||
13 | + @issues = @issues.includes(:author, :project) | ||
7 | end | 14 | end |
8 | 15 | ||
9 | # Get authored or assigned open merge requests | 16 | # Get authored or assigned open merge requests |
app/views/dashboard/_projects_feed.html.haml
1 | -- @active_projects.first(3).each do |project| | ||
2 | - = link_to project do | ||
3 | - %h4= project.name | ||
4 | - - project.updates(3).each do |update| | ||
5 | - %a.project-update{:href => dashboard_feed_path(project, update)} | ||
6 | - = image_tag gravatar_icon(update.author_email), :class => "avatar", :width => 32 | ||
7 | - %div | ||
8 | - = dashboard_feed_title(update) | ||
9 | - %span.update-author | ||
10 | - %strong= update.author_name | ||
11 | - authored | ||
12 | - = time_ago_in_words(update.created_at) | ||
13 | - ago | ||
14 | - .right | ||
15 | - - klass = update.class.to_s.split("::").last.downcase | ||
16 | - %span.tag{ :class => klass }= klass | ||
17 | - | 1 | +- @active_projects.first(5).each do |project| |
2 | + .wll | ||
3 | + = link_to project do | ||
4 | + %h4 | ||
5 | + = project.name | ||
6 | + %small | ||
7 | + last activity at | ||
8 | + = project.last_activity_date_cached.stamp("Aug 25, 2011") |
app/views/dashboard/index.html.haml
1 | -%h3 Activities | ||
2 | -%hr | ||
3 | -.news-feed= render "dashboard/projects_feed" | 1 | +- if current_user.require_ssh_key? |
2 | + .alert-message.warning | ||
3 | + %p | ||
4 | + You wont be able to pull/push project code unless you | ||
5 | + = link_to new_key_path, :class => "vlink" do | ||
6 | + add new key | ||
7 | + to your profile | ||
8 | + | ||
9 | +%div.dashboard_category | ||
10 | + %h3 | ||
11 | + Projects | ||
12 | + %small | ||
13 | + ( most recent ) | ||
14 | + | ||
15 | + %strong.right | ||
16 | + = link_to projects_path do | ||
17 | + Projects list → | ||
18 | + %hr | ||
19 | + .row | ||
20 | + .dashboard_block | ||
21 | + .row | ||
22 | + .span9= render "dashboard/projects_feed" | ||
23 | + .span3.right | ||
24 | + - if current_user.can_create_project? | ||
25 | + .alert-message.block-message.warning | ||
26 | + You can create up to | ||
27 | + = current_user.projects_limit | ||
28 | + projects. Click on link below to add a new one | ||
29 | + .link_holder | ||
30 | + = link_to new_project_path, :class => "" do | ||
31 | + New Project » | ||
32 | + | ||
33 | + | ||
34 | +- unless @merge_requests.blank? | ||
35 | + %div.dashboard_category | ||
36 | + %h3 | ||
37 | + Merge Requests | ||
38 | + %small ( authored or assigned to you ) | ||
39 | + %strong.right | ||
40 | + = link_to dashboard_merge_requests_path do | ||
41 | + Vist merge requests page → | ||
42 | + %hr | ||
43 | + .row | ||
44 | + .dashboard_block= render "dashboard/merge_requests_feed" | ||
45 | + | ||
46 | +- unless @issues.blank? | ||
47 | + %div.dashboard_category | ||
48 | + %h3 | ||
49 | + Issues | ||
50 | + %small ( assigned to you ) | ||
51 | + %strong.right | ||
52 | + = link_to dashboard_merge_requests_path do | ||
53 | + Vist issues page → | ||
54 | + %hr | ||
55 | + .row | ||
56 | + .dashboard_block= render "dashboard/issues_feed" |
app/views/dashboard/issues.html.haml
app/views/dashboard/merge_requests.html.haml
app/views/errors/access_denied.html.haml
@@ -2,4 +2,4 @@ | @@ -2,4 +2,4 @@ | ||
2 | %h3 Access Denied | 2 | %h3 Access Denied |
3 | %hr | 3 | %hr |
4 | %p Youre not allowed to access this page | 4 | %p Youre not allowed to access this page |
5 | - %p Ream more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} | 5 | + %p Read more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} |
app/views/layouts/_app_menu.html.haml
1 | %nav.main_menu | 1 | %nav.main_menu |
2 | = render "layouts/const_menu_links" | 2 | = render "layouts/const_menu_links" |
3 | - -#= link_to "Projects", projects_path, :class => "#{"current" if current_page?(projects_path) || current_page?(root_path)}" | 3 | + = link_to "Projects", projects_path, :class => "#{"current" if current_page?(projects_path)}" |
4 | = link_to "Issues", dashboard_issues_path, :class => "#{"current" if current_page?(dashboard_issues_path)}", :id => "issues_slide" | 4 | = link_to "Issues", dashboard_issues_path, :class => "#{"current" if current_page?(dashboard_issues_path)}", :id => "issues_slide" |
5 | = link_to "Requests", dashboard_merge_requests_path, :class => "#{"current" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" | 5 | = link_to "Requests", dashboard_merge_requests_path, :class => "#{"current" if current_page?(dashboard_merge_requests_path)}", :id => "merge_requests_slide" |
6 | = link_to "Help", help_path, :class => "#{"current" if controller.controller_name == "help"}" | 6 | = link_to "Help", help_path, :class => "#{"current" if controller.controller_name == "help"}" |
app/views/layouts/_const_menu_links.html.haml
app/views/layouts/_head_panel.html.haml
@@ -5,7 +5,12 @@ | @@ -5,7 +5,12 @@ | ||
5 | %div.app_logo | 5 | %div.app_logo |
6 | = link_to root_path, :class => "home", :title => "Home" do | 6 | = link_to root_path, :class => "home", :title => "Home" do |
7 | = image_tag "logo_tr.png", :width => 50 | 7 | = image_tag "logo_tr.png", :width => 50 |
8 | - %h1 GITLAB | 8 | + %h1 |
9 | + GITLAB | ||
10 | + | ||
11 | + - if current_user.is_admin? | ||
12 | + = link_to admin_projects_path, :class => "admin_link", :title => "Admin area" do | ||
13 | + = image_tag "admin.PNG", :width => 16 | ||
9 | 14 | ||
10 | %h1.project_name= title | 15 | %h1.project_name= title |
11 | .search= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input" | 16 | .search= text_field_tag "search", nil, :placeholder => "Search", :class => "search-input" |
app/views/layouts/application.html.haml
app/views/projects/_tile.html.haml
app/views/projects/empty.html.haml
1 | - if current_user.require_ssh_key? | 1 | - if current_user.require_ssh_key? |
2 | .alert-message.block-message.error | 2 | .alert-message.block-message.error |
3 | %ul | 3 | %ul |
4 | - %li You have no ssh keys added yo tour profile. | 4 | + %li You have no ssh keys added to your profile. |
5 | %li You wont be able to pull/push repository. | 5 | %li You wont be able to pull/push repository. |
6 | %li Visit profile → keys and add public key of every machine you want to use for work with gitlabhq. | 6 | %li Visit profile → keys and add public key of every machine you want to use for work with gitlabhq. |
7 | 7 |
app/views/projects/index.html.haml
1 | %h3 | 1 | %h3 |
2 | Projects | 2 | Projects |
3 | %small= "( #{current_user.projects.count} )" | 3 | %small= "( #{current_user.projects.count} )" |
4 | + - if current_user.can_create_project? | ||
5 | + %span.right | ||
6 | + = link_to new_project_path, :class => "btn small" do | ||
7 | + New Project | ||
4 | %hr | 8 | %hr |
5 | - unless @projects.empty? | 9 | - unless @projects.empty? |
6 | %div.content_list= render "tile" | 10 | %div.content_list= render "tile" |
app/views/protected_branches/index.html.haml
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | %ul | 6 | %ul |
7 | %li keep stable branches secured | 7 | %li keep stable branches secured |
8 | %li forced code review before merge to protected branches | 8 | %li forced code review before merge to protected branches |
9 | - %p Ream more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} | 9 | + %p Read more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"} |
10 | 10 | ||
11 | 11 | ||
12 | 12 |
config/routes.rb
@@ -123,5 +123,5 @@ Gitlab::Application.routes.draw do | @@ -123,5 +123,5 @@ Gitlab::Application.routes.draw do | ||
123 | end | 123 | end |
124 | resources :notes, :only => [:index, :create, :destroy] | 124 | resources :notes, :only => [:index, :create, :destroy] |
125 | end | 125 | end |
126 | - root :to => "projects#index" | 126 | + root :to => "dashboard#index" |
127 | end | 127 | end |