##// END OF EJS Templates
hiding the unfinished branch/revision changer
Leonardo -
r3528:0ba17364 beta
parent child Browse files
Show More
@@ -1,330 +1,331 b''
1 /**
1 /**
2 * Stylesheets for the context bar
2 * Stylesheets for the context bar
3 */
3 */
4
4
5 #context-bar button.follow { background-image: url("../images/icons/heart.png"); }
5 #context-bar button.follow { background-image: url("../images/icons/heart.png"); }
6 #context-bar button.following { background-image: url("../images/icons/heart_delete.png"); }
6 #context-bar button.following { background-image: url("../images/icons/heart_delete.png"); }
7 #context-bar a.fork { background-image: url("../images/icons/arrow_divide.png"); }
7 #context-bar a.fork { background-image: url("../images/icons/arrow_divide.png"); }
8 #context-bar a.summary { background-image: url("../images/icons/clipboard_16.png"); }
8 #context-bar a.summary { background-image: url("../images/icons/clipboard_16.png"); }
9 #context-bar a.changelogs { background-image: url("../images/icons/time.png"); }
9 #context-bar a.changelogs { background-image: url("../images/icons/time.png"); }
10 #context-bar a.files { background-image: url("../images/icons/file.png"); }
10 #context-bar a.files { background-image: url("../images/icons/file.png"); }
11 #context-bar a.switch-to { background-image: url("../images/icons/arrow_switch.png"); }
11 #context-bar a.switch-to { background-image: url("../images/icons/arrow_switch.png"); }
12 #context-bar a.options { background-image: url("../images/icons/table_gear.png"); }
12 #context-bar a.options { background-image: url("../images/icons/table_gear.png"); }
13 #context-bar a.pull-request { background-image: url("../images/icons/arrow_join.png"); }
13 #context-bar a.pull-request { background-image: url("../images/icons/arrow_join.png"); }
14 #context-bar a.branches { background-image: url("../images/icons/arrow_branch.png"); }
14 #context-bar a.branches { background-image: url("../images/icons/arrow_branch.png"); }
15 #context-bar a.tags { background-image: url("../images/icons/tag_blue.png"); }
15 #context-bar a.tags { background-image: url("../images/icons/tag_blue.png"); }
16 #context-bar a.bookmarks { background-image: url("../images/icons/tag_green.png"); }
16 #context-bar a.bookmarks { background-image: url("../images/icons/tag_green.png"); }
17 #context-bar a.settings { background-image: url("../images/icons/cog.png"); }
17 #context-bar a.settings { background-image: url("../images/icons/cog.png"); }
18 #context-bar a.shortlog { background-image: url("../images/icons/time.png"); }
18 #context-bar a.shortlog { background-image: url("../images/icons/time.png"); }
19 #context-bar a.search { background-image: url("../images/icons/search_16.png"); }
19 #context-bar a.search { background-image: url("../images/icons/search_16.png"); }
20 #context-bar a.admin { background-image: url("../images/icons/cog_edit.png"); }
20 #context-bar a.admin { background-image: url("../images/icons/cog_edit.png"); }
21
21
22 #context-bar a.journal { background-image: url("../images/icons/book.png"); }
22 #context-bar a.journal { background-image: url("../images/icons/book.png"); }
23 #context-bar a.repos { background-image: url("../images/icons/database_edit.png"); }
23 #context-bar a.repos { background-image: url("../images/icons/database_edit.png"); }
24 #context-bar a.repos_groups { background-image: url("../images/icons/database_link.png"); }
24 #context-bar a.repos_groups { background-image: url("../images/icons/database_link.png"); }
25 #context-bar a.users { background-image: url("../images/icons/user_edit.png"); }
25 #context-bar a.users { background-image: url("../images/icons/user_edit.png"); }
26 #context-bar a.groups { background-image: url("../images/icons/group_edit.png"); }
26 #context-bar a.groups { background-image: url("../images/icons/group_edit.png"); }
27 #context-bar a.permissions { background-image: url("../images/icons/key.png"); }
27 #context-bar a.permissions { background-image: url("../images/icons/key.png"); }
28 #context-bar a.ldap { background-image: url("../images/icons/server_key.png"); }
28 #context-bar a.ldap { background-image: url("../images/icons/server_key.png"); }
29 #context-bar a.defaults { background-image: url("../images/icons/wrench.png"); }
29 #context-bar a.defaults { background-image: url("../images/icons/wrench.png"); }
30 #context-bar a.settings { background-image: url("../images/icons/cog_edit.png"); }
30 #context-bar a.settings { background-image: url("../images/icons/cog_edit.png"); }
31
31
32 #content #context-bar {
32 #content #context-bar {
33 position: relative;
33 position: relative;
34 background-color: #003B76 !important;
34 background-color: #003B76 !important;
35 padding: 0px;
35 padding: 0px;
36 overflow: visible;
36 overflow: visible;
37 }
37 }
38
38
39 #content #context-bar,
39 #content #context-bar,
40 #content #context-bar a,
40 #content #context-bar a,
41 #content #context-bar button {
41 #content #context-bar button {
42 color: #FFFFFF;
42 color: #FFFFFF;
43 }
43 }
44
44
45 #content #context-bar a:hover,
45 #content #context-bar a:hover,
46 #content #context-bar button:hover {
46 #content #context-bar button:hover {
47 text-decoration: none;
47 text-decoration: none;
48 color: #bfe3ff;
48 color: #bfe3ff;
49 }
49 }
50
50
51 #content #context-bar .icon {
51 #content #context-bar .icon {
52 display: inline-block;
52 display: inline-block;
53 width: 16px;
53 width: 16px;
54 height: 16px;
54 height: 16px;
55 vertical-align: text-bottom;
55 vertical-align: text-bottom;
56 }
56 }
57
57
58 ul.horizontal-list {
58 ul.horizontal-list {
59 display: block;
59 display: block;
60 /* overflow: hidden;*/
60 /* overflow: hidden;*/
61 }
61 }
62 ul.horizontal-list > li {
62 ul.horizontal-list > li {
63 float: left;
63 float: left;
64 padding-right: 5px;
64 padding-right: 5px;
65 position: relative;
65 position: relative;
66 }
66 }
67
67
68 ul.horizontal-list > li ul {
68 ul.horizontal-list > li ul {
69 position: absolute;
69 position: absolute;
70 display: none;
70 display: none;
71 right: 0;
71 right: 0;
72 }
72 }
73
73
74 ul.horizontal-list li:hover > ul {
74 ul.horizontal-list li:hover > ul {
75 display: block;
75 display: block;
76 }
76 }
77
77
78 ul.horizontal-list ul li {
78 ul.horizontal-list ul li {
79 position: relative;
79 position: relative;
80 border-bottom: 1px solid rgba(0,0,0,0.1);
80 border-bottom: 1px solid rgba(0,0,0,0.1);
81 border-top: 1px solid rgba(255,255,255,0.1);
81 border-top: 1px solid rgba(255,255,255,0.1);
82 }
82 }
83
83
84 ul.horizontal-list > li ul ul {
84 ul.horizontal-list > li ul ul {
85 position: absolute;
85 position: absolute;
86 right: 100%;
86 right: 100%;
87 top: -1px;
87 top: -1px;
88 min-width: 200px;
88 min-width: 200px;
89 max-height: 400px;
89 max-height: 400px;
90 overflow-x:hidden;
90 overflow-x:hidden;
91 overflow-y:auto;
91 overflow-y:auto;
92 }
92 }
93
93
94 ul.horizontal-list > li a {
94 ul.horizontal-list > li a {
95 white-space: nowrap;
95 white-space: nowrap;
96 }
96 }
97
97
98 #breadcrumbs {
98 #breadcrumbs {
99 float:left;
99 float:left;
100 padding: 12px 0;
100 padding: 12px 0;
101 font-weight: bold;
101 font-weight: bold;
102 }
102 }
103
103
104 #breadcrumbs span{
104 #breadcrumbs span{
105 font-weight: bold;
105 font-weight: bold;
106 font-size: 2em;
106 font-size: 2em;
107 }
107 }
108
108
109 #context-top {
109 #context-top {
110 position: relative;
110 position: relative;
111 overflow: hidden;
111 overflow: hidden;
112 border-bottom: 1px solid #003162;
112 border-bottom: 1px solid #003162;
113 padding: 10px;
113 padding: 10px;
114 }
114 }
115
115
116 #revision-changer,
116 #revision-changer,
117 #context-pages,
117 #context-pages,
118 #context-pages ul,
118 #context-pages ul,
119 ul#context-actions {
119 ul#context-actions {
120 background: #3b6998; /* Old browsers */
120 background: #3b6998; /* Old browsers */
121 background: -moz-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* FF3.6+ */
121 background: -moz-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* FF3.6+ */
122 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4574a2), color-stop(100%,#2f5d8b)); /* Chrome,Safari4+ */
122 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4574a2), color-stop(100%,#2f5d8b)); /* Chrome,Safari4+ */
123 background: -webkit-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Chrome10+,Safari5.1+ */
123 background: -webkit-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Chrome10+,Safari5.1+ */
124 background: -o-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Opera 11.10+ */
124 background: -o-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Opera 11.10+ */
125 background: -ms-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* IE10+ */
125 background: -ms-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* IE10+ */
126 background: linear-gradient(to bottom, #4574a2 0%, #2f5d8b 100%); /* W3C */
126 background: linear-gradient(to bottom, #4574a2 0%, #2f5d8b 100%); /* W3C */
127 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4574a2', endColorstr='#2f5d8b',GradientType=0 ); /* IE6-9 */
127 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4574a2', endColorstr='#2f5d8b',GradientType=0 ); /* IE6-9 */
128 }
128 }
129
129
130 #context-actions a,
130 #context-actions a,
131 #context-pages a {
131 #context-pages a {
132 background-repeat: no-repeat;
132 background-repeat: no-repeat;
133 background-position: 10px 50%;
133 background-position: 10px 50%;
134 padding-left: 30px;
134 padding-left: 30px;
135 }
135 }
136
136
137 #context-pages ul ul a{
137 #context-pages ul ul a{
138 padding-left: 10px;
138 padding-left: 10px;
139 }
139 }
140
140
141 ul#context-actions {
141 ul#context-actions {
142 display: inline-block;
142 display: inline-block;
143 float: right;
143 float: right;
144 border-radius: 4px;
144 border-radius: 4px;
145 background-color:#3b6998;
145 background-color:#3b6998;
146 background-image: linear-gradient(top, #4574a2 0%, #2f5d8b 100%);
146 background-image: linear-gradient(top, #4574a2 0%, #2f5d8b 100%);
147 padding: 5px;
147 padding: 5px;
148 }
148 }
149
149
150 #content ul#context-actions li {
150 #content ul#context-actions li {
151 padding: 0px;
151 padding: 0px;
152 border-right: 1px solid rgba(0,0,0,0.1);
152 border-right: 1px solid rgba(0,0,0,0.1);
153 border-left: 1px solid rgba(255,255,255,0.1);
153 border-left: 1px solid rgba(255,255,255,0.1);
154 }
154 }
155
155
156 #context-actions button,
156 #context-actions button,
157 #context-actions a {
157 #context-actions a {
158 display: block;
158 display: block;
159 cursor: pointer;
159 cursor: pointer;
160 background: none;
160 background: none;
161 border: none;
161 border: none;
162 margin: 0px;
162 margin: 0px;
163 height: 13px;
163 height: 13px;
164 padding: 3px 7px;
164 padding: 3px 7px;
165 background-repeat: no-repeat;
165 background-repeat: no-repeat;
166 background-position: 50% 3px;
166 background-position: 50% 3px;
167 padding-top: 24px;
167 padding-top: 24px;
168 }
168 }
169
169
170 #context-actions button{
170 #context-actions button{
171 padding-top: 22px;
171 padding-top: 22px;
172 height: 40px;
172 height: 40px;
173 }
173 }
174
174
175 #revision-changer:hover,
175 #revision-changer:hover,
176 #context-pages li:hover,
176 #context-pages li:hover,
177 #context-actions li:hover,
177 #context-actions li:hover,
178 #content #context-actions li:hover {
178 #content #context-actions li:hover {
179 /*background: rgba(255,255,255,0.2);*/
179 /*background: rgba(255,255,255,0.2);*/
180 background: #6388ad; /* Old browsers */
180 background: #6388ad; /* Old browsers */
181 background: -moz-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */
181 background: -moz-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */
182 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
182 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
183 background: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* Chrome10+,Safari5.1+ */
183 background: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* Chrome10+,Safari5.1+ */
184 background: -o-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* Opera 11.10+ */
184 background: -o-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* Opera 11.10+ */
185 background: -ms-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* IE10+ */
185 background: -ms-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* IE10+ */
186 background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* W3C */
186 background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* W3C */
187 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */
187 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */
188
188
189 background-image: -webkit-gradient(linear, left top, left bottom, rgb(255,255,255) 0%, rgb(255,255,255) 100%);
189 background-image: -webkit-gradient(linear, left top, left bottom, rgb(255,255,255) 0%, rgb(255,255,255) 100%);
190
190
191 /*border-radius: 4px;*/
191 /*border-radius: 4px;*/
192 }
192 }
193
193
194
194
195 #content #context-actions li:first-child {
195 #content #context-actions li:first-child {
196 border-left: none;
196 border-left: none;
197 border-radius:4px 0 0px 4px;
197 border-radius:4px 0 0px 4px;
198 }
198 }
199
199
200 #content #context-actions li:last-child {
200 #content #context-actions li:last-child {
201 border-right: none;
201 border-right: none;
202 border-radius:0 4px 4px 0;
202 border-radius:0 4px 4px 0;
203 }
203 }
204
204
205 #content #context-actions .icon{
205 #content #context-actions .icon{
206 margin: auto;
206 margin: auto;
207 margin-bottom: 5px;
207 margin-bottom: 5px;
208 display: block;
208 display: block;
209 clear: both;
209 clear: both;
210 float: none;
210 float: none;
211 }
211 }
212
212
213 #content #context-actions button.follow,
213 #content #context-actions button.follow,
214 #content #context-actions button.following{
214 #content #context-actions button.following{
215 width: auto;
215 width: auto;
216 float: none;
216 float: none;
217 }
217 }
218
218
219 #content #context-actions button .show-following,
219 #content #context-actions button .show-following,
220 #content #context-actions button .show-follow {
220 #content #context-actions button .show-follow {
221 display: none;
221 display: none;
222 }
222 }
223
223
224 #content #context-bar #context-actions button.follow .show-follow {
224 #content #context-bar #context-actions button.follow .show-follow {
225 display: block;
225 display: block;
226 }
226 }
227
227
228 #content #context-bar #context-actions button.following .show-following {
228 #content #context-bar #context-actions button.following .show-following {
229 display: block;
229 display: block;
230 }
230 }
231
231
232 #context-state {
232 #context-state {
233 background-color: #336699;
233 background-color: #336699;
234 border-top: 1px solid #517da8;
234 border-top: 1px solid #517da8;
235 min-height: 36px;
235 /* overflow: hidden;*/
236 /* overflow: hidden;*/
236 }
237 }
237
238
238 #context-pages {
239 #context-pages {
239 float: right;
240 float: right;
240 border-left: 1px solid rgba(0,0,0,0.1);
241 border-left: 1px solid rgba(0,0,0,0.1);
241 /* overflow: hidden;*/
242 /* overflow: hidden;*/
242 }
243 }
243
244
244 #context-pages li.current{
245 #context-pages li.current{
245 background: #535353; /* Old browsers */
246 background: #535353; /* Old browsers */
246 background: -moz-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* FF3.6+ */
247 background: -moz-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* FF3.6+ */
247 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5d5d5d), color-stop(100%,#484848)); /* Chrome,Safari4+ */
248 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5d5d5d), color-stop(100%,#484848)); /* Chrome,Safari4+ */
248 background: -webkit-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Chrome10+,Safari5.1+ */
249 background: -webkit-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Chrome10+,Safari5.1+ */
249 background: -o-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Opera 11.10+ */
250 background: -o-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Opera 11.10+ */
250 background: -ms-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* IE10+ */
251 background: -ms-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* IE10+ */
251 background: linear-gradient(to bottom, #5d5d5d 0%, #484848 100%); /* W3C */
252 background: linear-gradient(to bottom, #5d5d5d 0%, #484848 100%); /* W3C */
252 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5d5d5d', endColorstr='#484848',GradientType=0 ); /* IE6-9 */
253 filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5d5d5d', endColorstr='#484848',GradientType=0 ); /* IE6-9 */
253 }
254 }
254
255
255 #content #context-pages .icon {
256 #content #context-pages .icon {
256 margin-right:5px;
257 margin-right:5px;
257 }
258 }
258
259
259 #content #context-pages li {
260 #content #context-pages li {
260 border-right: 1px solid rgba(0,0,0,0.1);
261 border-right: 1px solid rgba(0,0,0,0.1);
261 border-left: 1px solid rgba(255,255,255,0.1);
262 border-left: 1px solid rgba(255,255,255,0.1);
262 padding: 0;
263 padding: 0;
263 }
264 }
264
265
265 #content #context-pages li:last-child {
266 #content #context-pages li:last-child {
266 border-right:none;
267 border-right:none;
267 }
268 }
268
269
269 #context-pages a,
270 #context-pages a,
270 #context-pages .admin_menu a{
271 #context-pages .admin_menu a{
271 display: block;
272 display: block;
272 padding: 0px 10px;
273 padding: 0px 10px;
273 padding-left: 30px;
274 padding-left: 30px;
274 line-height: 35px;
275 line-height: 35px;
275 }
276 }
276
277
277 #revision-changer:before,
278 #revision-changer:before,
278 #context-pages a.childs:after,
279 #context-pages a.childs:after,
279 #context-pages a.dropdown:after {
280 #context-pages a.dropdown:after {
280 content: ' \25BE';
281 content: ' \25BE';
281 }
282 }
282 #context-pages a.childs:after{
283 #context-pages a.childs:after{
283 float: right;
284 float: right;
284 padding-left: 5px;
285 padding-left: 5px;
285 }
286 }
286
287
287 #revision-changer:before {
288 #revision-changer:before {
288 position: absolute;
289 position: absolute;
289 top: 0px;
290 top: 0px;
290 right: 0px;
291 right: 0px;
291 border-right: 1px solid rgba(0,0,0,0.1);
292 border-right: 1px solid rgba(0,0,0,0.1);
292 height: 25px;
293 height: 25px;
293 padding-top: 10px;
294 padding-top: 10px;
294 padding-right: 10px;
295 padding-right: 10px;
295 }
296 }
296
297
297 #context-pages li:last-child a {
298 #context-pages li:last-child a {
298 padding-right: 10px;
299 padding-right: 10px;
299 }
300 }
300
301
301 #context-bar #revision-changer {
302 #context-bar #revision-changer {
302 position: relative;
303 position: relative;
303 cursor: pointer;
304 cursor: pointer;
304 border: none;
305 border: none;
305 padding: 0;
306 padding: 0;
306 margin: 0;
307 margin: 0;
307 color: #FFFFFF;
308 color: #FFFFFF;
308 font-size: 0.85em;
309 font-size: 0.85em;
309 padding: 2px 15px;
310 padding: 2px 15px;
310 padding-bottom: 3px;
311 padding-bottom: 3px;
311 padding-right: 30px;
312 padding-right: 30px;
312 border-right: 1px solid rgba(255,255,255,0.1);
313 border-right: 1px solid rgba(255,255,255,0.1);
313 }
314 }
314
315
315 #revision-changer .branch-name,
316 #revision-changer .branch-name,
316 #revision-changer .revision {
317 #revision-changer .revision {
317 display: block;
318 display: block;
318 text-align: center;
319 text-align: center;
319 line-height: 1.5em;
320 line-height: 1.5em;
320 }
321 }
321
322
322 #revision-changer .branch-name {
323 #revision-changer .branch-name {
323 font-weight: bold;
324 font-weight: bold;
324 }
325 }
325
326
326 #revision-changer .revision{
327 #revision-changer .revision{
327 text-transform: uppercase;
328 text-transform: uppercase;
328 }
329 }
329
330
330
331
@@ -1,419 +1,420 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="root.html"/>
2 <%inherit file="root.html"/>
3
3
4 <!-- HEADER -->
4 <!-- HEADER -->
5 <div id="header-dd"></div>
5 <div id="header-dd"></div>
6 <div id="header">
6 <div id="header">
7 <div id="header-inner" class="title">
7 <div id="header-inner" class="title">
8 <div id="logo">
8 <div id="logo">
9 <h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
9 <h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
10 </div>
10 </div>
11 <!-- MENU -->
11 <!-- MENU -->
12 ${self.page_nav()}
12 ${self.page_nav()}
13 <!-- END MENU -->
13 <!-- END MENU -->
14 ${self.body()}
14 ${self.body()}
15 </div>
15 </div>
16 </div>
16 </div>
17 <!-- END HEADER -->
17 <!-- END HEADER -->
18
18
19 <!-- CONTENT -->
19 <!-- CONTENT -->
20 <div id="content">
20 <div id="content">
21 <div class="flash_msg">
21 <div class="flash_msg">
22 <% messages = h.flash.pop_messages() %>
22 <% messages = h.flash.pop_messages() %>
23 % if messages:
23 % if messages:
24 <ul id="flash-messages">
24 <ul id="flash-messages">
25 % for message in messages:
25 % for message in messages:
26 <li class="${message.category}_msg">${message}</li>
26 <li class="${message.category}_msg">${message}</li>
27 % endfor
27 % endfor
28 </ul>
28 </ul>
29 % endif
29 % endif
30 </div>
30 </div>
31 <div id="main">
31 <div id="main">
32 ${next.main()}
32 ${next.main()}
33 </div>
33 </div>
34 </div>
34 </div>
35 <!-- END CONTENT -->
35 <!-- END CONTENT -->
36
36
37 <!-- FOOTER -->
37 <!-- FOOTER -->
38 <div id="footer">
38 <div id="footer">
39 <div id="footer-inner" class="title">
39 <div id="footer-inner" class="title">
40 <div>
40 <div>
41 <p class="footer-link">
41 <p class="footer-link">
42 <a href="${h.url('bugtracker')}">${_('Submit a bug')}</a>
42 <a href="${h.url('bugtracker')}">${_('Submit a bug')}</a>
43 </p>
43 </p>
44 <p class="footer-link-right">
44 <p class="footer-link-right">
45 <a href="${h.url('rhodecode_official')}">RhodeCode${'-%s' % c.rhodecode_instanceid if c.rhodecode_instanceid else ''}</a>
45 <a href="${h.url('rhodecode_official')}">RhodeCode${'-%s' % c.rhodecode_instanceid if c.rhodecode_instanceid else ''}</a>
46 ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
46 ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
47 </p>
47 </p>
48 </div>
48 </div>
49 </div>
49 </div>
50 </div>
50 </div>
51 <!-- END FOOTER -->
51 <!-- END FOOTER -->
52
52
53 ### MAKO DEFS ###
53 ### MAKO DEFS ###
54 <%def name="page_nav()">
54 <%def name="page_nav()">
55 ${self.menu()}
55 ${self.menu()}
56 </%def>
56 </%def>
57
57
58 <%def name="breadcrumbs()">
58 <%def name="breadcrumbs()">
59 <div class="breadcrumbs">
59 <div class="breadcrumbs">
60 ${self.breadcrumbs_links()}
60 ${self.breadcrumbs_links()}
61 </div>
61 </div>
62 </%def>
62 </%def>
63
63
64 <%def name="context_bar(current=None)">
64 <%def name="context_bar(current=None)">
65 %if c.repo_name:
65 %if c.repo_name:
66 ${repo_context_bar(current)}
66 ${repo_context_bar(current)}
67 %endif
67 %endif
68 </%def>
68 </%def>
69
69
70 <%def name="repo_context_bar(current=None)">
70 <%def name="repo_context_bar(current=None)">
71 <%
71 <%
72 def follow_class():
72 def follow_class():
73 if c.repository_following:
73 if c.repository_following:
74 return h.literal('following')
74 return h.literal('following')
75 else:
75 else:
76 return h.literal('follow')
76 return h.literal('follow')
77 %>
77 %>
78 <%
78 <%
79 def is_current(selected):
79 def is_current(selected):
80 if selected == current:
80 if selected == current:
81 return h.literal('class="current"')
81 return h.literal('class="current"')
82 %>
82 %>
83
83
84 <!--- CONTEXT BAR -->
84 <!--- CONTEXT BAR -->
85 <div id="context-bar" class="box">
85 <div id="context-bar" class="box">
86 <div id="context-top">
86 <div id="context-top">
87 <div id= "breadcrumbs">
87 <div id= "breadcrumbs">
88 ${h.link_to(_(u'Repositories'),h.url('home'))}
88 ${h.link_to(_(u'Repositories'),h.url('home'))}
89 Β»
89 Β»
90 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
90 ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
91 </div>
91 </div>
92 ## TODO: this check feels wrong, it would be better to have a check for permissions
92 ## TODO: this check feels wrong, it would be better to have a check for permissions
93 ## also it feels like a job for the controller
93 ## also it feels like a job for the controller
94 %if c.rhodecode_user.username != 'default':
94 %if c.rhodecode_user.username != 'default':
95 <ul id="context-actions" class="horizontal-list">
95 <ul id="context-actions" class="horizontal-list">
96 <li>
96 <li>
97 <button class="${follow_class()}" onclick="javascript:toggleFollowingRepo(this,${c.rhodecode_db_repo.repo_id},'${str(h.get_token())}');">
97 <button class="${follow_class()}" onclick="javascript:toggleFollowingRepo(this,${c.rhodecode_db_repo.repo_id},'${str(h.get_token())}');">
98 <!--span class="icon show-follow follow"></span>
98 <!--span class="icon show-follow follow"></span>
99 <span class="icon show-following following"></span-->
99 <span class="icon show-following following"></span-->
100 <span class="show-follow">${_('Follow')}</span>
100 <span class="show-follow">${_('Follow')}</span>
101 <span class="show-following">${_('Unfollow')}</span>
101 <span class="show-following">${_('Unfollow')}</span>
102 </button>
102 </button>
103 </li>
103 </li>
104 <li><a href="${h.url('repo_fork_home',repo_name=c.repo_name)}" class="fork">${_('Fork')}</a></li>
104 <li><a href="${h.url('repo_fork_home',repo_name=c.repo_name)}" class="fork">${_('Fork')}</a></li>
105 %if h.is_hg(c.rhodecode_repo):
105 %if h.is_hg(c.rhodecode_repo):
106 <li><a href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="pull-request">${_('Pull Request')}</a></li>
106 <li><a href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="pull-request">${_('Pull Request')}</a></li>
107 %endif
107 %endif
108 </ul>
108 </ul>
109 %endif
109 %endif
110 </div>
110 </div>
111 <div id="context-state">
111 <div id="context-state">
112 <button id="revision-changer">
112 <!--button id="revision-changer">
113 <span class="branch-name">graphics/shader-move</span>
113 <span class="branch-name">graphics/shader-move</span>
114 <span class="revision">@73318:8d3d6ee94072</span>
114 <span class="revision">@73318:8d3d6ee94072</span>
115 </button>
115 </button-->
116 &nbsp;
116 <ul id="context-pages" class="horizontal-list">
117 <ul id="context-pages" class="horizontal-list">
117 <li ${is_current('summary')}><a href="${h.url('summary_home', repo_name=c.repo_name)}" class="summary">${_('Summary')}</a></li>
118 <li ${is_current('summary')}><a href="${h.url('summary_home', repo_name=c.repo_name)}" class="summary">${_('Summary')}</a></li>
118 <li ${is_current('changelog')}><a href="${h.url('changelog_home', repo_name=c.repo_name)}" class="changelogs">${_('Changelogs')}</a></li>
119 <li ${is_current('changelog')}><a href="${h.url('changelog_home', repo_name=c.repo_name)}" class="changelogs">${_('Changelogs')}</a></li>
119 <li ${is_current('files')}><a href="${h.url('files_home', repo_name=c.repo_name)}" class="files"></span>${_('Files')}</a></li>
120 <li ${is_current('files')}><a href="${h.url('files_home', repo_name=c.repo_name)}" class="files"></span>${_('Files')}</a></li>
120 <li>
121 <li>
121 <a href="#" id="branch_tag_switcher_2" class="dropdown switch-to"></span>${_('Switch To')}</a>
122 <a href="#" id="branch_tag_switcher_2" class="dropdown switch-to"></span>${_('Switch To')}</a>
122 <ul id="switch_to_list_2" class="switch_to submenu">
123 <ul id="switch_to_list_2" class="switch_to submenu">
123 <li><a href="#">${_('loading...')}</a></li>
124 <li><a href="#">${_('loading...')}</a></li>
124 </ul>
125 </ul>
125 </li>
126 </li>
126 <li ${is_current('options')}>
127 <li ${is_current('options')}>
127 <a href="#" class="dropdown options"></span>Options</a>
128 <a href="#" class="dropdown options"></span>Options</a>
128 <ul>
129 <ul>
129 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
130 %if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
130 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
131 %if h.HasPermissionAll('hg.admin')('access settings on repository'):
131 <li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
132 <li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
132 %else:
133 %else:
133 <li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
134 <li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
134 %endif
135 %endif
135 %endif
136 %endif
136 %if c.rhodecode_db_repo.fork:
137 %if c.rhodecode_db_repo.fork:
137 <li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
138 <li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
138 %endif
139 %endif
139 <li>${h.link_to(_('lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
140 <li>${h.link_to(_('lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
140 <li>${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
141 <li>${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
141
142
142 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
143 %if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
143 %if c.rhodecode_db_repo.locked[0]:
144 %if c.rhodecode_db_repo.locked[0]:
144 <li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
145 <li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
145 %else:
146 %else:
146 <li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
147 <li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
147 %endif
148 %endif
148 %endif
149 %endif
149
150
150 % if h.HasPermissionAll('hg.admin')('access admin main page'):
151 % if h.HasPermissionAll('hg.admin')('access admin main page'):
151 <li>
152 <li>
152 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin childs')}
153 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin childs')}
153 <%def name="admin_menu()">
154 <%def name="admin_menu()">
154 <ul class="admin_menu">
155 <ul class="admin_menu">
155 <li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal')}</li>
156 <li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal')}</li>
156 <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
157 <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
157 <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
158 <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
158 <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
159 <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
159 <li>${h.link_to(_('users groups'),h.url('users_groups'),class_='groups')}</li>
160 <li>${h.link_to(_('users groups'),h.url('users_groups'),class_='groups')}</li>
160 <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
161 <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
161 <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
162 <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
162 <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
163 <li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
163 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
164 <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
164 </ul>
165 </ul>
165 </%def>
166 </%def>
166 ## ADMIN MENU
167 ## ADMIN MENU
167 ${admin_menu()}
168 ${admin_menu()}
168 </li>
169 </li>
169 ## if you're a admin of any groups, show admin menu for it
170 ## if you're a admin of any groups, show admin menu for it
170 % elif c.rhodecode_user.groups_admin:
171 % elif c.rhodecode_user.groups_admin:
171 <li>
172 <li>
172 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
173 ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
173 <%def name="admin_menu_simple()">
174 <%def name="admin_menu_simple()">
174 <ul>
175 <ul>
175 <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
176 <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
176 </ul>
177 </ul>
177 </%def>
178 </%def>
178 ## ADMIN MENU
179 ## ADMIN MENU
179 ${admin_menu_simple()}
180 ${admin_menu_simple()}
180 </li>
181 </li>
181 % endif
182 % endif
182 </ul>
183 </ul>
183 </li>
184 </li>
184 <li ${is_current('showpullrequest')}><a href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}" title="${_('Show Pull Requests')}" class="pull-request">1</a></li>
185 <li ${is_current('showpullrequest')}><a href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}" title="${_('Show Pull Requests')}" class="pull-request">1</a></li>
185 </ul>
186 </ul>
186 </div>
187 </div>
187 </div>
188 </div>
188 <script type="text/javascript">
189 <script type="text/javascript">
189 YUE.on('branch_tag_switcher_2','mouseover',function(){
190 YUE.on('branch_tag_switcher_2','mouseover',function(){
190 var loaded = YUD.hasClass('branch_tag_switcher_2','loaded');
191 var loaded = YUD.hasClass('branch_tag_switcher_2','loaded');
191 if(!loaded){
192 if(!loaded){
192 YUD.addClass('branch_tag_switcher_2','loaded');
193 YUD.addClass('branch_tag_switcher_2','loaded');
193 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list_2',
194 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list_2',
194 function(o){},
195 function(o){},
195 function(o){YUD.removeClass('branch_tag_switcher_2','loaded');}
196 function(o){YUD.removeClass('branch_tag_switcher_2','loaded');}
196 ,null);
197 ,null);
197 }
198 }
198 return false;
199 return false;
199 });
200 });
200 </script>
201 </script>
201 <!--- END CONTEXT BAR -->
202 <!--- END CONTEXT BAR -->
202 </%def>
203 </%def>
203
204
204 <%def name="usermenu()">
205 <%def name="usermenu()">
205 ## USER MENU
206 ## USER MENU
206 <li>
207 <li>
207 <a class="menu_link" id="quick_login_link">
208 <a class="menu_link" id="quick_login_link">
208 <span class="icon" style="padding:5px 5px 0px 5px">
209 <span class="icon" style="padding:5px 5px 0px 5px">
209 <img src="${h.gravatar_url(c.rhodecode_user.email,20)}" alt="avatar">
210 <img src="${h.gravatar_url(c.rhodecode_user.email,20)}" alt="avatar">
210 </span>
211 </span>
211 %if c.rhodecode_user.username != 'default':
212 %if c.rhodecode_user.username != 'default':
212 <span class="menu_link_user">${c.rhodecode_user.username}</span>
213 <span class="menu_link_user">${c.rhodecode_user.username}</span>
213 %if c.unread_notifications != 0:
214 %if c.unread_notifications != 0:
214 <span class="menu_link_notifications">${c.unread_notifications}</span>
215 <span class="menu_link_notifications">${c.unread_notifications}</span>
215 %endif
216 %endif
216 %else:
217 %else:
217 <span>${_('Not logged in')}</span>
218 <span>${_('Not logged in')}</span>
218 %endif
219 %endif
219 </a>
220 </a>
220
221
221 <div class="user-menu">
222 <div class="user-menu">
222 <div id="quick_login">
223 <div id="quick_login">
223 %if c.rhodecode_user.username == 'default':
224 %if c.rhodecode_user.username == 'default':
224 <h4>${_('Login to your account')}</h4>
225 <h4>${_('Login to your account')}</h4>
225 ${h.form(h.url('login_home',came_from=h.url.current()))}
226 ${h.form(h.url('login_home',came_from=h.url.current()))}
226 <div class="form">
227 <div class="form">
227 <div class="fields">
228 <div class="fields">
228 <div class="field">
229 <div class="field">
229 <div class="label">
230 <div class="label">
230 <label for="username">${_('Username')}:</label>
231 <label for="username">${_('Username')}:</label>
231 </div>
232 </div>
232 <div class="input">
233 <div class="input">
233 ${h.text('username',class_='focus',size=40)}
234 ${h.text('username',class_='focus',size=40)}
234 </div>
235 </div>
235
236
236 </div>
237 </div>
237 <div class="field">
238 <div class="field">
238 <div class="label">
239 <div class="label">
239 <label for="password">${_('Password')}:</label>
240 <label for="password">${_('Password')}:</label>
240 </div>
241 </div>
241 <div class="input">
242 <div class="input">
242 ${h.password('password',class_='focus',size=40)}
243 ${h.password('password',class_='focus',size=40)}
243 </div>
244 </div>
244
245
245 </div>
246 </div>
246 <div class="buttons">
247 <div class="buttons">
247 <div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>
248 <div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>
248 <div class="register">
249 <div class="register">
249 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
250 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
250 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
251 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
251 %endif
252 %endif
252 </div>
253 </div>
253 <div class="submit">
254 <div class="submit">
254 ${h.submit('sign_in',_('Log In'),class_="ui-btn xsmall")}
255 ${h.submit('sign_in',_('Log In'),class_="ui-btn xsmall")}
255 </div>
256 </div>
256 </div>
257 </div>
257 </div>
258 </div>
258 </div>
259 </div>
259 ${h.end_form()}
260 ${h.end_form()}
260 %else:
261 %else:
261 <div class="links_left">
262 <div class="links_left">
262 <div class="full_name">${c.rhodecode_user.full_name_or_username}</div>
263 <div class="full_name">${c.rhodecode_user.full_name_or_username}</div>
263 <div class="email">${c.rhodecode_user.email}</div>
264 <div class="email">${c.rhodecode_user.email}</div>
264 <div class="big_gravatar"><img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,48)}" /></div>
265 <div class="big_gravatar"><img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,48)}" /></div>
265 <div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
266 <div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
266 <div class="unread"><a href="${h.url('notifications')}">${_('Unread')}: ${c.unread_notifications}</a></div>
267 <div class="unread"><a href="${h.url('notifications')}">${_('Unread')}: ${c.unread_notifications}</a></div>
267 </div>
268 </div>
268 <div class="links_right">
269 <div class="links_right">
269 <ol class="links">
270 <ol class="links">
270 <li>${h.link_to(_(u'Home'),h.url('home'))}</li>
271 <li>${h.link_to(_(u'Home'),h.url('home'))}</li>
271 <li>${h.link_to(_(u'Journal'),h.url('journal'))}</li>
272 <li>${h.link_to(_(u'Journal'),h.url('journal'))}</li>
272 <li>${h.link_to(_(u'My account'),h.url('admin_settings_my_account'))}</li>
273 <li>${h.link_to(_(u'My account'),h.url('admin_settings_my_account'))}</li>
273 <li class="logout">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
274 <li class="logout">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
274 </ol>
275 </ol>
275 </div>
276 </div>
276 %endif
277 %endif
277 </div>
278 </div>
278 </div>
279 </div>
279
280
280 </li>
281 </li>
281 </%def>
282 </%def>
282
283
283 <%def name="menu(current=None)">
284 <%def name="menu(current=None)">
284 <%
285 <%
285 def is_current(selected):
286 def is_current(selected):
286 if selected == current:
287 if selected == current:
287 return h.literal('class="current"')
288 return h.literal('class="current"')
288 %>
289 %>
289 <ul id="quick">
290 <ul id="quick">
290 <!-- repo switcher -->
291 <!-- repo switcher -->
291 <li ${is_current('home')}>
292 <li ${is_current('home')}>
292 <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
293 <a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
293 <span class="icon">
294 <span class="icon">
294 <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
295 <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
295 </span>
296 </span>
296 <span>${_('Repositories')}</span>
297 <span>${_('Repositories')}</span>
297 </a>
298 </a>
298 <ul id="repo_switcher_list" class="repo_switcher">
299 <ul id="repo_switcher_list" class="repo_switcher">
299 <li>
300 <li>
300 <a href="#">${_('loading...')}</a>
301 <a href="#">${_('loading...')}</a>
301 </li>
302 </li>
302 </ul>
303 </ul>
303 </li>
304 </li>
304 ## we render this menu only not for those pages
305 ## we render this menu only not for those pages
305 %if current not in ['home','admin', 'search', 'journal']:
306 %if current not in ['home','admin', 'search', 'journal']:
306 ##REGULAR MENU
307 ##REGULAR MENU
307 <li>
308 <li>
308 <a class="menu_link" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
309 <a class="menu_link" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
309 <span class="icon_short">
310 <span class="icon_short">
310 <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
311 <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
311 </span>
312 </span>
312 <span id="current_followers_count" class="short">${c.repository_followers}</span>
313 <span id="current_followers_count" class="short">${c.repository_followers}</span>
313 </a>
314 </a>
314 </li>
315 </li>
315 <li>
316 <li>
316 <a class="menu_link" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
317 <a class="menu_link" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
317 <span class="icon_short">
318 <span class="icon_short">
318 <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
319 <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
319 </span>
320 </span>
320 <span class="short">${c.repository_forks}</span>
321 <span class="short">${c.repository_forks}</span>
321 </a>
322 </a>
322 </li>
323 </li>
323 ${usermenu()}
324 ${usermenu()}
324 <script type="text/javascript">
325 <script type="text/javascript">
325 YUE.on('branch_tag_switcher','mouseover',function(){
326 YUE.on('branch_tag_switcher','mouseover',function(){
326 var loaded = YUD.hasClass('branch_tag_switcher','loaded');
327 var loaded = YUD.hasClass('branch_tag_switcher','loaded');
327 if(!loaded){
328 if(!loaded){
328 YUD.addClass('branch_tag_switcher','loaded');
329 YUD.addClass('branch_tag_switcher','loaded');
329 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
330 ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
330 function(o){},
331 function(o){},
331 function(o){YUD.removeClass('branch_tag_switcher','loaded');}
332 function(o){YUD.removeClass('branch_tag_switcher','loaded');}
332 ,null);
333 ,null);
333 }
334 }
334 return false;
335 return false;
335 });
336 });
336 </script>
337 </script>
337 %else:
338 %else:
338 ##ROOT MENU
339 ##ROOT MENU
339 %if c.rhodecode_user.username != 'default':
340 %if c.rhodecode_user.username != 'default':
340 <li ${is_current('journal')}>
341 <li ${is_current('journal')}>
341 <a class="menu_link" title="${_('Show recent activity')}" href="${h.url('journal')}">
342 <a class="menu_link" title="${_('Show recent activity')}" href="${h.url('journal')}">
342 <span class="icon">
343 <span class="icon">
343 <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
344 <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
344 </span>
345 </span>
345 <span>${_('Journal')}</span>
346 <span>${_('Journal')}</span>
346 </a>
347 </a>
347 </li>
348 </li>
348 %else:
349 %else:
349 <li ${is_current('journal')}>
350 <li ${is_current('journal')}>
350 <a class="menu_link" title="${_('Public journal')}" href="${h.url('public_journal')}">
351 <a class="menu_link" title="${_('Public journal')}" href="${h.url('public_journal')}">
351 <span class="icon">
352 <span class="icon">
352 <img src="${h.url('/images/icons/book.png')}" alt="${_('Public journal')}" />
353 <img src="${h.url('/images/icons/book.png')}" alt="${_('Public journal')}" />
353 </span>
354 </span>
354 <span>${_('Public journal')}</span>
355 <span>${_('Public journal')}</span>
355 </a>
356 </a>
356 </li>
357 </li>
357 %endif
358 %endif
358 <li ${is_current('search')}>
359 <li ${is_current('search')}>
359 <a class="menu_link" title="${_('Search in repositories')}" href="${h.url('search')}">
360 <a class="menu_link" title="${_('Search in repositories')}" href="${h.url('search')}">
360 <span class="icon">
361 <span class="icon">
361 <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
362 <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
362 </span>
363 </span>
363 <span>${_('Search')}</span>
364 <span>${_('Search')}</span>
364 </a>
365 </a>
365 </li>
366 </li>
366 % if h.HasPermissionAll('hg.admin')('access admin main page'):
367 % if h.HasPermissionAll('hg.admin')('access admin main page'):
367 <li ${is_current('admin')}>
368 <li ${is_current('admin')}>
368 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
369 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
369 <span class="icon">
370 <span class="icon">
370 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
371 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
371 </span>
372 </span>
372 <span>${_('Admin')}</span>
373 <span>${_('Admin')}</span>
373 </a>
374 </a>
374 ${admin_menu()}
375 ${admin_menu()}
375 </li>
376 </li>
376 % elif c.rhodecode_user.groups_admin:
377 % elif c.rhodecode_user.groups_admin:
377 <li ${is_current('admin')}>
378 <li ${is_current('admin')}>
378 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
379 <a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
379 <span class="icon">
380 <span class="icon">
380 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
381 <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
381 </span>
382 </span>
382 <span>${_('Admin')}</span>
383 <span>${_('Admin')}</span>
383 </a>
384 </a>
384 ${admin_menu_simple()}
385 ${admin_menu_simple()}
385 </li>
386 </li>
386 % endif
387 % endif
387 ${usermenu()}
388 ${usermenu()}
388 %endif
389 %endif
389 <script type="text/javascript">
390 <script type="text/javascript">
390 YUE.on('repo_switcher','mouseover',function(){
391 YUE.on('repo_switcher','mouseover',function(){
391 var target = 'q_filter_rs';
392 var target = 'q_filter_rs';
392 var qfilter_activate = function(){
393 var qfilter_activate = function(){
393 var nodes = YUQ('ul#repo_switcher_list li a.repo_name');
394 var nodes = YUQ('ul#repo_switcher_list li a.repo_name');
394 var func = function(node){
395 var func = function(node){
395 return node.parentNode;
396 return node.parentNode;
396 }
397 }
397 q_filter(target,nodes,func);
398 q_filter(target,nodes,func);
398 }
399 }
399
400
400 var loaded = YUD.hasClass('repo_switcher','loaded');
401 var loaded = YUD.hasClass('repo_switcher','loaded');
401 if(!loaded){
402 if(!loaded){
402 YUD.addClass('repo_switcher','loaded');
403 YUD.addClass('repo_switcher','loaded');
403 ypjax("${h.url('repo_switcher')}",'repo_switcher_list',
404 ypjax("${h.url('repo_switcher')}",'repo_switcher_list',
404 function(o){qfilter_activate();YUD.get(target).focus()},
405 function(o){qfilter_activate();YUD.get(target).focus()},
405 function(o){YUD.removeClass('repo_switcher','loaded');}
406 function(o){YUD.removeClass('repo_switcher','loaded');}
406 ,null);
407 ,null);
407 }else{
408 }else{
408 YUD.get(target).focus();
409 YUD.get(target).focus();
409 }
410 }
410 return false;
411 return false;
411 });
412 });
412
413
413 YUE.on('header-dd', 'click',function(e){
414 YUE.on('header-dd', 'click',function(e){
414 YUD.addClass('header-inner', 'hover');
415 YUD.addClass('header-inner', 'hover');
415 YUD.addClass('content', 'hover');
416 YUD.addClass('content', 'hover');
416 });
417 });
417
418
418 </script>
419 </script>
419 </%def>
420 </%def>
General Comments 0
You need to be logged in to leave comments. Login now