##// END OF EJS Templates
rhodecode.js: more jQuery and general cleanup...
Mads Kiilerich -
r4160:4451b2ea rhodecode-2.2.5-gpl
parent child Browse files
Show More
@@ -1,5062 +1,5062
1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td {
1 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td {
2 border: 0;
2 border: 0;
3 outline: 0;
3 outline: 0;
4 font-size: 100%;
4 font-size: 100%;
5 vertical-align: baseline;
5 vertical-align: baseline;
6 background: transparent;
6 background: transparent;
7 margin: 0;
7 margin: 0;
8 padding: 0;
8 padding: 0;
9 }
9 }
10
10
11 body {
11 body {
12 line-height: 1;
12 line-height: 1;
13 height: 100%;
13 height: 100%;
14 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
14 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
15 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
15 font-family: Lucida Grande, Verdana, Lucida Sans Regular,
16 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
16 Lucida Sans Unicode, Arial, sans-serif; font-size : 12px;
17 color: #000;
17 color: #000;
18 margin: 0;
18 margin: 0;
19 padding: 0;
19 padding: 0;
20 font-size: 12px;
20 font-size: 12px;
21 }
21 }
22
22
23 ol, ul {
23 ol, ul {
24 list-style: none;
24 list-style: none;
25 }
25 }
26
26
27 blockquote, q {
27 blockquote, q {
28 quotes: none;
28 quotes: none;
29 }
29 }
30
30
31 blockquote:before, blockquote:after, q:before, q:after {
31 blockquote:before, blockquote:after, q:before, q:after {
32 content: none;
32 content: none;
33 }
33 }
34
34
35 :focus {
35 :focus {
36 outline: 0;
36 outline: 0;
37 }
37 }
38
38
39 del {
39 del {
40 text-decoration: line-through;
40 text-decoration: line-through;
41 }
41 }
42
42
43 table {
43 table {
44 border-collapse: collapse;
44 border-collapse: collapse;
45 border-spacing: 0;
45 border-spacing: 0;
46 }
46 }
47
47
48 html {
48 html {
49 height: 100%;
49 height: 100%;
50 }
50 }
51
51
52 a {
52 a {
53 color: #003367;
53 color: #003367;
54 text-decoration: none;
54 text-decoration: none;
55 cursor: pointer;
55 cursor: pointer;
56 }
56 }
57
57
58 a:hover {
58 a:hover {
59 color: #316293;
59 color: #316293;
60 text-decoration: underline;
60 text-decoration: underline;
61 }
61 }
62
62
63 h1, h2, h3, h4, h5, h6,
63 h1, h2, h3, h4, h5, h6,
64 div.h1, div.h2, div.h3, div.h4, div.h5, div.h6 {
64 div.h1, div.h2, div.h3, div.h4, div.h5, div.h6 {
65 color: #292929;
65 color: #292929;
66 font-weight: 700;
66 font-weight: 700;
67 }
67 }
68
68
69 h1, div.h1 {
69 h1, div.h1 {
70 font-size: 22px;
70 font-size: 22px;
71 }
71 }
72
72
73 h2, div.h2 {
73 h2, div.h2 {
74 font-size: 20px;
74 font-size: 20px;
75 }
75 }
76
76
77 h3, div.h3 {
77 h3, div.h3 {
78 font-size: 18px;
78 font-size: 18px;
79 }
79 }
80
80
81 h4, div.h4 {
81 h4, div.h4 {
82 font-size: 16px;
82 font-size: 16px;
83 }
83 }
84
84
85 h5, div.h5 {
85 h5, div.h5 {
86 font-size: 14px;
86 font-size: 14px;
87 }
87 }
88
88
89 h6, div.h6 {
89 h6, div.h6 {
90 font-size: 11px;
90 font-size: 11px;
91 }
91 }
92
92
93 ul.circle {
93 ul.circle {
94 list-style-type: circle;
94 list-style-type: circle;
95 }
95 }
96
96
97 ul.disc {
97 ul.disc {
98 list-style-type: disc;
98 list-style-type: disc;
99 }
99 }
100
100
101 ul.square {
101 ul.square {
102 list-style-type: square;
102 list-style-type: square;
103 }
103 }
104
104
105 ol.lower-roman {
105 ol.lower-roman {
106 list-style-type: lower-roman;
106 list-style-type: lower-roman;
107 }
107 }
108
108
109 ol.upper-roman {
109 ol.upper-roman {
110 list-style-type: upper-roman;
110 list-style-type: upper-roman;
111 }
111 }
112
112
113 ol.lower-alpha {
113 ol.lower-alpha {
114 list-style-type: lower-alpha;
114 list-style-type: lower-alpha;
115 }
115 }
116
116
117 ol.upper-alpha {
117 ol.upper-alpha {
118 list-style-type: upper-alpha;
118 list-style-type: upper-alpha;
119 }
119 }
120
120
121 ol.decimal {
121 ol.decimal {
122 list-style-type: decimal;
122 list-style-type: decimal;
123 }
123 }
124
124
125 div.color {
125 div.color {
126 clear: both;
126 clear: both;
127 overflow: hidden;
127 overflow: hidden;
128 position: absolute;
128 position: absolute;
129 background: #FFF;
129 background: #FFF;
130 margin: 7px 0 0 60px;
130 margin: 7px 0 0 60px;
131 padding: 1px 1px 1px 0;
131 padding: 1px 1px 1px 0;
132 }
132 }
133
133
134 div.color a {
134 div.color a {
135 width: 15px;
135 width: 15px;
136 height: 15px;
136 height: 15px;
137 display: block;
137 display: block;
138 float: left;
138 float: left;
139 margin: 0 0 0 1px;
139 margin: 0 0 0 1px;
140 padding: 0;
140 padding: 0;
141 }
141 }
142
142
143 div.options {
143 div.options {
144 clear: both;
144 clear: both;
145 overflow: hidden;
145 overflow: hidden;
146 position: absolute;
146 position: absolute;
147 background: #FFF;
147 background: #FFF;
148 margin: 7px 0 0 162px;
148 margin: 7px 0 0 162px;
149 padding: 0;
149 padding: 0;
150 }
150 }
151
151
152 div.options a {
152 div.options a {
153 height: 1%;
153 height: 1%;
154 display: block;
154 display: block;
155 text-decoration: none;
155 text-decoration: none;
156 margin: 0;
156 margin: 0;
157 padding: 3px 8px;
157 padding: 3px 8px;
158 }
158 }
159
159
160 .top-left-rounded-corner {
160 .top-left-rounded-corner {
161 -webkit-border-top-left-radius: 8px;
161 -webkit-border-top-left-radius: 8px;
162 -khtml-border-radius-topleft: 8px;
162 -khtml-border-radius-topleft: 8px;
163 border-top-left-radius: 8px;
163 border-top-left-radius: 8px;
164 }
164 }
165
165
166 .top-right-rounded-corner {
166 .top-right-rounded-corner {
167 -webkit-border-top-right-radius: 8px;
167 -webkit-border-top-right-radius: 8px;
168 -khtml-border-radius-topright: 8px;
168 -khtml-border-radius-topright: 8px;
169 border-top-right-radius: 8px;
169 border-top-right-radius: 8px;
170 }
170 }
171
171
172 .bottom-left-rounded-corner {
172 .bottom-left-rounded-corner {
173 -webkit-border-bottom-left-radius: 8px;
173 -webkit-border-bottom-left-radius: 8px;
174 -khtml-border-radius-bottomleft: 8px;
174 -khtml-border-radius-bottomleft: 8px;
175 border-bottom-left-radius: 8px;
175 border-bottom-left-radius: 8px;
176 }
176 }
177
177
178 .bottom-right-rounded-corner {
178 .bottom-right-rounded-corner {
179 -webkit-border-bottom-right-radius: 8px;
179 -webkit-border-bottom-right-radius: 8px;
180 -khtml-border-radius-bottomright: 8px;
180 -khtml-border-radius-bottomright: 8px;
181 border-bottom-right-radius: 8px;
181 border-bottom-right-radius: 8px;
182 }
182 }
183
183
184 .top-left-rounded-corner-mid {
184 .top-left-rounded-corner-mid {
185 -webkit-border-top-left-radius: 4px;
185 -webkit-border-top-left-radius: 4px;
186 -khtml-border-radius-topleft: 4px;
186 -khtml-border-radius-topleft: 4px;
187 border-top-left-radius: 4px;
187 border-top-left-radius: 4px;
188 }
188 }
189
189
190 .top-right-rounded-corner-mid {
190 .top-right-rounded-corner-mid {
191 -webkit-border-top-right-radius: 4px;
191 -webkit-border-top-right-radius: 4px;
192 -khtml-border-radius-topright: 4px;
192 -khtml-border-radius-topright: 4px;
193 border-top-right-radius: 4px;
193 border-top-right-radius: 4px;
194 }
194 }
195
195
196 .bottom-left-rounded-corner-mid {
196 .bottom-left-rounded-corner-mid {
197 -webkit-border-bottom-left-radius: 4px;
197 -webkit-border-bottom-left-radius: 4px;
198 -khtml-border-radius-bottomleft: 4px;
198 -khtml-border-radius-bottomleft: 4px;
199 border-bottom-left-radius: 4px;
199 border-bottom-left-radius: 4px;
200 }
200 }
201
201
202 .bottom-right-rounded-corner-mid {
202 .bottom-right-rounded-corner-mid {
203 -webkit-border-bottom-right-radius: 4px;
203 -webkit-border-bottom-right-radius: 4px;
204 -khtml-border-radius-bottomright: 4px;
204 -khtml-border-radius-bottomright: 4px;
205 border-bottom-right-radius: 4px;
205 border-bottom-right-radius: 4px;
206 }
206 }
207
207
208 .help-block {
208 .help-block {
209 color: #999999;
209 color: #999999;
210 display: block;
210 display: block;
211 margin-bottom: 0;
211 margin-bottom: 0;
212 margin-top: 5px;
212 margin-top: 5px;
213 }
213 }
214
214
215 .empty_data {
215 .empty_data {
216 color: #B9B9B9;
216 color: #B9B9B9;
217 }
217 }
218
218
219 .truncate {
219 .truncate {
220 white-space: nowrap;
220 white-space: nowrap;
221 overflow: hidden;
221 overflow: hidden;
222 text-overflow: ellipsis;
222 text-overflow: ellipsis;
223 -o-text-overflow: ellipsis;
223 -o-text-overflow: ellipsis;
224 -ms-text-overflow: ellipsis;
224 -ms-text-overflow: ellipsis;
225 }
225 }
226
226
227 .truncate.autoexpand:hover {
227 .truncate.autoexpand:hover {
228 text-overflow: none;
228 text-overflow: none;
229 overflow: visible;
229 overflow: visible;
230 }
230 }
231
231
232 a.permalink {
232 a.permalink {
233 visibility: hidden;
233 visibility: hidden;
234 position: absolute;
234 position: absolute;
235 margin: 3px 4px;
235 margin: 3px 4px;
236 }
236 }
237
237
238 a.permalink:hover {
238 a.permalink:hover {
239 text-decoration: none;
239 text-decoration: none;
240 }
240 }
241
241
242 h1:hover > a.permalink,
242 h1:hover > a.permalink,
243 h2:hover > a.permalink,
243 h2:hover > a.permalink,
244 h3:hover > a.permalink,
244 h3:hover > a.permalink,
245 h4:hover > a.permalink,
245 h4:hover > a.permalink,
246 h5:hover > a.permalink,
246 h5:hover > a.permalink,
247 h6:hover > a.permalink,
247 h6:hover > a.permalink,
248 div:hover > a.permalink {
248 div:hover > a.permalink {
249 visibility: visible;
249 visibility: visible;
250 }
250 }
251
251
252 #header #logo {
252 #header #logo {
253 padding-left: 20px;
253 padding-left: 20px;
254 }
254 }
255
255
256 #header #logo div.header,
256 #header #logo div.header,
257 #header #logo div.branding {
257 #header #logo div.branding {
258 font-size: 20px;
258 font-size: 20px;
259 color: white;
259 color: white;
260 float: left;
260 float: left;
261 height: 44px;
261 height: 44px;
262 line-height: 44px;
262 line-height: 44px;
263 margin-right: 10px;
263 margin-right: 10px;
264 }
264 }
265
265
266 #header ul#logged-user {
266 #header ul#logged-user {
267 margin-bottom: 5px !important;
267 margin-bottom: 5px !important;
268 -webkit-border-radius: 0px 0px 8px 8px;
268 -webkit-border-radius: 0px 0px 8px 8px;
269 -khtml-border-radius: 0px 0px 8px 8px;
269 -khtml-border-radius: 0px 0px 8px 8px;
270 border-radius: 0px 0px 8px 8px;
270 border-radius: 0px 0px 8px 8px;
271 height: 37px;
271 height: 37px;
272 background-color: #003B76;
272 background-color: #003B76;
273 background-repeat: repeat-x;
273 background-repeat: repeat-x;
274 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
274 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
275 background-image: -moz-linear-gradient(top, #003b76, #00376e);
275 background-image: -moz-linear-gradient(top, #003b76, #00376e);
276 background-image: -ms-linear-gradient(top, #003b76, #00376e);
276 background-image: -ms-linear-gradient(top, #003b76, #00376e);
277 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
277 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
278 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
278 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
279 background-image: -o-linear-gradient(top, #003b76, #00376e);
279 background-image: -o-linear-gradient(top, #003b76, #00376e);
280 background-image: linear-gradient(to bottom, #003b76, #00376e);
280 background-image: linear-gradient(to bottom, #003b76, #00376e);
281 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
281 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
282 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
282 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
283 }
283 }
284
284
285 #header ul#logged-user li {
285 #header ul#logged-user li {
286 list-style: none;
286 list-style: none;
287 float: left;
287 float: left;
288 margin: 8px 0 0;
288 margin: 8px 0 0;
289 padding: 4px 12px;
289 padding: 4px 12px;
290 border-left: 1px solid #316293;
290 border-left: 1px solid #316293;
291 }
291 }
292
292
293 #header ul#logged-user li.first {
293 #header ul#logged-user li.first {
294 border-left: none;
294 border-left: none;
295 margin: 4px;
295 margin: 4px;
296 }
296 }
297
297
298 #header ul#logged-user li.first div.gravatar {
298 #header ul#logged-user li.first div.gravatar {
299 margin-top: -2px;
299 margin-top: -2px;
300 }
300 }
301
301
302 #header ul#logged-user li.first div.account {
302 #header ul#logged-user li.first div.account {
303 padding-top: 4px;
303 padding-top: 4px;
304 float: left;
304 float: left;
305 }
305 }
306
306
307 #header ul#logged-user li.last {
307 #header ul#logged-user li.last {
308 border-right: none;
308 border-right: none;
309 }
309 }
310
310
311 #header ul#logged-user li a {
311 #header ul#logged-user li a {
312 color: #fff;
312 color: #fff;
313 font-weight: 700;
313 font-weight: 700;
314 text-decoration: none;
314 text-decoration: none;
315 }
315 }
316
316
317 #header ul#logged-user li a:hover {
317 #header ul#logged-user li a:hover {
318 text-decoration: underline;
318 text-decoration: underline;
319 }
319 }
320
320
321 #header ul#logged-user li.highlight a {
321 #header ul#logged-user li.highlight a {
322 color: #fff;
322 color: #fff;
323 }
323 }
324
324
325 #header ul#logged-user li.highlight a:hover {
325 #header ul#logged-user li.highlight a:hover {
326 color: #FFF;
326 color: #FFF;
327 }
327 }
328 #header-dd {
328 #header-dd {
329 clear: both;
329 clear: both;
330 position: fixed !important;
330 position: fixed !important;
331 background-color: #003B76;
331 background-color: #003B76;
332 opacity: 0.01;
332 opacity: 0.01;
333 cursor: pointer;
333 cursor: pointer;
334 min-height: 10px;
334 min-height: 10px;
335 width: 100% !important;
335 width: 100% !important;
336 -webkit-border-radius: 0px 0px 4px 4px;
336 -webkit-border-radius: 0px 0px 4px 4px;
337 -khtml-border-radius: 0px 0px 4px 4px;
337 -khtml-border-radius: 0px 0px 4px 4px;
338 border-radius: 0px 0px 4px 4px;
338 border-radius: 0px 0px 4px 4px;
339 }
339 }
340
340
341 #header-dd:hover {
341 #header-dd:hover {
342 opacity: 0.2;
342 opacity: 0.2;
343 -webkit-transition: opacity 0.5s ease-in-out;
343 -webkit-transition: opacity 0.5s ease-in-out;
344 -moz-transition: opacity 0.5s ease-in-out;
344 -moz-transition: opacity 0.5s ease-in-out;
345 transition: opacity 0.5s ease-in-out;
345 transition: opacity 0.5s ease-in-out;
346 }
346 }
347
347
348 #header #header-inner {
348 #header #header-inner {
349 min-height: 44px;
349 min-height: 44px;
350 clear: both;
350 clear: both;
351 position: relative;
351 position: relative;
352 background-color: #003B76;
352 background-color: #003B76;
353 background-repeat: repeat-x;
353 background-repeat: repeat-x;
354 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
354 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
355 background-image: -moz-linear-gradient(top, #003b76, #00376e);
355 background-image: -moz-linear-gradient(top, #003b76, #00376e);
356 background-image: -ms-linear-gradient(top, #003b76, #00376e);
356 background-image: -ms-linear-gradient(top, #003b76, #00376e);
357 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),color-stop(100%, #00376e) );
357 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76),color-stop(100%, #00376e) );
358 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
358 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
359 background-image: -o-linear-gradient(top, #003b76, #00376e);
359 background-image: -o-linear-gradient(top, #003b76, #00376e);
360 background-image: linear-gradient(to bottom, #003b76, #00376e);
360 background-image: linear-gradient(to bottom, #003b76, #00376e);
361 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
361 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',endColorstr='#00376e', GradientType=0 );
362 margin: 0;
362 margin: 0;
363 padding: 0;
363 padding: 0;
364 display: block;
364 display: block;
365 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
365 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
366 -webkit-border-radius: 0px 0px 4px 4px;
366 -webkit-border-radius: 0px 0px 4px 4px;
367 -khtml-border-radius: 0px 0px 4px 4px;
367 -khtml-border-radius: 0px 0px 4px 4px;
368 border-radius: 0px 0px 4px 4px;
368 border-radius: 0px 0px 4px 4px;
369 }
369 }
370 #header #header-inner.hover {
370 #header #header-inner.hover {
371 width: 100% !important;
371 width: 100% !important;
372 -webkit-border-radius: 0px 0px 0px 0px;
372 -webkit-border-radius: 0px 0px 0px 0px;
373 -khtml-border-radius: 0px 0px 0px 0px;
373 -khtml-border-radius: 0px 0px 0px 0px;
374 border-radius: 0px 0px 0px 0px;
374 border-radius: 0px 0px 0px 0px;
375 position: fixed !important;
375 position: fixed !important;
376 z-index: 10000;
376 z-index: 10000;
377 }
377 }
378
378
379 .ie7 #header #header-inner.hover,
379 .ie7 #header #header-inner.hover,
380 .ie8 #header #header-inner.hover,
380 .ie8 #header #header-inner.hover,
381 .ie9 #header #header-inner.hover
381 .ie9 #header #header-inner.hover
382 {
382 {
383 z-index: auto !important;
383 z-index: auto !important;
384 }
384 }
385
385
386 .header-pos-fix, .anchor {
386 .header-pos-fix, .anchor {
387 margin-top: -46px;
387 margin-top: -46px;
388 padding-top: 46px;
388 padding-top: 46px;
389 }
389 }
390
390
391 #header #header-inner #home a {
391 #header #header-inner #home a {
392 height: 40px;
392 height: 40px;
393 width: 46px;
393 width: 46px;
394 display: block;
394 display: block;
395 background-position: 0 0;
395 background-position: 0 0;
396 margin: 0;
396 margin: 0;
397 padding: 0;
397 padding: 0;
398 }
398 }
399
399
400 #header #header-inner #home a:hover {
400 #header #header-inner #home a:hover {
401 background-position: 0 -40px;
401 background-position: 0 -40px;
402 }
402 }
403
403
404 #header #header-inner #logo {
404 #header #header-inner #logo {
405 float: left;
405 float: left;
406 position: absolute;
406 position: absolute;
407 }
407 }
408
408
409 #header #header-inner #logo h1 {
409 #header #header-inner #logo h1 {
410 color: #FFF;
410 color: #FFF;
411 font-size: 20px;
411 font-size: 20px;
412 margin: 12px 0 0 13px;
412 margin: 12px 0 0 13px;
413 padding: 0;
413 padding: 0;
414 }
414 }
415
415
416 #header #header-inner #logo a {
416 #header #header-inner #logo a {
417 color: #fff;
417 color: #fff;
418 text-decoration: none;
418 text-decoration: none;
419 }
419 }
420
420
421 #header #header-inner #logo a:hover {
421 #header #header-inner #logo a:hover {
422 color: #bfe3ff;
422 color: #bfe3ff;
423 }
423 }
424
424
425 #header #header-inner #quick {
425 #header #header-inner #quick {
426 position: relative;
426 position: relative;
427 float: right;
427 float: right;
428 list-style-type: none;
428 list-style-type: none;
429 list-style-position: outside;
429 list-style-position: outside;
430 margin: 4px 8px 0 0;
430 margin: 4px 8px 0 0;
431 padding: 0;
431 padding: 0;
432 border-radius: 4px;
432 border-radius: 4px;
433 }
433 }
434
434
435 #header #header-inner #quick li span.short {
435 #header #header-inner #quick li span.short {
436 padding: 9px 6px 8px 6px;
436 padding: 9px 6px 8px 6px;
437 }
437 }
438
438
439 #header #header-inner #quick li span {
439 #header #header-inner #quick li span {
440 display: inline;
440 display: inline;
441 margin: 0;
441 margin: 0;
442 }
442 }
443
443
444 #header #header-inner #quick li span.normal {
444 #header #header-inner #quick li span.normal {
445 border: none;
445 border: none;
446 padding: 10px 12px 8px;
446 padding: 10px 12px 8px;
447 }
447 }
448
448
449 #header #header-inner #quick li span.icon {
449 #header #header-inner #quick li span.icon {
450 border-left: none;
450 border-left: none;
451 padding-left: 10px;
451 padding-left: 10px;
452 }
452 }
453
453
454 #header #header-inner #quick li span.icon_short {
454 #header #header-inner #quick li span.icon_short {
455 top: 0;
455 top: 0;
456 left: 0;
456 left: 0;
457 border-left: none;
457 border-left: none;
458 border-right: 1px solid #2e5c89;
458 border-right: 1px solid #2e5c89;
459 padding: 8px 6px 4px;
459 padding: 8px 6px 4px;
460 }
460 }
461
461
462 #header #header-inner #quick li span.icon img, #header #header-inner #quick li span.icon_short img {
462 #header #header-inner #quick li span.icon img, #header #header-inner #quick li span.icon_short img {
463 vertical-align: middle;
463 vertical-align: middle;
464 margin-bottom: 2px;
464 margin-bottom: 2px;
465 }
465 }
466
466
467 #header #header-inner #quick ul.repo_switcher {
467 #header #header-inner #quick ul.repo_switcher {
468 max-height: 275px;
468 max-height: 275px;
469 overflow-x: hidden;
469 overflow-x: hidden;
470 overflow-y: auto;
470 overflow-y: auto;
471 }
471 }
472
472
473 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
473 #header #header-inner #quick ul.repo_switcher li.qfilter_rs {
474 padding: 2px 3px;
474 padding: 2px 3px;
475 padding-right: 17px;
475 padding-right: 17px;
476 }
476 }
477
477
478 #header #header-inner #quick ul.repo_switcher li.qfilter_rs input {
478 #header #header-inner #quick ul.repo_switcher li.qfilter_rs input {
479 width: 100%;
479 width: 100%;
480 border-radius: 10px;
480 border-radius: 10px;
481 padding: 2px 7px;
481 padding: 2px 7px;
482 }
482 }
483
483
484 #header #header-inner #quick .repo_switcher_type {
484 #header #header-inner #quick .repo_switcher_type {
485 position: absolute;
485 position: absolute;
486 left: 0;
486 left: 0;
487 top: 9px;
487 top: 9px;
488 margin: 0px 2px 0px 2px;
488 margin: 0px 2px 0px 2px;
489 }
489 }
490
490
491 #header #header-inner #quick li ul li a.journal, #header #header-inner #quick li ul li a.journal:hover {
491 #header #header-inner #quick li ul li a.journal, #header #header-inner #quick li ul li a.journal:hover {
492 background-image: url("../images/icons/book.png");
492 background-image: url("../images/icons/book.png");
493 }
493 }
494
494
495 #header #header-inner #quick li ul li a.private_repo, #header #header-inner #quick li ul li a.private_repo:hover {
495 #header #header-inner #quick li ul li a.private_repo, #header #header-inner #quick li ul li a.private_repo:hover {
496 background-image: url("../images/icons/private_repo.png")
496 background-image: url("../images/icons/private_repo.png")
497 }
497 }
498
498
499 #header #header-inner #quick li ul li a.public_repo, #header #header-inner #quick li ul li a.public_repo:hover {
499 #header #header-inner #quick li ul li a.public_repo, #header #header-inner #quick li ul li a.public_repo:hover {
500 background-image: url("../images/icons/public_repo.png");
500 background-image: url("../images/icons/public_repo.png");
501 }
501 }
502
502
503 #header #header-inner #quick li ul li a.hg, #header #header-inner #quick li ul li a.hg:hover {
503 #header #header-inner #quick li ul li a.hg, #header #header-inner #quick li ul li a.hg:hover {
504 background-image: url("../images/icons/hgicon.png");
504 background-image: url("../images/icons/hgicon.png");
505 padding-left: 42px;
505 padding-left: 42px;
506 background-position: 20px 9px;
506 background-position: 20px 9px;
507 }
507 }
508
508
509 #header #header-inner #quick li ul li a.git, #header #header-inner #quick li ul li a.git:hover {
509 #header #header-inner #quick li ul li a.git, #header #header-inner #quick li ul li a.git:hover {
510 background-image: url("../images/icons/giticon.png");
510 background-image: url("../images/icons/giticon.png");
511 padding-left: 42px;
511 padding-left: 42px;
512 background-position: 20px 9px;
512 background-position: 20px 9px;
513 }
513 }
514
514
515 #header #header-inner #quick li ul li a.repos, #header #header-inner #quick li ul li a.repos:hover {
515 #header #header-inner #quick li ul li a.repos, #header #header-inner #quick li ul li a.repos:hover {
516 background-image: url("../images/icons/database_edit.png");
516 background-image: url("../images/icons/database_edit.png");
517 }
517 }
518
518
519 #header #header-inner #quick li ul li a.repos_groups, #header #header-inner #quick li ul li a.repos_groups:hover {
519 #header #header-inner #quick li ul li a.repos_groups, #header #header-inner #quick li ul li a.repos_groups:hover {
520 background-image: url("../images/icons/database_link.png");
520 background-image: url("../images/icons/database_link.png");
521 }
521 }
522
522
523 #header #header-inner #quick li ul li a.users, #header #header-inner #quick li ul li a.users:hover {
523 #header #header-inner #quick li ul li a.users, #header #header-inner #quick li ul li a.users:hover {
524 background-image: url("../images/icons/user_edit.png");
524 background-image: url("../images/icons/user_edit.png");
525 }
525 }
526
526
527 #header #header-inner #quick li ul li a.groups, #header #header-inner #quick li ul li a.groups:hover {
527 #header #header-inner #quick li ul li a.groups, #header #header-inner #quick li ul li a.groups:hover {
528 background-image: url("../images/icons/group_edit.png");
528 background-image: url("../images/icons/group_edit.png");
529 }
529 }
530
530
531 #header #header-inner #quick li ul li a.defaults, #header #header-inner #quick li ul li a.defaults:hover {
531 #header #header-inner #quick li ul li a.defaults, #header #header-inner #quick li ul li a.defaults:hover {
532 background-image: url("../images/icons/wrench.png");
532 background-image: url("../images/icons/wrench.png");
533 }
533 }
534
534
535 #header #header-inner #quick li ul li a.settings, #header #header-inner #quick li ul li a.settings:hover {
535 #header #header-inner #quick li ul li a.settings, #header #header-inner #quick li ul li a.settings:hover {
536 background-image: url("../images/icons/cog.png");
536 background-image: url("../images/icons/cog.png");
537 }
537 }
538
538
539 #header #header-inner #quick li ul li a.permissions, #header #header-inner #quick li ul li a.permissions:hover {
539 #header #header-inner #quick li ul li a.permissions, #header #header-inner #quick li ul li a.permissions:hover {
540 background-image: url("../images/icons/key.png");
540 background-image: url("../images/icons/key.png");
541 }
541 }
542
542
543 #header #header-inner #quick li ul li a.ldap, #header #header-inner #quick li ul li a.ldap:hover {
543 #header #header-inner #quick li ul li a.ldap, #header #header-inner #quick li ul li a.ldap:hover {
544 background-image: url("../images/icons/server_key.png");
544 background-image: url("../images/icons/server_key.png");
545 }
545 }
546
546
547 #header #header-inner #quick li ul li a.fork, #header #header-inner #quick li ul li a.fork:hover {
547 #header #header-inner #quick li ul li a.fork, #header #header-inner #quick li ul li a.fork:hover {
548 background-image: url("../images/icons/arrow_divide.png");
548 background-image: url("../images/icons/arrow_divide.png");
549 }
549 }
550
550
551 #header #header-inner #quick li ul li a.locking_add, #header #header-inner #quick li ul li a.locking_add:hover {
551 #header #header-inner #quick li ul li a.locking_add, #header #header-inner #quick li ul li a.locking_add:hover {
552 background-image: url("../images/icons/lock_add.png");
552 background-image: url("../images/icons/lock_add.png");
553 }
553 }
554
554
555 #header #header-inner #quick li ul li a.locking_del, #header #header-inner #quick li ul li a.locking_del:hover {
555 #header #header-inner #quick li ul li a.locking_del, #header #header-inner #quick li ul li a.locking_del:hover {
556 background-image: url("../images/icons/lock_delete.png");
556 background-image: url("../images/icons/lock_delete.png");
557 }
557 }
558
558
559 #header #header-inner #quick li ul li a.pull_request, #header #header-inner #quick li ul li a.pull_request:hover {
559 #header #header-inner #quick li ul li a.pull_request, #header #header-inner #quick li ul li a.pull_request:hover {
560 background-image: url("../images/icons/arrow_join.png") ;
560 background-image: url("../images/icons/arrow_join.png") ;
561 }
561 }
562
562
563 #header #header-inner #quick li ul li a.compare_request, #header #header-inner #quick li ul li a.compare_request:hover {
563 #header #header-inner #quick li ul li a.compare_request, #header #header-inner #quick li ul li a.compare_request:hover {
564 background-image: url("../images/icons/arrow_inout.png");
564 background-image: url("../images/icons/arrow_inout.png");
565 }
565 }
566
566
567 #header #header-inner #quick li ul li a.search, #header #header-inner #quick li ul li a.search:hover {
567 #header #header-inner #quick li ul li a.search, #header #header-inner #quick li ul li a.search:hover {
568 background-image: url("../images/icons/search_16.png");
568 background-image: url("../images/icons/search_16.png");
569 }
569 }
570
570
571 #header #header-inner #quick li ul li a.delete, #header #header-inner #quick li ul li a.delete:hover {
571 #header #header-inner #quick li ul li a.delete, #header #header-inner #quick li ul li a.delete:hover {
572 background-image: url("../images/icons/delete.png");
572 background-image: url("../images/icons/delete.png");
573 }
573 }
574
574
575 #header #header-inner #quick li ul li a.branches, #header #header-inner #quick li ul li a.branches:hover {
575 #header #header-inner #quick li ul li a.branches, #header #header-inner #quick li ul li a.branches:hover {
576 background-image: url("../images/icons/arrow_branch.png");
576 background-image: url("../images/icons/arrow_branch.png");
577 }
577 }
578
578
579 #header #header-inner #quick li ul li a.tags,
579 #header #header-inner #quick li ul li a.tags,
580 #header #header-inner #quick li ul li a.tags:hover {
580 #header #header-inner #quick li ul li a.tags:hover {
581 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
581 background: #FFF url("../images/icons/tag_blue.png") no-repeat 4px 9px;
582 width: 167px;
582 width: 167px;
583 margin: 0;
583 margin: 0;
584 padding: 12px 9px 7px 24px;
584 padding: 12px 9px 7px 24px;
585 }
585 }
586
586
587 #header #header-inner #quick li ul li a.bookmarks,
587 #header #header-inner #quick li ul li a.bookmarks,
588 #header #header-inner #quick li ul li a.bookmarks:hover {
588 #header #header-inner #quick li ul li a.bookmarks:hover {
589 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
589 background: #FFF url("../images/icons/tag_green.png") no-repeat 4px 9px;
590 width: 167px;
590 width: 167px;
591 margin: 0;
591 margin: 0;
592 padding: 12px 9px 7px 24px;
592 padding: 12px 9px 7px 24px;
593 }
593 }
594
594
595 #header #header-inner #quick li ul li a.admin,
595 #header #header-inner #quick li ul li a.admin,
596 #header #header-inner #quick li ul li a.admin:hover {
596 #header #header-inner #quick li ul li a.admin:hover {
597 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
597 background: #FFF url("../images/icons/cog_edit.png") no-repeat 4px 9px;
598 width: 167px;
598 width: 167px;
599 margin: 0;
599 margin: 0;
600 padding: 12px 9px 7px 24px;
600 padding: 12px 9px 7px 24px;
601 }
601 }
602
602
603 .groups_breadcrumbs a {
603 .groups_breadcrumbs a {
604 color: #fff;
604 color: #fff;
605 }
605 }
606
606
607 .groups_breadcrumbs a:hover {
607 .groups_breadcrumbs a:hover {
608 color: #bfe3ff;
608 color: #bfe3ff;
609 text-decoration: none;
609 text-decoration: none;
610 }
610 }
611
611
612 td.quick_repo_menu {
612 td.quick_repo_menu {
613 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
613 background: #FFF url("../images/vertical-indicator.png") 8px 50% no-repeat !important;
614 cursor: pointer;
614 cursor: pointer;
615 width: 8px;
615 width: 8px;
616 border: 1px solid transparent;
616 border: 1px solid transparent;
617 }
617 }
618
618
619 td.quick_repo_menu.active {
619 td.quick_repo_menu.active {
620 background: url("../images/dt-arrow-dn.png") no-repeat scroll 5px 50% #FFFFFF !important;
620 background: url("../images/dt-arrow-dn.png") no-repeat scroll 5px 50% #FFFFFF !important;
621 border: 1px solid #003367;
621 border: 1px solid #003367;
622 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
622 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
623 cursor: pointer;
623 cursor: pointer;
624 }
624 }
625
625
626 td.quick_repo_menu .menu_items {
626 td.quick_repo_menu .menu_items {
627 margin-top: 10px;
627 margin-top: 10px;
628 margin-left: -6px;
628 margin-left: -6px;
629 width: 150px;
629 width: 150px;
630 position: absolute;
630 position: absolute;
631 background-color: #FFF;
631 background-color: #FFF;
632 background: none repeat scroll 0 0 #FFFFFF;
632 background: none repeat scroll 0 0 #FFFFFF;
633 border-color: #003367 #666666 #666666;
633 border-color: #003367 #666666 #666666;
634 border-right: 1px solid #666666;
634 border-right: 1px solid #666666;
635 border-style: solid;
635 border-style: solid;
636 border-width: 1px;
636 border-width: 1px;
637 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
637 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
638 border-top-style: none;
638 border-top-style: none;
639 }
639 }
640
640
641 td.quick_repo_menu .menu_items li {
641 td.quick_repo_menu .menu_items li {
642 padding: 0 !important;
642 padding: 0 !important;
643 }
643 }
644
644
645 td.quick_repo_menu .menu_items a {
645 td.quick_repo_menu .menu_items a {
646 display: block;
646 display: block;
647 padding: 4px 12px 4px 8px;
647 padding: 4px 12px 4px 8px;
648 }
648 }
649
649
650 td.quick_repo_menu .menu_items a:hover {
650 td.quick_repo_menu .menu_items a:hover {
651 background-color: #EEE;
651 background-color: #EEE;
652 text-decoration: none;
652 text-decoration: none;
653 }
653 }
654
654
655 td.quick_repo_menu .menu_items .icon img {
655 td.quick_repo_menu .menu_items .icon img {
656 margin-bottom: -2px;
656 margin-bottom: -2px;
657 }
657 }
658
658
659 td.quick_repo_menu .menu_items.hidden {
659 td.quick_repo_menu .menu_items.hidden {
660 display: none;
660 display: none;
661 }
661 }
662
662
663 .yui-dt-first th {
663 .yui-dt-first th {
664 text-align: left;
664 text-align: left;
665 }
665 }
666
666
667 /*
667 /*
668 Copyright (c) 2011, Yahoo! Inc. All rights reserved.
668 Copyright (c) 2011, Yahoo! Inc. All rights reserved.
669 Code licensed under the BSD License:
669 Code licensed under the BSD License:
670 http://developer.yahoo.com/yui/license.html
670 http://developer.yahoo.com/yui/license.html
671 version: 2.9.0
671 version: 2.9.0
672 */
672 */
673 .yui-skin-sam .yui-dt-mask {
673 .yui-skin-sam .yui-dt-mask {
674 position: absolute;
674 position: absolute;
675 z-index: 9500;
675 z-index: 9500;
676 }
676 }
677 .yui-dt-tmp {
677 .yui-dt-tmp {
678 position: absolute;
678 position: absolute;
679 left: -9000px;
679 left: -9000px;
680 }
680 }
681 .yui-dt-scrollable .yui-dt-bd { overflow: auto }
681 .yui-dt-scrollable .yui-dt-bd { overflow: auto }
682 .yui-dt-scrollable .yui-dt-hd {
682 .yui-dt-scrollable .yui-dt-hd {
683 overflow: hidden;
683 overflow: hidden;
684 position: relative;
684 position: relative;
685 }
685 }
686 .yui-dt-scrollable .yui-dt-bd thead tr,
686 .yui-dt-scrollable .yui-dt-bd thead tr,
687 .yui-dt-scrollable .yui-dt-bd thead th {
687 .yui-dt-scrollable .yui-dt-bd thead th {
688 position: absolute;
688 position: absolute;
689 left: -1500px;
689 left: -1500px;
690 }
690 }
691 .yui-dt-scrollable tbody { -moz-outline: 0 }
691 .yui-dt-scrollable tbody { -moz-outline: 0 }
692 .yui-skin-sam thead .yui-dt-sortable { cursor: pointer }
692 .yui-skin-sam thead .yui-dt-sortable { cursor: pointer }
693 .yui-skin-sam thead .yui-dt-draggable { cursor: move }
693 .yui-skin-sam thead .yui-dt-draggable { cursor: move }
694 .yui-dt-coltarget {
694 .yui-dt-coltarget {
695 position: absolute;
695 position: absolute;
696 z-index: 999;
696 z-index: 999;
697 }
697 }
698 .yui-dt-hd { zoom: 1 }
698 .yui-dt-hd { zoom: 1 }
699 th.yui-dt-resizeable .yui-dt-resizerliner { position: relative }
699 th.yui-dt-resizeable .yui-dt-resizerliner { position: relative }
700 .yui-dt-resizer {
700 .yui-dt-resizer {
701 position: absolute;
701 position: absolute;
702 right: 0;
702 right: 0;
703 bottom: 0;
703 bottom: 0;
704 height: 100%;
704 height: 100%;
705 cursor: e-resize;
705 cursor: e-resize;
706 cursor: col-resize;
706 cursor: col-resize;
707 background-color: #CCC;
707 background-color: #CCC;
708 opacity: 0;
708 opacity: 0;
709 filter: alpha(opacity=0);
709 filter: alpha(opacity=0);
710 }
710 }
711 .yui-dt-resizerproxy {
711 .yui-dt-resizerproxy {
712 visibility: hidden;
712 visibility: hidden;
713 position: absolute;
713 position: absolute;
714 z-index: 9000;
714 z-index: 9000;
715 background-color: #CCC;
715 background-color: #CCC;
716 opacity: 0;
716 opacity: 0;
717 filter: alpha(opacity=0);
717 filter: alpha(opacity=0);
718 }
718 }
719 th.yui-dt-hidden .yui-dt-liner,
719 th.yui-dt-hidden .yui-dt-liner,
720 td.yui-dt-hidden .yui-dt-liner,
720 td.yui-dt-hidden .yui-dt-liner,
721 th.yui-dt-hidden .yui-dt-resizer { display: none }
721 th.yui-dt-hidden .yui-dt-resizer { display: none }
722 .yui-dt-editor,
722 .yui-dt-editor,
723 .yui-dt-editor-shim {
723 .yui-dt-editor-shim {
724 position: absolute;
724 position: absolute;
725 z-index: 9000;
725 z-index: 9000;
726 }
726 }
727 .yui-skin-sam .yui-dt table {
727 .yui-skin-sam .yui-dt table {
728 margin: 0;
728 margin: 0;
729 padding: 0;
729 padding: 0;
730 font-family: arial;
730 font-family: arial;
731 font-size: inherit;
731 font-size: inherit;
732 border-collapse: separate;
732 border-collapse: separate;
733 *border-collapse: collapse;
733 *border-collapse: collapse;
734 border-spacing: 0;
734 border-spacing: 0;
735 border: 1px solid #7f7f7f;
735 border: 1px solid #7f7f7f;
736 }
736 }
737 .yui-skin-sam .yui-dt thead { border-spacing: 0 }
737 .yui-skin-sam .yui-dt thead { border-spacing: 0 }
738 .yui-skin-sam .yui-dt caption {
738 .yui-skin-sam .yui-dt caption {
739 color: #000;
739 color: #000;
740 font-size: 85%;
740 font-size: 85%;
741 font-weight: normal;
741 font-weight: normal;
742 font-style: italic;
742 font-style: italic;
743 line-height: 1;
743 line-height: 1;
744 padding: 1em 0;
744 padding: 1em 0;
745 text-align: center;
745 text-align: center;
746 }
746 }
747 .yui-skin-sam .yui-dt th { background: #d8d8da url(../images/sprite.png) repeat-x 0 0 }
747 .yui-skin-sam .yui-dt th { background: #d8d8da url(../images/sprite.png) repeat-x 0 0 }
748 .yui-skin-sam .yui-dt th,
748 .yui-skin-sam .yui-dt th,
749 .yui-skin-sam .yui-dt th a {
749 .yui-skin-sam .yui-dt th a {
750 font-weight: normal;
750 font-weight: normal;
751 text-decoration: none;
751 text-decoration: none;
752 color: #000;
752 color: #000;
753 vertical-align: bottom;
753 vertical-align: bottom;
754 }
754 }
755 .yui-skin-sam .yui-dt th {
755 .yui-skin-sam .yui-dt th {
756 margin: 0;
756 margin: 0;
757 padding: 0;
757 padding: 0;
758 border: 0;
758 border: 0;
759 border-right: 1px solid #cbcbcb;
759 border-right: 1px solid #cbcbcb;
760 }
760 }
761 .yui-skin-sam .yui-dt tr.yui-dt-first td { border-top: 1px solid #7f7f7f }
761 .yui-skin-sam .yui-dt tr.yui-dt-first td { border-top: 1px solid #7f7f7f }
762 .yui-skin-sam .yui-dt th .yui-dt-liner { white-space: nowrap }
762 .yui-skin-sam .yui-dt th .yui-dt-liner { white-space: nowrap }
763 .yui-skin-sam .yui-dt-liner {
763 .yui-skin-sam .yui-dt-liner {
764 margin: 0;
764 margin: 0;
765 padding: 0;
765 padding: 0;
766 }
766 }
767 .yui-skin-sam .yui-dt-coltarget {
767 .yui-skin-sam .yui-dt-coltarget {
768 width: 5px;
768 width: 5px;
769 background-color: red;
769 background-color: red;
770 }
770 }
771 .yui-skin-sam .yui-dt td {
771 .yui-skin-sam .yui-dt td {
772 margin: 0;
772 margin: 0;
773 padding: 0;
773 padding: 0;
774 border: 0;
774 border: 0;
775 border-right: 1px solid #cbcbcb;
775 border-right: 1px solid #cbcbcb;
776 text-align: left;
776 text-align: left;
777 }
777 }
778 .yui-skin-sam .yui-dt-list td { border-right: 0 }
778 .yui-skin-sam .yui-dt-list td { border-right: 0 }
779 .yui-skin-sam .yui-dt-resizer { width: 6px }
779 .yui-skin-sam .yui-dt-resizer { width: 6px }
780 .yui-skin-sam .yui-dt-mask {
780 .yui-skin-sam .yui-dt-mask {
781 background-color: #000;
781 background-color: #000;
782 opacity: .25;
782 opacity: .25;
783 filter: alpha(opacity=25);
783 filter: alpha(opacity=25);
784 }
784 }
785 .yui-skin-sam .yui-dt-message { background-color: #FFF }
785 .yui-skin-sam .yui-dt-message { background-color: #FFF }
786 .yui-skin-sam .yui-dt-scrollable table { border: 0 }
786 .yui-skin-sam .yui-dt-scrollable table { border: 0 }
787 .yui-skin-sam .yui-dt-scrollable .yui-dt-hd {
787 .yui-skin-sam .yui-dt-scrollable .yui-dt-hd {
788 border-left: 1px solid #7f7f7f;
788 border-left: 1px solid #7f7f7f;
789 border-top: 1px solid #7f7f7f;
789 border-top: 1px solid #7f7f7f;
790 border-right: 1px solid #7f7f7f;
790 border-right: 1px solid #7f7f7f;
791 }
791 }
792 .yui-skin-sam .yui-dt-scrollable .yui-dt-bd {
792 .yui-skin-sam .yui-dt-scrollable .yui-dt-bd {
793 border-left: 1px solid #7f7f7f;
793 border-left: 1px solid #7f7f7f;
794 border-bottom: 1px solid #7f7f7f;
794 border-bottom: 1px solid #7f7f7f;
795 border-right: 1px solid #7f7f7f;
795 border-right: 1px solid #7f7f7f;
796 background-color: #FFF;
796 background-color: #FFF;
797 }
797 }
798 .yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { border-bottom: 1px solid #7f7f7f }
798 .yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td { border-bottom: 1px solid #7f7f7f }
799 .yui-skin-sam th.yui-dt-asc,
799 .yui-skin-sam th.yui-dt-asc,
800 .yui-skin-sam th.yui-dt-desc { background: url(../images/sprite.png) repeat-x 0 -100px }
800 .yui-skin-sam th.yui-dt-desc { background: url(../images/sprite.png) repeat-x 0 -100px }
801 .yui-skin-sam th.yui-dt-sortable .yui-dt-label { margin-right: 10px }
801 .yui-skin-sam th.yui-dt-sortable .yui-dt-label { margin-right: 10px }
802 .yui-skin-sam th.yui-dt-asc .yui-dt-liner { background: url(../images/dt-arrow-up.png) no-repeat right }
802 .yui-skin-sam th.yui-dt-asc .yui-dt-liner { background: url(../images/dt-arrow-up.png) no-repeat right }
803 .yui-skin-sam th.yui-dt-desc .yui-dt-liner { background: url(../images/dt-arrow-dn.png) no-repeat right }
803 .yui-skin-sam th.yui-dt-desc .yui-dt-liner { background: url(../images/dt-arrow-dn.png) no-repeat right }
804 tbody .yui-dt-editable { cursor: pointer }
804 tbody .yui-dt-editable { cursor: pointer }
805 .yui-dt-editor {
805 .yui-dt-editor {
806 text-align: left;
806 text-align: left;
807 background-color: #f2f2f2;
807 background-color: #f2f2f2;
808 border: 1px solid #808080;
808 border: 1px solid #808080;
809 padding: 6px;
809 padding: 6px;
810 }
810 }
811 .yui-dt-editor label {
811 .yui-dt-editor label {
812 padding-left: 4px;
812 padding-left: 4px;
813 padding-right: 6px;
813 padding-right: 6px;
814 }
814 }
815 .yui-dt-editor .yui-dt-button {
815 .yui-dt-editor .yui-dt-button {
816 padding-top: 6px;
816 padding-top: 6px;
817 text-align: right;
817 text-align: right;
818 }
818 }
819 .yui-dt-editor .yui-dt-button button {
819 .yui-dt-editor .yui-dt-button button {
820 background: url(../images/sprite.png) repeat-x 0 0;
820 background: url(../images/sprite.png) repeat-x 0 0;
821 border: 1px solid #999;
821 border: 1px solid #999;
822 width: 4em;
822 width: 4em;
823 height: 1.8em;
823 height: 1.8em;
824 margin-left: 6px;
824 margin-left: 6px;
825 }
825 }
826 .yui-dt-editor .yui-dt-button button.yui-dt-default {
826 .yui-dt-editor .yui-dt-button button.yui-dt-default {
827 background: url(../images/sprite.png) repeat-x 0 -1400px;
827 background: url(../images/sprite.png) repeat-x 0 -1400px;
828 background-color: #5584e0;
828 background-color: #5584e0;
829 border: 1px solid #304369;
829 border: 1px solid #304369;
830 color: #FFF;
830 color: #FFF;
831 }
831 }
832 .yui-dt-editor .yui-dt-button button:hover {
832 .yui-dt-editor .yui-dt-button button:hover {
833 background: url(../images/sprite.png) repeat-x 0 -1300px;
833 background: url(../images/sprite.png) repeat-x 0 -1300px;
834 color: #000;
834 color: #000;
835 }
835 }
836 .yui-dt-editor .yui-dt-button button:active {
836 .yui-dt-editor .yui-dt-button button:active {
837 background: url(../images/sprite.png) repeat-x 0 -1700px;
837 background: url(../images/sprite.png) repeat-x 0 -1700px;
838 color: #000;
838 color: #000;
839 }
839 }
840 .yui-skin-sam tr.yui-dt-even { background-color: #FFF }
840 .yui-skin-sam tr.yui-dt-even { background-color: #FFF }
841 .yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff }
841 .yui-skin-sam tr.yui-dt-odd { background-color: #edf5ff }
842 .yui-skin-sam tr.yui-dt-even td.yui-dt-asc,
842 .yui-skin-sam tr.yui-dt-even td.yui-dt-asc,
843 .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
843 .yui-skin-sam tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
844 .yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,
844 .yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,
845 .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff }
845 .yui-skin-sam tr.yui-dt-odd td.yui-dt-desc { background-color: #dbeaff }
846 .yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF }
846 .yui-skin-sam .yui-dt-list tr.yui-dt-even { background-color: #FFF }
847 .yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF }
847 .yui-skin-sam .yui-dt-list tr.yui-dt-odd { background-color: #FFF }
848 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,
848 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,
849 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
849 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc { background-color: #edf5ff }
850 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,
850 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,
851 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff }
851 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc { background-color: #edf5ff }
852 .yui-skin-sam th.yui-dt-highlighted,
852 .yui-skin-sam th.yui-dt-highlighted,
853 .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff }
853 .yui-skin-sam th.yui-dt-highlighted a { background-color: #b2d2ff }
854 .yui-skin-sam tr.yui-dt-highlighted,
854 .yui-skin-sam tr.yui-dt-highlighted,
855 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,
855 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,
856 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,
856 .yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,
857 .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,
857 .yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,
858 .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted {
858 .yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted {
859 cursor: pointer;
859 cursor: pointer;
860 background-color: #b2d2ff;
860 background-color: #b2d2ff;
861 }
861 }
862 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted,
862 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted,
863 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff }
863 .yui-skin-sam .yui-dt-list th.yui-dt-highlighted a { background-color: #b2d2ff }
864 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,
864 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,
865 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,
865 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,
866 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,
866 .yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,
867 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,
867 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,
868 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted {
868 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted {
869 cursor: pointer;
869 cursor: pointer;
870 background-color: #b2d2ff;
870 background-color: #b2d2ff;
871 }
871 }
872 .yui-skin-sam th.yui-dt-selected,
872 .yui-skin-sam th.yui-dt-selected,
873 .yui-skin-sam th.yui-dt-selected a { background-color: #446cd7 }
873 .yui-skin-sam th.yui-dt-selected a { background-color: #446cd7 }
874 .yui-skin-sam tr.yui-dt-selected td,
874 .yui-skin-sam tr.yui-dt-selected td,
875 .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,
875 .yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,
876 .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc {
876 .yui-skin-sam tr.yui-dt-selected td.yui-dt-desc {
877 background-color: #426fd9;
877 background-color: #426fd9;
878 color: #FFF;
878 color: #FFF;
879 }
879 }
880 .yui-skin-sam tr.yui-dt-even td.yui-dt-selected,
880 .yui-skin-sam tr.yui-dt-even td.yui-dt-selected,
881 .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected {
881 .yui-skin-sam tr.yui-dt-odd td.yui-dt-selected {
882 background-color: #446cd7;
882 background-color: #446cd7;
883 color: #FFF;
883 color: #FFF;
884 }
884 }
885 .yui-skin-sam .yui-dt-list th.yui-dt-selected,
885 .yui-skin-sam .yui-dt-list th.yui-dt-selected,
886 .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 }
886 .yui-skin-sam .yui-dt-list th.yui-dt-selected a { background-color: #446cd7 }
887 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,
887 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,
888 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,
888 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,
889 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc {
889 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc {
890 background-color: #426fd9;
890 background-color: #426fd9;
891 color: #FFF;
891 color: #FFF;
892 }
892 }
893 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,
893 .yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,
894 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected {
894 .yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected {
895 background-color: #446cd7;
895 background-color: #446cd7;
896 color: #FFF;
896 color: #FFF;
897 }
897 }
898 .yui-skin-sam .yui-dt-paginator {
898 .yui-skin-sam .yui-dt-paginator {
899 display: block;
899 display: block;
900 margin: 6px 0;
900 margin: 6px 0;
901 white-space: nowrap;
901 white-space: nowrap;
902 }
902 }
903 .yui-skin-sam .yui-dt-paginator .yui-dt-first,
903 .yui-skin-sam .yui-dt-paginator .yui-dt-first,
904 .yui-skin-sam .yui-dt-paginator .yui-dt-last,
904 .yui-skin-sam .yui-dt-paginator .yui-dt-last,
905 .yui-skin-sam .yui-dt-paginator .yui-dt-selected { padding: 2px 6px }
905 .yui-skin-sam .yui-dt-paginator .yui-dt-selected { padding: 2px 6px }
906 .yui-skin-sam .yui-dt-paginator a.yui-dt-first,
906 .yui-skin-sam .yui-dt-paginator a.yui-dt-first,
907 .yui-skin-sam .yui-dt-paginator a.yui-dt-last { text-decoration: none }
907 .yui-skin-sam .yui-dt-paginator a.yui-dt-last { text-decoration: none }
908 .yui-skin-sam .yui-dt-paginator .yui-dt-previous,
908 .yui-skin-sam .yui-dt-paginator .yui-dt-previous,
909 .yui-skin-sam .yui-dt-paginator .yui-dt-next { display: none }
909 .yui-skin-sam .yui-dt-paginator .yui-dt-next { display: none }
910 .yui-skin-sam a.yui-dt-page {
910 .yui-skin-sam a.yui-dt-page {
911 border: 1px solid #cbcbcb;
911 border: 1px solid #cbcbcb;
912 padding: 2px 6px;
912 padding: 2px 6px;
913 text-decoration: none;
913 text-decoration: none;
914 background-color: #fff;
914 background-color: #fff;
915 }
915 }
916 .yui-skin-sam .yui-dt-selected {
916 .yui-skin-sam .yui-dt-selected {
917 border: 1px solid #fff;
917 border: 1px solid #fff;
918 background-color: #fff;
918 background-color: #fff;
919 }
919 }
920
920
921 #content #left {
921 #content #left {
922 left: 0;
922 left: 0;
923 width: 280px;
923 width: 280px;
924 position: absolute;
924 position: absolute;
925 }
925 }
926
926
927 #content #right {
927 #content #right {
928 margin: 0 60px 10px 290px;
928 margin: 0 60px 10px 290px;
929 }
929 }
930
930
931 #content div.box {
931 #content div.box {
932 clear: both;
932 clear: both;
933 background: #fff;
933 background: #fff;
934 margin: 0 0 10px;
934 margin: 0 0 10px;
935 padding: 0 0 10px;
935 padding: 0 0 10px;
936 -webkit-border-radius: 4px 4px 4px 4px;
936 -webkit-border-radius: 4px 4px 4px 4px;
937 -khtml-border-radius: 4px 4px 4px 4px;
937 -khtml-border-radius: 4px 4px 4px 4px;
938 border-radius: 4px 4px 4px 4px;
938 border-radius: 4px 4px 4px 4px;
939 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
939 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
940 }
940 }
941
941
942 #content div.box-left {
942 #content div.box-left {
943 width: 49%;
943 width: 49%;
944 clear: none;
944 clear: none;
945 float: left;
945 float: left;
946 margin: 0 0 10px;
946 margin: 0 0 10px;
947 }
947 }
948
948
949 #content div.box-right {
949 #content div.box-right {
950 width: 49%;
950 width: 49%;
951 clear: none;
951 clear: none;
952 float: right;
952 float: right;
953 margin: 0 0 10px;
953 margin: 0 0 10px;
954 }
954 }
955
955
956 #content div.box div.title {
956 #content div.box div.title {
957 clear: both;
957 clear: both;
958 overflow: hidden;
958 overflow: hidden;
959 background-color: #003B76;
959 background-color: #003B76;
960 background-repeat: repeat-x;
960 background-repeat: repeat-x;
961 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
961 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
962 background-image: -moz-linear-gradient(top, #003b76, #00376e);
962 background-image: -moz-linear-gradient(top, #003b76, #00376e);
963 background-image: -ms-linear-gradient(top, #003b76, #00376e);
963 background-image: -ms-linear-gradient(top, #003b76, #00376e);
964 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
964 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
965 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
965 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
966 background-image: -o-linear-gradient(top, #003b76, #00376e);
966 background-image: -o-linear-gradient(top, #003b76, #00376e);
967 background-image: linear-gradient(to bottom, #003b76, #00376e);
967 background-image: linear-gradient(to bottom, #003b76, #00376e);
968 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
968 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
969 margin: 0 0 20px;
969 margin: 0 0 20px;
970 padding: 0;
970 padding: 0;
971 border-radius: 4px 4px 0 0;
971 border-radius: 4px 4px 0 0;
972 }
972 }
973
973
974 #content div.box div.title h5 {
974 #content div.box div.title h5 {
975 float: left;
975 float: left;
976 border: none;
976 border: none;
977 color: #fff;
977 color: #fff;
978 margin: 0;
978 margin: 0;
979 padding: 11px 0 11px 10px;
979 padding: 11px 0 11px 10px;
980 }
980 }
981
981
982 #content div.box div.title .link-white {
982 #content div.box div.title .link-white {
983 color: #FFFFFF;
983 color: #FFFFFF;
984 }
984 }
985
985
986 #content div.box div.title .link-white.current {
986 #content div.box div.title .link-white.current {
987 color: #BFE3FF;
987 color: #BFE3FF;
988 }
988 }
989
989
990 #content div.box div.title ul.links li {
990 #content div.box div.title ul.links li {
991 list-style: none;
991 list-style: none;
992 float: left;
992 float: left;
993 margin: 0;
993 margin: 0;
994 padding: 0;
994 padding: 0;
995 }
995 }
996
996
997 #content div.box div.title ul.links li a {
997 #content div.box div.title ul.links li a {
998 font-size: 13px;
998 font-size: 13px;
999 font-weight: 700;
999 font-weight: 700;
1000 height: 1%;
1000 height: 1%;
1001 margin: 4px;
1001 margin: 4px;
1002 text-decoration: none;
1002 text-decoration: none;
1003 }
1003 }
1004
1004
1005 #content div.box h1, #content div.box h2, #content div.box h3, #content div.box h4, #content div.box h5, #content div.box h6,
1005 #content div.box h1, #content div.box h2, #content div.box h3, #content div.box h4, #content div.box h5, #content div.box h6,
1006 #content div.box div.h1, #content div.box div.h2, #content div.box div.h3, #content div.box div.h4, #content div.box div.h5, #content div.box div.h6 {
1006 #content div.box div.h1, #content div.box div.h2, #content div.box div.h3, #content div.box div.h4, #content div.box div.h5, #content div.box div.h6 {
1007 clear: both;
1007 clear: both;
1008 overflow: hidden;
1008 overflow: hidden;
1009 margin: 8px 20px 5px;
1009 margin: 8px 20px 5px;
1010 }
1010 }
1011
1011
1012 #content div.box p {
1012 #content div.box p {
1013 color: #5f5f5f;
1013 color: #5f5f5f;
1014 font-size: 12px;
1014 font-size: 12px;
1015 line-height: 150%;
1015 line-height: 150%;
1016 margin: 0 24px 10px;
1016 margin: 0 24px 10px;
1017 padding: 0;
1017 padding: 0;
1018 }
1018 }
1019
1019
1020 #content div.box blockquote {
1020 #content div.box blockquote {
1021 border-left: 4px solid #DDD;
1021 border-left: 4px solid #DDD;
1022 color: #5f5f5f;
1022 color: #5f5f5f;
1023 font-size: 11px;
1023 font-size: 11px;
1024 line-height: 150%;
1024 line-height: 150%;
1025 margin: 0 34px;
1025 margin: 0 34px;
1026 padding: 0 0 0 14px;
1026 padding: 0 0 0 14px;
1027 }
1027 }
1028
1028
1029 #content div.box blockquote p {
1029 #content div.box blockquote p {
1030 margin: 10px 0;
1030 margin: 10px 0;
1031 padding: 0;
1031 padding: 0;
1032 }
1032 }
1033
1033
1034 #content div.box dl {
1034 #content div.box dl {
1035 margin: 10px 0px;
1035 margin: 10px 0px;
1036 }
1036 }
1037
1037
1038 #content div.box dt {
1038 #content div.box dt {
1039 font-size: 12px;
1039 font-size: 12px;
1040 margin: 0;
1040 margin: 0;
1041 }
1041 }
1042
1042
1043 #content div.box dd {
1043 #content div.box dd {
1044 font-size: 12px;
1044 font-size: 12px;
1045 margin: 0;
1045 margin: 0;
1046 padding: 8px 0 8px 15px;
1046 padding: 8px 0 8px 15px;
1047 }
1047 }
1048
1048
1049 #content div.box li {
1049 #content div.box li {
1050 font-size: 12px;
1050 font-size: 12px;
1051 padding: 4px 0;
1051 padding: 4px 0;
1052 }
1052 }
1053
1053
1054 #content div.box ul.disc, #content div.box ul.circle {
1054 #content div.box ul.disc, #content div.box ul.circle {
1055 margin: 10px 24px 10px 38px;
1055 margin: 10px 24px 10px 38px;
1056 }
1056 }
1057
1057
1058 #content div.box ul.square {
1058 #content div.box ul.square {
1059 margin: 10px 24px 10px 40px;
1059 margin: 10px 24px 10px 40px;
1060 }
1060 }
1061
1061
1062 #content div.box img.left {
1062 #content div.box img.left {
1063 border: none;
1063 border: none;
1064 float: left;
1064 float: left;
1065 margin: 10px 10px 10px 0;
1065 margin: 10px 10px 10px 0;
1066 }
1066 }
1067
1067
1068 #content div.box img.right {
1068 #content div.box img.right {
1069 border: none;
1069 border: none;
1070 float: right;
1070 float: right;
1071 margin: 10px 0 10px 10px;
1071 margin: 10px 0 10px 10px;
1072 }
1072 }
1073
1073
1074 #content div.box div.messages {
1074 #content div.box div.messages {
1075 clear: both;
1075 clear: both;
1076 overflow: hidden;
1076 overflow: hidden;
1077 margin: 0 20px;
1077 margin: 0 20px;
1078 padding: 0;
1078 padding: 0;
1079 }
1079 }
1080
1080
1081 #content div.box div.message {
1081 #content div.box div.message {
1082 clear: both;
1082 clear: both;
1083 overflow: hidden;
1083 overflow: hidden;
1084 margin: 0;
1084 margin: 0;
1085 padding: 5px 0;
1085 padding: 5px 0;
1086 white-space: pre-wrap;
1086 white-space: pre-wrap;
1087 }
1087 }
1088 #content div.box div.expand {
1088 #content div.box div.expand {
1089 width: 110%;
1089 width: 110%;
1090 height: 14px;
1090 height: 14px;
1091 font-size: 10px;
1091 font-size: 10px;
1092 text-align: center;
1092 text-align: center;
1093 cursor: pointer;
1093 cursor: pointer;
1094 color: #666;
1094 color: #666;
1095
1095
1096 background: -webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,rgba(64,96,128,0.1)));
1096 background: -webkit-gradient(linear,0% 50%,100% 50%,color-stop(0%,rgba(255,255,255,0)),color-stop(100%,rgba(64,96,128,0.1)));
1097 background: -webkit-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1097 background: -webkit-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1098 background: -moz-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1098 background: -moz-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1099 background: -o-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1099 background: -o-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1100 background: -ms-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1100 background: -ms-linear-gradient(top,rgba(255,255,255,0),rgba(64,96,128,0.1));
1101 background: linear-gradient(to bottom,rgba(255,255,255,0),rgba(64,96,128,0.1));
1101 background: linear-gradient(to bottom,rgba(255,255,255,0),rgba(64,96,128,0.1));
1102
1102
1103 display: none;
1103 display: none;
1104 overflow: hidden;
1104 overflow: hidden;
1105 }
1105 }
1106 #content div.box div.expand .expandtext {
1106 #content div.box div.expand .expandtext {
1107 background-color: #ffffff;
1107 background-color: #ffffff;
1108 padding: 2px;
1108 padding: 2px;
1109 border-radius: 2px;
1109 border-radius: 2px;
1110 }
1110 }
1111
1111
1112 #content div.box div.message a {
1112 #content div.box div.message a {
1113 font-weight: 400 !important;
1113 font-weight: 400 !important;
1114 }
1114 }
1115
1115
1116 #content div.box div.message div.image {
1116 #content div.box div.message div.image {
1117 float: left;
1117 float: left;
1118 margin: 9px 0 0 5px;
1118 margin: 9px 0 0 5px;
1119 padding: 6px;
1119 padding: 6px;
1120 }
1120 }
1121
1121
1122 #content div.box div.message div.image img {
1122 #content div.box div.message div.image img {
1123 vertical-align: middle;
1123 vertical-align: middle;
1124 margin: 0;
1124 margin: 0;
1125 }
1125 }
1126
1126
1127 #content div.box div.message div.text {
1127 #content div.box div.message div.text {
1128 float: left;
1128 float: left;
1129 margin: 0;
1129 margin: 0;
1130 padding: 9px 6px;
1130 padding: 9px 6px;
1131 }
1131 }
1132
1132
1133 #content div.box div.message div.dismiss a {
1133 #content div.box div.message div.dismiss a {
1134 height: 16px;
1134 height: 16px;
1135 width: 16px;
1135 width: 16px;
1136 display: block;
1136 display: block;
1137 background: url("../images/icons/cross.png") no-repeat;
1137 background: url("../images/icons/cross.png") no-repeat;
1138 margin: 15px 14px 0 0;
1138 margin: 15px 14px 0 0;
1139 padding: 0;
1139 padding: 0;
1140 }
1140 }
1141
1141
1142 #content div.box div.message div.text h1, #content div.box div.message div.text h2, #content div.box div.message div.text h3, #content div.box div.message div.text h4, #content div.box div.message div.text h5, #content div.box div.message div.text h6 {
1142 #content div.box div.message div.text h1, #content div.box div.message div.text h2, #content div.box div.message div.text h3, #content div.box div.message div.text h4, #content div.box div.message div.text h5, #content div.box div.message div.text h6 {
1143 border: none;
1143 border: none;
1144 margin: 0;
1144 margin: 0;
1145 padding: 0;
1145 padding: 0;
1146 }
1146 }
1147
1147
1148 #content div.box div.message div.text span {
1148 #content div.box div.message div.text span {
1149 height: 1%;
1149 height: 1%;
1150 display: block;
1150 display: block;
1151 margin: 0;
1151 margin: 0;
1152 padding: 5px 0 0;
1152 padding: 5px 0 0;
1153 }
1153 }
1154
1154
1155 #content div.box div.message-error {
1155 #content div.box div.message-error {
1156 height: 1%;
1156 height: 1%;
1157 clear: both;
1157 clear: both;
1158 overflow: hidden;
1158 overflow: hidden;
1159 background: #FBE3E4;
1159 background: #FBE3E4;
1160 border: 1px solid #FBC2C4;
1160 border: 1px solid #FBC2C4;
1161 color: #860006;
1161 color: #860006;
1162 }
1162 }
1163
1163
1164 #content div.box div.message-error h6 {
1164 #content div.box div.message-error h6 {
1165 color: #860006;
1165 color: #860006;
1166 }
1166 }
1167
1167
1168 #content div.box div.message-warning {
1168 #content div.box div.message-warning {
1169 height: 1%;
1169 height: 1%;
1170 clear: both;
1170 clear: both;
1171 overflow: hidden;
1171 overflow: hidden;
1172 background: #FFF6BF;
1172 background: #FFF6BF;
1173 border: 1px solid #FFD324;
1173 border: 1px solid #FFD324;
1174 color: #5f5200;
1174 color: #5f5200;
1175 }
1175 }
1176
1176
1177 #content div.box div.message-warning h6 {
1177 #content div.box div.message-warning h6 {
1178 color: #5f5200;
1178 color: #5f5200;
1179 }
1179 }
1180
1180
1181 #content div.box div.message-notice {
1181 #content div.box div.message-notice {
1182 height: 1%;
1182 height: 1%;
1183 clear: both;
1183 clear: both;
1184 overflow: hidden;
1184 overflow: hidden;
1185 background: #8FBDE0;
1185 background: #8FBDE0;
1186 border: 1px solid #6BACDE;
1186 border: 1px solid #6BACDE;
1187 color: #003863;
1187 color: #003863;
1188 }
1188 }
1189
1189
1190 #content div.box div.message-notice h6 {
1190 #content div.box div.message-notice h6 {
1191 color: #003863;
1191 color: #003863;
1192 }
1192 }
1193
1193
1194 #content div.box div.message-success {
1194 #content div.box div.message-success {
1195 height: 1%;
1195 height: 1%;
1196 clear: both;
1196 clear: both;
1197 overflow: hidden;
1197 overflow: hidden;
1198 background: #E6EFC2;
1198 background: #E6EFC2;
1199 border: 1px solid #C6D880;
1199 border: 1px solid #C6D880;
1200 color: #4e6100;
1200 color: #4e6100;
1201 }
1201 }
1202
1202
1203 #content div.box div.message-success h6 {
1203 #content div.box div.message-success h6 {
1204 color: #4e6100;
1204 color: #4e6100;
1205 }
1205 }
1206
1206
1207 #content div.box div.form div.fields div.field {
1207 #content div.box div.form div.fields div.field {
1208 height: 1%;
1208 height: 1%;
1209 min-height: 12px;
1209 min-height: 12px;
1210 border-bottom: 1px solid #DDD;
1210 border-bottom: 1px solid #DDD;
1211 clear: both;
1211 clear: both;
1212 margin: 0;
1212 margin: 0;
1213 padding: 10px 0;
1213 padding: 10px 0;
1214 }
1214 }
1215
1215
1216 #content div.box div.form div.fields div.field-first {
1216 #content div.box div.form div.fields div.field-first {
1217 padding: 0 0 10px;
1217 padding: 0 0 10px;
1218 }
1218 }
1219
1219
1220 #content div.box div.form div.fields div.field-noborder {
1220 #content div.box div.form div.fields div.field-noborder {
1221 border-bottom: 0 !important;
1221 border-bottom: 0 !important;
1222 }
1222 }
1223
1223
1224 #content div.box div.form div.fields div.field span.error-message {
1224 #content div.box div.form div.fields div.field span.error-message {
1225 height: 1%;
1225 height: 1%;
1226 display: inline-block;
1226 display: inline-block;
1227 color: red;
1227 color: red;
1228 margin: 8px 0 0 4px;
1228 margin: 8px 0 0 4px;
1229 padding: 0;
1229 padding: 0;
1230 }
1230 }
1231
1231
1232 #content div.box div.form div.fields div.field span.success {
1232 #content div.box div.form div.fields div.field span.success {
1233 height: 1%;
1233 height: 1%;
1234 display: block;
1234 display: block;
1235 color: #316309;
1235 color: #316309;
1236 margin: 8px 0 0;
1236 margin: 8px 0 0;
1237 padding: 0;
1237 padding: 0;
1238 }
1238 }
1239
1239
1240 #content div.box div.form div.fields div.field div.label {
1240 #content div.box div.form div.fields div.field div.label {
1241 left: 70px;
1241 left: 70px;
1242 width: 155px;
1242 width: 155px;
1243 position: absolute;
1243 position: absolute;
1244 margin: 0;
1244 margin: 0;
1245 padding: 5px 0 0 0px;
1245 padding: 5px 0 0 0px;
1246 }
1246 }
1247
1247
1248 #content div.box div.form div.fields div.field div.label-summary {
1248 #content div.box div.form div.fields div.field div.label-summary {
1249 left: 30px;
1249 left: 30px;
1250 width: 155px;
1250 width: 155px;
1251 position: absolute;
1251 position: absolute;
1252 margin: 0;
1252 margin: 0;
1253 padding: 0px 0 0 0px;
1253 padding: 0px 0 0 0px;
1254 }
1254 }
1255
1255
1256 #content div.box-left div.form div.fields div.field div.label,
1256 #content div.box-left div.form div.fields div.field div.label,
1257 #content div.box-right div.form div.fields div.field div.label,
1257 #content div.box-right div.form div.fields div.field div.label,
1258 #content div.box-left div.form div.fields div.field div.label,
1258 #content div.box-left div.form div.fields div.field div.label,
1259 #content div.box-left div.form div.fields div.field div.label-summary,
1259 #content div.box-left div.form div.fields div.field div.label-summary,
1260 #content div.box-right div.form div.fields div.field div.label-summary,
1260 #content div.box-right div.form div.fields div.field div.label-summary,
1261 #content div.box-left div.form div.fields div.field div.label-summary {
1261 #content div.box-left div.form div.fields div.field div.label-summary {
1262 clear: both;
1262 clear: both;
1263 overflow: hidden;
1263 overflow: hidden;
1264 left: 0;
1264 left: 0;
1265 width: auto;
1265 width: auto;
1266 position: relative;
1266 position: relative;
1267 margin: 0;
1267 margin: 0;
1268 padding: 0 0 8px;
1268 padding: 0 0 8px;
1269 }
1269 }
1270
1270
1271 #content div.box div.form div.fields div.field div.label-select {
1271 #content div.box div.form div.fields div.field div.label-select {
1272 padding: 5px 0 0 5px;
1272 padding: 5px 0 0 5px;
1273 }
1273 }
1274
1274
1275 #content div.box-left div.form div.fields div.field div.label-select,
1275 #content div.box-left div.form div.fields div.field div.label-select,
1276 #content div.box-right div.form div.fields div.field div.label-select {
1276 #content div.box-right div.form div.fields div.field div.label-select {
1277 padding: 0 0 8px;
1277 padding: 0 0 8px;
1278 }
1278 }
1279
1279
1280 #content div.box-left div.form div.fields div.field div.label-textarea,
1280 #content div.box-left div.form div.fields div.field div.label-textarea,
1281 #content div.box-right div.form div.fields div.field div.label-textarea {
1281 #content div.box-right div.form div.fields div.field div.label-textarea {
1282 padding: 0 0 8px !important;
1282 padding: 0 0 8px !important;
1283 }
1283 }
1284
1284
1285 #content div.box div.form div.fields div.field div.label label, div.label label {
1285 #content div.box div.form div.fields div.field div.label label, div.label label {
1286 color: #393939;
1286 color: #393939;
1287 font-weight: 700;
1287 font-weight: 700;
1288 }
1288 }
1289 #content div.box div.form div.fields div.field div.label label, div.label-summary label {
1289 #content div.box div.form div.fields div.field div.label label, div.label-summary label {
1290 color: #393939;
1290 color: #393939;
1291 font-weight: 700;
1291 font-weight: 700;
1292 }
1292 }
1293 #content div.box div.form div.fields div.field div.input {
1293 #content div.box div.form div.fields div.field div.input {
1294 margin: 0 0 0 200px;
1294 margin: 0 0 0 200px;
1295 }
1295 }
1296
1296
1297 #content div.box div.form div.fields div.field div.input.summary {
1297 #content div.box div.form div.fields div.field div.input.summary {
1298 margin: 0 0 0 110px;
1298 margin: 0 0 0 110px;
1299 }
1299 }
1300 #content div.box div.form div.fields div.field div.input.summary-short {
1300 #content div.box div.form div.fields div.field div.input.summary-short {
1301 margin: 0 0 0 110px;
1301 margin: 0 0 0 110px;
1302 }
1302 }
1303 #content div.box div.form div.fields div.field div.file {
1303 #content div.box div.form div.fields div.field div.file {
1304 margin: 0 0 0 200px;
1304 margin: 0 0 0 200px;
1305 }
1305 }
1306 #content div.box div.form div.fields div.field div.editor {
1306 #content div.box div.form div.fields div.field div.editor {
1307 margin: 0 0 0 200px;
1307 margin: 0 0 0 200px;
1308 }
1308 }
1309
1309
1310 #content div.box-left div.form div.fields div.field div.input, #content div.box-right div.form div.fields div.field div.input {
1310 #content div.box-left div.form div.fields div.field div.input, #content div.box-right div.form div.fields div.field div.input {
1311 margin: 0 0 0 0px;
1311 margin: 0 0 0 0px;
1312 }
1312 }
1313
1313
1314 #content div.box div.form div.fields div.field div.input input,
1314 #content div.box div.form div.fields div.field div.input input,
1315 .reviewer_ac input {
1315 .reviewer_ac input {
1316 background: #FFF;
1316 background: #FFF;
1317 border-top: 1px solid #b3b3b3;
1317 border-top: 1px solid #b3b3b3;
1318 border-left: 1px solid #b3b3b3;
1318 border-left: 1px solid #b3b3b3;
1319 border-right: 1px solid #eaeaea;
1319 border-right: 1px solid #eaeaea;
1320 border-bottom: 1px solid #eaeaea;
1320 border-bottom: 1px solid #eaeaea;
1321 color: #000;
1321 color: #000;
1322 font-size: 12px;
1322 font-size: 12px;
1323 margin: 0;
1323 margin: 0;
1324 padding: 7px 7px 6px;
1324 padding: 7px 7px 6px;
1325 }
1325 }
1326
1326
1327 #content div.box div.form div.fields div.field div.input input#clone_url,
1327 #content div.box div.form div.fields div.field div.input input#clone_url,
1328 #content div.box div.form div.fields div.field div.input input#clone_url_id
1328 #content div.box div.form div.fields div.field div.input input#clone_url_id
1329 {
1329 {
1330 font-size: 16px;
1330 font-size: 16px;
1331 padding: 2px;
1331 padding: 2px;
1332 }
1332 }
1333
1333
1334 #content div.box div.form div.fields div.field div.file input {
1334 #content div.box div.form div.fields div.field div.file input {
1335 background: none repeat scroll 0 0 #FFFFFF;
1335 background: none repeat scroll 0 0 #FFFFFF;
1336 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1336 border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;
1337 border-style: solid;
1337 border-style: solid;
1338 border-width: 1px;
1338 border-width: 1px;
1339 color: #000000;
1339 color: #000000;
1340 font-size: 12px;
1340 font-size: 12px;
1341 margin: 0;
1341 margin: 0;
1342 padding: 7px 7px 6px;
1342 padding: 7px 7px 6px;
1343 }
1343 }
1344
1344
1345 input.disabled {
1345 input.disabled {
1346 background-color: #F5F5F5 !important;
1346 background-color: #F5F5F5 !important;
1347 }
1347 }
1348 #content div.box div.form div.fields div.field div.input input.small {
1348 #content div.box div.form div.fields div.field div.input input.small {
1349 width: 30%;
1349 width: 30%;
1350 }
1350 }
1351
1351
1352 #content div.box div.form div.fields div.field div.input input.medium {
1352 #content div.box div.form div.fields div.field div.input input.medium {
1353 width: 55%;
1353 width: 55%;
1354 }
1354 }
1355
1355
1356 #content div.box div.form div.fields div.field div.input input.large {
1356 #content div.box div.form div.fields div.field div.input input.large {
1357 width: 85%;
1357 width: 85%;
1358 }
1358 }
1359
1359
1360 #content div.box div.form div.fields div.field div.input input.date {
1360 #content div.box div.form div.fields div.field div.input input.date {
1361 width: 177px;
1361 width: 177px;
1362 }
1362 }
1363
1363
1364 #content div.box div.form div.fields div.field div.input input.button {
1364 #content div.box div.form div.fields div.field div.input input.button {
1365 background: #D4D0C8;
1365 background: #D4D0C8;
1366 border-top: 1px solid #FFF;
1366 border-top: 1px solid #FFF;
1367 border-left: 1px solid #FFF;
1367 border-left: 1px solid #FFF;
1368 border-right: 1px solid #404040;
1368 border-right: 1px solid #404040;
1369 border-bottom: 1px solid #404040;
1369 border-bottom: 1px solid #404040;
1370 color: #000;
1370 color: #000;
1371 margin: 0;
1371 margin: 0;
1372 padding: 4px 8px;
1372 padding: 4px 8px;
1373 }
1373 }
1374
1374
1375 #content div.box div.form div.fields div.field div.textarea {
1375 #content div.box div.form div.fields div.field div.textarea {
1376 border-top: 1px solid #b3b3b3;
1376 border-top: 1px solid #b3b3b3;
1377 border-left: 1px solid #b3b3b3;
1377 border-left: 1px solid #b3b3b3;
1378 border-right: 1px solid #eaeaea;
1378 border-right: 1px solid #eaeaea;
1379 border-bottom: 1px solid #eaeaea;
1379 border-bottom: 1px solid #eaeaea;
1380 margin: 0 0 0 200px;
1380 margin: 0 0 0 200px;
1381 padding: 7px 7px 6px;
1381 padding: 7px 7px 6px;
1382 }
1382 }
1383
1383
1384 #content div.box div.form div.fields div.field div.textarea-editor {
1384 #content div.box div.form div.fields div.field div.textarea-editor {
1385 border: 1px solid #ddd;
1385 border: 1px solid #ddd;
1386 padding: 0;
1386 padding: 0;
1387 }
1387 }
1388
1388
1389 #content div.box div.form div.fields div.field div.textarea textarea {
1389 #content div.box div.form div.fields div.field div.textarea textarea {
1390 width: 100%;
1390 width: 100%;
1391 height: 220px;
1391 height: 220px;
1392 overflow: hidden;
1392 overflow: hidden;
1393 background: #FFF;
1393 background: #FFF;
1394 color: #000;
1394 color: #000;
1395 font-size: 12px;
1395 font-size: 12px;
1396 outline: none;
1396 outline: none;
1397 border-width: 0;
1397 border-width: 0;
1398 margin: 0;
1398 margin: 0;
1399 padding: 0;
1399 padding: 0;
1400 }
1400 }
1401
1401
1402 #content div.box-left div.form div.fields div.field div.textarea textarea, #content div.box-right div.form div.fields div.field div.textarea textarea {
1402 #content div.box-left div.form div.fields div.field div.textarea textarea, #content div.box-right div.form div.fields div.field div.textarea textarea {
1403 width: 100%;
1403 width: 100%;
1404 height: 100px;
1404 height: 100px;
1405 }
1405 }
1406
1406
1407 #content div.box div.form div.fields div.field div.textarea table {
1407 #content div.box div.form div.fields div.field div.textarea table {
1408 width: 100%;
1408 width: 100%;
1409 border: none;
1409 border: none;
1410 margin: 0;
1410 margin: 0;
1411 padding: 0;
1411 padding: 0;
1412 }
1412 }
1413
1413
1414 #content div.box div.form div.fields div.field div.textarea table td {
1414 #content div.box div.form div.fields div.field div.textarea table td {
1415 background: #DDD;
1415 background: #DDD;
1416 border: none;
1416 border: none;
1417 padding: 0;
1417 padding: 0;
1418 }
1418 }
1419
1419
1420 #content div.box div.form div.fields div.field div.textarea table td table {
1420 #content div.box div.form div.fields div.field div.textarea table td table {
1421 width: auto;
1421 width: auto;
1422 border: none;
1422 border: none;
1423 margin: 0;
1423 margin: 0;
1424 padding: 0;
1424 padding: 0;
1425 }
1425 }
1426
1426
1427 #content div.box div.form div.fields div.field div.textarea table td table td {
1427 #content div.box div.form div.fields div.field div.textarea table td table td {
1428 font-size: 11px;
1428 font-size: 11px;
1429 padding: 5px 5px 5px 0;
1429 padding: 5px 5px 5px 0;
1430 }
1430 }
1431
1431
1432 #content div.box div.form div.fields div.field input[type=text]:focus,
1432 #content div.box div.form div.fields div.field input[type=text]:focus,
1433 #content div.box div.form div.fields div.field input[type=password]:focus,
1433 #content div.box div.form div.fields div.field input[type=password]:focus,
1434 #content div.box div.form div.fields div.field input[type=file]:focus,
1434 #content div.box div.form div.fields div.field input[type=file]:focus,
1435 #content div.box div.form div.fields div.field textarea:focus,
1435 #content div.box div.form div.fields div.field textarea:focus,
1436 #content div.box div.form div.fields div.field select:focus,
1436 #content div.box div.form div.fields div.field select:focus,
1437 .reviewer_ac input:focus {
1437 .reviewer_ac input:focus {
1438 background: #f6f6f6;
1438 background: #f6f6f6;
1439 border-color: #666;
1439 border-color: #666;
1440 }
1440 }
1441
1441
1442 .reviewer_ac {
1442 .reviewer_ac {
1443 padding: 10px
1443 padding: 10px
1444 }
1444 }
1445
1445
1446 div.form div.fields div.field div.button {
1446 div.form div.fields div.field div.button {
1447 margin: 0;
1447 margin: 0;
1448 padding: 0 0 0 8px;
1448 padding: 0 0 0 8px;
1449 }
1449 }
1450 #content div.box table.noborder {
1450 #content div.box table.noborder {
1451 border: 1px solid transparent;
1451 border: 1px solid transparent;
1452 }
1452 }
1453
1453
1454 #content div.box table {
1454 #content div.box table {
1455 width: 100%;
1455 width: 100%;
1456 border-collapse: separate;
1456 border-collapse: separate;
1457 margin: 0;
1457 margin: 0;
1458 padding: 0;
1458 padding: 0;
1459 border: 1px solid #eee;
1459 border: 1px solid #eee;
1460 -webkit-border-radius: 4px;
1460 -webkit-border-radius: 4px;
1461 border-radius: 4px;
1461 border-radius: 4px;
1462 }
1462 }
1463
1463
1464 #content div.box table th {
1464 #content div.box table th {
1465 background: #eee;
1465 background: #eee;
1466 border-bottom: 1px solid #ddd;
1466 border-bottom: 1px solid #ddd;
1467 padding: 5px 0px 5px 5px;
1467 padding: 5px 0px 5px 5px;
1468 text-align: left;
1468 text-align: left;
1469 }
1469 }
1470
1470
1471 #content div.box table th.left {
1471 #content div.box table th.left {
1472 text-align: left;
1472 text-align: left;
1473 }
1473 }
1474
1474
1475 #content div.box table th.right {
1475 #content div.box table th.right {
1476 text-align: right;
1476 text-align: right;
1477 }
1477 }
1478
1478
1479 #content div.box table th.center {
1479 #content div.box table th.center {
1480 text-align: center;
1480 text-align: center;
1481 }
1481 }
1482
1482
1483 #content div.box table th.selected {
1483 #content div.box table th.selected {
1484 vertical-align: middle;
1484 vertical-align: middle;
1485 padding: 0;
1485 padding: 0;
1486 }
1486 }
1487
1487
1488 #content div.box table td {
1488 #content div.box table td {
1489 background: #fff;
1489 background: #fff;
1490 border-bottom: 1px solid #cdcdcd;
1490 border-bottom: 1px solid #cdcdcd;
1491 vertical-align: middle;
1491 vertical-align: middle;
1492 padding: 5px;
1492 padding: 5px;
1493 }
1493 }
1494
1494
1495 #content div.box table tr.selected td {
1495 #content div.box table tr.selected td {
1496 background: #FFC;
1496 background: #FFC;
1497 }
1497 }
1498
1498
1499 #content div.box table td.selected {
1499 #content div.box table td.selected {
1500 width: 3%;
1500 width: 3%;
1501 text-align: center;
1501 text-align: center;
1502 vertical-align: middle;
1502 vertical-align: middle;
1503 padding: 0;
1503 padding: 0;
1504 }
1504 }
1505
1505
1506 #content div.box table td.action {
1506 #content div.box table td.action {
1507 width: 45%;
1507 width: 45%;
1508 text-align: left;
1508 text-align: left;
1509 }
1509 }
1510
1510
1511 #content div.box table td.date {
1511 #content div.box table td.date {
1512 width: 33%;
1512 width: 33%;
1513 text-align: center;
1513 text-align: center;
1514 }
1514 }
1515
1515
1516 #content div.box div.action {
1516 #content div.box div.action {
1517 float: right;
1517 float: right;
1518 background: #FFF;
1518 background: #FFF;
1519 text-align: right;
1519 text-align: right;
1520 margin: 10px 0 0;
1520 margin: 10px 0 0;
1521 padding: 0;
1521 padding: 0;
1522 }
1522 }
1523
1523
1524 #content div.box div.action select {
1524 #content div.box div.action select {
1525 font-size: 11px;
1525 font-size: 11px;
1526 margin: 0;
1526 margin: 0;
1527 }
1527 }
1528
1528
1529 #content div.box div.action .ui-selectmenu {
1529 #content div.box div.action .ui-selectmenu {
1530 margin: 0;
1530 margin: 0;
1531 padding: 0;
1531 padding: 0;
1532 }
1532 }
1533
1533
1534 #content div.box div.pagination {
1534 #content div.box div.pagination {
1535 height: 1%;
1535 height: 1%;
1536 clear: both;
1536 clear: both;
1537 overflow: hidden;
1537 overflow: hidden;
1538 margin: 10px 0 0;
1538 margin: 10px 0 0;
1539 padding: 0;
1539 padding: 0;
1540 }
1540 }
1541
1541
1542 #content div.box div.pagination ul.pager {
1542 #content div.box div.pagination ul.pager {
1543 float: right;
1543 float: right;
1544 text-align: right;
1544 text-align: right;
1545 margin: 0;
1545 margin: 0;
1546 padding: 0;
1546 padding: 0;
1547 }
1547 }
1548
1548
1549 #content div.box div.pagination ul.pager li {
1549 #content div.box div.pagination ul.pager li {
1550 height: 1%;
1550 height: 1%;
1551 float: left;
1551 float: left;
1552 list-style: none;
1552 list-style: none;
1553 background: #ebebeb url("../images/pager.png") repeat-x;
1553 background: #ebebeb url("../images/pager.png") repeat-x;
1554 border-top: 1px solid #dedede;
1554 border-top: 1px solid #dedede;
1555 border-left: 1px solid #cfcfcf;
1555 border-left: 1px solid #cfcfcf;
1556 border-right: 1px solid #c4c4c4;
1556 border-right: 1px solid #c4c4c4;
1557 border-bottom: 1px solid #c4c4c4;
1557 border-bottom: 1px solid #c4c4c4;
1558 color: #4A4A4A;
1558 color: #4A4A4A;
1559 font-weight: 700;
1559 font-weight: 700;
1560 margin: 0 0 0 4px;
1560 margin: 0 0 0 4px;
1561 padding: 0;
1561 padding: 0;
1562 }
1562 }
1563
1563
1564 #content div.box div.pagination ul.pager li.separator {
1564 #content div.box div.pagination ul.pager li.separator {
1565 padding: 6px;
1565 padding: 6px;
1566 }
1566 }
1567
1567
1568 #content div.box div.pagination ul.pager li.current {
1568 #content div.box div.pagination ul.pager li.current {
1569 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1569 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1570 border-top: 1px solid #ccc;
1570 border-top: 1px solid #ccc;
1571 border-left: 1px solid #bebebe;
1571 border-left: 1px solid #bebebe;
1572 border-right: 1px solid #b1b1b1;
1572 border-right: 1px solid #b1b1b1;
1573 border-bottom: 1px solid #afafaf;
1573 border-bottom: 1px solid #afafaf;
1574 color: #515151;
1574 color: #515151;
1575 padding: 6px;
1575 padding: 6px;
1576 }
1576 }
1577
1577
1578 #content div.box div.pagination ul.pager li a {
1578 #content div.box div.pagination ul.pager li a {
1579 height: 1%;
1579 height: 1%;
1580 display: block;
1580 display: block;
1581 float: left;
1581 float: left;
1582 color: #515151;
1582 color: #515151;
1583 text-decoration: none;
1583 text-decoration: none;
1584 margin: 0;
1584 margin: 0;
1585 padding: 6px;
1585 padding: 6px;
1586 }
1586 }
1587
1587
1588 #content div.box div.pagination ul.pager li a:hover,
1588 #content div.box div.pagination ul.pager li a:hover,
1589 #content div.box div.pagination ul.pager li a:active {
1589 #content div.box div.pagination ul.pager li a:active {
1590 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1590 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1591 border-top: 1px solid #ccc;
1591 border-top: 1px solid #ccc;
1592 border-left: 1px solid #bebebe;
1592 border-left: 1px solid #bebebe;
1593 border-right: 1px solid #b1b1b1;
1593 border-right: 1px solid #b1b1b1;
1594 border-bottom: 1px solid #afafaf;
1594 border-bottom: 1px solid #afafaf;
1595 margin: -1px;
1595 margin: -1px;
1596 }
1596 }
1597
1597
1598 #content div.box div.pagination-right {
1598 #content div.box div.pagination-right {
1599 float: right;
1599 float: right;
1600 }
1600 }
1601
1601
1602 #content div.box div.pagination-wh {
1602 #content div.box div.pagination-wh {
1603 height: 1%;
1603 height: 1%;
1604 overflow: hidden;
1604 overflow: hidden;
1605 text-align: right;
1605 text-align: right;
1606 margin: 10px 0 0;
1606 margin: 10px 0 0;
1607 padding: 0;
1607 padding: 0;
1608 }
1608 }
1609
1609
1610 #content div.box div.pagination-wh > :first-child {
1610 #content div.box div.pagination-wh > :first-child {
1611 border-radius: 4px 0px 0px 4px;
1611 border-radius: 4px 0px 0px 4px;
1612 }
1612 }
1613
1613
1614 #content div.box div.pagination-wh > :last-child {
1614 #content div.box div.pagination-wh > :last-child {
1615 border-radius: 0px 4px 4px 0px;
1615 border-radius: 0px 4px 4px 0px;
1616 border-right: 1px solid #cfcfcf;
1616 border-right: 1px solid #cfcfcf;
1617 }
1617 }
1618
1618
1619 #content div.box div.pagination-wh a,
1619 #content div.box div.pagination-wh a,
1620 #content div.box div.pagination-wh span.pager_dotdot,
1620 #content div.box div.pagination-wh span.pager_dotdot,
1621 #content div.box div.pagination-wh span.yui-pg-previous,
1621 #content div.box div.pagination-wh span.yui-pg-previous,
1622 #content div.box div.pagination-wh span.yui-pg-last,
1622 #content div.box div.pagination-wh span.yui-pg-last,
1623 #content div.box div.pagination-wh span.yui-pg-next,
1623 #content div.box div.pagination-wh span.yui-pg-next,
1624 #content div.box div.pagination-wh span.yui-pg-first {
1624 #content div.box div.pagination-wh span.yui-pg-first {
1625 height: 1%;
1625 height: 1%;
1626 float: left;
1626 float: left;
1627 background: #ebebeb url("../images/pager.png") repeat-x;
1627 background: #ebebeb url("../images/pager.png") repeat-x;
1628 border-top: 1px solid #dedede;
1628 border-top: 1px solid #dedede;
1629 border-left: 1px solid #cfcfcf;
1629 border-left: 1px solid #cfcfcf;
1630 border-bottom: 1px solid #c4c4c4;
1630 border-bottom: 1px solid #c4c4c4;
1631 color: #4A4A4A;
1631 color: #4A4A4A;
1632 font-weight: 700;
1632 font-weight: 700;
1633 padding: 6px;
1633 padding: 6px;
1634 }
1634 }
1635
1635
1636 #content div.box div.pagination-wh span.pager_curpage {
1636 #content div.box div.pagination-wh span.pager_curpage {
1637 height: 1%;
1637 height: 1%;
1638 float: left;
1638 float: left;
1639 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1639 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1640 border-top: 1px solid #ccc;
1640 border-top: 1px solid #ccc;
1641 border-left: 1px solid #bebebe;
1641 border-left: 1px solid #bebebe;
1642 border-bottom: 1px solid #afafaf;
1642 border-bottom: 1px solid #afafaf;
1643 color: #515151;
1643 color: #515151;
1644 font-weight: 700;
1644 font-weight: 700;
1645 padding: 6px;
1645 padding: 6px;
1646 }
1646 }
1647
1647
1648 #content div.box div.pagination-wh a:hover, #content div.box div.pagination-wh a:active {
1648 #content div.box div.pagination-wh a:hover, #content div.box div.pagination-wh a:active {
1649 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1649 background: #b4b4b4 url("../images/pager_selected.png") repeat-x;
1650 border-top: 1px solid #ccc;
1650 border-top: 1px solid #ccc;
1651 border-left: 1px solid #bebebe;
1651 border-left: 1px solid #bebebe;
1652 border-bottom: 1px solid #afafaf;
1652 border-bottom: 1px solid #afafaf;
1653 text-decoration: none;
1653 text-decoration: none;
1654 }
1654 }
1655
1655
1656 #content div.box div.traffic div.legend {
1656 #content div.box div.traffic div.legend {
1657 clear: both;
1657 clear: both;
1658 overflow: hidden;
1658 overflow: hidden;
1659 border-bottom: 1px solid #ddd;
1659 border-bottom: 1px solid #ddd;
1660 margin: 0 0 10px;
1660 margin: 0 0 10px;
1661 padding: 0 0 10px;
1661 padding: 0 0 10px;
1662 }
1662 }
1663
1663
1664 #content div.box div.traffic div.legend h6 {
1664 #content div.box div.traffic div.legend h6 {
1665 float: left;
1665 float: left;
1666 border: none;
1666 border: none;
1667 margin: 0;
1667 margin: 0;
1668 padding: 0;
1668 padding: 0;
1669 }
1669 }
1670
1670
1671 #content div.box div.traffic div.legend li {
1671 #content div.box div.traffic div.legend li {
1672 list-style: none;
1672 list-style: none;
1673 float: left;
1673 float: left;
1674 font-size: 11px;
1674 font-size: 11px;
1675 margin: 0;
1675 margin: 0;
1676 padding: 0 8px 0 4px;
1676 padding: 0 8px 0 4px;
1677 }
1677 }
1678
1678
1679 #content div.box div.traffic div.legend li.visits {
1679 #content div.box div.traffic div.legend li.visits {
1680 border-left: 12px solid #edc240;
1680 border-left: 12px solid #edc240;
1681 }
1681 }
1682
1682
1683 #content div.box div.traffic div.legend li.pageviews {
1683 #content div.box div.traffic div.legend li.pageviews {
1684 border-left: 12px solid #afd8f8;
1684 border-left: 12px solid #afd8f8;
1685 }
1685 }
1686
1686
1687 #content div.box div.traffic table {
1687 #content div.box div.traffic table {
1688 width: auto;
1688 width: auto;
1689 }
1689 }
1690
1690
1691 #content div.box div.traffic table td {
1691 #content div.box div.traffic table td {
1692 background: transparent;
1692 background: transparent;
1693 border: none;
1693 border: none;
1694 padding: 2px 3px 3px;
1694 padding: 2px 3px 3px;
1695 }
1695 }
1696
1696
1697 #content div.box div.traffic table td.legendLabel {
1697 #content div.box div.traffic table td.legendLabel {
1698 padding: 0 3px 2px;
1698 padding: 0 3px 2px;
1699 }
1699 }
1700
1700
1701 #content div.box #summary {
1701 #content div.box #summary {
1702 margin-right: 200px;
1702 margin-right: 200px;
1703 min-height: 240px;
1703 min-height: 240px;
1704 }
1704 }
1705
1705
1706 #summary-menu-stats {
1706 #summary-menu-stats {
1707 float: left;
1707 float: left;
1708 width: 180px;
1708 width: 180px;
1709 position: absolute;
1709 position: absolute;
1710 top: 0;
1710 top: 0;
1711 right: 0;
1711 right: 0;
1712 }
1712 }
1713
1713
1714 #summary-menu-stats ul {
1714 #summary-menu-stats ul {
1715 margin: 0 10px;
1715 margin: 0 10px;
1716 display: block;
1716 display: block;
1717 background-color: #f9f9f9;
1717 background-color: #f9f9f9;
1718 border: 1px solid #d1d1d1;
1718 border: 1px solid #d1d1d1;
1719 border-radius: 4px;
1719 border-radius: 4px;
1720 }
1720 }
1721
1721
1722 #content #summary-menu-stats li {
1722 #content #summary-menu-stats li {
1723 border-top: 1px solid #d1d1d1;
1723 border-top: 1px solid #d1d1d1;
1724 padding: 0;
1724 padding: 0;
1725 }
1725 }
1726
1726
1727 #content #summary-menu-stats li:hover {
1727 #content #summary-menu-stats li:hover {
1728 background: #f0f0f0;
1728 background: #f0f0f0;
1729 }
1729 }
1730
1730
1731 #content #summary-menu-stats li:first-child {
1731 #content #summary-menu-stats li:first-child {
1732 border-top: none;
1732 border-top: none;
1733 }
1733 }
1734
1734
1735 #summary-menu-stats a.followers { background-image: url('../images/icons/heart.png')}
1735 #summary-menu-stats a.followers { background-image: url('../images/icons/heart.png')}
1736 #summary-menu-stats a.forks { background-image: url('../images/icons/arrow_divide.png')}
1736 #summary-menu-stats a.forks { background-image: url('../images/icons/arrow_divide.png')}
1737 #summary-menu-stats a.settings { background-image: url('../images/icons/cog_edit.png')}
1737 #summary-menu-stats a.settings { background-image: url('../images/icons/cog_edit.png')}
1738 #summary-menu-stats a.feed { background-image: url('../images/icons/rss_16.png')}
1738 #summary-menu-stats a.feed { background-image: url('../images/icons/rss_16.png')}
1739 #summary-menu-stats a.repo-size { background-image: url('../images/icons/server.png')}
1739 #summary-menu-stats a.repo-size { background-image: url('../images/icons/server.png')}
1740
1740
1741 #summary-menu-stats a {
1741 #summary-menu-stats a {
1742 display: block;
1742 display: block;
1743 padding: 12px 10px;
1743 padding: 12px 10px;
1744 background-repeat: no-repeat;
1744 background-repeat: no-repeat;
1745 background-position: 10px 50%;
1745 background-position: 10px 50%;
1746 padding-right: 10px;
1746 padding-right: 10px;
1747 }
1747 }
1748
1748
1749 #repo_size_2.loaded {
1749 #repo_size_2.loaded {
1750 margin-left: 30px;
1750 margin-left: 30px;
1751 display: block;
1751 display: block;
1752 padding-right: 10px;
1752 padding-right: 10px;
1753 padding-bottom: 7px;
1753 padding-bottom: 7px;
1754 }
1754 }
1755
1755
1756 #summary-menu-stats a:hover {
1756 #summary-menu-stats a:hover {
1757 text-decoration: none;
1757 text-decoration: none;
1758 }
1758 }
1759
1759
1760 #summary-menu-stats a span {
1760 #summary-menu-stats a span {
1761 background-color: #DEDEDE;
1761 background-color: #DEDEDE;
1762 color: #888 !important;
1762 color: #888 !important;
1763 border-radius: 4px;
1763 border-radius: 4px;
1764 padding: 2px 4px;
1764 padding: 2px 4px;
1765 font-size: 10px;
1765 font-size: 10px;
1766 }
1766 }
1767
1767
1768 #summary .metatag {
1768 #summary .metatag {
1769 display: inline-block;
1769 display: inline-block;
1770 padding: 3px 5px;
1770 padding: 3px 5px;
1771 margin-bottom: 3px;
1771 margin-bottom: 3px;
1772 margin-right: 1px;
1772 margin-right: 1px;
1773 border-radius: 5px;
1773 border-radius: 5px;
1774 }
1774 }
1775
1775
1776 #content div.box #summary p {
1776 #content div.box #summary p {
1777 margin-bottom: -5px;
1777 margin-bottom: -5px;
1778 width: 600px;
1778 width: 600px;
1779 white-space: pre-wrap;
1779 white-space: pre-wrap;
1780 }
1780 }
1781
1781
1782 #content div.box #summary p:last-child {
1782 #content div.box #summary p:last-child {
1783 margin-bottom: 9px;
1783 margin-bottom: 9px;
1784 }
1784 }
1785
1785
1786 #content div.box #summary p:first-of-type {
1786 #content div.box #summary p:first-of-type {
1787 margin-top: 9px;
1787 margin-top: 9px;
1788 }
1788 }
1789
1789
1790 .metatag {
1790 .metatag {
1791 display: inline-block;
1791 display: inline-block;
1792 margin-right: 1px;
1792 margin-right: 1px;
1793 -webkit-border-radius: 4px 4px 4px 4px;
1793 -webkit-border-radius: 4px 4px 4px 4px;
1794 -khtml-border-radius: 4px 4px 4px 4px;
1794 -khtml-border-radius: 4px 4px 4px 4px;
1795 border-radius: 4px 4px 4px 4px;
1795 border-radius: 4px 4px 4px 4px;
1796
1796
1797 border: solid 1px #9CF;
1797 border: solid 1px #9CF;
1798 padding: 2px 3px 2px 3px !important;
1798 padding: 2px 3px 2px 3px !important;
1799 background-color: #DEF;
1799 background-color: #DEF;
1800 }
1800 }
1801
1801
1802 .metatag[tag="dead"] {
1802 .metatag[tag="dead"] {
1803 background-color: #E44;
1803 background-color: #E44;
1804 }
1804 }
1805
1805
1806 .metatag[tag="stale"] {
1806 .metatag[tag="stale"] {
1807 background-color: #EA4;
1807 background-color: #EA4;
1808 }
1808 }
1809
1809
1810 .metatag[tag="featured"] {
1810 .metatag[tag="featured"] {
1811 background-color: #AEA;
1811 background-color: #AEA;
1812 }
1812 }
1813
1813
1814 .metatag[tag="requires"] {
1814 .metatag[tag="requires"] {
1815 background-color: #9CF;
1815 background-color: #9CF;
1816 }
1816 }
1817
1817
1818 .metatag[tag="recommends"] {
1818 .metatag[tag="recommends"] {
1819 background-color: #BDF;
1819 background-color: #BDF;
1820 }
1820 }
1821
1821
1822 .metatag[tag="lang"] {
1822 .metatag[tag="lang"] {
1823 background-color: #FAF474;
1823 background-color: #FAF474;
1824 }
1824 }
1825
1825
1826 .metatag[tag="license"] {
1826 .metatag[tag="license"] {
1827 border: solid 1px #9CF;
1827 border: solid 1px #9CF;
1828 background-color: #DEF;
1828 background-color: #DEF;
1829 target-new: tab !important;
1829 target-new: tab !important;
1830 }
1830 }
1831 .metatag[tag="see"] {
1831 .metatag[tag="see"] {
1832 border: solid 1px #CBD;
1832 border: solid 1px #CBD;
1833 background-color: #EDF;
1833 background-color: #EDF;
1834 }
1834 }
1835
1835
1836 a.metatag[tag="license"]:hover {
1836 a.metatag[tag="license"]:hover {
1837 background-color: #003367;
1837 background-color: #003367;
1838 color: #FFF;
1838 color: #FFF;
1839 text-decoration: none;
1839 text-decoration: none;
1840 }
1840 }
1841
1841
1842 #summary .desc {
1842 #summary .desc {
1843 white-space: pre;
1843 white-space: pre;
1844 width: 100%;
1844 width: 100%;
1845 }
1845 }
1846
1846
1847 #summary .repo_name {
1847 #summary .repo_name {
1848 font-size: 1.6em;
1848 font-size: 1.6em;
1849 font-weight: bold;
1849 font-weight: bold;
1850 vertical-align: baseline;
1850 vertical-align: baseline;
1851 clear: right
1851 clear: right
1852 }
1852 }
1853
1853
1854 #footer {
1854 #footer {
1855 clear: both;
1855 clear: both;
1856 overflow: hidden;
1856 overflow: hidden;
1857 text-align: right;
1857 text-align: right;
1858 margin: 0;
1858 margin: 0;
1859 padding: 0 10px 4px;
1859 padding: 0 10px 4px;
1860 margin: -10px 0 0;
1860 margin: -10px 0 0;
1861 }
1861 }
1862
1862
1863 #footer div#footer-inner {
1863 #footer div#footer-inner {
1864 background-color: #003B76;
1864 background-color: #003B76;
1865 background-repeat: repeat-x;
1865 background-repeat: repeat-x;
1866 background-image: -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1866 background-image: -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1867 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1867 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1868 background-image: -ms-linear-gradient( top, #003b76, #00376e);
1868 background-image: -ms-linear-gradient( top, #003b76, #00376e);
1869 background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1869 background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1870 background-image: -webkit-linear-gradient( top, #003b76, #00376e));
1870 background-image: -webkit-linear-gradient( top, #003b76, #00376e));
1871 background-image: -o-linear-gradient( top, #003b76, #00376e));
1871 background-image: -o-linear-gradient( top, #003b76, #00376e));
1872 background-image: linear-gradient(to bottom, #003b76, #00376e);
1872 background-image: linear-gradient(to bottom, #003b76, #00376e);
1873 filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1873 filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1874 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1874 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1875 -webkit-border-radius: 4px 4px 4px 4px;
1875 -webkit-border-radius: 4px 4px 4px 4px;
1876 -khtml-border-radius: 4px 4px 4px 4px;
1876 -khtml-border-radius: 4px 4px 4px 4px;
1877 border-radius: 4px 4px 4px 4px;
1877 border-radius: 4px 4px 4px 4px;
1878 }
1878 }
1879
1879
1880 #footer div#footer-inner p {
1880 #footer div#footer-inner p {
1881 padding: 15px 25px 15px 0;
1881 padding: 15px 25px 15px 0;
1882 color: #FFF;
1882 color: #FFF;
1883 font-weight: 700;
1883 font-weight: 700;
1884 }
1884 }
1885
1885
1886 #footer div#footer-inner .footer-link {
1886 #footer div#footer-inner .footer-link {
1887 float: left;
1887 float: left;
1888 padding-left: 10px;
1888 padding-left: 10px;
1889 }
1889 }
1890
1890
1891 #footer div#footer-inner .footer-link a, #footer div#footer-inner .footer-link-right a {
1891 #footer div#footer-inner .footer-link a, #footer div#footer-inner .footer-link-right a {
1892 color: #FFF;
1892 color: #FFF;
1893 }
1893 }
1894
1894
1895 #login div.title {
1895 #login div.title {
1896 clear: both;
1896 clear: both;
1897 overflow: hidden;
1897 overflow: hidden;
1898 position: relative;
1898 position: relative;
1899 background-color: #003B76;
1899 background-color: #003B76;
1900 background-repeat: repeat-x;
1900 background-repeat: repeat-x;
1901 background-image: -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1901 background-image: -khtml-gradient( linear, left top, left bottom, from(#003B76), to(#00376E));
1902 background-image: -moz-linear-gradient( top, #003b76, #00376e);
1902 background-image: -moz-linear-gradient( top, #003b76, #00376e);
1903 background-image: -ms-linear-gradient( top, #003b76, #00376e);
1903 background-image: -ms-linear-gradient( top, #003b76, #00376e);
1904 background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1904 background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #003b76), color-stop( 100%, #00376e));
1905 background-image: -webkit-linear-gradient( top, #003b76, #00376e));
1905 background-image: -webkit-linear-gradient( top, #003b76, #00376e));
1906 background-image: -o-linear-gradient( top, #003b76, #00376e));
1906 background-image: -o-linear-gradient( top, #003b76, #00376e));
1907 background-image: linear-gradient(to bottom, #003b76, #00376e);
1907 background-image: linear-gradient(to bottom, #003b76, #00376e);
1908 filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1908 filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#003b76', endColorstr = '#00376e', GradientType = 0);
1909 margin: 0 auto;
1909 margin: 0 auto;
1910 padding: 0;
1910 padding: 0;
1911 }
1911 }
1912
1912
1913 #login div.inner {
1913 #login div.inner {
1914 background: #FFF url("../images/login.png") no-repeat top left;
1914 background: #FFF url("../images/login.png") no-repeat top left;
1915 border-top: none;
1915 border-top: none;
1916 border-bottom: none;
1916 border-bottom: none;
1917 margin: 0 auto;
1917 margin: 0 auto;
1918 padding: 20px;
1918 padding: 20px;
1919 }
1919 }
1920
1920
1921 #login div.form div.fields div.field div.label {
1921 #login div.form div.fields div.field div.label {
1922 width: 173px;
1922 width: 173px;
1923 float: left;
1923 float: left;
1924 text-align: right;
1924 text-align: right;
1925 margin: 2px 10px 0 0;
1925 margin: 2px 10px 0 0;
1926 padding: 5px 0 0 5px;
1926 padding: 5px 0 0 5px;
1927 }
1927 }
1928
1928
1929 #login div.form div.fields div.field div.input input {
1929 #login div.form div.fields div.field div.input input {
1930 background: #FFF;
1930 background: #FFF;
1931 border-top: 1px solid #b3b3b3;
1931 border-top: 1px solid #b3b3b3;
1932 border-left: 1px solid #b3b3b3;
1932 border-left: 1px solid #b3b3b3;
1933 border-right: 1px solid #eaeaea;
1933 border-right: 1px solid #eaeaea;
1934 border-bottom: 1px solid #eaeaea;
1934 border-bottom: 1px solid #eaeaea;
1935 color: #000;
1935 color: #000;
1936 font-size: 11px;
1936 font-size: 11px;
1937 margin: 0;
1937 margin: 0;
1938 padding: 7px 7px 6px;
1938 padding: 7px 7px 6px;
1939 }
1939 }
1940
1940
1941 #login div.form div.fields div.buttons {
1941 #login div.form div.fields div.buttons {
1942 clear: both;
1942 clear: both;
1943 overflow: hidden;
1943 overflow: hidden;
1944 border-top: 1px solid #DDD;
1944 border-top: 1px solid #DDD;
1945 text-align: right;
1945 text-align: right;
1946 margin: 0;
1946 margin: 0;
1947 padding: 10px 0 0;
1947 padding: 10px 0 0;
1948 }
1948 }
1949
1949
1950 #login div.form div.links {
1950 #login div.form div.links {
1951 clear: both;
1951 clear: both;
1952 overflow: hidden;
1952 overflow: hidden;
1953 margin: 10px 0 0;
1953 margin: 10px 0 0;
1954 padding: 0 0 2px;
1954 padding: 0 0 2px;
1955 }
1955 }
1956
1956
1957 .user-menu {
1957 .user-menu {
1958 margin: 0px !important;
1958 margin: 0px !important;
1959 float: left;
1959 float: left;
1960 }
1960 }
1961
1961
1962 .user-menu .container {
1962 .user-menu .container {
1963 padding: 0px 4px 0px 4px;
1963 padding: 0px 4px 0px 4px;
1964 margin: 0px 0px 0px 0px;
1964 margin: 0px 0px 0px 0px;
1965 }
1965 }
1966
1966
1967 .user-menu .gravatar {
1967 .user-menu .gravatar {
1968 margin: 0px 0px 0px 0px;
1968 margin: 0px 0px 0px 0px;
1969 cursor: pointer;
1969 cursor: pointer;
1970 }
1970 }
1971 .user-menu .gravatar.enabled {
1971 .user-menu .gravatar.enabled {
1972 background-color: #FDF784 !important;
1972 background-color: #FDF784 !important;
1973 }
1973 }
1974 .user-menu .gravatar:hover {
1974 .user-menu .gravatar:hover {
1975 background-color: #FDF784 !important;
1975 background-color: #FDF784 !important;
1976 }
1976 }
1977 #quick_login {
1977 #quick_login {
1978 min-height: 110px;
1978 min-height: 110px;
1979 padding: 4px;
1979 padding: 4px;
1980 position: absolute;
1980 position: absolute;
1981 right: 0;
1981 right: 0;
1982 background-color: #003B76;
1982 background-color: #003B76;
1983 background-repeat: repeat-x;
1983 background-repeat: repeat-x;
1984 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
1984 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
1985 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1985 background-image: -moz-linear-gradient(top, #003b76, #00376e);
1986 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1986 background-image: -ms-linear-gradient(top, #003b76, #00376e);
1987 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
1987 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
1988 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
1988 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
1989 background-image: -o-linear-gradient(top, #003b76, #00376e);
1989 background-image: -o-linear-gradient(top, #003b76, #00376e);
1990 background-image: linear-gradient(to bottom, #003b76, #00376e);
1990 background-image: linear-gradient(to bottom, #003b76, #00376e);
1991 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
1991 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76', endColorstr='#00376e', GradientType=0 );
1992
1992
1993 z-index: 999;
1993 z-index: 999;
1994 -webkit-border-radius: 0px 0px 4px 4px;
1994 -webkit-border-radius: 0px 0px 4px 4px;
1995 -khtml-border-radius: 0px 0px 4px 4px;
1995 -khtml-border-radius: 0px 0px 4px 4px;
1996 border-radius: 0px 0px 4px 4px;
1996 border-radius: 0px 0px 4px 4px;
1997 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1997 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
1998
1998
1999 overflow: hidden;
1999 overflow: hidden;
2000 }
2000 }
2001 #quick_login h4 {
2001 #quick_login h4 {
2002 color: #fff;
2002 color: #fff;
2003 padding: 5px 0px 5px 14px;
2003 padding: 5px 0px 5px 14px;
2004 }
2004 }
2005
2005
2006 #quick_login .password_forgoten {
2006 #quick_login .password_forgoten {
2007 padding-right: 0px;
2007 padding-right: 0px;
2008 padding-top: 0px;
2008 padding-top: 0px;
2009 text-align: left;
2009 text-align: left;
2010 }
2010 }
2011
2011
2012 #quick_login .password_forgoten a {
2012 #quick_login .password_forgoten a {
2013 font-size: 10px;
2013 font-size: 10px;
2014 color: #fff;
2014 color: #fff;
2015 padding: 0px !important;
2015 padding: 0px !important;
2016 line-height: 20px !important;
2016 line-height: 20px !important;
2017 }
2017 }
2018
2018
2019 #quick_login .register {
2019 #quick_login .register {
2020 padding-right: 10px;
2020 padding-right: 10px;
2021 padding-top: 5px;
2021 padding-top: 5px;
2022 text-align: left;
2022 text-align: left;
2023 }
2023 }
2024
2024
2025 #quick_login .register a {
2025 #quick_login .register a {
2026 font-size: 10px;
2026 font-size: 10px;
2027 color: #fff;
2027 color: #fff;
2028 padding: 0px !important;
2028 padding: 0px !important;
2029 line-height: 20px !important;
2029 line-height: 20px !important;
2030 }
2030 }
2031
2031
2032 #quick_login .submit {
2032 #quick_login .submit {
2033 margin: -20px 0 0 0px;
2033 margin: -20px 0 0 0px;
2034 position: absolute;
2034 position: absolute;
2035 right: 15px;
2035 right: 15px;
2036 }
2036 }
2037
2037
2038 #quick_login .links_left {
2038 #quick_login .links_left {
2039 float: left;
2039 float: left;
2040 margin-right: 130px;
2040 margin-right: 130px;
2041 width: 170px;
2041 width: 170px;
2042 }
2042 }
2043 #quick_login .links_right {
2043 #quick_login .links_right {
2044
2044
2045 position: absolute;
2045 position: absolute;
2046 right: 0;
2046 right: 0;
2047 }
2047 }
2048 #quick_login .full_name {
2048 #quick_login .full_name {
2049 color: #FFFFFF;
2049 color: #FFFFFF;
2050 font-weight: bold;
2050 font-weight: bold;
2051 padding: 3px 3px 3px 6px;
2051 padding: 3px 3px 3px 6px;
2052 }
2052 }
2053 #quick_login .big_gravatar {
2053 #quick_login .big_gravatar {
2054 padding: 4px 0px 0px 6px;
2054 padding: 4px 0px 0px 6px;
2055 }
2055 }
2056 #quick_login .notifications {
2056 #quick_login .notifications {
2057 padding: 2px 0px 0px 6px;
2057 padding: 2px 0px 0px 6px;
2058 color: #FFFFFF;
2058 color: #FFFFFF;
2059 font-weight: bold;
2059 font-weight: bold;
2060 line-height: 10px !important;
2060 line-height: 10px !important;
2061 }
2061 }
2062 #quick_login .notifications a,
2062 #quick_login .notifications a,
2063 #quick_login .unread a {
2063 #quick_login .unread a {
2064 color: #FFFFFF;
2064 color: #FFFFFF;
2065 display: block;
2065 display: block;
2066 padding: 0px !important;
2066 padding: 0px !important;
2067 }
2067 }
2068 #quick_login .notifications a:hover,
2068 #quick_login .notifications a:hover,
2069 #quick_login .unread a:hover {
2069 #quick_login .unread a:hover {
2070 background-color: inherit !important;
2070 background-color: inherit !important;
2071 }
2071 }
2072 #quick_login .email, #quick_login .unread {
2072 #quick_login .email, #quick_login .unread {
2073 color: #FFFFFF;
2073 color: #FFFFFF;
2074 padding: 3px 3px 3px 6px;
2074 padding: 3px 3px 3px 6px;
2075 }
2075 }
2076 #quick_login .links .logout {
2076 #quick_login .links .logout {
2077 }
2077 }
2078
2078
2079 #quick_login div.form div.fields {
2079 #quick_login div.form div.fields {
2080 padding-top: 2px;
2080 padding-top: 2px;
2081 padding-left: 10px;
2081 padding-left: 10px;
2082 }
2082 }
2083
2083
2084 #quick_login div.form div.fields div.field {
2084 #quick_login div.form div.fields div.field {
2085 padding: 5px;
2085 padding: 5px;
2086 }
2086 }
2087
2087
2088 #quick_login div.form div.fields div.field div.label label {
2088 #quick_login div.form div.fields div.field div.label label {
2089 color: #fff;
2089 color: #fff;
2090 padding-bottom: 3px;
2090 padding-bottom: 3px;
2091 }
2091 }
2092
2092
2093 #quick_login div.form div.fields div.field div.input input {
2093 #quick_login div.form div.fields div.field div.input input {
2094 width: 236px;
2094 width: 236px;
2095 background: #FFF;
2095 background: #FFF;
2096 border-top: 1px solid #b3b3b3;
2096 border-top: 1px solid #b3b3b3;
2097 border-left: 1px solid #b3b3b3;
2097 border-left: 1px solid #b3b3b3;
2098 border-right: 1px solid #eaeaea;
2098 border-right: 1px solid #eaeaea;
2099 border-bottom: 1px solid #eaeaea;
2099 border-bottom: 1px solid #eaeaea;
2100 color: #000;
2100 color: #000;
2101 font-size: 11px;
2101 font-size: 11px;
2102 margin: 0;
2102 margin: 0;
2103 padding: 5px 7px 4px;
2103 padding: 5px 7px 4px;
2104 }
2104 }
2105
2105
2106 #quick_login div.form div.fields div.buttons {
2106 #quick_login div.form div.fields div.buttons {
2107 clear: both;
2107 clear: both;
2108 overflow: hidden;
2108 overflow: hidden;
2109 text-align: right;
2109 text-align: right;
2110 margin: 0;
2110 margin: 0;
2111 padding: 5px 14px 0px 5px;
2111 padding: 5px 14px 0px 5px;
2112 }
2112 }
2113
2113
2114 #quick_login div.form div.links {
2114 #quick_login div.form div.links {
2115 clear: both;
2115 clear: both;
2116 overflow: hidden;
2116 overflow: hidden;
2117 margin: 10px 0 0;
2117 margin: 10px 0 0;
2118 padding: 0 0 2px;
2118 padding: 0 0 2px;
2119 }
2119 }
2120
2120
2121 #quick_login ol.links {
2121 #quick_login ol.links {
2122 display: block;
2122 display: block;
2123 font-weight: bold;
2123 font-weight: bold;
2124 list-style: none outside none;
2124 list-style: none outside none;
2125 text-align: right;
2125 text-align: right;
2126 }
2126 }
2127 #quick_login ol.links li {
2127 #quick_login ol.links li {
2128 line-height: 27px;
2128 line-height: 27px;
2129 margin: 0;
2129 margin: 0;
2130 padding: 0;
2130 padding: 0;
2131 color: #fff;
2131 color: #fff;
2132 display: block;
2132 display: block;
2133 float: none !important;
2133 float: none !important;
2134 }
2134 }
2135
2135
2136 #quick_login ol.links li a {
2136 #quick_login ol.links li a {
2137 color: #fff;
2137 color: #fff;
2138 display: block;
2138 display: block;
2139 padding: 2px;
2139 padding: 2px;
2140 }
2140 }
2141 #quick_login ol.links li a:HOVER {
2141 #quick_login ol.links li a:HOVER {
2142 background-color: inherit !important;
2142 background-color: inherit !important;
2143 }
2143 }
2144
2144
2145 #register div.title {
2145 #register div.title {
2146 clear: both;
2146 clear: both;
2147 overflow: hidden;
2147 overflow: hidden;
2148 position: relative;
2148 position: relative;
2149 background-color: #003B76;
2149 background-color: #003B76;
2150 background-repeat: repeat-x;
2150 background-repeat: repeat-x;
2151 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
2151 background-image: -khtml-gradient(linear, left top, left bottom, from(#003B76), to(#00376E) );
2152 background-image: -moz-linear-gradient(top, #003b76, #00376e);
2152 background-image: -moz-linear-gradient(top, #003b76, #00376e);
2153 background-image: -ms-linear-gradient(top, #003b76, #00376e);
2153 background-image: -ms-linear-gradient(top, #003b76, #00376e);
2154 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
2154 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
2155 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
2155 background-image: -webkit-linear-gradient(top, #003b76, #00376e);
2156 background-image: -o-linear-gradient(top, #003b76, #00376e);
2156 background-image: -o-linear-gradient(top, #003b76, #00376e);
2157 background-image: linear-gradient(to bottom, #003b76, #00376e);
2157 background-image: linear-gradient(to bottom, #003b76, #00376e);
2158 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
2158 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
2159 endColorstr='#00376e', GradientType=0 );
2159 endColorstr='#00376e', GradientType=0 );
2160 margin: 0 auto;
2160 margin: 0 auto;
2161 padding: 0;
2161 padding: 0;
2162 }
2162 }
2163
2163
2164 #register div.inner {
2164 #register div.inner {
2165 background: #FFF;
2165 background: #FFF;
2166 border-top: none;
2166 border-top: none;
2167 border-bottom: none;
2167 border-bottom: none;
2168 margin: 0 auto;
2168 margin: 0 auto;
2169 padding: 20px;
2169 padding: 20px;
2170 }
2170 }
2171
2171
2172 #register div.form div.fields div.field div.label {
2172 #register div.form div.fields div.field div.label {
2173 width: 135px;
2173 width: 135px;
2174 float: left;
2174 float: left;
2175 text-align: right;
2175 text-align: right;
2176 margin: 2px 10px 0 0;
2176 margin: 2px 10px 0 0;
2177 padding: 5px 0 0 5px;
2177 padding: 5px 0 0 5px;
2178 }
2178 }
2179
2179
2180 #register div.form div.fields div.field div.input input {
2180 #register div.form div.fields div.field div.input input {
2181 width: 300px;
2181 width: 300px;
2182 background: #FFF;
2182 background: #FFF;
2183 border-top: 1px solid #b3b3b3;
2183 border-top: 1px solid #b3b3b3;
2184 border-left: 1px solid #b3b3b3;
2184 border-left: 1px solid #b3b3b3;
2185 border-right: 1px solid #eaeaea;
2185 border-right: 1px solid #eaeaea;
2186 border-bottom: 1px solid #eaeaea;
2186 border-bottom: 1px solid #eaeaea;
2187 color: #000;
2187 color: #000;
2188 font-size: 11px;
2188 font-size: 11px;
2189 margin: 0;
2189 margin: 0;
2190 padding: 7px 7px 6px;
2190 padding: 7px 7px 6px;
2191 }
2191 }
2192
2192
2193 #register div.form div.fields div.buttons {
2193 #register div.form div.fields div.buttons {
2194 clear: both;
2194 clear: both;
2195 overflow: hidden;
2195 overflow: hidden;
2196 border-top: 1px solid #DDD;
2196 border-top: 1px solid #DDD;
2197 text-align: left;
2197 text-align: left;
2198 margin: 0;
2198 margin: 0;
2199 padding: 10px 0 0 150px;
2199 padding: 10px 0 0 150px;
2200 }
2200 }
2201
2201
2202 #register div.form div.activation_msg {
2202 #register div.form div.activation_msg {
2203 padding-top: 4px;
2203 padding-top: 4px;
2204 padding-bottom: 4px;
2204 padding-bottom: 4px;
2205 }
2205 }
2206
2206
2207 #journal .journal_day {
2207 #journal .journal_day {
2208 font-size: 20px;
2208 font-size: 20px;
2209 padding: 10px 0px;
2209 padding: 10px 0px;
2210 border-bottom: 2px solid #DDD;
2210 border-bottom: 2px solid #DDD;
2211 margin-left: 10px;
2211 margin-left: 10px;
2212 margin-right: 10px;
2212 margin-right: 10px;
2213 }
2213 }
2214
2214
2215 #journal .journal_container {
2215 #journal .journal_container {
2216 padding: 5px;
2216 padding: 5px;
2217 clear: both;
2217 clear: both;
2218 margin: 0px 5px 0px 10px;
2218 margin: 0px 5px 0px 10px;
2219 }
2219 }
2220
2220
2221 #journal .journal_action_container {
2221 #journal .journal_action_container {
2222 padding-left: 38px;
2222 padding-left: 38px;
2223 }
2223 }
2224
2224
2225 #journal .journal_user {
2225 #journal .journal_user {
2226 color: #747474;
2226 color: #747474;
2227 font-size: 14px;
2227 font-size: 14px;
2228 font-weight: bold;
2228 font-weight: bold;
2229 height: 30px;
2229 height: 30px;
2230 }
2230 }
2231
2231
2232 #journal .journal_user.deleted {
2232 #journal .journal_user.deleted {
2233 color: #747474;
2233 color: #747474;
2234 font-size: 14px;
2234 font-size: 14px;
2235 font-weight: normal;
2235 font-weight: normal;
2236 height: 30px;
2236 height: 30px;
2237 font-style: italic;
2237 font-style: italic;
2238 }
2238 }
2239
2239
2240
2240
2241 #journal .journal_icon {
2241 #journal .journal_icon {
2242 clear: both;
2242 clear: both;
2243 float: left;
2243 float: left;
2244 padding-right: 4px;
2244 padding-right: 4px;
2245 padding-top: 3px;
2245 padding-top: 3px;
2246 }
2246 }
2247
2247
2248 #journal .journal_action {
2248 #journal .journal_action {
2249 padding-top: 4px;
2249 padding-top: 4px;
2250 min-height: 2px;
2250 min-height: 2px;
2251 float: left
2251 float: left
2252 }
2252 }
2253
2253
2254 #journal .journal_action_params {
2254 #journal .journal_action_params {
2255 clear: left;
2255 clear: left;
2256 padding-left: 22px;
2256 padding-left: 22px;
2257 }
2257 }
2258
2258
2259 #journal .journal_repo {
2259 #journal .journal_repo {
2260 float: left;
2260 float: left;
2261 margin-left: 6px;
2261 margin-left: 6px;
2262 padding-top: 3px;
2262 padding-top: 3px;
2263 }
2263 }
2264
2264
2265 #journal .date {
2265 #journal .date {
2266 clear: both;
2266 clear: both;
2267 color: #777777;
2267 color: #777777;
2268 font-size: 11px;
2268 font-size: 11px;
2269 padding-left: 22px;
2269 padding-left: 22px;
2270 }
2270 }
2271
2271
2272 #journal .journal_repo .journal_repo_name {
2272 #journal .journal_repo .journal_repo_name {
2273 font-weight: bold;
2273 font-weight: bold;
2274 font-size: 1.1em;
2274 font-size: 1.1em;
2275 }
2275 }
2276
2276
2277 #journal .compare_view {
2277 #journal .compare_view {
2278 padding: 5px 0px 5px 0px;
2278 padding: 5px 0px 5px 0px;
2279 width: 95px;
2279 width: 95px;
2280 }
2280 }
2281
2281
2282 .journal_highlight {
2282 .journal_highlight {
2283 font-weight: bold;
2283 font-weight: bold;
2284 padding: 0 2px;
2284 padding: 0 2px;
2285 vertical-align: bottom;
2285 vertical-align: bottom;
2286 }
2286 }
2287
2287
2288 .trending_language_tbl, .trending_language_tbl td {
2288 .trending_language_tbl, .trending_language_tbl td {
2289 border: 0 !important;
2289 border: 0 !important;
2290 margin: 0 !important;
2290 margin: 0 !important;
2291 padding: 0 !important;
2291 padding: 0 !important;
2292 }
2292 }
2293
2293
2294 .trending_language_tbl, .trending_language_tbl tr {
2294 .trending_language_tbl, .trending_language_tbl tr {
2295 border-spacing: 1px;
2295 border-spacing: 1px;
2296 }
2296 }
2297
2297
2298 .trending_language {
2298 .trending_language {
2299 background-color: #003367;
2299 background-color: #003367;
2300 color: #FFF;
2300 color: #FFF;
2301 display: block;
2301 display: block;
2302 min-width: 20px;
2302 min-width: 20px;
2303 text-decoration: none;
2303 text-decoration: none;
2304 height: 12px;
2304 height: 12px;
2305 margin-bottom: 0px;
2305 margin-bottom: 0px;
2306 margin-left: 5px;
2306 margin-left: 5px;
2307 white-space: pre;
2307 white-space: pre;
2308 padding: 3px;
2308 padding: 3px;
2309 }
2309 }
2310
2310
2311 h3.files_location {
2311 h3.files_location {
2312 font-size: 1.8em;
2312 font-size: 1.8em;
2313 font-weight: 700;
2313 font-weight: 700;
2314 border-bottom: none !important;
2314 border-bottom: none !important;
2315 margin: 10px 0 !important;
2315 margin: 10px 0 !important;
2316 }
2316 }
2317
2317
2318 #files_data dl dt {
2318 #files_data dl dt {
2319 float: left;
2319 float: left;
2320 width: 60px;
2320 width: 60px;
2321 margin: 0 !important;
2321 margin: 0 !important;
2322 padding: 5px;
2322 padding: 5px;
2323 }
2323 }
2324
2324
2325 #files_data dl dd {
2325 #files_data dl dd {
2326 margin: 0 !important;
2326 margin: 0 !important;
2327 padding: 5px !important;
2327 padding: 5px !important;
2328 }
2328 }
2329
2329
2330 #files_data .codeblock #editor_container .error-message {
2330 #files_data .codeblock #editor_container .error-message {
2331 color: red;
2331 color: red;
2332 padding: 10px 10px 10px 26px
2332 padding: 10px 10px 10px 26px
2333 }
2333 }
2334
2334
2335 .file_history {
2335 .file_history {
2336 padding-top: 10px;
2336 padding-top: 10px;
2337 font-size: 16px;
2337 font-size: 16px;
2338 }
2338 }
2339 .file_author {
2339 .file_author {
2340 float: left;
2340 float: left;
2341 }
2341 }
2342
2342
2343 .file_author .item {
2343 .file_author .item {
2344 float: left;
2344 float: left;
2345 padding: 5px;
2345 padding: 5px;
2346 color: #888;
2346 color: #888;
2347 }
2347 }
2348
2348
2349 .tablerow0 {
2349 .tablerow0 {
2350 background-color: #F8F8F8;
2350 background-color: #F8F8F8;
2351 }
2351 }
2352
2352
2353 .tablerow1 {
2353 .tablerow1 {
2354 background-color: #FFFFFF;
2354 background-color: #FFFFFF;
2355 }
2355 }
2356
2356
2357 .changeset_id {
2357 .changeset_id {
2358 color: #666666;
2358 color: #666666;
2359 margin-right: -3px;
2359 margin-right: -3px;
2360 }
2360 }
2361
2361
2362 .changeset_hash {
2362 .changeset_hash {
2363 color: #000000;
2363 color: #000000;
2364 }
2364 }
2365
2365
2366 #changeset_content {
2366 #changeset_content {
2367 border-left: 1px solid #CCC;
2367 border-left: 1px solid #CCC;
2368 border-right: 1px solid #CCC;
2368 border-right: 1px solid #CCC;
2369 border-bottom: 1px solid #CCC;
2369 border-bottom: 1px solid #CCC;
2370 padding: 5px;
2370 padding: 5px;
2371 }
2371 }
2372
2372
2373 #changeset_compare_view_content {
2373 #changeset_compare_view_content {
2374 border: 1px solid #CCC;
2374 border: 1px solid #CCC;
2375 padding: 5px;
2375 padding: 5px;
2376 }
2376 }
2377
2377
2378 #changeset_content .container {
2378 #changeset_content .container {
2379 min-height: 100px;
2379 min-height: 100px;
2380 font-size: 1.2em;
2380 font-size: 1.2em;
2381 overflow: hidden;
2381 overflow: hidden;
2382 }
2382 }
2383
2383
2384 #changeset_compare_view_content .compare_view_commits {
2384 #changeset_compare_view_content .compare_view_commits {
2385 width: auto !important;
2385 width: auto !important;
2386 }
2386 }
2387
2387
2388 #changeset_compare_view_content .compare_view_commits td {
2388 #changeset_compare_view_content .compare_view_commits td {
2389 padding: 0px 0px 0px 12px !important;
2389 padding: 0px 0px 0px 12px !important;
2390 }
2390 }
2391
2391
2392 #changeset_content .container .right {
2392 #changeset_content .container .right {
2393 float: right;
2393 float: right;
2394 width: 20%;
2394 width: 20%;
2395 text-align: right;
2395 text-align: right;
2396 }
2396 }
2397
2397
2398 #changeset_content .container .message {
2398 #changeset_content .container .message {
2399 white-space: pre-wrap;
2399 white-space: pre-wrap;
2400 }
2400 }
2401 #changeset_content .container .message a:hover {
2401 #changeset_content .container .message a:hover {
2402 text-decoration: none;
2402 text-decoration: none;
2403 }
2403 }
2404 .cs_files .cur_cs {
2404 .cs_files .cur_cs {
2405 margin: 10px 2px;
2405 margin: 10px 2px;
2406 font-weight: bold;
2406 font-weight: bold;
2407 }
2407 }
2408
2408
2409 .cs_files .node {
2409 .cs_files .node {
2410 float: left;
2410 float: left;
2411 }
2411 }
2412
2412
2413 .cs_files .changes {
2413 .cs_files .changes {
2414 float: right;
2414 float: right;
2415 color: #003367;
2415 color: #003367;
2416 }
2416 }
2417
2417
2418 .cs_files .changes .added {
2418 .cs_files .changes .added {
2419 background-color: #BBFFBB;
2419 background-color: #BBFFBB;
2420 float: left;
2420 float: left;
2421 text-align: center;
2421 text-align: center;
2422 font-size: 9px;
2422 font-size: 9px;
2423 padding: 2px 0px 2px 0px;
2423 padding: 2px 0px 2px 0px;
2424 }
2424 }
2425
2425
2426 .cs_files .changes .deleted {
2426 .cs_files .changes .deleted {
2427 background-color: #FF8888;
2427 background-color: #FF8888;
2428 float: left;
2428 float: left;
2429 text-align: center;
2429 text-align: center;
2430 font-size: 9px;
2430 font-size: 9px;
2431 padding: 2px 0px 2px 0px;
2431 padding: 2px 0px 2px 0px;
2432 }
2432 }
2433 /*new binary
2433 /*new binary
2434 NEW_FILENODE = 1
2434 NEW_FILENODE = 1
2435 DEL_FILENODE = 2
2435 DEL_FILENODE = 2
2436 MOD_FILENODE = 3
2436 MOD_FILENODE = 3
2437 RENAMED_FILENODE = 4
2437 RENAMED_FILENODE = 4
2438 CHMOD_FILENODE = 5
2438 CHMOD_FILENODE = 5
2439 BIN_FILENODE = 6
2439 BIN_FILENODE = 6
2440 */
2440 */
2441 .cs_files .changes .bin {
2441 .cs_files .changes .bin {
2442 background-color: #BBFFBB;
2442 background-color: #BBFFBB;
2443 float: left;
2443 float: left;
2444 text-align: center;
2444 text-align: center;
2445 font-size: 9px;
2445 font-size: 9px;
2446 padding: 2px 0px 2px 0px;
2446 padding: 2px 0px 2px 0px;
2447 }
2447 }
2448 .cs_files .changes .bin.bin1 {
2448 .cs_files .changes .bin.bin1 {
2449 background-color: #BBFFBB;
2449 background-color: #BBFFBB;
2450 }
2450 }
2451
2451
2452 /*deleted binary*/
2452 /*deleted binary*/
2453 .cs_files .changes .bin.bin2 {
2453 .cs_files .changes .bin.bin2 {
2454 background-color: #FF8888;
2454 background-color: #FF8888;
2455 }
2455 }
2456
2456
2457 /*mod binary*/
2457 /*mod binary*/
2458 .cs_files .changes .bin.bin3 {
2458 .cs_files .changes .bin.bin3 {
2459 background-color: #DDDDDD;
2459 background-color: #DDDDDD;
2460 }
2460 }
2461
2461
2462 /*rename file*/
2462 /*rename file*/
2463 .cs_files .changes .bin.bin4 {
2463 .cs_files .changes .bin.bin4 {
2464 background-color: #6D99FF;
2464 background-color: #6D99FF;
2465 }
2465 }
2466
2466
2467 /*rename file*/
2467 /*rename file*/
2468 .cs_files .changes .bin.bin4 {
2468 .cs_files .changes .bin.bin4 {
2469 background-color: #6D99FF;
2469 background-color: #6D99FF;
2470 }
2470 }
2471
2471
2472 /*chmod file*/
2472 /*chmod file*/
2473 .cs_files .changes .bin.bin5 {
2473 .cs_files .changes .bin.bin5 {
2474 background-color: #6D99FF;
2474 background-color: #6D99FF;
2475 }
2475 }
2476
2476
2477 .cs_files .cs_added, .cs_files .cs_A {
2477 .cs_files .cs_added, .cs_files .cs_A {
2478 background: url("../images/icons/page_white_add.png") no-repeat scroll
2478 background: url("../images/icons/page_white_add.png") no-repeat scroll
2479 3px;
2479 3px;
2480 height: 16px;
2480 height: 16px;
2481 padding-left: 20px;
2481 padding-left: 20px;
2482 margin-top: 7px;
2482 margin-top: 7px;
2483 text-align: left;
2483 text-align: left;
2484 }
2484 }
2485
2485
2486 .cs_files .cs_changed, .cs_files .cs_M {
2486 .cs_files .cs_changed, .cs_files .cs_M {
2487 background: url("../images/icons/page_white_edit.png") no-repeat scroll
2487 background: url("../images/icons/page_white_edit.png") no-repeat scroll
2488 3px;
2488 3px;
2489 height: 16px;
2489 height: 16px;
2490 padding-left: 20px;
2490 padding-left: 20px;
2491 margin-top: 7px;
2491 margin-top: 7px;
2492 text-align: left;
2492 text-align: left;
2493 }
2493 }
2494
2494
2495 .cs_files .cs_removed, .cs_files .cs_D {
2495 .cs_files .cs_removed, .cs_files .cs_D {
2496 background: url("../images/icons/page_white_delete.png") no-repeat
2496 background: url("../images/icons/page_white_delete.png") no-repeat
2497 scroll 3px;
2497 scroll 3px;
2498 height: 16px;
2498 height: 16px;
2499 padding-left: 20px;
2499 padding-left: 20px;
2500 margin-top: 7px;
2500 margin-top: 7px;
2501 text-align: left;
2501 text-align: left;
2502 }
2502 }
2503
2503
2504 .table {
2504 .table {
2505 position: relative;
2505 position: relative;
2506 }
2506 }
2507
2507
2508 #graph {
2508 #graph {
2509 position: relative;
2509 position: relative;
2510 overflow: hidden;
2510 overflow: hidden;
2511 }
2511 }
2512
2512
2513 #graph_nodes {
2513 #graph_nodes {
2514 position: absolute;
2514 position: absolute;
2515 }
2515 }
2516
2516
2517 #graph_content,
2517 #graph_content,
2518 #graph .info_box,
2518 #graph .info_box,
2519 #graph .container_header {
2519 #graph .container_header {
2520 margin-left: 100px;
2520 margin-left: 100px;
2521 }
2521 }
2522
2522
2523 #graph_content {
2523 #graph_content {
2524 position: relative;
2524 position: relative;
2525 }
2525 }
2526
2526
2527 #graph .container_header {
2527 #graph .container_header {
2528 padding: 10px;
2528 padding: 10px;
2529 height: 25px;
2529 height: 25px;
2530 }
2530 }
2531
2531
2532 #graph_content #rev_range_container {
2532 #graph_content #rev_range_container {
2533 float: left;
2533 float: left;
2534 margin: 0px 0px 0px 3px;
2534 margin: 0px 0px 0px 3px;
2535 }
2535 }
2536
2536
2537 #graph_content #rev_range_clear {
2537 #graph_content #rev_range_clear {
2538 float: left;
2538 float: left;
2539 margin: 0px 0px 0px 3px;
2539 margin: 0px 0px 0px 3px;
2540 }
2540 }
2541
2541
2542 #graph_content #changesets {
2542 #graph_content #changesets {
2543 table-layout: fixed;
2543 table-layout: fixed;
2544 border-collapse: collapse;
2544 border-collapse: collapse;
2545 border-left: none;
2545 border-left: none;
2546 border-right: none;
2546 border-right: none;
2547 border-color: #cdcdcd;
2547 border-color: #cdcdcd;
2548 }
2548 }
2549
2549
2550 #graph_content #changesets td {
2550 #graph_content #changesets td {
2551 overflow: hidden;
2551 overflow: hidden;
2552 text-overflow: ellipsis;
2552 text-overflow: ellipsis;
2553 white-space: nowrap;
2553 white-space: nowrap;
2554 height: 31px;
2554 height: 31px;
2555 border-color: #cdcdcd;
2555 border-color: #cdcdcd;
2556 text-align: left;
2556 text-align: left;
2557 }
2557 }
2558
2558
2559 #graph_content .container .checkbox {
2559 #graph_content .container .checkbox {
2560 width: 12px;
2560 width: 12px;
2561 font-size: 0.85em;
2561 font-size: 0.85em;
2562 }
2562 }
2563
2563
2564 #graph_content .container .status {
2564 #graph_content .container .status {
2565 width: 14px;
2565 width: 14px;
2566 font-size: 0.85em;
2566 font-size: 0.85em;
2567 }
2567 }
2568
2568
2569 #graph_content .container .author {
2569 #graph_content .container .author {
2570 width: 105px;
2570 width: 105px;
2571 }
2571 }
2572
2572
2573 #graph_content .container .hash {
2573 #graph_content .container .hash {
2574 width: 100px;
2574 width: 100px;
2575 font-size: 0.85em;
2575 font-size: 0.85em;
2576 }
2576 }
2577
2577
2578 #graph_content #changesets .container .date {
2578 #graph_content #changesets .container .date {
2579 width: 76px;
2579 width: 76px;
2580 color: #666;
2580 color: #666;
2581 font-size: 10px;
2581 font-size: 10px;
2582 }
2582 }
2583
2583
2584 #graph_content_pr .compare_view_commits .expand_commit,
2584 #graph_content_pr .compare_view_commits .expand_commit,
2585 #graph_content .container .expand_commit {
2585 #graph_content .container .expand_commit {
2586 width: 24px;
2586 width: 24px;
2587 cursor: pointer;
2587 cursor: pointer;
2588 }
2588 }
2589
2589
2590 #graph_content #changesets .container .right {
2590 #graph_content #changesets .container .right {
2591 width: 120px;
2591 width: 120px;
2592 padding-right: 0px;
2592 padding-right: 0px;
2593 overflow: visible;
2593 overflow: visible;
2594 position: relative;
2594 position: relative;
2595 }
2595 }
2596
2596
2597 #graph_content .container .mid {
2597 #graph_content .container .mid {
2598 padding: 0;
2598 padding: 0;
2599 }
2599 }
2600
2600
2601 #graph_content .log-container {
2601 #graph_content .log-container {
2602 position: relative;
2602 position: relative;
2603 }
2603 }
2604
2604
2605 #graph_content .container .changeset_range {
2605 #graph_content .container .changeset_range {
2606 float: left;
2606 float: left;
2607 margin: 6px 3px;
2607 margin: 6px 3px;
2608 }
2608 }
2609
2609
2610 #graph_content .container .author img {
2610 #graph_content .container .author img {
2611 vertical-align: middle;
2611 vertical-align: middle;
2612 }
2612 }
2613
2613
2614 #graph_content .container .author .user {
2614 #graph_content .container .author .user {
2615 color: #444444;
2615 color: #444444;
2616 }
2616 }
2617
2617
2618 #graph_content .container .mid .message {
2618 #graph_content .container .mid .message {
2619 white-space: pre-wrap;
2619 white-space: pre-wrap;
2620 padding: 0;
2620 padding: 0;
2621 overflow: hidden;
2621 overflow: hidden;
2622 height: 1.1em;
2622 height: 1.1em;
2623 }
2623 }
2624
2624
2625 #graph_content .container .extra-container {
2625 #graph_content .container .extra-container {
2626 display: block;
2626 display: block;
2627 position: absolute;
2627 position: absolute;
2628 top: -15px;
2628 top: -15px;
2629 right: 0;
2629 right: 0;
2630 padding-left: 5px;
2630 padding-left: 5px;
2631 background: #FFFFFF;
2631 background: #FFFFFF;
2632 height: 41px;
2632 height: 41px;
2633 }
2633 }
2634
2634
2635 #graph_content .comments-container,
2635 #graph_content .comments-container,
2636 #shortlog_data .comments-container,
2636 #shortlog_data .comments-container,
2637 #graph_content .logtags {
2637 #graph_content .logtags {
2638 display: block;
2638 display: block;
2639 float: left;
2639 float: left;
2640 overflow: hidden;
2640 overflow: hidden;
2641 padding: 0;
2641 padding: 0;
2642 margin: 0;
2642 margin: 0;
2643 }
2643 }
2644
2644
2645 #graph_content .comments-container {
2645 #graph_content .comments-container {
2646 margin: 0.8em 0;
2646 margin: 0.8em 0;
2647 margin-right: 0.5em;
2647 margin-right: 0.5em;
2648 }
2648 }
2649
2649
2650 #graph_content .tagcontainer {
2650 #graph_content .tagcontainer {
2651 width: 80px;
2651 width: 80px;
2652 position: relative;
2652 position: relative;
2653 float: right;
2653 float: right;
2654 height: 100%;
2654 height: 100%;
2655 top: 7px;
2655 top: 7px;
2656 margin-left: 0.5em;
2656 margin-left: 0.5em;
2657 }
2657 }
2658
2658
2659 #graph_content .logtags {
2659 #graph_content .logtags {
2660 min-width: 80px;
2660 min-width: 80px;
2661 height: 1.1em;
2661 height: 1.1em;
2662 position: absolute;
2662 position: absolute;
2663 left: 0px;
2663 left: 0px;
2664 width: auto;
2664 width: auto;
2665 top: 0px;
2665 top: 0px;
2666 }
2666 }
2667
2667
2668 #graph_content .logtags.tags {
2668 #graph_content .logtags.tags {
2669 top: 14px;
2669 top: 14px;
2670 }
2670 }
2671
2671
2672 #graph_content .logtags:hover {
2672 #graph_content .logtags:hover {
2673 overflow: visible;
2673 overflow: visible;
2674 position: absolute;
2674 position: absolute;
2675 width: auto;
2675 width: auto;
2676 right: 0;
2676 right: 0;
2677 left: initial;
2677 left: initial;
2678 }
2678 }
2679
2679
2680 #graph_content .logtags .booktag,
2680 #graph_content .logtags .booktag,
2681 #graph_content .logtags .tagtag {
2681 #graph_content .logtags .tagtag {
2682 float: left;
2682 float: left;
2683 line-height: 1em;
2683 line-height: 1em;
2684 margin-bottom: 1px;
2684 margin-bottom: 1px;
2685 margin-right: 1px;
2685 margin-right: 1px;
2686 padding: 1px 3px;
2686 padding: 1px 3px;
2687 font-size: 10px;
2687 font-size: 10px;
2688 }
2688 }
2689
2689
2690 #graph_content .container .mid .message a:hover {
2690 #graph_content .container .mid .message a:hover {
2691 text-decoration: none;
2691 text-decoration: none;
2692 }
2692 }
2693
2693
2694 .revision-link {
2694 .revision-link {
2695 color: #3F6F9F;
2695 color: #3F6F9F;
2696 font-weight: bold !important;
2696 font-weight: bold !important;
2697 }
2697 }
2698
2698
2699 .issue-tracker-link {
2699 .issue-tracker-link {
2700 color: #3F6F9F;
2700 color: #3F6F9F;
2701 font-weight: bold !important;
2701 font-weight: bold !important;
2702 }
2702 }
2703
2703
2704 .changeset-status-container {
2704 .changeset-status-container {
2705 padding-right: 5px;
2705 padding-right: 5px;
2706 margin-top: 1px;
2706 margin-top: 1px;
2707 float: right;
2707 float: right;
2708 height: 14px;
2708 height: 14px;
2709 }
2709 }
2710 .code-header .changeset-status-container {
2710 .code-header .changeset-status-container {
2711 float: left;
2711 float: left;
2712 padding: 2px 0px 0px 2px;
2712 padding: 2px 0px 0px 2px;
2713 }
2713 }
2714 .changeset-status-container .changeset-status-lbl {
2714 .changeset-status-container .changeset-status-lbl {
2715 float: left;
2715 float: left;
2716 padding: 3px 4px 0px 0px
2716 padding: 3px 4px 0px 0px
2717 }
2717 }
2718 .code-header .changeset-status-container .changeset-status-lbl {
2718 .code-header .changeset-status-container .changeset-status-lbl {
2719 float: left;
2719 float: left;
2720 padding: 0px 4px 0px 0px;
2720 padding: 0px 4px 0px 0px;
2721 }
2721 }
2722 .changeset-status-container .changeset-status-ico {
2722 .changeset-status-container .changeset-status-ico {
2723 float: left;
2723 float: left;
2724 }
2724 }
2725 .code-header .changeset-status-container .changeset-status-ico, .container .changeset-status-ico {
2725 .code-header .changeset-status-container .changeset-status-ico, .container .changeset-status-ico {
2726 float: left;
2726 float: left;
2727 }
2727 }
2728
2728
2729 #graph_content .comments-cnt {
2729 #graph_content .comments-cnt {
2730 color: rgb(136, 136, 136);
2730 color: rgb(136, 136, 136);
2731 padding: 5px 0;
2731 padding: 5px 0;
2732 }
2732 }
2733
2733
2734 #shortlog_data .comments-cnt {
2734 #shortlog_data .comments-cnt {
2735 color: rgb(136, 136, 136);
2735 color: rgb(136, 136, 136);
2736 padding: 3px 0;
2736 padding: 3px 0;
2737 }
2737 }
2738
2738
2739 #graph_content .comments-cnt a,
2739 #graph_content .comments-cnt a,
2740 #shortlog_data .comments-cnt a {
2740 #shortlog_data .comments-cnt a {
2741 background-image: url('../images/icons/comments.png');
2741 background-image: url('../images/icons/comments.png');
2742 background-repeat: no-repeat;
2742 background-repeat: no-repeat;
2743 background-position: 100% 50%;
2743 background-position: 100% 50%;
2744 padding: 5px 0;
2744 padding: 5px 0;
2745 padding-right: 20px;
2745 padding-right: 20px;
2746 }
2746 }
2747
2747
2748 .right .changes {
2748 .right .changes {
2749 clear: both;
2749 clear: both;
2750 }
2750 }
2751
2751
2752 .right .changes .changed_total {
2752 .right .changes .changed_total {
2753 display: block;
2753 display: block;
2754 float: right;
2754 float: right;
2755 text-align: center;
2755 text-align: center;
2756 min-width: 45px;
2756 min-width: 45px;
2757 cursor: pointer;
2757 cursor: pointer;
2758 color: #444444;
2758 color: #444444;
2759 background: #FEA;
2759 background: #FEA;
2760 -webkit-border-radius: 0px 0px 0px 6px;
2760 -webkit-border-radius: 0px 0px 0px 6px;
2761 border-radius: 0px 0px 0px 6px;
2761 border-radius: 0px 0px 0px 6px;
2762 padding: 1px;
2762 padding: 1px;
2763 }
2763 }
2764
2764
2765 .right .changes .added, .changed, .removed {
2765 .right .changes .added, .changed, .removed {
2766 display: block;
2766 display: block;
2767 padding: 1px;
2767 padding: 1px;
2768 color: #444444;
2768 color: #444444;
2769 float: right;
2769 float: right;
2770 text-align: center;
2770 text-align: center;
2771 min-width: 15px;
2771 min-width: 15px;
2772 }
2772 }
2773
2773
2774 .right .changes .added {
2774 .right .changes .added {
2775 background: #CFC;
2775 background: #CFC;
2776 }
2776 }
2777
2777
2778 .right .changes .changed {
2778 .right .changes .changed {
2779 background: #FEA;
2779 background: #FEA;
2780 }
2780 }
2781
2781
2782 .right .changes .removed {
2782 .right .changes .removed {
2783 background: #FAA;
2783 background: #FAA;
2784 }
2784 }
2785
2785
2786 .right .merge {
2786 .right .merge {
2787 padding: 1px 3px 1px 3px;
2787 padding: 1px 3px 1px 3px;
2788 background-color: #fca062;
2788 background-color: #fca062;
2789 font-size: 10px;
2789 font-size: 10px;
2790 color: #ffffff;
2790 color: #ffffff;
2791 text-transform: uppercase;
2791 text-transform: uppercase;
2792 white-space: nowrap;
2792 white-space: nowrap;
2793 -webkit-border-radius: 3px;
2793 -webkit-border-radius: 3px;
2794 border-radius: 3px;
2794 border-radius: 3px;
2795 margin-right: 2px;
2795 margin-right: 2px;
2796 }
2796 }
2797
2797
2798 .right .parent {
2798 .right .parent {
2799 color: #666666;
2799 color: #666666;
2800 clear: both;
2800 clear: both;
2801 }
2801 }
2802 .right .logtags {
2802 .right .logtags {
2803 line-height: 2.2em;
2803 line-height: 2.2em;
2804 }
2804 }
2805 .branchtag, .logtags .tagtag, .logtags .booktag {
2805 .branchtag, .logtags .tagtag, .logtags .booktag {
2806 margin: 0px 2px;
2806 margin: 0px 2px;
2807 }
2807 }
2808
2808
2809 .branchtag,
2809 .branchtag,
2810 .tagtag,
2810 .tagtag,
2811 .booktag,
2811 .booktag,
2812 .spantag {
2812 .spantag {
2813 padding: 1px 3px 1px 3px;
2813 padding: 1px 3px 1px 3px;
2814 font-size: 10px;
2814 font-size: 10px;
2815 color: #336699;
2815 color: #336699;
2816 white-space: nowrap;
2816 white-space: nowrap;
2817 -webkit-border-radius: 4px;
2817 -webkit-border-radius: 4px;
2818 border-radius: 4px;
2818 border-radius: 4px;
2819 border: 1px solid #d9e8f8;
2819 border: 1px solid #d9e8f8;
2820 line-height: 1.5em;
2820 line-height: 1.5em;
2821 }
2821 }
2822
2822
2823 #graph_content .branchtag,
2823 #graph_content .branchtag,
2824 #graph_content .tagtag,
2824 #graph_content .tagtag,
2825 #graph_content .booktag {
2825 #graph_content .booktag {
2826 margin: 1.1em 0;
2826 margin: 1.1em 0;
2827 margin-right: 0.5em;
2827 margin-right: 0.5em;
2828 }
2828 }
2829
2829
2830 .branchtag,
2830 .branchtag,
2831 .tagtag,
2831 .tagtag,
2832 .booktag {
2832 .booktag {
2833 float: left;
2833 float: left;
2834 }
2834 }
2835
2835
2836 .right .logtags .branchtag,
2836 .right .logtags .branchtag,
2837 .right .logtags .tagtag,
2837 .right .logtags .tagtag,
2838 .right .logtags .booktag,
2838 .right .logtags .booktag,
2839 .right .merge {
2839 .right .merge {
2840 float: right;
2840 float: right;
2841 line-height: 1em;
2841 line-height: 1em;
2842 margin: 1px 1px !important;
2842 margin: 1px 1px !important;
2843 display: block;
2843 display: block;
2844 }
2844 }
2845
2845
2846 .booktag {
2846 .booktag {
2847 border-color: #46A546;
2847 border-color: #46A546;
2848 color: #46A546;
2848 color: #46A546;
2849 }
2849 }
2850
2850
2851 .tagtag {
2851 .tagtag {
2852 border-color: #62cffc;
2852 border-color: #62cffc;
2853 color: #62cffc;
2853 color: #62cffc;
2854 }
2854 }
2855
2855
2856 .logtags .branchtag a:hover,
2856 .logtags .branchtag a:hover,
2857 .logtags .branchtag a,
2857 .logtags .branchtag a,
2858 .branchtag a,
2858 .branchtag a,
2859 .branchtag a:hover {
2859 .branchtag a:hover {
2860 text-decoration: none;
2860 text-decoration: none;
2861 color: inherit;
2861 color: inherit;
2862 }
2862 }
2863 .logtags .tagtag {
2863 .logtags .tagtag {
2864 padding: 1px 3px 1px 3px;
2864 padding: 1px 3px 1px 3px;
2865 background-color: #62cffc;
2865 background-color: #62cffc;
2866 font-size: 10px;
2866 font-size: 10px;
2867 color: #ffffff;
2867 color: #ffffff;
2868 white-space: nowrap;
2868 white-space: nowrap;
2869 -webkit-border-radius: 3px;
2869 -webkit-border-radius: 3px;
2870 border-radius: 3px;
2870 border-radius: 3px;
2871 }
2871 }
2872
2872
2873 .tagtag a,
2873 .tagtag a,
2874 .tagtag a:hover,
2874 .tagtag a:hover,
2875 .logtags .tagtag a,
2875 .logtags .tagtag a,
2876 .logtags .tagtag a:hover {
2876 .logtags .tagtag a:hover {
2877 text-decoration: none;
2877 text-decoration: none;
2878 color: inherit;
2878 color: inherit;
2879 }
2879 }
2880 .logbooks .booktag, .logbooks .booktag, .logtags .booktag, .logtags .booktag {
2880 .logbooks .booktag, .logbooks .booktag, .logtags .booktag, .logtags .booktag {
2881 padding: 1px 3px 1px 3px;
2881 padding: 1px 3px 1px 3px;
2882 background-color: #46A546;
2882 background-color: #46A546;
2883 font-size: 10px;
2883 font-size: 10px;
2884 color: #ffffff;
2884 color: #ffffff;
2885 white-space: nowrap;
2885 white-space: nowrap;
2886 -webkit-border-radius: 3px;
2886 -webkit-border-radius: 3px;
2887 border-radius: 3px;
2887 border-radius: 3px;
2888 }
2888 }
2889 .logbooks .booktag, .logbooks .booktag a, .right .logtags .booktag, .logtags .booktag a {
2889 .logbooks .booktag, .logbooks .booktag a, .right .logtags .booktag, .logtags .booktag a {
2890 color: #ffffff;
2890 color: #ffffff;
2891 }
2891 }
2892
2892
2893 .logbooks .booktag, .logbooks .booktag a:hover,
2893 .logbooks .booktag, .logbooks .booktag a:hover,
2894 .logtags .booktag, .logtags .booktag a:hover,
2894 .logtags .booktag, .logtags .booktag a:hover,
2895 .booktag a,
2895 .booktag a,
2896 .booktag a:hover {
2896 .booktag a:hover {
2897 text-decoration: none;
2897 text-decoration: none;
2898 color: inherit;
2898 color: inherit;
2899 }
2899 }
2900 div.browserblock {
2900 div.browserblock {
2901 overflow: hidden;
2901 overflow: hidden;
2902 border: 1px solid #ccc;
2902 border: 1px solid #ccc;
2903 background: #f8f8f8;
2903 background: #f8f8f8;
2904 font-size: 100%;
2904 font-size: 100%;
2905 line-height: 125%;
2905 line-height: 125%;
2906 padding: 0;
2906 padding: 0;
2907 -webkit-border-radius: 6px 6px 0px 0px;
2907 -webkit-border-radius: 6px 6px 0px 0px;
2908 border-radius: 6px 6px 0px 0px;
2908 border-radius: 6px 6px 0px 0px;
2909 }
2909 }
2910
2910
2911 div.browserblock .browser-header {
2911 div.browserblock .browser-header {
2912 background: #FFF;
2912 background: #FFF;
2913 padding: 10px 0px 15px 0px;
2913 padding: 10px 0px 15px 0px;
2914 width: 100%;
2914 width: 100%;
2915 }
2915 }
2916
2916
2917 div.browserblock .browser-nav {
2917 div.browserblock .browser-nav {
2918 float: left
2918 float: left
2919 }
2919 }
2920
2920
2921 div.browserblock .browser-branch {
2921 div.browserblock .browser-branch {
2922 float: left;
2922 float: left;
2923 }
2923 }
2924
2924
2925 div.browserblock .browser-branch label {
2925 div.browserblock .browser-branch label {
2926 color: #4A4A4A;
2926 color: #4A4A4A;
2927 vertical-align: text-top;
2927 vertical-align: text-top;
2928 }
2928 }
2929
2929
2930 div.browserblock .browser-header span {
2930 div.browserblock .browser-header span {
2931 margin-left: 5px;
2931 margin-left: 5px;
2932 font-weight: 700;
2932 font-weight: 700;
2933 }
2933 }
2934
2934
2935 div.browserblock .browser-search {
2935 div.browserblock .browser-search {
2936 clear: both;
2936 clear: both;
2937 padding: 8px 8px 0px 5px;
2937 padding: 8px 8px 0px 5px;
2938 height: 20px;
2938 height: 20px;
2939 }
2939 }
2940
2940
2941 div.browserblock #node_filter_box {
2941 div.browserblock #node_filter_box {
2942 }
2942 }
2943
2943
2944 div.browserblock .search_activate {
2944 div.browserblock .search_activate {
2945 float: left
2945 float: left
2946 }
2946 }
2947
2947
2948 div.browserblock .add_node {
2948 div.browserblock .add_node {
2949 float: left;
2949 float: left;
2950 padding-left: 5px;
2950 padding-left: 5px;
2951 }
2951 }
2952
2952
2953 div.browserblock .search_activate a:hover, div.browserblock .add_node a:hover {
2953 div.browserblock .search_activate a:hover, div.browserblock .add_node a:hover {
2954 text-decoration: none !important;
2954 text-decoration: none !important;
2955 }
2955 }
2956
2956
2957 div.browserblock .browser-body {
2957 div.browserblock .browser-body {
2958 background: #EEE;
2958 background: #EEE;
2959 border-top: 1px solid #CCC;
2959 border-top: 1px solid #CCC;
2960 }
2960 }
2961
2961
2962 table.code-browser {
2962 table.code-browser {
2963 border-collapse: collapse;
2963 border-collapse: collapse;
2964 width: 100%;
2964 width: 100%;
2965 }
2965 }
2966
2966
2967 table.code-browser tr {
2967 table.code-browser tr {
2968 margin: 3px;
2968 margin: 3px;
2969 }
2969 }
2970
2970
2971 table.code-browser thead th {
2971 table.code-browser thead th {
2972 background-color: #EEE;
2972 background-color: #EEE;
2973 height: 20px;
2973 height: 20px;
2974 font-size: 1.1em;
2974 font-size: 1.1em;
2975 font-weight: 700;
2975 font-weight: 700;
2976 text-align: left;
2976 text-align: left;
2977 padding-left: 10px;
2977 padding-left: 10px;
2978 }
2978 }
2979
2979
2980 table.code-browser tbody td {
2980 table.code-browser tbody td {
2981 padding-left: 10px;
2981 padding-left: 10px;
2982 height: 20px;
2982 height: 20px;
2983 }
2983 }
2984
2984
2985 table.code-browser .browser-file {
2985 table.code-browser .browser-file {
2986 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2986 background: url("../images/icons/document_16.png") no-repeat scroll 3px;
2987 height: 16px;
2987 height: 16px;
2988 padding-left: 20px;
2988 padding-left: 20px;
2989 text-align: left;
2989 text-align: left;
2990 }
2990 }
2991 .diffblock .changeset_header {
2991 .diffblock .changeset_header {
2992 height: 16px;
2992 height: 16px;
2993 }
2993 }
2994 .diffblock .changeset_file {
2994 .diffblock .changeset_file {
2995 float: left;
2995 float: left;
2996 }
2996 }
2997 .diffblock .diff-menu-wrapper {
2997 .diffblock .diff-menu-wrapper {
2998 float: left;
2998 float: left;
2999 }
2999 }
3000
3000
3001 .diffblock .diff-menu {
3001 .diffblock .diff-menu {
3002 position: absolute;
3002 position: absolute;
3003 background: none repeat scroll 0 0 #FFFFFF;
3003 background: none repeat scroll 0 0 #FFFFFF;
3004 border-color: #003367 #666666 #666666;
3004 border-color: #003367 #666666 #666666;
3005 border-right: 1px solid #666666;
3005 border-right: 1px solid #666666;
3006 border-style: solid solid solid;
3006 border-style: solid solid solid;
3007 border-width: 1px;
3007 border-width: 1px;
3008 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
3008 box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
3009 margin-top: 5px;
3009 margin-top: 5px;
3010 margin-left: 1px;
3010 margin-left: 1px;
3011
3011
3012 }
3012 }
3013 .diffblock .diff-actions {
3013 .diffblock .diff-actions {
3014 padding: 2px 0px 0px 2px;
3014 padding: 2px 0px 0px 2px;
3015 float: left;
3015 float: left;
3016 }
3016 }
3017 .diffblock .diff-menu ul li {
3017 .diffblock .diff-menu ul li {
3018 padding: 0px 0px 0px 0px !important;
3018 padding: 0px 0px 0px 0px !important;
3019 }
3019 }
3020 .diffblock .diff-menu ul li a {
3020 .diffblock .diff-menu ul li a {
3021 display: block;
3021 display: block;
3022 padding: 3px 8px 3px 8px !important;
3022 padding: 3px 8px 3px 8px !important;
3023 }
3023 }
3024 .diffblock .diff-menu ul li a:hover {
3024 .diffblock .diff-menu ul li a:hover {
3025 text-decoration: none;
3025 text-decoration: none;
3026 background-color: #EEEEEE;
3026 background-color: #EEEEEE;
3027 }
3027 }
3028 table.code-browser .browser-dir {
3028 table.code-browser .browser-dir {
3029 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
3029 background: url("../images/icons/folder_16.png") no-repeat scroll 3px;
3030 height: 16px;
3030 height: 16px;
3031 padding-left: 20px;
3031 padding-left: 20px;
3032 text-align: left;
3032 text-align: left;
3033 }
3033 }
3034
3034
3035 table.code-browser .submodule-dir {
3035 table.code-browser .submodule-dir {
3036 background: url("../images/icons/disconnect.png") no-repeat scroll 3px;
3036 background: url("../images/icons/disconnect.png") no-repeat scroll 3px;
3037 height: 16px;
3037 height: 16px;
3038 padding-left: 20px;
3038 padding-left: 20px;
3039 text-align: left;
3039 text-align: left;
3040 }
3040 }
3041
3041
3042
3042
3043 .box .search {
3043 .box .search {
3044 clear: both;
3044 clear: both;
3045 overflow: hidden;
3045 overflow: hidden;
3046 margin: 0;
3046 margin: 0;
3047 padding: 0 20px 10px;
3047 padding: 0 20px 10px;
3048 }
3048 }
3049
3049
3050 .box .search div.search_path {
3050 .box .search div.search_path {
3051 background: none repeat scroll 0 0 #EEE;
3051 background: none repeat scroll 0 0 #EEE;
3052 border: 1px solid #CCC;
3052 border: 1px solid #CCC;
3053 color: blue;
3053 color: blue;
3054 margin-bottom: 10px;
3054 margin-bottom: 10px;
3055 padding: 10px 0;
3055 padding: 10px 0;
3056 }
3056 }
3057
3057
3058 .box .search div.search_path div.link {
3058 .box .search div.search_path div.link {
3059 font-weight: 700;
3059 font-weight: 700;
3060 margin-left: 25px;
3060 margin-left: 25px;
3061 }
3061 }
3062
3062
3063 .box .search div.search_path div.link a {
3063 .box .search div.search_path div.link a {
3064 color: #003367;
3064 color: #003367;
3065 cursor: pointer;
3065 cursor: pointer;
3066 text-decoration: none;
3066 text-decoration: none;
3067 }
3067 }
3068
3068
3069 #path_unlock {
3069 #path_unlock {
3070 color: red;
3070 color: red;
3071 font-size: 1.2em;
3071 font-size: 1.2em;
3072 padding-left: 4px;
3072 padding-left: 4px;
3073 }
3073 }
3074
3074
3075 .info_box span {
3075 .info_box span {
3076 margin-left: 3px;
3076 margin-left: 3px;
3077 margin-right: 3px;
3077 margin-right: 3px;
3078 }
3078 }
3079
3079
3080 .info_box .rev {
3080 .info_box .rev {
3081 color: #003367;
3081 color: #003367;
3082 font-size: 1.6em;
3082 font-size: 1.6em;
3083 font-weight: bold;
3083 font-weight: bold;
3084 vertical-align: sub;
3084 vertical-align: sub;
3085 }
3085 }
3086
3086
3087 .info_box input#at_rev, .info_box input#size {
3087 .info_box input#at_rev, .info_box input#size {
3088 background: #FFF;
3088 background: #FFF;
3089 border-top: 1px solid #b3b3b3;
3089 border-top: 1px solid #b3b3b3;
3090 border-left: 1px solid #b3b3b3;
3090 border-left: 1px solid #b3b3b3;
3091 border-right: 1px solid #eaeaea;
3091 border-right: 1px solid #eaeaea;
3092 border-bottom: 1px solid #eaeaea;
3092 border-bottom: 1px solid #eaeaea;
3093 color: #000;
3093 color: #000;
3094 font-size: 12px;
3094 font-size: 12px;
3095 margin: 0;
3095 margin: 0;
3096 padding: 1px 5px 1px;
3096 padding: 1px 5px 1px;
3097 }
3097 }
3098
3098
3099 .info_box input#view {
3099 .info_box input#view {
3100 text-align: center;
3100 text-align: center;
3101 padding: 4px 3px 2px 2px;
3101 padding: 4px 3px 2px 2px;
3102 }
3102 }
3103
3103
3104 .info_box_elem {
3104 .info_box_elem {
3105 display: inline-block;
3105 display: inline-block;
3106 padding: 0 2px;
3106 padding: 0 2px;
3107 }
3107 }
3108
3108
3109 .yui-overlay, .yui-panel-container {
3109 .yui-overlay, .yui-panel-container {
3110 visibility: hidden;
3110 visibility: hidden;
3111 position: absolute;
3111 position: absolute;
3112 z-index: 2;
3112 z-index: 2;
3113 }
3113 }
3114
3114
3115 #tip-box {
3115 #tip-box {
3116 position: absolute;
3116 position: absolute;
3117
3117
3118 background-color: #FFF;
3118 background-color: #FFF;
3119 border: 2px solid #003367;
3119 border: 2px solid #003367;
3120 font: 100% sans-serif;
3120 font: 100% sans-serif;
3121 width: auto;
3121 width: auto;
3122 opacity: 1;
3122 opacity: 1;
3123 padding: 8px;
3123 padding: 8px;
3124
3124
3125 white-space: pre-wrap;
3125 white-space: pre-wrap;
3126 -webkit-border-radius: 8px 8px 8px 8px;
3126 -webkit-border-radius: 8px 8px 8px 8px;
3127 -khtml-border-radius: 8px 8px 8px 8px;
3127 -khtml-border-radius: 8px 8px 8px 8px;
3128 border-radius: 8px 8px 8px 8px;
3128 border-radius: 8px 8px 8px 8px;
3129 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3129 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3130 -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3130 -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3131 z-index: 100000;
3131 z-index: 100000;
3132 }
3132 }
3133
3133
3134 .hl-tip-box {
3134 .hl-tip-box {
3135 visibility: hidden;
3135 z-index: 1;
3136 position: absolute;
3136 position: absolute;
3137 color: #666;
3137 color: #666;
3138 background-color: #FFF;
3138 background-color: #FFF;
3139 border: 2px solid #003367;
3139 border: 2px solid #003367;
3140 font: 100% sans-serif;
3140 font: 100% sans-serif;
3141 width: auto;
3141 width: auto;
3142 opacity: 1;
3142 opacity: 1;
3143 padding: 8px;
3143 padding: 8px;
3144 white-space: pre-wrap;
3144 white-space: pre-wrap;
3145 -webkit-border-radius: 8px 8px 8px 8px;
3145 -webkit-border-radius: 8px 8px 8px 8px;
3146 -khtml-border-radius: 8px 8px 8px 8px;
3146 -khtml-border-radius: 8px 8px 8px 8px;
3147 border-radius: 8px 8px 8px 8px;
3147 border-radius: 8px 8px 8px 8px;
3148 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3148 box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
3149 }
3149 }
3150
3150
3151
3151
3152 .mentions-container {
3152 .mentions-container {
3153 width: 90% !important;
3153 width: 90% !important;
3154 }
3154 }
3155 .mentions-container .yui-ac-content {
3155 .mentions-container .yui-ac-content {
3156 width: 100% !important;
3156 width: 100% !important;
3157 }
3157 }
3158
3158
3159 .ac {
3159 .ac {
3160 vertical-align: top;
3160 vertical-align: top;
3161 }
3161 }
3162
3162
3163 .ac .yui-ac {
3163 .ac .yui-ac {
3164 position: inherit;
3164 position: inherit;
3165 font-size: 100%;
3165 font-size: 100%;
3166 }
3166 }
3167
3167
3168 .ac .perm_ac {
3168 .ac .perm_ac {
3169 width: 20em;
3169 width: 20em;
3170 }
3170 }
3171
3171
3172 .ac .yui-ac-input {
3172 .ac .yui-ac-input {
3173 width: 100%;
3173 width: 100%;
3174 }
3174 }
3175
3175
3176 .ac .yui-ac-container {
3176 .ac .yui-ac-container {
3177 position: absolute;
3177 position: absolute;
3178 top: 1.6em;
3178 top: 1.6em;
3179 width: auto;
3179 width: auto;
3180 }
3180 }
3181
3181
3182 .ac .yui-ac-content {
3182 .ac .yui-ac-content {
3183 position: absolute;
3183 position: absolute;
3184 border: 1px solid gray;
3184 border: 1px solid gray;
3185 background: #fff;
3185 background: #fff;
3186 z-index: 9050;
3186 z-index: 9050;
3187 }
3187 }
3188
3188
3189 .ac .yui-ac-shadow {
3189 .ac .yui-ac-shadow {
3190 position: absolute;
3190 position: absolute;
3191 width: 100%;
3191 width: 100%;
3192 background: #000;
3192 background: #000;
3193 opacity: .10;
3193 opacity: .10;
3194 filter: alpha(opacity = 10);
3194 filter: alpha(opacity = 10);
3195 z-index: 9049;
3195 z-index: 9049;
3196 margin: .3em;
3196 margin: .3em;
3197 }
3197 }
3198
3198
3199 .ac .yui-ac-content ul {
3199 .ac .yui-ac-content ul {
3200 width: 100%;
3200 width: 100%;
3201 margin: 0;
3201 margin: 0;
3202 padding: 0;
3202 padding: 0;
3203 z-index: 9050;
3203 z-index: 9050;
3204 }
3204 }
3205
3205
3206 .ac .yui-ac-content li {
3206 .ac .yui-ac-content li {
3207 cursor: default;
3207 cursor: default;
3208 white-space: nowrap;
3208 white-space: nowrap;
3209 margin: 0;
3209 margin: 0;
3210 padding: 2px 5px;
3210 padding: 2px 5px;
3211 height: 18px;
3211 height: 18px;
3212 z-index: 9050;
3212 z-index: 9050;
3213 display: block;
3213 display: block;
3214 width: auto !important;
3214 width: auto !important;
3215 }
3215 }
3216
3216
3217 .ac .yui-ac-content li .ac-container-wrap {
3217 .ac .yui-ac-content li .ac-container-wrap {
3218 width: auto;
3218 width: auto;
3219 }
3219 }
3220
3220
3221 .ac .yui-ac-content li.yui-ac-prehighlight {
3221 .ac .yui-ac-content li.yui-ac-prehighlight {
3222 background: #B3D4FF;
3222 background: #B3D4FF;
3223 z-index: 9050;
3223 z-index: 9050;
3224 }
3224 }
3225
3225
3226 .ac .yui-ac-content li.yui-ac-highlight {
3226 .ac .yui-ac-content li.yui-ac-highlight {
3227 background: #556CB5;
3227 background: #556CB5;
3228 color: #FFF;
3228 color: #FFF;
3229 z-index: 9050;
3229 z-index: 9050;
3230 }
3230 }
3231 .ac .yui-ac-bd {
3231 .ac .yui-ac-bd {
3232 z-index: 9050;
3232 z-index: 9050;
3233 }
3233 }
3234
3234
3235 .reposize {
3235 .reposize {
3236 background: url("../images/icons/server.png") no-repeat scroll 3px;
3236 background: url("../images/icons/server.png") no-repeat scroll 3px;
3237 height: 16px;
3237 height: 16px;
3238 width: 20px;
3238 width: 20px;
3239 cursor: pointer;
3239 cursor: pointer;
3240 display: block;
3240 display: block;
3241 float: right;
3241 float: right;
3242 margin-top: 2px;
3242 margin-top: 2px;
3243 }
3243 }
3244
3244
3245 #repo_size {
3245 #repo_size {
3246 display: block;
3246 display: block;
3247 margin-top: 4px;
3247 margin-top: 4px;
3248 color: #666;
3248 color: #666;
3249 float: right;
3249 float: right;
3250 }
3250 }
3251
3251
3252 .locking_locked {
3252 .locking_locked {
3253 background: #FFF url("../images/icons/block_16.png") no-repeat scroll 3px;
3253 background: #FFF url("../images/icons/block_16.png") no-repeat scroll 3px;
3254 height: 16px;
3254 height: 16px;
3255 width: 20px;
3255 width: 20px;
3256 cursor: pointer;
3256 cursor: pointer;
3257 display: block;
3257 display: block;
3258 float: right;
3258 float: right;
3259 margin-top: 2px;
3259 margin-top: 2px;
3260 }
3260 }
3261
3261
3262 .locking_unlocked {
3262 .locking_unlocked {
3263 background: #FFF url("../images/icons/accept.png") no-repeat scroll 3px;
3263 background: #FFF url("../images/icons/accept.png") no-repeat scroll 3px;
3264 height: 16px;
3264 height: 16px;
3265 width: 20px;
3265 width: 20px;
3266 cursor: pointer;
3266 cursor: pointer;
3267 display: block;
3267 display: block;
3268 float: right;
3268 float: right;
3269 margin-top: 2px;
3269 margin-top: 2px;
3270 }
3270 }
3271
3271
3272 .currently_following {
3272 .currently_following {
3273 padding-left: 10px;
3273 padding-left: 10px;
3274 padding-bottom: 5px;
3274 padding-bottom: 5px;
3275 }
3275 }
3276
3276
3277 .add_icon {
3277 .add_icon {
3278 background: url("../images/icons/add.png") no-repeat scroll 3px;
3278 background: url("../images/icons/add.png") no-repeat scroll 3px;
3279 padding-left: 20px;
3279 padding-left: 20px;
3280 padding-top: 0px;
3280 padding-top: 0px;
3281 text-align: left;
3281 text-align: left;
3282 }
3282 }
3283
3283
3284 .accept_icon {
3284 .accept_icon {
3285 background: url("../images/icons/accept.png") no-repeat scroll 3px;
3285 background: url("../images/icons/accept.png") no-repeat scroll 3px;
3286 padding-left: 20px;
3286 padding-left: 20px;
3287 padding-top: 0px;
3287 padding-top: 0px;
3288 text-align: left;
3288 text-align: left;
3289 }
3289 }
3290
3290
3291 .edit_icon {
3291 .edit_icon {
3292 background: url("../images/icons/application_form_edit.png") no-repeat scroll 3px;
3292 background: url("../images/icons/application_form_edit.png") no-repeat scroll 3px;
3293 padding-left: 20px;
3293 padding-left: 20px;
3294 padding-top: 0px;
3294 padding-top: 0px;
3295 text-align: left;
3295 text-align: left;
3296 }
3296 }
3297
3297
3298 .delete_icon {
3298 .delete_icon {
3299 background: url("../images/icons/delete.png") no-repeat scroll 3px;
3299 background: url("../images/icons/delete.png") no-repeat scroll 3px;
3300 padding-left: 20px;
3300 padding-left: 20px;
3301 padding-top: 0px;
3301 padding-top: 0px;
3302 text-align: left;
3302 text-align: left;
3303 }
3303 }
3304
3304
3305 .refresh_icon {
3305 .refresh_icon {
3306 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
3306 background: url("../images/icons/arrow_refresh.png") no-repeat scroll
3307 3px;
3307 3px;
3308 padding-left: 20px;
3308 padding-left: 20px;
3309 padding-top: 0px;
3309 padding-top: 0px;
3310 text-align: left;
3310 text-align: left;
3311 }
3311 }
3312
3312
3313 .pull_icon {
3313 .pull_icon {
3314 background: url("../images/icons/connect.png") no-repeat scroll 3px;
3314 background: url("../images/icons/connect.png") no-repeat scroll 3px;
3315 padding-left: 20px;
3315 padding-left: 20px;
3316 padding-top: 0px;
3316 padding-top: 0px;
3317 text-align: left;
3317 text-align: left;
3318 }
3318 }
3319
3319
3320 .rss_icon {
3320 .rss_icon {
3321 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
3321 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
3322 padding-left: 20px;
3322 padding-left: 20px;
3323 padding-top: 4px;
3323 padding-top: 4px;
3324 text-align: left;
3324 text-align: left;
3325 font-size: 8px
3325 font-size: 8px
3326 }
3326 }
3327
3327
3328 .atom_icon {
3328 .atom_icon {
3329 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
3329 background: url("../images/icons/rss_16.png") no-repeat scroll 3px;
3330 padding-left: 20px;
3330 padding-left: 20px;
3331 padding-top: 4px;
3331 padding-top: 4px;
3332 text-align: left;
3332 text-align: left;
3333 font-size: 8px
3333 font-size: 8px
3334 }
3334 }
3335
3335
3336 .archive_icon {
3336 .archive_icon {
3337 background: url("../images/icons/compress.png") no-repeat scroll 3px;
3337 background: url("../images/icons/compress.png") no-repeat scroll 3px;
3338 padding-left: 20px;
3338 padding-left: 20px;
3339 text-align: left;
3339 text-align: left;
3340 padding-top: 1px;
3340 padding-top: 1px;
3341 }
3341 }
3342
3342
3343 .start_following_icon {
3343 .start_following_icon {
3344 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
3344 background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
3345 padding-left: 20px;
3345 padding-left: 20px;
3346 text-align: left;
3346 text-align: left;
3347 padding-top: 0px;
3347 padding-top: 0px;
3348 }
3348 }
3349
3349
3350 .stop_following_icon {
3350 .stop_following_icon {
3351 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
3351 background: url("../images/icons/heart_delete.png") no-repeat scroll 3px;
3352 padding-left: 20px;
3352 padding-left: 20px;
3353 text-align: left;
3353 text-align: left;
3354 padding-top: 0px;
3354 padding-top: 0px;
3355 }
3355 }
3356
3356
3357 .action_button {
3357 .action_button {
3358 border: 0;
3358 border: 0;
3359 display: inline;
3359 display: inline;
3360 }
3360 }
3361
3361
3362 .action_button:hover {
3362 .action_button:hover {
3363 border: 0;
3363 border: 0;
3364 text-decoration: underline;
3364 text-decoration: underline;
3365 cursor: pointer;
3365 cursor: pointer;
3366 }
3366 }
3367
3367
3368 #switch_repos {
3368 #switch_repos {
3369 position: absolute;
3369 position: absolute;
3370 height: 25px;
3370 height: 25px;
3371 z-index: 1;
3371 z-index: 1;
3372 }
3372 }
3373
3373
3374 #switch_repos select {
3374 #switch_repos select {
3375 min-width: 150px;
3375 min-width: 150px;
3376 max-height: 250px;
3376 max-height: 250px;
3377 z-index: 1;
3377 z-index: 1;
3378 }
3378 }
3379
3379
3380 .breadcrumbs {
3380 .breadcrumbs {
3381 border: medium none;
3381 border: medium none;
3382 color: #FFF;
3382 color: #FFF;
3383 float: left;
3383 float: left;
3384 font-weight: 700;
3384 font-weight: 700;
3385 font-size: 14px;
3385 font-size: 14px;
3386 margin: 0;
3386 margin: 0;
3387 padding: 11px 0 11px 10px;
3387 padding: 11px 0 11px 10px;
3388 }
3388 }
3389
3389
3390 .breadcrumbs .hash {
3390 .breadcrumbs .hash {
3391 text-transform: none;
3391 text-transform: none;
3392 color: #fff;
3392 color: #fff;
3393 }
3393 }
3394
3394
3395 .breadcrumbs a {
3395 .breadcrumbs a {
3396 color: #FFF;
3396 color: #FFF;
3397 }
3397 }
3398
3398
3399 .flash_msg {
3399 .flash_msg {
3400 }
3400 }
3401
3401
3402 .flash_msg ul {
3402 .flash_msg ul {
3403 }
3403 }
3404
3404
3405 .error_red {
3405 .error_red {
3406 color: red;
3406 color: red;
3407 }
3407 }
3408
3408
3409 .flash_msg .alert-error {
3409 .flash_msg .alert-error {
3410 background-color: #c43c35;
3410 background-color: #c43c35;
3411 background-repeat: repeat-x;
3411 background-repeat: repeat-x;
3412 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35) );
3412 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35) );
3413 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3413 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3414 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3414 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3415 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35) );
3415 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35) );
3416 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3416 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3417 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3417 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3418 background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
3418 background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
3419 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35', GradientType=0 );
3419 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35', GradientType=0 );
3420 border-color: #c43c35 #c43c35 #882a25;
3420 border-color: #c43c35 #c43c35 #882a25;
3421 }
3421 }
3422
3422
3423 .flash_msg .alert-error a {
3423 .flash_msg .alert-error a {
3424 text-decoration: underline;
3424 text-decoration: underline;
3425 }
3425 }
3426
3426
3427 .flash_msg .alert-warning {
3427 .flash_msg .alert-warning {
3428 color: #404040 !important;
3428 color: #404040 !important;
3429 background-color: #eedc94;
3429 background-color: #eedc94;
3430 background-repeat: repeat-x;
3430 background-repeat: repeat-x;
3431 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94) );
3431 background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94) );
3432 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
3432 background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
3433 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
3433 background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
3434 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94) );
3434 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94) );
3435 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
3435 background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
3436 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
3436 background-image: -o-linear-gradient(top, #fceec1, #eedc94);
3437 background-image: linear-gradient(to bottom, #fceec1, #eedc94);
3437 background-image: linear-gradient(to bottom, #fceec1, #eedc94);
3438 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0 );
3438 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0 );
3439 border-color: #eedc94 #eedc94 #e4c652;
3439 border-color: #eedc94 #eedc94 #e4c652;
3440 }
3440 }
3441
3441
3442 .flash_msg .alert-warning a {
3442 .flash_msg .alert-warning a {
3443 text-decoration: underline;
3443 text-decoration: underline;
3444 }
3444 }
3445
3445
3446 .flash_msg .alert-success {
3446 .flash_msg .alert-success {
3447 background-color: #57a957;
3447 background-color: #57a957;
3448 background-repeat: repeat-x !important;
3448 background-repeat: repeat-x !important;
3449 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957) );
3449 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957) );
3450 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3450 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3451 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3451 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3452 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957) );
3452 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957) );
3453 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3453 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3454 background-image: -o-linear-gradient(top, #62c462, #57a957);
3454 background-image: -o-linear-gradient(top, #62c462, #57a957);
3455 background-image: linear-gradient(to bottom, #62c462, #57a957);
3455 background-image: linear-gradient(to bottom, #62c462, #57a957);
3456 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0 );
3456 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0 );
3457 border-color: #57a957 #57a957 #3d773d;
3457 border-color: #57a957 #57a957 #3d773d;
3458 }
3458 }
3459
3459
3460 .flash_msg .alert-success a {
3460 .flash_msg .alert-success a {
3461 text-decoration: underline;
3461 text-decoration: underline;
3462 color: #FFF !important;
3462 color: #FFF !important;
3463 }
3463 }
3464
3464
3465 .flash_msg .alert-info {
3465 .flash_msg .alert-info {
3466 background-color: #339bb9;
3466 background-color: #339bb9;
3467 background-repeat: repeat-x;
3467 background-repeat: repeat-x;
3468 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9) );
3468 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9) );
3469 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3469 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3470 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3470 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3471 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9) );
3471 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9) );
3472 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3472 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3473 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3473 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3474 background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
3474 background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
3475 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0 );
3475 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0 );
3476 border-color: #339bb9 #339bb9 #22697d;
3476 border-color: #339bb9 #339bb9 #22697d;
3477 }
3477 }
3478
3478
3479 .flash_msg .alert-info a {
3479 .flash_msg .alert-info a {
3480 text-decoration: underline;
3480 text-decoration: underline;
3481 }
3481 }
3482
3482
3483 .flash_msg .alert-error,
3483 .flash_msg .alert-error,
3484 .flash_msg .alert-warning,
3484 .flash_msg .alert-warning,
3485 .flash_msg .alert-success,
3485 .flash_msg .alert-success,
3486 .flash_msg .alert-info {
3486 .flash_msg .alert-info {
3487 font-size: 12px;
3487 font-size: 12px;
3488 font-weight: 700;
3488 font-weight: 700;
3489 min-height: 14px;
3489 min-height: 14px;
3490 line-height: 14px;
3490 line-height: 14px;
3491 margin-bottom: 10px;
3491 margin-bottom: 10px;
3492 margin-top: 0;
3492 margin-top: 0;
3493 display: block;
3493 display: block;
3494 overflow: auto;
3494 overflow: auto;
3495 padding: 6px 10px 6px 10px;
3495 padding: 6px 10px 6px 10px;
3496 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3496 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3497 position: relative;
3497 position: relative;
3498 color: #FFF;
3498 color: #FFF;
3499 border-width: 1px;
3499 border-width: 1px;
3500 border-style: solid;
3500 border-style: solid;
3501 -webkit-border-radius: 4px;
3501 -webkit-border-radius: 4px;
3502 border-radius: 4px;
3502 border-radius: 4px;
3503 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3503 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3504 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3504 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
3505 }
3505 }
3506
3506
3507 #msg_close {
3507 #msg_close {
3508 background: transparent url("../images/cross_grey_small.png") no-repeat scroll 0 0;
3508 background: transparent url("../images/cross_grey_small.png") no-repeat scroll 0 0;
3509 cursor: pointer;
3509 cursor: pointer;
3510 height: 16px;
3510 height: 16px;
3511 position: absolute;
3511 position: absolute;
3512 right: 5px;
3512 right: 5px;
3513 top: 5px;
3513 top: 5px;
3514 width: 16px;
3514 width: 16px;
3515 }
3515 }
3516 div#legend_data {
3516 div#legend_data {
3517 padding-left: 10px;
3517 padding-left: 10px;
3518 }
3518 }
3519 div#legend_container table {
3519 div#legend_container table {
3520 border: none !important;
3520 border: none !important;
3521 }
3521 }
3522 div#legend_container table, div#legend_choices table {
3522 div#legend_container table, div#legend_choices table {
3523 width: auto !important;
3523 width: auto !important;
3524 }
3524 }
3525
3525
3526 table#permissions_manage {
3526 table#permissions_manage {
3527 width: 0 !important;
3527 width: 0 !important;
3528 }
3528 }
3529
3529
3530 table#permissions_manage span.private_repo_msg {
3530 table#permissions_manage span.private_repo_msg {
3531 font-size: 0.8em;
3531 font-size: 0.8em;
3532 opacity: 0.6;
3532 opacity: 0.6;
3533 }
3533 }
3534
3534
3535 table#permissions_manage td.private_repo_msg {
3535 table#permissions_manage td.private_repo_msg {
3536 font-size: 0.8em;
3536 font-size: 0.8em;
3537 }
3537 }
3538
3538
3539 table#permissions_manage tr#add_perm_input td {
3539 table#permissions_manage tr#add_perm_input td {
3540 vertical-align: middle;
3540 vertical-align: middle;
3541 }
3541 }
3542
3542
3543 div.gravatar {
3543 div.gravatar {
3544 background-color: #FFF;
3544 background-color: #FFF;
3545 float: left;
3545 float: left;
3546 margin-right: 0.7em;
3546 margin-right: 0.7em;
3547 padding: 1px 1px 1px 1px;
3547 padding: 1px 1px 1px 1px;
3548 line-height: 0;
3548 line-height: 0;
3549 -webkit-border-radius: 3px;
3549 -webkit-border-radius: 3px;
3550 -khtml-border-radius: 3px;
3550 -khtml-border-radius: 3px;
3551 border-radius: 3px;
3551 border-radius: 3px;
3552 }
3552 }
3553
3553
3554 div.gravatar img {
3554 div.gravatar img {
3555 -webkit-border-radius: 2px;
3555 -webkit-border-radius: 2px;
3556 -khtml-border-radius: 2px;
3556 -khtml-border-radius: 2px;
3557 border-radius: 2px;
3557 border-radius: 2px;
3558 }
3558 }
3559
3559
3560 #header, #content, #footer {
3560 #header, #content, #footer {
3561 min-width: 978px;
3561 min-width: 978px;
3562 }
3562 }
3563
3563
3564 #content {
3564 #content {
3565 clear: both;
3565 clear: both;
3566 padding: 10px 10px 14px 10px;
3566 padding: 10px 10px 14px 10px;
3567 }
3567 }
3568
3568
3569 #content.hover {
3569 #content.hover {
3570 padding: 55px 10px 14px 10px !important;
3570 padding: 55px 10px 14px 10px !important;
3571 }
3571 }
3572
3572
3573 #content div.box div.title div.search {
3573 #content div.box div.title div.search {
3574 border-left: 1px solid #316293;
3574 border-left: 1px solid #316293;
3575 }
3575 }
3576
3576
3577 #content div.box div.title div.search div.input input {
3577 #content div.box div.title div.search div.input input {
3578 border: 1px solid #316293;
3578 border: 1px solid #316293;
3579 }
3579 }
3580
3580
3581 .btn {
3581 .btn {
3582 color: #515151;
3582 color: #515151;
3583 background-color: #DADADA;
3583 background-color: #DADADA;
3584 background-repeat: repeat-x;
3584 background-repeat: repeat-x;
3585 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
3585 background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
3586 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
3586 background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
3587 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
3587 background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
3588 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
3588 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
3589 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
3589 background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
3590 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
3590 background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
3591 background-image: linear-gradient(to bottom, #F4F4F4, #DADADA);
3591 background-image: linear-gradient(to bottom, #F4F4F4, #DADADA);
3592 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
3592 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
3593
3593
3594 border-top: 1px solid #DDD;
3594 border-top: 1px solid #DDD;
3595 border-left: 1px solid #c6c6c6;
3595 border-left: 1px solid #c6c6c6;
3596 border-right: 1px solid #DDD;
3596 border-right: 1px solid #DDD;
3597 border-bottom: 1px solid #c6c6c6;
3597 border-bottom: 1px solid #c6c6c6;
3598 color: #515151;
3598 color: #515151;
3599 outline: none;
3599 outline: none;
3600 margin: 0px 3px 3px 0px;
3600 margin: 0px 3px 3px 0px;
3601 -webkit-border-radius: 4px 4px 4px 4px !important;
3601 -webkit-border-radius: 4px 4px 4px 4px !important;
3602 -khtml-border-radius: 4px 4px 4px 4px !important;
3602 -khtml-border-radius: 4px 4px 4px 4px !important;
3603 border-radius: 4px 4px 4px 4px !important;
3603 border-radius: 4px 4px 4px 4px !important;
3604 cursor: pointer !important;
3604 cursor: pointer !important;
3605 padding: 3px 3px 3px 3px;
3605 padding: 3px 3px 3px 3px;
3606 background-position: 0 -100px;
3606 background-position: 0 -100px;
3607 display: inline-block;
3607 display: inline-block;
3608 }
3608 }
3609
3609
3610 ul.nav-stacked {
3610 ul.nav-stacked {
3611 margin: 20px;
3611 margin: 20px;
3612 color: #393939;
3612 color: #393939;
3613 font-weight: 700;
3613 font-weight: 700;
3614 }
3614 }
3615
3615
3616 ul.nav-stacked a {
3616 ul.nav-stacked a {
3617 color: inherit;
3617 color: inherit;
3618 }
3618 }
3619
3619
3620 /* make .btn inputs and buttons and divs look the same */
3620 /* make .btn inputs and buttons and divs look the same */
3621 button.btn,
3621 button.btn,
3622 input.btn {
3622 input.btn {
3623 font-family: inherit;
3623 font-family: inherit;
3624 font-size: inherit;
3624 font-size: inherit;
3625 line-height: inherit;
3625 line-height: inherit;
3626 }
3626 }
3627
3627
3628 .btn::-moz-focus-inner {
3628 .btn::-moz-focus-inner {
3629 border: 0;
3629 border: 0;
3630 padding: 0;
3630 padding: 0;
3631 }
3631 }
3632
3632
3633 .btn.badge {
3633 .btn.badge {
3634 cursor: default !important;
3634 cursor: default !important;
3635 }
3635 }
3636
3636
3637 .btn.disabled {
3637 .btn.disabled {
3638 color: #999;
3638 color: #999;
3639 }
3639 }
3640
3640
3641 .btn.btn-danger.disabled {
3641 .btn.btn-danger.disabled {
3642 color: #eee;
3642 color: #eee;
3643 background-color: #c77;
3643 background-color: #c77;
3644 border-color: #b66
3644 border-color: #b66
3645 }
3645 }
3646
3646
3647 .btn.btn-small {
3647 .btn.btn-small {
3648 padding: 2px 6px;
3648 padding: 2px 6px;
3649 }
3649 }
3650
3650
3651 .btn.btn-mini {
3651 .btn.btn-mini {
3652 padding: 0px 4px;
3652 padding: 0px 4px;
3653 }
3653 }
3654
3654
3655 .btn.clone {
3655 .btn.clone {
3656 padding: 5px 2px 6px 1px;
3656 padding: 5px 2px 6px 1px;
3657 margin: 0px 0px 3px -4px;
3657 margin: 0px 0px 3px -4px;
3658 -webkit-border-radius: 0px 4px 4px 0px !important;
3658 -webkit-border-radius: 0px 4px 4px 0px !important;
3659 -khtml-border-radius: 0px 4px 4px 0px !important;
3659 -khtml-border-radius: 0px 4px 4px 0px !important;
3660 border-radius: 0px 4px 4px 0px !important;
3660 border-radius: 0px 4px 4px 0px !important;
3661 width: 100px;
3661 width: 100px;
3662 text-align: center;
3662 text-align: center;
3663 display: inline-block;
3663 display: inline-block;
3664 position: relative;
3664 position: relative;
3665 top: -2px;
3665 top: -2px;
3666 }
3666 }
3667 .btn:focus {
3667 .btn:focus {
3668 outline: none;
3668 outline: none;
3669 }
3669 }
3670 .btn:hover {
3670 .btn:hover {
3671 background-position: 0 -100px;
3671 background-position: 0 -100px;
3672 text-decoration: none;
3672 text-decoration: none;
3673 color: #515151;
3673 color: #515151;
3674 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
3674 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
3675 }
3675 }
3676 .btn.badge:hover {
3676 .btn.badge:hover {
3677 box-shadow: none !important;
3677 box-shadow: none !important;
3678 }
3678 }
3679 .btn.disabled:hover {
3679 .btn.disabled:hover {
3680 background-position: 0;
3680 background-position: 0;
3681 color: #999;
3681 color: #999;
3682 text-decoration: none;
3682 text-decoration: none;
3683 box-shadow: none !important;
3683 box-shadow: none !important;
3684 }
3684 }
3685
3685
3686 .btn.red {
3686 .btn.red {
3687 color: #fff;
3687 color: #fff;
3688 background-color: #c43c35;
3688 background-color: #c43c35;
3689 background-repeat: repeat-x;
3689 background-repeat: repeat-x;
3690 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
3690 background-image: -khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));
3691 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3691 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
3692 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3692 background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
3693 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
3693 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));
3694 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3694 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
3695 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3695 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
3696 background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
3696 background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
3697 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
3697 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
3698 border-color: #c43c35 #c43c35 #882a25;
3698 border-color: #c43c35 #c43c35 #882a25;
3699 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3699 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3700 }
3700 }
3701
3701
3702
3702
3703 .btn.blue {
3703 .btn.blue {
3704 color: #fff;
3704 color: #fff;
3705 background-color: #339bb9;
3705 background-color: #339bb9;
3706 background-repeat: repeat-x;
3706 background-repeat: repeat-x;
3707 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
3707 background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
3708 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3708 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
3709 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3709 background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
3710 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
3710 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
3711 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3711 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
3712 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3712 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
3713 background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
3713 background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
3714 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
3714 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
3715 border-color: #339bb9 #339bb9 #22697d;
3715 border-color: #339bb9 #339bb9 #22697d;
3716 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3716 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3717 }
3717 }
3718
3718
3719 .btn.green {
3719 .btn.green {
3720 color: #fff;
3720 color: #fff;
3721 background-color: #57a957;
3721 background-color: #57a957;
3722 background-repeat: repeat-x;
3722 background-repeat: repeat-x;
3723 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
3723 background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
3724 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3724 background-image: -moz-linear-gradient(top, #62c462, #57a957);
3725 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3725 background-image: -ms-linear-gradient(top, #62c462, #57a957);
3726 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
3726 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
3727 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3727 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
3728 background-image: -o-linear-gradient(top, #62c462, #57a957);
3728 background-image: -o-linear-gradient(top, #62c462, #57a957);
3729 background-image: linear-gradient(to bottom, #62c462, #57a957);
3729 background-image: linear-gradient(to bottom, #62c462, #57a957);
3730 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
3730 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
3731 border-color: #57a957 #57a957 #3d773d;
3731 border-color: #57a957 #57a957 #3d773d;
3732 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3732 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3733 }
3733 }
3734
3734
3735 .btn.yellow {
3735 .btn.yellow {
3736 color: #fff;
3736 color: #fff;
3737 background-color: #faa732;
3737 background-color: #faa732;
3738 background-repeat: repeat-x;
3738 background-repeat: repeat-x;
3739 background-image: -khtml-gradient(linear, left top, left bottom, from(#fbb450), to(#f89406));
3739 background-image: -khtml-gradient(linear, left top, left bottom, from(#fbb450), to(#f89406));
3740 background-image: -moz-linear-gradient(top, #fbb450, #f89406);
3740 background-image: -moz-linear-gradient(top, #fbb450, #f89406);
3741 background-image: -ms-linear-gradient(top, #fbb450, #f89406);
3741 background-image: -ms-linear-gradient(top, #fbb450, #f89406);
3742 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fbb450), color-stop(100%, #f89406));
3742 background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fbb450), color-stop(100%, #f89406));
3743 background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
3743 background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
3744 background-image: -o-linear-gradient(top, #fbb450, #f89406);
3744 background-image: -o-linear-gradient(top, #fbb450, #f89406);
3745 background-image: linear-gradient(to bottom, #fbb450, #f89406);
3745 background-image: linear-gradient(to bottom, #fbb450, #f89406);
3746 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
3746 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
3747 border-color: #f89406 #f89406 #ad6704;
3747 border-color: #f89406 #f89406 #ad6704;
3748 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3748 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3749 }
3749 }
3750
3750
3751 label.disabled {
3751 label.disabled {
3752 color: #aaa;
3752 color: #aaa;
3753 }
3753 }
3754
3754
3755 .btn.blue.hidden {
3755 .btn.blue.hidden {
3756 display: none;
3756 display: none;
3757 }
3757 }
3758
3758
3759 .btn.active {
3759 .btn.active {
3760 font-weight: bold;
3760 font-weight: bold;
3761 }
3761 }
3762
3762
3763 ins, div.options a:hover {
3763 ins, div.options a:hover {
3764 text-decoration: none;
3764 text-decoration: none;
3765 }
3765 }
3766
3766
3767 img,
3767 img,
3768 #header #header-inner #quick li a:hover span.normal,
3768 #header #header-inner #quick li a:hover span.normal,
3769 #content div.box div.form div.fields div.field div.textarea table td table td a,
3769 #content div.box div.form div.fields div.field div.textarea table td table td a,
3770 #clone_url,
3770 #clone_url,
3771 #clone_url_id
3771 #clone_url_id
3772 {
3772 {
3773 border: none;
3773 border: none;
3774 }
3774 }
3775
3775
3776 img.icon, .right .merge img {
3776 img.icon, .right .merge img {
3777 vertical-align: bottom;
3777 vertical-align: bottom;
3778 }
3778 }
3779
3779
3780 #header ul#logged-user, #content div.box div.title ul.links,
3780 #header ul#logged-user, #content div.box div.title ul.links,
3781 #content div.box div.message div.dismiss,
3781 #content div.box div.message div.dismiss,
3782 #content div.box div.traffic div.legend ul {
3782 #content div.box div.traffic div.legend ul {
3783 float: right;
3783 float: right;
3784 margin: 0;
3784 margin: 0;
3785 padding: 0;
3785 padding: 0;
3786 }
3786 }
3787
3787
3788 #header #header-inner #home, #header #header-inner #logo,
3788 #header #header-inner #home, #header #header-inner #logo,
3789 #content div.box ul.left, #content div.box ol.left,
3789 #content div.box ul.left, #content div.box ol.left,
3790 div#commit_history,
3790 div#commit_history,
3791 div#legend_data, div#legend_container, div#legend_choices {
3791 div#legend_data, div#legend_container, div#legend_choices {
3792 float: left;
3792 float: left;
3793 }
3793 }
3794
3794
3795 #header #header-inner #quick li #quick_login,
3795 #header #header-inner #quick li #quick_login,
3796 #header #header-inner #quick li:hover ul ul,
3796 #header #header-inner #quick li:hover ul ul,
3797 #header #header-inner #quick li:hover ul ul ul,
3797 #header #header-inner #quick li:hover ul ul ul,
3798 #header #header-inner #quick li:hover ul ul ul ul,
3798 #header #header-inner #quick li:hover ul ul ul ul,
3799 #content #left #menu ul.closed, #content #left #menu li ul.collapsed, .yui-tt-shadow {
3799 #content #left #menu ul.closed, #content #left #menu li ul.collapsed, .yui-tt-shadow {
3800 display: none;
3800 display: none;
3801 }
3801 }
3802
3802
3803 #header #header-inner #quick li:hover #quick_login,
3803 #header #header-inner #quick li:hover #quick_login,
3804 #header #header-inner #quick li:hover ul, #header #header-inner #quick li li:hover ul, #header #header-inner #quick li li li:hover ul, #header #header-inner #quick li li li li:hover ul, #content #left #menu ul.opened, #content #left #menu li ul.expanded {
3804 #header #header-inner #quick li:hover ul, #header #header-inner #quick li li:hover ul, #header #header-inner #quick li li li:hover ul, #header #header-inner #quick li li li li:hover ul, #content #left #menu ul.opened, #content #left #menu li ul.expanded {
3805 display: block;
3805 display: block;
3806 }
3806 }
3807
3807
3808 .repo-switcher .select2-choice {
3808 .repo-switcher .select2-choice {
3809 padding: 0px 8px 1px !important;
3809 padding: 0px 8px 1px !important;
3810 display: block;
3810 display: block;
3811 height: 100%;
3811 height: 100%;
3812 }
3812 }
3813
3813
3814 .repo-switcher .select2-container,
3814 .repo-switcher .select2-container,
3815 .repo-switcher .select2-choice,
3815 .repo-switcher .select2-choice,
3816 .repo-switcher .select2-choice span {
3816 .repo-switcher .select2-choice span {
3817 background: transparent !important;
3817 background: transparent !important;
3818 border: 0 !important;
3818 border: 0 !important;
3819 box-shadow: none !important;
3819 box-shadow: none !important;
3820 color: #FFFFFF !important;
3820 color: #FFFFFF !important;
3821 }
3821 }
3822
3822
3823 .repo-switcher .select2-arrow {
3823 .repo-switcher .select2-arrow {
3824 display: none !important;
3824 display: none !important;
3825 }
3825 }
3826
3826
3827 .repo-switcher .select2-chosen:after {
3827 .repo-switcher .select2-chosen:after {
3828 content: ' \25BE';
3828 content: ' \25BE';
3829 }
3829 }
3830
3830
3831 .repo-switcher-dropdown.select2-drop.select2-drop-active {
3831 .repo-switcher-dropdown.select2-drop.select2-drop-active {
3832 xborder-color: black;
3832 xborder-color: black;
3833 -webkit-box-shadow: none;
3833 -webkit-box-shadow: none;
3834 -moz-box-shadow: none;
3834 -moz-box-shadow: none;
3835 box-shadow: none;
3835 box-shadow: none;
3836 color: #fff;
3836 color: #fff;
3837 background-color: #316293;
3837 background-color: #316293;
3838 }
3838 }
3839
3839
3840 .repo-switcher-dropdown.select2-drop.select2-drop-active .select2-results .select2-highlighted {
3840 .repo-switcher-dropdown.select2-drop.select2-drop-active .select2-results .select2-highlighted {
3841 background-color: #6388ad;
3841 background-color: #6388ad;
3842 }
3842 }
3843
3843
3844 #content div.graph {
3844 #content div.graph {
3845 padding: 0 10px 10px;
3845 padding: 0 10px 10px;
3846 }
3846 }
3847
3847
3848 #content div.box div.title ul.links li a:hover,
3848 #content div.box div.title ul.links li a:hover,
3849 #content div.box div.title ul.links li.ui-tabs-selected a {
3849 #content div.box div.title ul.links li.ui-tabs-selected a {
3850
3850
3851 background: #6388ad; /* Old browsers */
3851 background: #6388ad; /* Old browsers */
3852 background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
3852 background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
3853 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
3853 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
3854 background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
3854 background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
3855 background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
3855 background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
3856 background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
3856 background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
3857 background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
3857 background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
3858 /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */
3858 /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */
3859 }
3859 }
3860
3860
3861 #content div.box ol.lower-roman, #content div.box ol.upper-roman, #content div.box ol.lower-alpha, #content div.box ol.upper-alpha, #content div.box ol.decimal {
3861 #content div.box ol.lower-roman, #content div.box ol.upper-roman, #content div.box ol.lower-alpha, #content div.box ol.upper-alpha, #content div.box ol.decimal {
3862 margin: 10px 24px 10px 44px;
3862 margin: 10px 24px 10px 44px;
3863 }
3863 }
3864
3864
3865 #content div.box div.form, #content div.box div.table, #content div.box div.traffic {
3865 #content div.box div.form, #content div.box div.table, #content div.box div.traffic {
3866 position: relative;
3866 position: relative;
3867 clear: both;
3867 clear: both;
3868 margin: 0;
3868 margin: 0;
3869 padding: 0 20px 10px;
3869 padding: 0 20px 10px;
3870 }
3870 }
3871
3871
3872 #content div.box div.form div.fields, #login div.form, #login div.form div.fields, #register div.form, #register div.form div.fields {
3872 #content div.box div.form div.fields, #login div.form, #login div.form div.fields, #register div.form, #register div.form div.fields {
3873 clear: both;
3873 clear: both;
3874 overflow: hidden;
3874 overflow: hidden;
3875 margin: 0;
3875 margin: 0;
3876 padding: 0;
3876 padding: 0;
3877 }
3877 }
3878
3878
3879 #content div.box div.form div.fields div.field div.label span, #login div.form div.fields div.field div.label span, #register div.form div.fields div.field div.label span {
3879 #content div.box div.form div.fields div.field div.label span, #login div.form div.fields div.field div.label span, #register div.form div.fields div.field div.label span {
3880 height: 1%;
3880 height: 1%;
3881 display: block;
3881 display: block;
3882 color: #363636;
3882 color: #363636;
3883 margin: 0;
3883 margin: 0;
3884 padding: 2px 0 0;
3884 padding: 2px 0 0;
3885 }
3885 }
3886
3886
3887 #content div.box div.form div.fields div.field div.input input.error, #login div.form div.fields div.field div.input input.error, #register div.form div.fields div.field div.input input.error {
3887 #content div.box div.form div.fields div.field div.input input.error, #login div.form div.fields div.field div.input input.error, #register div.form div.fields div.field div.input input.error {
3888 background: #FBE3E4;
3888 background: #FBE3E4;
3889 border-top: 1px solid #e1b2b3;
3889 border-top: 1px solid #e1b2b3;
3890 border-left: 1px solid #e1b2b3;
3890 border-left: 1px solid #e1b2b3;
3891 border-right: 1px solid #FBC2C4;
3891 border-right: 1px solid #FBC2C4;
3892 border-bottom: 1px solid #FBC2C4;
3892 border-bottom: 1px solid #FBC2C4;
3893 }
3893 }
3894
3894
3895 #content div.box div.form div.fields div.field div.input input.success, #login div.form div.fields div.field div.input input.success, #register div.form div.fields div.field div.input input.success {
3895 #content div.box div.form div.fields div.field div.input input.success, #login div.form div.fields div.field div.input input.success, #register div.form div.fields div.field div.input input.success {
3896 background: #E6EFC2;
3896 background: #E6EFC2;
3897 border-top: 1px solid #cebb98;
3897 border-top: 1px solid #cebb98;
3898 border-left: 1px solid #cebb98;
3898 border-left: 1px solid #cebb98;
3899 border-right: 1px solid #c6d880;
3899 border-right: 1px solid #c6d880;
3900 border-bottom: 1px solid #c6d880;
3900 border-bottom: 1px solid #c6d880;
3901 }
3901 }
3902
3902
3903 #content div.box-left div.form div.fields div.field div.textarea, #content div.box-right div.form div.fields div.field div.textarea, #content div.box div.form div.fields div.field div.select select, #content div.box table th.selected input, #content div.box table td.selected input {
3903 #content div.box-left div.form div.fields div.field div.textarea, #content div.box-right div.form div.fields div.field div.textarea, #content div.box div.form div.fields div.field div.select select, #content div.box table th.selected input, #content div.box table td.selected input {
3904 margin: 0;
3904 margin: 0;
3905 }
3905 }
3906
3906
3907 #content div.box-left div.form div.fields div.field div.select, #content div.box-left div.form div.fields div.field div.checkboxes, #content div.box-left div.form div.fields div.field div.radios, #content div.box-right div.form div.fields div.field div.select, #content div.box-right div.form div.fields div.field div.checkboxes, #content div.box-right div.form div.fields div.field div.radios {
3907 #content div.box-left div.form div.fields div.field div.select, #content div.box-left div.form div.fields div.field div.checkboxes, #content div.box-left div.form div.fields div.field div.radios, #content div.box-right div.form div.fields div.field div.select, #content div.box-right div.form div.fields div.field div.checkboxes, #content div.box-right div.form div.fields div.field div.radios {
3908 margin: 0 0 0 0px !important;
3908 margin: 0 0 0 0px !important;
3909 padding: 0;
3909 padding: 0;
3910 }
3910 }
3911
3911
3912 #content div.box div.form div.fields div.field div.select, #content div.box div.form div.fields div.field div.checkboxes, #content div.box div.form div.fields div.field div.radios {
3912 #content div.box div.form div.fields div.field div.select, #content div.box div.form div.fields div.field div.checkboxes, #content div.box div.form div.fields div.field div.radios {
3913 margin: 0 0 0 200px;
3913 margin: 0 0 0 200px;
3914 padding: 0;
3914 padding: 0;
3915 }
3915 }
3916
3916
3917 #content div.box div.form div.fields div.field div.select a:hover, #content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover, #content div.box div.action a:hover {
3917 #content div.box div.form div.fields div.field div.select a:hover, #content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover, #content div.box div.action a:hover {
3918 color: #000;
3918 color: #000;
3919 text-decoration: none;
3919 text-decoration: none;
3920 }
3920 }
3921
3921
3922 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus, #content div.box div.action a.ui-selectmenu-focus {
3922 #content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus, #content div.box div.action a.ui-selectmenu-focus {
3923 border: 1px solid #666;
3923 border: 1px solid #666;
3924 }
3924 }
3925
3925
3926 #content div.box div.form div.fields div.field div.checkboxes div.checkbox, #content div.box div.form div.fields div.field div.radios div.radio {
3926 #content div.box div.form div.fields div.field div.checkboxes div.checkbox, #content div.box div.form div.fields div.field div.radios div.radio {
3927 clear: both;
3927 clear: both;
3928 overflow: hidden;
3928 overflow: hidden;
3929 margin: 0;
3929 margin: 0;
3930 padding: 8px 0 2px;
3930 padding: 8px 0 2px;
3931 }
3931 }
3932
3932
3933 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input, #content div.box div.form div.fields div.field div.radios div.radio input {
3933 #content div.box div.form div.fields div.field div.checkboxes div.checkbox input, #content div.box div.form div.fields div.field div.radios div.radio input {
3934 float: left;
3934 float: left;
3935 margin: 0;
3935 margin: 0;
3936 }
3936 }
3937
3937
3938 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label, #content div.box div.form div.fields div.field div.radios div.radio label {
3938 #content div.box div.form div.fields div.field div.checkboxes div.checkbox label, #content div.box div.form div.fields div.field div.radios div.radio label {
3939 height: 1%;
3939 height: 1%;
3940 display: block;
3940 display: block;
3941 float: left;
3941 float: left;
3942 margin: 2px 0 0 4px;
3942 margin: 2px 0 0 4px;
3943 }
3943 }
3944
3944
3945 div.form div.fields div.field div.button input,
3945 div.form div.fields div.field div.button input,
3946 #content div.box div.form div.fields div.buttons input
3946 #content div.box div.form div.fields div.buttons input
3947 div.form div.fields div.buttons input,
3947 div.form div.fields div.buttons input,
3948 #content div.box div.action div.button input {
3948 #content div.box div.action div.button input {
3949 font-size: 11px;
3949 font-size: 11px;
3950 font-weight: 700;
3950 font-weight: 700;
3951 margin: 0;
3951 margin: 0;
3952 }
3952 }
3953
3953
3954 input.ui-button {
3954 input.ui-button {
3955 background: #e5e3e3 url("../images/button.png") repeat-x;
3955 background: #e5e3e3 url("../images/button.png") repeat-x;
3956 border-top: 1px solid #DDD;
3956 border-top: 1px solid #DDD;
3957 border-left: 1px solid #c6c6c6;
3957 border-left: 1px solid #c6c6c6;
3958 border-right: 1px solid #DDD;
3958 border-right: 1px solid #DDD;
3959 border-bottom: 1px solid #c6c6c6;
3959 border-bottom: 1px solid #c6c6c6;
3960 color: #515151 !important;
3960 color: #515151 !important;
3961 outline: none;
3961 outline: none;
3962 margin: 0;
3962 margin: 0;
3963 padding: 6px 12px;
3963 padding: 6px 12px;
3964 -webkit-border-radius: 4px 4px 4px 4px;
3964 -webkit-border-radius: 4px 4px 4px 4px;
3965 -khtml-border-radius: 4px 4px 4px 4px;
3965 -khtml-border-radius: 4px 4px 4px 4px;
3966 border-radius: 4px 4px 4px 4px;
3966 border-radius: 4px 4px 4px 4px;
3967 box-shadow: 0 1px 0 #ececec;
3967 box-shadow: 0 1px 0 #ececec;
3968 cursor: pointer;
3968 cursor: pointer;
3969 }
3969 }
3970
3970
3971 input.ui-button:hover {
3971 input.ui-button:hover {
3972 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3972 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
3973 border-top: 1px solid #ccc;
3973 border-top: 1px solid #ccc;
3974 border-left: 1px solid #bebebe;
3974 border-left: 1px solid #bebebe;
3975 border-right: 1px solid #b1b1b1;
3975 border-right: 1px solid #b1b1b1;
3976 border-bottom: 1px solid #afafaf;
3976 border-bottom: 1px solid #afafaf;
3977 }
3977 }
3978
3978
3979 div.form div.fields div.field div.highlight, #content div.box div.form div.fields div.buttons div.highlight {
3979 div.form div.fields div.field div.highlight, #content div.box div.form div.fields div.buttons div.highlight {
3980 display: inline;
3980 display: inline;
3981 }
3981 }
3982
3982
3983 #content div.box div.form div.fields div.buttons, div.form div.fields div.buttons {
3983 #content div.box div.form div.fields div.buttons, div.form div.fields div.buttons {
3984 margin: 10px 0 0 200px;
3984 margin: 10px 0 0 200px;
3985 padding: 0;
3985 padding: 0;
3986 }
3986 }
3987
3987
3988 #content div.box-left div.form div.fields div.buttons, #content div.box-right div.form div.fields div.buttons, div.box-left div.form div.fields div.buttons, div.box-right div.form div.fields div.buttons {
3988 #content div.box-left div.form div.fields div.buttons, #content div.box-right div.form div.fields div.buttons, div.box-left div.form div.fields div.buttons, div.box-right div.form div.fields div.buttons {
3989 margin: 10px 0 0;
3989 margin: 10px 0 0;
3990 }
3990 }
3991
3991
3992 #content div.box table td.user, #content div.box table td.address {
3992 #content div.box table td.user, #content div.box table td.address {
3993 width: 10%;
3993 width: 10%;
3994 text-align: center;
3994 text-align: center;
3995 }
3995 }
3996
3996
3997 #content div.box div.action div.button, #login div.form div.fields div.field div.input div.link, #register div.form div.fields div.field div.input div.link {
3997 #content div.box div.action div.button, #login div.form div.fields div.field div.input div.link, #register div.form div.fields div.field div.input div.link {
3998 text-align: right;
3998 text-align: right;
3999 margin: 6px 0 0;
3999 margin: 6px 0 0;
4000 padding: 0;
4000 padding: 0;
4001 }
4001 }
4002
4002
4003 #content div.box div.action div.button input.ui-state-hover, #login div.form div.fields div.buttons input.ui-state-hover, #register div.form div.fields div.buttons input.ui-state-hover {
4003 #content div.box div.action div.button input.ui-state-hover, #login div.form div.fields div.buttons input.ui-state-hover, #register div.form div.fields div.buttons input.ui-state-hover {
4004 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
4004 background: #b4b4b4 url("../images/button_selected.png") repeat-x;
4005 border-top: 1px solid #ccc;
4005 border-top: 1px solid #ccc;
4006 border-left: 1px solid #bebebe;
4006 border-left: 1px solid #bebebe;
4007 border-right: 1px solid #b1b1b1;
4007 border-right: 1px solid #b1b1b1;
4008 border-bottom: 1px solid #afafaf;
4008 border-bottom: 1px solid #afafaf;
4009 color: #515151;
4009 color: #515151;
4010 margin: 0;
4010 margin: 0;
4011 padding: 6px 12px;
4011 padding: 6px 12px;
4012 }
4012 }
4013
4013
4014 #content div.box div.pagination div.results, #content div.box div.pagination-wh div.results {
4014 #content div.box div.pagination div.results, #content div.box div.pagination-wh div.results {
4015 text-align: left;
4015 text-align: left;
4016 float: left;
4016 float: left;
4017 margin: 0;
4017 margin: 0;
4018 padding: 0;
4018 padding: 0;
4019 }
4019 }
4020
4020
4021 #content div.box div.pagination div.results span, #content div.box div.pagination-wh div.results span {
4021 #content div.box div.pagination div.results span, #content div.box div.pagination-wh div.results span {
4022 height: 1%;
4022 height: 1%;
4023 display: block;
4023 display: block;
4024 float: left;
4024 float: left;
4025 background: #ebebeb url("../images/pager.png") repeat-x;
4025 background: #ebebeb url("../images/pager.png") repeat-x;
4026 border-top: 1px solid #dedede;
4026 border-top: 1px solid #dedede;
4027 border-left: 1px solid #cfcfcf;
4027 border-left: 1px solid #cfcfcf;
4028 border-right: 1px solid #c4c4c4;
4028 border-right: 1px solid #c4c4c4;
4029 border-bottom: 1px solid #c4c4c4;
4029 border-bottom: 1px solid #c4c4c4;
4030 color: #4A4A4A;
4030 color: #4A4A4A;
4031 font-weight: 700;
4031 font-weight: 700;
4032 margin: 0;
4032 margin: 0;
4033 padding: 6px 8px;
4033 padding: 6px 8px;
4034 }
4034 }
4035
4035
4036 #content div.box div.pagination ul.pager li.disabled, #content div.box div.pagination-wh a.disabled {
4036 #content div.box div.pagination ul.pager li.disabled, #content div.box div.pagination-wh a.disabled {
4037 color: #B4B4B4;
4037 color: #B4B4B4;
4038 padding: 6px;
4038 padding: 6px;
4039 }
4039 }
4040
4040
4041 #login, #register {
4041 #login, #register {
4042 width: 520px;
4042 width: 520px;
4043 margin: 10% auto 0;
4043 margin: 10% auto 0;
4044 padding: 0;
4044 padding: 0;
4045 }
4045 }
4046
4046
4047 #login div.color, #register div.color {
4047 #login div.color, #register div.color {
4048 clear: both;
4048 clear: both;
4049 overflow: hidden;
4049 overflow: hidden;
4050 background: #FFF;
4050 background: #FFF;
4051 margin: 10px auto 0;
4051 margin: 10px auto 0;
4052 padding: 3px 3px 3px 0;
4052 padding: 3px 3px 3px 0;
4053 }
4053 }
4054
4054
4055 #login div.color a, #register div.color a {
4055 #login div.color a, #register div.color a {
4056 width: 20px;
4056 width: 20px;
4057 height: 20px;
4057 height: 20px;
4058 display: block;
4058 display: block;
4059 float: left;
4059 float: left;
4060 margin: 0 0 0 3px;
4060 margin: 0 0 0 3px;
4061 padding: 0;
4061 padding: 0;
4062 }
4062 }
4063
4063
4064 #login div.title h5, #register div.title h5 {
4064 #login div.title h5, #register div.title h5 {
4065 color: #fff;
4065 color: #fff;
4066 margin: 10px;
4066 margin: 10px;
4067 padding: 0;
4067 padding: 0;
4068 }
4068 }
4069
4069
4070 #login div.form div.fields div.field, #register div.form div.fields div.field {
4070 #login div.form div.fields div.field, #register div.form div.fields div.field {
4071 clear: both;
4071 clear: both;
4072 overflow: hidden;
4072 overflow: hidden;
4073 margin: 0;
4073 margin: 0;
4074 padding: 0 0 10px;
4074 padding: 0 0 10px;
4075 }
4075 }
4076
4076
4077 #login div.form div.fields div.field span.error-message, #register div.form div.fields div.field span.error-message {
4077 #login div.form div.fields div.field span.error-message, #register div.form div.fields div.field span.error-message {
4078 height: 1%;
4078 height: 1%;
4079 display: block;
4079 display: block;
4080 color: red;
4080 color: red;
4081 margin: 8px 0 0;
4081 margin: 8px 0 0;
4082 padding: 0;
4082 padding: 0;
4083 max-width: 320px;
4083 max-width: 320px;
4084 }
4084 }
4085
4085
4086 #login div.form div.fields div.field div.label label, #register div.form div.fields div.field div.label label {
4086 #login div.form div.fields div.field div.label label, #register div.form div.fields div.field div.label label {
4087 color: #000;
4087 color: #000;
4088 font-weight: 700;
4088 font-weight: 700;
4089 }
4089 }
4090
4090
4091 #login div.form div.fields div.field div.input, #register div.form div.fields div.field div.input {
4091 #login div.form div.fields div.field div.input, #register div.form div.fields div.field div.input {
4092 float: left;
4092 float: left;
4093 margin: 0;
4093 margin: 0;
4094 padding: 0;
4094 padding: 0;
4095 }
4095 }
4096
4096
4097 #login div.form div.fields div.field div.input input.large {
4097 #login div.form div.fields div.field div.input input.large {
4098 width: 250px;
4098 width: 250px;
4099 }
4099 }
4100
4100
4101 #login div.form div.fields div.field div.checkbox, #register div.form div.fields div.field div.checkbox {
4101 #login div.form div.fields div.field div.checkbox, #register div.form div.fields div.field div.checkbox {
4102 margin: 0 0 0 184px;
4102 margin: 0 0 0 184px;
4103 padding: 0;
4103 padding: 0;
4104 }
4104 }
4105
4105
4106 #login div.form div.fields div.field div.checkbox label, #register div.form div.fields div.field div.checkbox label {
4106 #login div.form div.fields div.field div.checkbox label, #register div.form div.fields div.field div.checkbox label {
4107 color: #565656;
4107 color: #565656;
4108 font-weight: 700;
4108 font-weight: 700;
4109 }
4109 }
4110
4110
4111 #login div.form div.fields div.buttons input, #register div.form div.fields div.buttons input {
4111 #login div.form div.fields div.buttons input, #register div.form div.fields div.buttons input {
4112 color: #000;
4112 color: #000;
4113 font-size: 1em;
4113 font-size: 1em;
4114 font-weight: 700;
4114 font-weight: 700;
4115 margin: 0;
4115 margin: 0;
4116 }
4116 }
4117
4117
4118 #changeset_content .container .wrapper, #graph_content .container .wrapper {
4118 #changeset_content .container .wrapper, #graph_content .container .wrapper {
4119 width: 600px;
4119 width: 600px;
4120 }
4120 }
4121
4121
4122 #changeset_content .container .date, .ac .match {
4122 #changeset_content .container .date, .ac .match {
4123 font-weight: 700;
4123 font-weight: 700;
4124 padding-top: 5px;
4124 padding-top: 5px;
4125 padding-bottom: 5px;
4125 padding-bottom: 5px;
4126 }
4126 }
4127
4127
4128 div#legend_container table td, div#legend_choices table td {
4128 div#legend_container table td, div#legend_choices table td {
4129 border: none !important;
4129 border: none !important;
4130 height: 20px !important;
4130 height: 20px !important;
4131 padding: 0 !important;
4131 padding: 0 !important;
4132 }
4132 }
4133
4133
4134 .q_filter_box {
4134 .q_filter_box {
4135 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4135 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4136 -webkit-border-radius: 4px;
4136 -webkit-border-radius: 4px;
4137 border-radius: 4px;
4137 border-radius: 4px;
4138 border: 0 none;
4138 border: 0 none;
4139 margin-bottom: -4px;
4139 margin-bottom: -4px;
4140 margin-top: -4px;
4140 margin-top: -4px;
4141 padding-left: 3px;
4141 padding-left: 3px;
4142 }
4142 }
4143
4143
4144 #node_filter {
4144 #node_filter {
4145 border: 0px solid #545454;
4145 border: 0px solid #545454;
4146 color: #AAAAAA;
4146 color: #AAAAAA;
4147 padding-left: 3px;
4147 padding-left: 3px;
4148 }
4148 }
4149
4149
4150
4150
4151 .group_members_wrap {
4151 .group_members_wrap {
4152 min-height: 85px;
4152 min-height: 85px;
4153 padding-left: 20px;
4153 padding-left: 20px;
4154 }
4154 }
4155
4155
4156 .group_members .group_member {
4156 .group_members .group_member {
4157 height: 30px;
4157 height: 30px;
4158 padding: 0px 0px 0px 0px;
4158 padding: 0px 0px 0px 0px;
4159 }
4159 }
4160
4160
4161 .reviewer_status {
4161 .reviewer_status {
4162 float: left;
4162 float: left;
4163 }
4163 }
4164
4164
4165 .reviewers_member {
4165 .reviewers_member {
4166 height: 15px;
4166 height: 15px;
4167 padding: 0px 0px 0px 10px;
4167 padding: 0px 0px 0px 10px;
4168 }
4168 }
4169
4169
4170 .emails_wrap {
4170 .emails_wrap {
4171 padding: 0px 20px;
4171 padding: 0px 20px;
4172 }
4172 }
4173
4173
4174 .emails_wrap .email_entry {
4174 .emails_wrap .email_entry {
4175 height: 30px;
4175 height: 30px;
4176 padding: 0px 0px 0px 10px;
4176 padding: 0px 0px 0px 10px;
4177 }
4177 }
4178 .emails_wrap .email_entry .email {
4178 .emails_wrap .email_entry .email {
4179 float: left
4179 float: left
4180 }
4180 }
4181 .emails_wrap .email_entry .email_action {
4181 .emails_wrap .email_entry .email_action {
4182 float: left
4182 float: left
4183 }
4183 }
4184
4184
4185 .ips_wrap {
4185 .ips_wrap {
4186 padding: 0px 20px;
4186 padding: 0px 20px;
4187 }
4187 }
4188
4188
4189 .ips_wrap .ip_entry {
4189 .ips_wrap .ip_entry {
4190 height: 30px;
4190 height: 30px;
4191 padding: 0px 0px 0px 10px;
4191 padding: 0px 0px 0px 10px;
4192 }
4192 }
4193 .ips_wrap .ip_entry .ip {
4193 .ips_wrap .ip_entry .ip {
4194 float: left
4194 float: left
4195 }
4195 }
4196 .ips_wrap .ip_entry .ip_action {
4196 .ips_wrap .ip_entry .ip_action {
4197 float: left
4197 float: left
4198 }
4198 }
4199
4199
4200
4200
4201 /*README STYLE*/
4201 /*README STYLE*/
4202
4202
4203 div.readme {
4203 div.readme {
4204 padding: 0px;
4204 padding: 0px;
4205 }
4205 }
4206
4206
4207 div.readme h2 {
4207 div.readme h2 {
4208 font-weight: normal;
4208 font-weight: normal;
4209 }
4209 }
4210
4210
4211 div.readme .readme_box {
4211 div.readme .readme_box {
4212 background-color: #fafafa;
4212 background-color: #fafafa;
4213 }
4213 }
4214
4214
4215 div.readme .readme_box {
4215 div.readme .readme_box {
4216 clear: both;
4216 clear: both;
4217 overflow: hidden;
4217 overflow: hidden;
4218 margin: 0;
4218 margin: 0;
4219 padding: 0 20px 10px;
4219 padding: 0 20px 10px;
4220 }
4220 }
4221
4221
4222 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
4222 div.readme .readme_box h1, div.readme .readme_box h2, div.readme .readme_box h3, div.readme .readme_box h4, div.readme .readme_box h5, div.readme .readme_box h6 {
4223 border-bottom: 0 !important;
4223 border-bottom: 0 !important;
4224 margin: 0 !important;
4224 margin: 0 !important;
4225 padding: 0 !important;
4225 padding: 0 !important;
4226 line-height: 1.5em !important;
4226 line-height: 1.5em !important;
4227 }
4227 }
4228
4228
4229
4229
4230 div.readme .readme_box h1:first-child {
4230 div.readme .readme_box h1:first-child {
4231 padding-top: .25em !important;
4231 padding-top: .25em !important;
4232 }
4232 }
4233
4233
4234 div.readme .readme_box h2, div.readme .readme_box h3 {
4234 div.readme .readme_box h2, div.readme .readme_box h3 {
4235 margin: 1em 0 !important;
4235 margin: 1em 0 !important;
4236 }
4236 }
4237
4237
4238 div.readme .readme_box h2 {
4238 div.readme .readme_box h2 {
4239 margin-top: 1.5em !important;
4239 margin-top: 1.5em !important;
4240 border-top: 4px solid #e0e0e0 !important;
4240 border-top: 4px solid #e0e0e0 !important;
4241 padding-top: .5em !important;
4241 padding-top: .5em !important;
4242 }
4242 }
4243
4243
4244 div.readme .readme_box p {
4244 div.readme .readme_box p {
4245 color: black !important;
4245 color: black !important;
4246 margin: 1em 0 !important;
4246 margin: 1em 0 !important;
4247 line-height: 1.5em !important;
4247 line-height: 1.5em !important;
4248 }
4248 }
4249
4249
4250 div.readme .readme_box ul {
4250 div.readme .readme_box ul {
4251 list-style: disc !important;
4251 list-style: disc !important;
4252 margin: 1em 0 1em 2em !important;
4252 margin: 1em 0 1em 2em !important;
4253 }
4253 }
4254
4254
4255 div.readme .readme_box ol {
4255 div.readme .readme_box ol {
4256 list-style: decimal;
4256 list-style: decimal;
4257 margin: 1em 0 1em 2em !important;
4257 margin: 1em 0 1em 2em !important;
4258 }
4258 }
4259
4259
4260 div.readme .readme_box pre, code {
4260 div.readme .readme_box pre, code {
4261 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
4261 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
4262 }
4262 }
4263
4263
4264 div.readme .readme_box code {
4264 div.readme .readme_box code {
4265 font-size: 12px !important;
4265 font-size: 12px !important;
4266 background-color: ghostWhite !important;
4266 background-color: ghostWhite !important;
4267 color: #444 !important;
4267 color: #444 !important;
4268 padding: 0 .2em !important;
4268 padding: 0 .2em !important;
4269 border: 1px solid #dedede !important;
4269 border: 1px solid #dedede !important;
4270 }
4270 }
4271
4271
4272 div.readme .readme_box pre code {
4272 div.readme .readme_box pre code {
4273 padding: 0 !important;
4273 padding: 0 !important;
4274 font-size: 12px !important;
4274 font-size: 12px !important;
4275 background-color: #eee !important;
4275 background-color: #eee !important;
4276 border: none !important;
4276 border: none !important;
4277 }
4277 }
4278
4278
4279 div.readme .readme_box pre {
4279 div.readme .readme_box pre {
4280 margin: 1em 0;
4280 margin: 1em 0;
4281 font-size: 12px;
4281 font-size: 12px;
4282 background-color: #eee;
4282 background-color: #eee;
4283 border: 1px solid #ddd;
4283 border: 1px solid #ddd;
4284 padding: 5px;
4284 padding: 5px;
4285 color: #444;
4285 color: #444;
4286 overflow: auto;
4286 overflow: auto;
4287 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4287 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4288 -webkit-border-radius: 3px;
4288 -webkit-border-radius: 3px;
4289 border-radius: 3px;
4289 border-radius: 3px;
4290 }
4290 }
4291
4291
4292 div.readme .readme_box table {
4292 div.readme .readme_box table {
4293 display: table;
4293 display: table;
4294 border-collapse: separate;
4294 border-collapse: separate;
4295 border-spacing: 2px;
4295 border-spacing: 2px;
4296 border-color: gray;
4296 border-color: gray;
4297 width: auto !important;
4297 width: auto !important;
4298 }
4298 }
4299
4299
4300
4300
4301 /** RST STYLE **/
4301 /** RST STYLE **/
4302
4302
4303
4303
4304 div.rst-block {
4304 div.rst-block {
4305 padding: 0px;
4305 padding: 0px;
4306 }
4306 }
4307
4307
4308 div.rst-block h2 {
4308 div.rst-block h2 {
4309 font-weight: normal;
4309 font-weight: normal;
4310 }
4310 }
4311
4311
4312 div.rst-block {
4312 div.rst-block {
4313 background-color: #fafafa;
4313 background-color: #fafafa;
4314 }
4314 }
4315
4315
4316 div.rst-block {
4316 div.rst-block {
4317 clear: both;
4317 clear: both;
4318 overflow: hidden;
4318 overflow: hidden;
4319 margin: 0;
4319 margin: 0;
4320 padding: 0 20px 10px;
4320 padding: 0 20px 10px;
4321 }
4321 }
4322
4322
4323 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
4323 div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 {
4324 border-bottom: 0 !important;
4324 border-bottom: 0 !important;
4325 margin: 0 !important;
4325 margin: 0 !important;
4326 padding: 0 !important;
4326 padding: 0 !important;
4327 line-height: 1.5em !important;
4327 line-height: 1.5em !important;
4328 }
4328 }
4329
4329
4330
4330
4331 div.rst-block h1:first-child {
4331 div.rst-block h1:first-child {
4332 padding-top: .25em !important;
4332 padding-top: .25em !important;
4333 }
4333 }
4334
4334
4335 div.rst-block h2, div.rst-block h3 {
4335 div.rst-block h2, div.rst-block h3 {
4336 margin: 1em 0 !important;
4336 margin: 1em 0 !important;
4337 }
4337 }
4338
4338
4339 div.rst-block h2 {
4339 div.rst-block h2 {
4340 margin-top: 1.5em !important;
4340 margin-top: 1.5em !important;
4341 border-top: 4px solid #e0e0e0 !important;
4341 border-top: 4px solid #e0e0e0 !important;
4342 padding-top: .5em !important;
4342 padding-top: .5em !important;
4343 }
4343 }
4344
4344
4345 div.rst-block p {
4345 div.rst-block p {
4346 color: black !important;
4346 color: black !important;
4347 margin: 1em 0 !important;
4347 margin: 1em 0 !important;
4348 line-height: 1.5em !important;
4348 line-height: 1.5em !important;
4349 }
4349 }
4350
4350
4351 div.rst-block ul {
4351 div.rst-block ul {
4352 list-style: disc !important;
4352 list-style: disc !important;
4353 margin: 1em 0 1em 2em !important;
4353 margin: 1em 0 1em 2em !important;
4354 }
4354 }
4355
4355
4356 div.rst-block ol {
4356 div.rst-block ol {
4357 list-style: decimal;
4357 list-style: decimal;
4358 margin: 1em 0 1em 2em !important;
4358 margin: 1em 0 1em 2em !important;
4359 }
4359 }
4360
4360
4361 div.rst-block pre, code {
4361 div.rst-block pre, code {
4362 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
4362 font: 12px "Bitstream Vera Sans Mono","Courier",monospace;
4363 }
4363 }
4364
4364
4365 div.rst-block code {
4365 div.rst-block code {
4366 font-size: 12px !important;
4366 font-size: 12px !important;
4367 background-color: ghostWhite !important;
4367 background-color: ghostWhite !important;
4368 color: #444 !important;
4368 color: #444 !important;
4369 padding: 0 .2em !important;
4369 padding: 0 .2em !important;
4370 border: 1px solid #dedede !important;
4370 border: 1px solid #dedede !important;
4371 }
4371 }
4372
4372
4373 div.rst-block pre code {
4373 div.rst-block pre code {
4374 padding: 0 !important;
4374 padding: 0 !important;
4375 font-size: 12px !important;
4375 font-size: 12px !important;
4376 background-color: #eee !important;
4376 background-color: #eee !important;
4377 border: none !important;
4377 border: none !important;
4378 }
4378 }
4379
4379
4380 div.rst-block pre {
4380 div.rst-block pre {
4381 margin: 1em 0;
4381 margin: 1em 0;
4382 font-size: 12px;
4382 font-size: 12px;
4383 background-color: #eee;
4383 background-color: #eee;
4384 border: 1px solid #ddd;
4384 border: 1px solid #ddd;
4385 padding: 5px;
4385 padding: 5px;
4386 color: #444;
4386 color: #444;
4387 overflow: auto;
4387 overflow: auto;
4388 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4388 -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
4389 -webkit-border-radius: 3px;
4389 -webkit-border-radius: 3px;
4390 border-radius: 3px;
4390 border-radius: 3px;
4391 }
4391 }
4392
4392
4393
4393
4394 /** comment main **/
4394 /** comment main **/
4395 .comments {
4395 .comments {
4396 padding: 10px 20px;
4396 padding: 10px 20px;
4397 }
4397 }
4398
4398
4399 .comments .comment {
4399 .comments .comment {
4400 border: 1px solid #ddd;
4400 border: 1px solid #ddd;
4401 margin-top: 10px;
4401 margin-top: 10px;
4402 -webkit-border-radius: 4px;
4402 -webkit-border-radius: 4px;
4403 border-radius: 4px;
4403 border-radius: 4px;
4404 }
4404 }
4405
4405
4406 .comments .comment .meta {
4406 .comments .comment .meta {
4407 background: #f8f8f8;
4407 background: #f8f8f8;
4408 padding: 4px;
4408 padding: 4px;
4409 border-bottom: 1px solid #ddd;
4409 border-bottom: 1px solid #ddd;
4410 height: 18px;
4410 height: 18px;
4411 }
4411 }
4412
4412
4413 .comments .comment .meta img {
4413 .comments .comment .meta img {
4414 vertical-align: middle;
4414 vertical-align: middle;
4415 }
4415 }
4416
4416
4417 .comments .comment .meta .user {
4417 .comments .comment .meta .user {
4418 font-weight: bold;
4418 font-weight: bold;
4419 float: left;
4419 float: left;
4420 padding: 4px 2px 2px 2px;
4420 padding: 4px 2px 2px 2px;
4421 }
4421 }
4422
4422
4423 .comments .comment .meta .date {
4423 .comments .comment .meta .date {
4424 float: left;
4424 float: left;
4425 padding: 4px 4px 0px 4px;
4425 padding: 4px 4px 0px 4px;
4426 }
4426 }
4427
4427
4428 .comments .comment .text {
4428 .comments .comment .text {
4429 background-color: #FAFAFA;
4429 background-color: #FAFAFA;
4430 }
4430 }
4431 .comment .text div.rst-block p {
4431 .comment .text div.rst-block p {
4432 margin: 0.5em 0px !important;
4432 margin: 0.5em 0px !important;
4433 }
4433 }
4434
4434
4435 .comments .comments-number {
4435 .comments .comments-number {
4436 padding: 0px 0px 10px 0px;
4436 padding: 0px 0px 10px 0px;
4437 font-weight: bold;
4437 font-weight: bold;
4438 color: #666;
4438 color: #666;
4439 font-size: 16px;
4439 font-size: 16px;
4440 }
4440 }
4441
4441
4442 /** comment form **/
4442 /** comment form **/
4443
4443
4444 .status-block {
4444 .status-block {
4445 min-height: 80px;
4445 min-height: 80px;
4446 clear: both
4446 clear: both
4447 }
4447 }
4448
4448
4449
4449
4450 div.comment-form {
4450 div.comment-form {
4451 margin-top: 20px;
4451 margin-top: 20px;
4452 }
4452 }
4453
4453
4454 .comment-form strong {
4454 .comment-form strong {
4455 display: block;
4455 display: block;
4456 margin-bottom: 15px;
4456 margin-bottom: 15px;
4457 }
4457 }
4458
4458
4459 .comment-form textarea {
4459 .comment-form textarea {
4460 width: 100%;
4460 width: 100%;
4461 height: 100px;
4461 height: 100px;
4462 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4462 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4463 }
4463 }
4464
4464
4465 form.comment-form {
4465 form.comment-form {
4466 margin-top: 10px;
4466 margin-top: 10px;
4467 margin-left: 10px;
4467 margin-left: 10px;
4468 }
4468 }
4469
4469
4470 .comment-inline-form .comment-block-ta,
4470 .comment-inline-form .comment-block-ta,
4471 .comment-form .comment-block-ta {
4471 .comment-form .comment-block-ta {
4472 border: 1px solid #ccc;
4472 border: 1px solid #ccc;
4473 border-radius: 3px;
4473 border-radius: 3px;
4474 box-sizing: border-box;
4474 box-sizing: border-box;
4475 }
4475 }
4476
4476
4477 .comment-form-submit {
4477 .comment-form-submit {
4478 margin-top: 5px;
4478 margin-top: 5px;
4479 margin-left: 525px;
4479 margin-left: 525px;
4480 }
4480 }
4481
4481
4482 .file-comments {
4482 .file-comments {
4483 display: none;
4483 display: none;
4484 }
4484 }
4485
4485
4486 .comment-form .comment {
4486 .comment-form .comment {
4487 margin-left: 10px;
4487 margin-left: 10px;
4488 }
4488 }
4489
4489
4490 .comment-form .comment-help {
4490 .comment-form .comment-help {
4491 padding: 5px 5px 5px 5px;
4491 padding: 5px 5px 5px 5px;
4492 color: #666;
4492 color: #666;
4493 }
4493 }
4494 .comment-form .comment-help .preview-btn,
4494 .comment-form .comment-help .preview-btn,
4495 .comment-form .comment-help .edit-btn {
4495 .comment-form .comment-help .edit-btn {
4496 float: right;
4496 float: right;
4497 margin: -6px 0px 0px 0px;
4497 margin: -6px 0px 0px 0px;
4498 }
4498 }
4499
4499
4500 .comment-form .preview-box.unloaded,
4500 .comment-form .preview-box.unloaded,
4501 .comment-inline-form .preview-box.unloaded {
4501 .comment-inline-form .preview-box.unloaded {
4502 height: 50px;
4502 height: 50px;
4503 text-align: center;
4503 text-align: center;
4504 padding: 20px;
4504 padding: 20px;
4505 background-color: #fafafa;
4505 background-color: #fafafa;
4506 }
4506 }
4507
4507
4508 .comment-form .comment-button {
4508 .comment-form .comment-button {
4509 padding-top: 5px;
4509 padding-top: 5px;
4510 }
4510 }
4511
4511
4512 .add-another-button {
4512 .add-another-button {
4513 margin-left: 10px;
4513 margin-left: 10px;
4514 margin-top: 10px;
4514 margin-top: 10px;
4515 margin-bottom: 10px;
4515 margin-bottom: 10px;
4516 }
4516 }
4517
4517
4518 .comment .buttons {
4518 .comment .buttons {
4519 float: right;
4519 float: right;
4520 margin: -1px 0px 0px 0px;
4520 margin: -1px 0px 0px 0px;
4521 }
4521 }
4522
4522
4523
4523
4524 .show-inline-comments {
4524 .show-inline-comments {
4525 position: relative;
4525 position: relative;
4526 top: 1px
4526 top: 1px
4527 }
4527 }
4528
4528
4529 /** comment inline form **/
4529 /** comment inline form **/
4530 .comment-inline-form {
4530 .comment-inline-form {
4531 margin: 4px;
4531 margin: 4px;
4532 }
4532 }
4533 .comment-inline-form .overlay {
4533 .comment-inline-form .overlay {
4534 display: none;
4534 display: none;
4535 }
4535 }
4536 .comment-inline-form .overlay.submitting {
4536 .comment-inline-form .overlay.submitting {
4537 display: block;
4537 display: block;
4538 background: none repeat scroll 0 0 white;
4538 background: none repeat scroll 0 0 white;
4539 font-size: 16px;
4539 font-size: 16px;
4540 opacity: 0.5;
4540 opacity: 0.5;
4541 position: absolute;
4541 position: absolute;
4542 text-align: center;
4542 text-align: center;
4543 vertical-align: top;
4543 vertical-align: top;
4544
4544
4545 }
4545 }
4546 .comment-inline-form .overlay.submitting .overlay-text {
4546 .comment-inline-form .overlay.submitting .overlay-text {
4547 width: 100%;
4547 width: 100%;
4548 margin-top: 5%;
4548 margin-top: 5%;
4549 }
4549 }
4550
4550
4551 .comment-inline-form .clearfix,
4551 .comment-inline-form .clearfix,
4552 .comment-form .clearfix {
4552 .comment-form .clearfix {
4553 background: #EEE;
4553 background: #EEE;
4554 -webkit-border-radius: 4px;
4554 -webkit-border-radius: 4px;
4555 border-radius: 4px;
4555 border-radius: 4px;
4556 padding: 5px;
4556 padding: 5px;
4557 margin: 0px;
4557 margin: 0px;
4558 }
4558 }
4559
4559
4560 div.comment-inline-form {
4560 div.comment-inline-form {
4561 padding: 4px 0px 6px 0px;
4561 padding: 4px 0px 6px 0px;
4562 }
4562 }
4563
4563
4564 .comment-inline-form strong {
4564 .comment-inline-form strong {
4565 display: block;
4565 display: block;
4566 margin-bottom: 15px;
4566 margin-bottom: 15px;
4567 }
4567 }
4568
4568
4569 .comment-inline-form textarea {
4569 .comment-inline-form textarea {
4570 width: 100%;
4570 width: 100%;
4571 height: 100px;
4571 height: 100px;
4572 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4572 font-family: 'Monaco', 'Courier', 'Courier New', monospace;
4573 }
4573 }
4574
4574
4575 form.comment-inline-form {
4575 form.comment-inline-form {
4576 margin-top: 10px;
4576 margin-top: 10px;
4577 margin-left: 10px;
4577 margin-left: 10px;
4578 }
4578 }
4579
4579
4580 .comment-inline-form-submit {
4580 .comment-inline-form-submit {
4581 margin-top: 5px;
4581 margin-top: 5px;
4582 margin-left: 525px;
4582 margin-left: 525px;
4583 }
4583 }
4584
4584
4585 .file-comments {
4585 .file-comments {
4586 display: none;
4586 display: none;
4587 }
4587 }
4588
4588
4589 .comment-inline-form .comment {
4589 .comment-inline-form .comment {
4590 margin-left: 10px;
4590 margin-left: 10px;
4591 }
4591 }
4592
4592
4593 .comment-inline-form .comment-help {
4593 .comment-inline-form .comment-help {
4594 padding: 5px 5px 5px 5px;
4594 padding: 5px 5px 5px 5px;
4595 color: #666;
4595 color: #666;
4596 }
4596 }
4597
4597
4598 .comment-inline-form .comment-help .preview-btn,
4598 .comment-inline-form .comment-help .preview-btn,
4599 .comment-inline-form .comment-help .edit-btn {
4599 .comment-inline-form .comment-help .edit-btn {
4600 float: right;
4600 float: right;
4601 margin: -6px 0px 0px 0px;
4601 margin: -6px 0px 0px 0px;
4602 }
4602 }
4603
4603
4604 .comment-inline-form .comment-button {
4604 .comment-inline-form .comment-button {
4605 padding-top: 5px;
4605 padding-top: 5px;
4606 }
4606 }
4607
4607
4608 /** comment inline **/
4608 /** comment inline **/
4609 .inline-comments {
4609 .inline-comments {
4610 padding: 10px 20px;
4610 padding: 10px 20px;
4611 }
4611 }
4612
4612
4613 .inline-comments div.rst-block {
4613 .inline-comments div.rst-block {
4614 clear: both;
4614 clear: both;
4615 overflow: hidden;
4615 overflow: hidden;
4616 margin: 0;
4616 margin: 0;
4617 padding: 0 20px 0px;
4617 padding: 0 20px 0px;
4618 }
4618 }
4619 .inline-comments .comment {
4619 .inline-comments .comment {
4620 border: 1px solid #ddd;
4620 border: 1px solid #ddd;
4621 -webkit-border-radius: 4px;
4621 -webkit-border-radius: 4px;
4622 border-radius: 4px;
4622 border-radius: 4px;
4623 margin: 3px 3px 5px 5px;
4623 margin: 3px 3px 5px 5px;
4624 background-color: #FAFAFA;
4624 background-color: #FAFAFA;
4625 }
4625 }
4626 .inline-comments .add-comment {
4626 .inline-comments .add-comment {
4627 padding: 2px 4px 8px 5px;
4627 padding: 2px 4px 8px 5px;
4628 }
4628 }
4629
4629
4630 .inline-comments .comment-wrapp {
4630 .inline-comments .comment-wrapp {
4631 padding: 1px;
4631 padding: 1px;
4632 }
4632 }
4633 .inline-comments .comment .meta {
4633 .inline-comments .comment .meta {
4634 background: #f8f8f8;
4634 background: #f8f8f8;
4635 padding: 4px;
4635 padding: 4px;
4636 border-bottom: 1px solid #ddd;
4636 border-bottom: 1px solid #ddd;
4637 height: 20px;
4637 height: 20px;
4638 }
4638 }
4639
4639
4640 .inline-comments .comment .meta img {
4640 .inline-comments .comment .meta img {
4641 vertical-align: middle;
4641 vertical-align: middle;
4642 }
4642 }
4643
4643
4644 .inline-comments .comment .meta .user {
4644 .inline-comments .comment .meta .user {
4645 font-weight: bold;
4645 font-weight: bold;
4646 float: left;
4646 float: left;
4647 padding: 3px;
4647 padding: 3px;
4648 }
4648 }
4649
4649
4650 .inline-comments .comment .meta .date {
4650 .inline-comments .comment .meta .date {
4651 float: left;
4651 float: left;
4652 padding: 3px;
4652 padding: 3px;
4653 }
4653 }
4654
4654
4655 .inline-comments .comment .text {
4655 .inline-comments .comment .text {
4656 background-color: #FAFAFA;
4656 background-color: #FAFAFA;
4657 }
4657 }
4658
4658
4659 .inline-comments .comments-number {
4659 .inline-comments .comments-number {
4660 padding: 0px 0px 10px 0px;
4660 padding: 0px 0px 10px 0px;
4661 font-weight: bold;
4661 font-weight: bold;
4662 color: #666;
4662 color: #666;
4663 font-size: 16px;
4663 font-size: 16px;
4664 }
4664 }
4665 .inline-comments-button .add-comment {
4665 .inline-comments-button .add-comment {
4666 margin: 2px 0px 8px 5px !important
4666 margin: 2px 0px 8px 5px !important
4667 }
4667 }
4668
4668
4669 .notification-paginator {
4669 .notification-paginator {
4670 padding: 0px 0px 4px 16px;
4670 padding: 0px 0px 4px 16px;
4671 }
4671 }
4672
4672
4673 #context-pages .pull-request span,
4673 #context-pages .pull-request span,
4674 .menu_link_notifications {
4674 .menu_link_notifications {
4675 padding: 4px 4px !important;
4675 padding: 4px 4px !important;
4676 text-align: center;
4676 text-align: center;
4677 color: #888 !important;
4677 color: #888 !important;
4678 background-color: #DEDEDE !important;
4678 background-color: #DEDEDE !important;
4679 border-radius: 4px !important;
4679 border-radius: 4px !important;
4680 -webkit-border-radius: 4px !important;
4680 -webkit-border-radius: 4px !important;
4681 }
4681 }
4682
4682
4683 #context-pages .forks span,
4683 #context-pages .forks span,
4684 .menu_link_notifications {
4684 .menu_link_notifications {
4685 padding: 4px 4px !important;
4685 padding: 4px 4px !important;
4686 text-align: center;
4686 text-align: center;
4687 color: #888 !important;
4687 color: #888 !important;
4688 background-color: #DEDEDE !important;
4688 background-color: #DEDEDE !important;
4689 border-radius: 4px !important;
4689 border-radius: 4px !important;
4690 -webkit-border-radius: 4px !important;
4690 -webkit-border-radius: 4px !important;
4691 }
4691 }
4692
4692
4693
4693
4694 .notification-header {
4694 .notification-header {
4695 padding-top: 6px;
4695 padding-top: 6px;
4696 }
4696 }
4697 .notification-header .desc {
4697 .notification-header .desc {
4698 font-size: 16px;
4698 font-size: 16px;
4699 height: 24px;
4699 height: 24px;
4700 float: left
4700 float: left
4701 }
4701 }
4702 .notification-list .container.unread {
4702 .notification-list .container.unread {
4703 background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6);
4703 background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6);
4704 }
4704 }
4705 .notification-header .gravatar {
4705 .notification-header .gravatar {
4706 background: none repeat scroll 0 0 transparent;
4706 background: none repeat scroll 0 0 transparent;
4707 padding: 0px 0px 0px 8px;
4707 padding: 0px 0px 0px 8px;
4708 }
4708 }
4709 .notification-list .container .notification-header .desc {
4709 .notification-list .container .notification-header .desc {
4710 font-weight: bold;
4710 font-weight: bold;
4711 font-size: 17px;
4711 font-size: 17px;
4712 }
4712 }
4713 .notification-table {
4713 .notification-table {
4714 border: 1px solid #ccc;
4714 border: 1px solid #ccc;
4715 -webkit-border-radius: 6px 6px 6px 6px;
4715 -webkit-border-radius: 6px 6px 6px 6px;
4716 border-radius: 6px 6px 6px 6px;
4716 border-radius: 6px 6px 6px 6px;
4717 clear: both;
4717 clear: both;
4718 margin: 0px 20px 0px 20px;
4718 margin: 0px 20px 0px 20px;
4719 }
4719 }
4720 .notification-header .delete-notifications {
4720 .notification-header .delete-notifications {
4721 float: right;
4721 float: right;
4722 padding-top: 8px;
4722 padding-top: 8px;
4723 cursor: pointer;
4723 cursor: pointer;
4724 }
4724 }
4725 .notification-header .read-notifications {
4725 .notification-header .read-notifications {
4726 float: right;
4726 float: right;
4727 padding-top: 8px;
4727 padding-top: 8px;
4728 cursor: pointer;
4728 cursor: pointer;
4729 }
4729 }
4730 .notification-subject {
4730 .notification-subject {
4731 clear: both;
4731 clear: both;
4732 border-bottom: 1px solid #eee;
4732 border-bottom: 1px solid #eee;
4733 padding: 5px 0px 5px 38px;
4733 padding: 5px 0px 5px 38px;
4734 }
4734 }
4735
4735
4736 .notification-body {
4736 .notification-body {
4737 clear: both;
4737 clear: both;
4738 margin: 34px 2px 2px 8px
4738 margin: 34px 2px 2px 8px
4739 }
4739 }
4740
4740
4741 /****
4741 /****
4742 PULL REQUESTS
4742 PULL REQUESTS
4743 *****/
4743 *****/
4744 .pullrequests_section_head {
4744 .pullrequests_section_head {
4745 padding: 10px 10px 10px 0px;
4745 padding: 10px 10px 10px 0px;
4746 font-size: 16px;
4746 font-size: 16px;
4747 font-weight: bold;
4747 font-weight: bold;
4748 }
4748 }
4749
4749
4750 div.pr-details-title.closed,
4750 div.pr-details-title.closed,
4751 #pullrequests_container li.closed a
4751 #pullrequests_container li.closed a
4752 {
4752 {
4753 color: #555;
4753 color: #555;
4754 background: #eee;
4754 background: #eee;
4755 }
4755 }
4756
4756
4757 div.pr-title {
4757 div.pr-title {
4758 font-size: 1.6em;
4758 font-size: 1.6em;
4759 }
4759 }
4760 div.pr-details-title {
4760 div.pr-details-title {
4761 font-size: 1.6em;
4761 font-size: 1.6em;
4762 margin: 0px 20px 0px 20px;
4762 margin: 0px 20px 0px 20px;
4763 padding: 5px 0px 5px 10px;
4763 padding: 5px 0px 5px 10px;
4764 }
4764 }
4765
4765
4766 div.pr {
4766 div.pr {
4767 border-bottom: 1px solid #DDD;
4767 border-bottom: 1px solid #DDD;
4768 margin: 0px 20px;
4768 margin: 0px 20px;
4769 padding: 10px 4px;
4769 padding: 10px 4px;
4770 }
4770 }
4771 div.pr-desc {
4771 div.pr-desc {
4772 margin: 0px 20px;
4772 margin: 0px 20px;
4773 }
4773 }
4774 div.pr-closed {
4774 div.pr-closed {
4775 background-color: #eee;
4775 background-color: #eee;
4776 }
4776 }
4777
4777
4778 span.pr-closed-tag {
4778 span.pr-closed-tag {
4779 margin-bottom: 1px;
4779 margin-bottom: 1px;
4780 margin-right: 1px;
4780 margin-right: 1px;
4781 padding: 1px 3px;
4781 padding: 1px 3px;
4782 font-size: 10px;
4782 font-size: 10px;
4783 padding: 1px 3px 1px 3px;
4783 padding: 1px 3px 1px 3px;
4784 font-size: 10px;
4784 font-size: 10px;
4785 color: #336699;
4785 color: #336699;
4786 white-space: nowrap;
4786 white-space: nowrap;
4787 -webkit-border-radius: 4px;
4787 -webkit-border-radius: 4px;
4788 border-radius: 4px;
4788 border-radius: 4px;
4789 border: 1px solid #d9e8f8;
4789 border: 1px solid #d9e8f8;
4790 line-height: 1.5em;
4790 line-height: 1.5em;
4791 }
4791 }
4792
4792
4793 /****
4793 /****
4794 PERMS
4794 PERMS
4795 *****/
4795 *****/
4796 #perms .perms_section_head {
4796 #perms .perms_section_head {
4797 padding: 10px 10px 10px 0px;
4797 padding: 10px 10px 10px 0px;
4798 font-size: 16px;
4798 font-size: 16px;
4799 font-weight: bold;
4799 font-weight: bold;
4800 }
4800 }
4801
4801
4802 #perms .perm_tag {
4802 #perms .perm_tag {
4803 padding: 1px 3px 1px 3px;
4803 padding: 1px 3px 1px 3px;
4804 font-size: 10px;
4804 font-size: 10px;
4805 font-weight: bold;
4805 font-weight: bold;
4806 text-transform: uppercase;
4806 text-transform: uppercase;
4807 white-space: nowrap;
4807 white-space: nowrap;
4808 -webkit-border-radius: 3px;
4808 -webkit-border-radius: 3px;
4809 border-radius: 3px;
4809 border-radius: 3px;
4810 }
4810 }
4811
4811
4812 #perms .perm_tag.admin {
4812 #perms .perm_tag.admin {
4813 background-color: #B94A48;
4813 background-color: #B94A48;
4814 color: #ffffff;
4814 color: #ffffff;
4815 }
4815 }
4816
4816
4817 #perms .perm_tag.write {
4817 #perms .perm_tag.write {
4818 background-color: #DB7525;
4818 background-color: #DB7525;
4819 color: #ffffff;
4819 color: #ffffff;
4820 }
4820 }
4821
4821
4822 #perms .perm_tag.read {
4822 #perms .perm_tag.read {
4823 background-color: #468847;
4823 background-color: #468847;
4824 color: #ffffff;
4824 color: #ffffff;
4825 }
4825 }
4826
4826
4827 #perms .perm_tag.none {
4827 #perms .perm_tag.none {
4828 background-color: #bfbfbf;
4828 background-color: #bfbfbf;
4829 color: #ffffff;
4829 color: #ffffff;
4830 }
4830 }
4831
4831
4832 .perm-gravatar {
4832 .perm-gravatar {
4833 vertical-align: middle;
4833 vertical-align: middle;
4834 padding: 2px;
4834 padding: 2px;
4835 }
4835 }
4836 .perm-gravatar-ac {
4836 .perm-gravatar-ac {
4837 vertical-align: middle;
4837 vertical-align: middle;
4838 padding: 2px;
4838 padding: 2px;
4839 width: 14px;
4839 width: 14px;
4840 height: 14px;
4840 height: 14px;
4841 }
4841 }
4842
4842
4843 /*****************************************************************************
4843 /*****************************************************************************
4844 DIFFS CSS
4844 DIFFS CSS
4845 ******************************************************************************/
4845 ******************************************************************************/
4846 .diff-collapse {
4846 .diff-collapse {
4847 text-align: center;
4847 text-align: center;
4848 margin-bottom: -15px;
4848 margin-bottom: -15px;
4849 }
4849 }
4850 .diff-collapse-button {
4850 .diff-collapse-button {
4851 cursor: pointer;
4851 cursor: pointer;
4852 color: #666;
4852 color: #666;
4853 font-size: 16px;
4853 font-size: 16px;
4854 }
4854 }
4855 .diff-container {
4855 .diff-container {
4856
4856
4857 }
4857 }
4858
4858
4859 .diff-container.hidden {
4859 .diff-container.hidden {
4860 display: none;
4860 display: none;
4861 overflow: hidden;
4861 overflow: hidden;
4862 }
4862 }
4863
4863
4864
4864
4865 div.diffblock {
4865 div.diffblock {
4866 overflow: auto;
4866 overflow: auto;
4867 padding: 0px;
4867 padding: 0px;
4868 border: 1px solid #ccc;
4868 border: 1px solid #ccc;
4869 background: #f8f8f8;
4869 background: #f8f8f8;
4870 font-size: 100%;
4870 font-size: 100%;
4871 line-height: 100%;
4871 line-height: 100%;
4872 /* new */
4872 /* new */
4873 line-height: 125%;
4873 line-height: 125%;
4874 -webkit-border-radius: 6px 6px 0px 0px;
4874 -webkit-border-radius: 6px 6px 0px 0px;
4875 border-radius: 6px 6px 0px 0px;
4875 border-radius: 6px 6px 0px 0px;
4876 }
4876 }
4877 div.diffblock.margined {
4877 div.diffblock.margined {
4878 margin: 0px 20px 0px 20px;
4878 margin: 0px 20px 0px 20px;
4879 }
4879 }
4880 div.diffblock .code-header {
4880 div.diffblock .code-header {
4881 border-bottom: 1px solid #CCCCCC;
4881 border-bottom: 1px solid #CCCCCC;
4882 background: #EEEEEE;
4882 background: #EEEEEE;
4883 padding: 10px 0 10px 0;
4883 padding: 10px 0 10px 0;
4884 min-height: 14px;
4884 min-height: 14px;
4885 }
4885 }
4886
4886
4887 div.diffblock .code-header.banner {
4887 div.diffblock .code-header.banner {
4888 border-bottom: 1px solid #CCCCCC;
4888 border-bottom: 1px solid #CCCCCC;
4889 background: #EEEEEE;
4889 background: #EEEEEE;
4890 height: 14px;
4890 height: 14px;
4891 margin: 0px 95px 0px 95px;
4891 margin: 0px 95px 0px 95px;
4892 padding: 3px 3px 11px 3px;
4892 padding: 3px 3px 11px 3px;
4893 }
4893 }
4894
4894
4895 div.diffblock .code-header-title {
4895 div.diffblock .code-header-title {
4896 padding: 0px 0px 10px 5px !important;
4896 padding: 0px 0px 10px 5px !important;
4897 margin: 0 !important;
4897 margin: 0 !important;
4898 }
4898 }
4899 div.diffblock .code-header .hash {
4899 div.diffblock .code-header .hash {
4900 float: left;
4900 float: left;
4901 padding: 2px 0 0 2px;
4901 padding: 2px 0 0 2px;
4902 }
4902 }
4903 div.diffblock .code-header .date {
4903 div.diffblock .code-header .date {
4904 float: left;
4904 float: left;
4905 text-transform: uppercase;
4905 text-transform: uppercase;
4906 padding: 2px 0px 0px 2px;
4906 padding: 2px 0px 0px 2px;
4907 }
4907 }
4908 div.diffblock .code-header div {
4908 div.diffblock .code-header div {
4909 margin-left: 4px;
4909 margin-left: 4px;
4910 font-weight: bold;
4910 font-weight: bold;
4911 font-size: 14px;
4911 font-size: 14px;
4912 }
4912 }
4913
4913
4914 div.diffblock .parents {
4914 div.diffblock .parents {
4915 float: left;
4915 float: left;
4916 height: 26px;
4916 height: 26px;
4917 width: 100px;
4917 width: 100px;
4918 font-size: 10px;
4918 font-size: 10px;
4919 font-weight: 400;
4919 font-weight: 400;
4920 vertical-align: middle;
4920 vertical-align: middle;
4921 padding: 0px 2px 2px 2px;
4921 padding: 0px 2px 2px 2px;
4922 background-color: #eeeeee;
4922 background-color: #eeeeee;
4923 border-bottom: 1px solid #CCCCCC;
4923 border-bottom: 1px solid #CCCCCC;
4924 }
4924 }
4925
4925
4926 div.diffblock .children {
4926 div.diffblock .children {
4927 float: right;
4927 float: right;
4928 height: 26px;
4928 height: 26px;
4929 width: 100px;
4929 width: 100px;
4930 font-size: 10px;
4930 font-size: 10px;
4931 font-weight: 400;
4931 font-weight: 400;
4932 vertical-align: middle;
4932 vertical-align: middle;
4933 text-align: right;
4933 text-align: right;
4934 padding: 0px 2px 2px 2px;
4934 padding: 0px 2px 2px 2px;
4935 background-color: #eeeeee;
4935 background-color: #eeeeee;
4936 border-bottom: 1px solid #CCCCCC;
4936 border-bottom: 1px solid #CCCCCC;
4937 }
4937 }
4938
4938
4939 div.diffblock .code-body {
4939 div.diffblock .code-body {
4940 background: #FFFFFF;
4940 background: #FFFFFF;
4941 }
4941 }
4942 div.diffblock pre.raw {
4942 div.diffblock pre.raw {
4943 background: #FFFFFF;
4943 background: #FFFFFF;
4944 color: #000000;
4944 color: #000000;
4945 }
4945 }
4946 table.code-difftable {
4946 table.code-difftable {
4947 border-collapse: collapse;
4947 border-collapse: collapse;
4948 width: 99%;
4948 width: 99%;
4949 border-radius: 0px !important;
4949 border-radius: 0px !important;
4950 }
4950 }
4951 table.code-difftable td {
4951 table.code-difftable td {
4952 padding: 0 !important;
4952 padding: 0 !important;
4953 background: none !important;
4953 background: none !important;
4954 border: 0 !important;
4954 border: 0 !important;
4955 vertical-align: baseline !important
4955 vertical-align: baseline !important
4956 }
4956 }
4957 table.code-difftable .context {
4957 table.code-difftable .context {
4958 background: none repeat scroll 0 0 #DDE7EF;
4958 background: none repeat scroll 0 0 #DDE7EF;
4959 }
4959 }
4960 table.code-difftable .add {
4960 table.code-difftable .add {
4961 background: none repeat scroll 0 0 #DDFFDD;
4961 background: none repeat scroll 0 0 #DDFFDD;
4962 }
4962 }
4963 table.code-difftable .add ins {
4963 table.code-difftable .add ins {
4964 background: none repeat scroll 0 0 #AAFFAA;
4964 background: none repeat scroll 0 0 #AAFFAA;
4965 text-decoration: none;
4965 text-decoration: none;
4966 }
4966 }
4967 table.code-difftable .del {
4967 table.code-difftable .del {
4968 background: none repeat scroll 0 0 #FFDDDD;
4968 background: none repeat scroll 0 0 #FFDDDD;
4969 }
4969 }
4970 table.code-difftable .del del {
4970 table.code-difftable .del del {
4971 background: none repeat scroll 0 0 #FFAAAA;
4971 background: none repeat scroll 0 0 #FFAAAA;
4972 text-decoration: none;
4972 text-decoration: none;
4973 }
4973 }
4974
4974
4975 /** LINE NUMBERS **/
4975 /** LINE NUMBERS **/
4976 table.code-difftable .lineno {
4976 table.code-difftable .lineno {
4977
4977
4978 padding-left: 2px;
4978 padding-left: 2px;
4979 padding-right: 2px;
4979 padding-right: 2px;
4980 text-align: right;
4980 text-align: right;
4981 width: 32px;
4981 width: 32px;
4982 -moz-user-select: none;
4982 -moz-user-select: none;
4983 -webkit-user-select: none;
4983 -webkit-user-select: none;
4984 border-right: 1px solid #CCC !important;
4984 border-right: 1px solid #CCC !important;
4985 border-left: 0px solid #CCC !important;
4985 border-left: 0px solid #CCC !important;
4986 border-top: 0px solid #CCC !important;
4986 border-top: 0px solid #CCC !important;
4987 border-bottom: none !important;
4987 border-bottom: none !important;
4988 vertical-align: middle !important;
4988 vertical-align: middle !important;
4989
4989
4990 }
4990 }
4991 table.code-difftable .lineno.new {
4991 table.code-difftable .lineno.new {
4992 }
4992 }
4993 table.code-difftable .lineno.old {
4993 table.code-difftable .lineno.old {
4994 }
4994 }
4995 table.code-difftable .lineno a {
4995 table.code-difftable .lineno a {
4996 color: #747474 !important;
4996 color: #747474 !important;
4997 font: 11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
4997 font: 11px "Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace !important;
4998 letter-spacing: -1px;
4998 letter-spacing: -1px;
4999 text-align: right;
4999 text-align: right;
5000 padding-right: 2px;
5000 padding-right: 2px;
5001 cursor: pointer;
5001 cursor: pointer;
5002 display: block;
5002 display: block;
5003 width: 32px;
5003 width: 32px;
5004 }
5004 }
5005
5005
5006 table.code-difftable .lineno-inline {
5006 table.code-difftable .lineno-inline {
5007 background: none repeat scroll 0 0 #FFF !important;
5007 background: none repeat scroll 0 0 #FFF !important;
5008 padding-left: 2px;
5008 padding-left: 2px;
5009 padding-right: 2px;
5009 padding-right: 2px;
5010 text-align: right;
5010 text-align: right;
5011 width: 30px;
5011 width: 30px;
5012 -moz-user-select: none;
5012 -moz-user-select: none;
5013 -webkit-user-select: none;
5013 -webkit-user-select: none;
5014 }
5014 }
5015
5015
5016 /** CODE **/
5016 /** CODE **/
5017 table.code-difftable .code {
5017 table.code-difftable .code {
5018 display: block;
5018 display: block;
5019 width: 100%;
5019 width: 100%;
5020 }
5020 }
5021 table.code-difftable .code td {
5021 table.code-difftable .code td {
5022 margin: 0;
5022 margin: 0;
5023 padding: 0;
5023 padding: 0;
5024 }
5024 }
5025 table.code-difftable .code pre {
5025 table.code-difftable .code pre {
5026 margin: 0;
5026 margin: 0;
5027 padding: 0;
5027 padding: 0;
5028 height: 17px;
5028 height: 17px;
5029 line-height: 17px;
5029 line-height: 17px;
5030 }
5030 }
5031
5031
5032
5032
5033 .diffblock.margined.comm .line .code:hover {
5033 .diffblock.margined.comm .line .code:hover {
5034 background-color: #FFFFCC !important;
5034 background-color: #FFFFCC !important;
5035 cursor: pointer !important;
5035 cursor: pointer !important;
5036 background-image: url("../images/icons/comment_add.png") !important;
5036 background-image: url("../images/icons/comment_add.png") !important;
5037 background-repeat: no-repeat !important;
5037 background-repeat: no-repeat !important;
5038 background-position: right !important;
5038 background-position: right !important;
5039 background-position: 0% 50% !important;
5039 background-position: 0% 50% !important;
5040 }
5040 }
5041 .diffblock.margined.comm .line .code.no-comment:hover {
5041 .diffblock.margined.comm .line .code.no-comment:hover {
5042 background-image: none !important;
5042 background-image: none !important;
5043 cursor: auto !important;
5043 cursor: auto !important;
5044 background-color: inherit !important;
5044 background-color: inherit !important;
5045 }
5045 }
5046
5046
5047 div.comment:target>.comment-wrapp {
5047 div.comment:target>.comment-wrapp {
5048 border: solid 2px #ee0 !important;
5048 border: solid 2px #ee0 !important;
5049 }
5049 }
5050
5050
5051 .lineno:target a {
5051 .lineno:target a {
5052 border: solid 2px #ee0 !important;
5052 border: solid 2px #ee0 !important;
5053 margin: -2px;
5053 margin: -2px;
5054 }
5054 }
5055
5055
5056 #help_kb {
5056 #help_kb {
5057 display: none;
5057 display: none;
5058 }
5058 }
5059
5059
5060 .repo-switcher-dropdown .select2-result-label span.repo-icons {
5060 .repo-switcher-dropdown .select2-result-label span.repo-icons {
5061 margin-left: -12px;
5061 margin-left: -12px;
5062 }
5062 }
This diff has been collapsed as it changes many lines, (1083 lines changed) Show them Hide them
@@ -1,2343 +1,2038
1 /**
1 /**
2 RhodeCode JS Files
2 RhodeCode JS Files
3 **/
3 **/
4
4
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
6 console = { log: function() {} }
6 console = { log: function() {} }
7 }
7 }
8
8
9 /**
9 /**
10 * INJECT .format function into String
10 * INJECT .format function into String
11 * Usage: "My name is {0} {1}".format("Johny","Bravo")
11 * Usage: "My name is {0} {1}".format("Johny","Bravo")
12 * Return "My name is Johny Bravo"
12 * Return "My name is Johny Bravo"
13 * Inspired by https://gist.github.com/1049426
13 * Inspired by https://gist.github.com/1049426
14 */
14 */
15 String.prototype.format = function() {
15 String.prototype.format = function() {
16 function format() {
16 function format() {
17 var str = this;
17 var str = this;
18 var len = arguments.length+1;
18 var len = arguments.length+1;
19 var safe = undefined;
19 var safe = undefined;
20 var arg = undefined;
20 var arg = undefined;
21
21
22 // For each {0} {1} {n...} replace with the argument in that position. If
22 // For each {0} {1} {n...} replace with the argument in that position. If
23 // the argument is an object or an array it will be stringified to JSON.
23 // the argument is an object or an array it will be stringified to JSON.
24 for (var i=0; i < len; arg = arguments[i++]) {
24 for (var i=0; i < len; arg = arguments[i++]) {
25 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
25 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
26 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
26 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
27 }
27 }
28 return str;
28 return str;
29 }
29 }
30
30
31 // Save a reference of what may already exist under the property native.
31 // Save a reference of what may already exist under the property native.
32 // Allows for doing something like: if("".format.native) { /* use native */ }
32 // Allows for doing something like: if("".format.native) { /* use native */ }
33 format.native = String.prototype.format;
33 format.native = String.prototype.format;
34
34
35 // Replace the prototype property
35 // Replace the prototype property
36 return format;
36 return format;
37
37
38 }();
38 }();
39
39
40 String.prototype.strip = function(char) {
40 String.prototype.strip = function(char) {
41 if(char === undefined){
41 if(char === undefined){
42 char = '\\s';
42 char = '\\s';
43 }
43 }
44 return this.replace(new RegExp('^'+char+'+|'+char+'+$','g'), '');
44 return this.replace(new RegExp('^'+char+'+|'+char+'+$','g'), '');
45 }
45 }
46
46
47 String.prototype.lstrip = function(char) {
47 String.prototype.lstrip = function(char) {
48 if(char === undefined){
48 if(char === undefined){
49 char = '\\s';
49 char = '\\s';
50 }
50 }
51 return this.replace(new RegExp('^'+char+'+'),'');
51 return this.replace(new RegExp('^'+char+'+'),'');
52 }
52 }
53
53
54 String.prototype.rstrip = function(char) {
54 String.prototype.rstrip = function(char) {
55 if(char === undefined){
55 if(char === undefined){
56 char = '\\s';
56 char = '\\s';
57 }
57 }
58 return this.replace(new RegExp(''+char+'+$'),'');
58 return this.replace(new RegExp(''+char+'+$'),'');
59 }
59 }
60
60
61
61
62 if(!Array.prototype.indexOf) {
62 if(!Array.prototype.indexOf) {
63 Array.prototype.indexOf = function(needle) {
63 Array.prototype.indexOf = function(needle) {
64 for(var i = 0; i < this.length; i++) {
64 for(var i = 0; i < this.length; i++) {
65 if(this[i] === needle) {
65 if(this[i] === needle) {
66 return i;
66 return i;
67 }
67 }
68 }
68 }
69 return -1;
69 return -1;
70 };
70 };
71 }
71 }
72
72
73 // IE(CRAP) doesn't support previousElementSibling
74 var prevElementSibling = function( el ) {
75 if( el.previousElementSibling ) {
76 return el.previousElementSibling;
77 } else {
78 while( el = el.previousSibling ) {
79 if( el.nodeType === 1 ) return el;
80 }
81 }
82 }
83
84 /**
73 /**
85 * A customized version of PyRoutes.JS from https://pypi.python.org/pypi/pyroutes.js/
74 * A customized version of PyRoutes.JS from https://pypi.python.org/pypi/pyroutes.js/
86 * which is copyright Stephane Klein and was made available under the BSD License.
75 * which is copyright Stephane Klein and was made available under the BSD License.
87 *
76 *
88 * Usage pyroutes.url('mark_error_fixed',{"error_id":error_id}) // /mark_error_fixed/<error_id>
77 * Usage pyroutes.url('mark_error_fixed',{"error_id":error_id}) // /mark_error_fixed/<error_id>
89 */
78 */
90 var pyroutes = (function() {
79 var pyroutes = (function() {
91 // access global map defined in special file pyroutes
80 // access global map defined in special file pyroutes
92 var matchlist = PROUTES_MAP;
81 var matchlist = PROUTES_MAP;
93 var sprintf = (function() {
82 var sprintf = (function() {
94 function get_type(variable) {
83 function get_type(variable) {
95 return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
84 return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase();
96 }
85 }
97 function str_repeat(input, multiplier) {
86 function str_repeat(input, multiplier) {
98 for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
87 for (var output = []; multiplier > 0; output[--multiplier] = input) {/* do nothing */}
99 return output.join('');
88 return output.join('');
100 }
89 }
101
90
102 var str_format = function() {
91 var str_format = function() {
103 if (!str_format.cache.hasOwnProperty(arguments[0])) {
92 if (!str_format.cache.hasOwnProperty(arguments[0])) {
104 str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
93 str_format.cache[arguments[0]] = str_format.parse(arguments[0]);
105 }
94 }
106 return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
95 return str_format.format.call(null, str_format.cache[arguments[0]], arguments);
107 };
96 };
108
97
109 str_format.format = function(parse_tree, argv) {
98 str_format.format = function(parse_tree, argv) {
110 var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
99 var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;
111 for (i = 0; i < tree_length; i++) {
100 for (i = 0; i < tree_length; i++) {
112 node_type = get_type(parse_tree[i]);
101 node_type = get_type(parse_tree[i]);
113 if (node_type === 'string') {
102 if (node_type === 'string') {
114 output.push(parse_tree[i]);
103 output.push(parse_tree[i]);
115 }
104 }
116 else if (node_type === 'array') {
105 else if (node_type === 'array') {
117 match = parse_tree[i]; // convenience purposes only
106 match = parse_tree[i]; // convenience purposes only
118 if (match[2]) { // keyword argument
107 if (match[2]) { // keyword argument
119 arg = argv[cursor];
108 arg = argv[cursor];
120 for (k = 0; k < match[2].length; k++) {
109 for (k = 0; k < match[2].length; k++) {
121 if (!arg.hasOwnProperty(match[2][k])) {
110 if (!arg.hasOwnProperty(match[2][k])) {
122 throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
111 throw(sprintf('[sprintf] property "%s" does not exist', match[2][k]));
123 }
112 }
124 arg = arg[match[2][k]];
113 arg = arg[match[2][k]];
125 }
114 }
126 }
115 }
127 else if (match[1]) { // positional argument (explicit)
116 else if (match[1]) { // positional argument (explicit)
128 arg = argv[match[1]];
117 arg = argv[match[1]];
129 }
118 }
130 else { // positional argument (implicit)
119 else { // positional argument (implicit)
131 arg = argv[cursor++];
120 arg = argv[cursor++];
132 }
121 }
133
122
134 if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
123 if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {
135 throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
124 throw(sprintf('[sprintf] expecting number but found %s', get_type(arg)));
136 }
125 }
137 switch (match[8]) {
126 switch (match[8]) {
138 case 'b': arg = arg.toString(2); break;
127 case 'b': arg = arg.toString(2); break;
139 case 'c': arg = String.fromCharCode(arg); break;
128 case 'c': arg = String.fromCharCode(arg); break;
140 case 'd': arg = parseInt(arg, 10); break;
129 case 'd': arg = parseInt(arg, 10); break;
141 case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
130 case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;
142 case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
131 case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;
143 case 'o': arg = arg.toString(8); break;
132 case 'o': arg = arg.toString(8); break;
144 case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
133 case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;
145 case 'u': arg = Math.abs(arg); break;
134 case 'u': arg = Math.abs(arg); break;
146 case 'x': arg = arg.toString(16); break;
135 case 'x': arg = arg.toString(16); break;
147 case 'X': arg = arg.toString(16).toUpperCase(); break;
136 case 'X': arg = arg.toString(16).toUpperCase(); break;
148 }
137 }
149 arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
138 arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);
150 pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
139 pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';
151 pad_length = match[6] - String(arg).length;
140 pad_length = match[6] - String(arg).length;
152 pad = match[6] ? str_repeat(pad_character, pad_length) : '';
141 pad = match[6] ? str_repeat(pad_character, pad_length) : '';
153 output.push(match[5] ? arg + pad : pad + arg);
142 output.push(match[5] ? arg + pad : pad + arg);
154 }
143 }
155 }
144 }
156 return output.join('');
145 return output.join('');
157 };
146 };
158
147
159 str_format.cache = {};
148 str_format.cache = {};
160
149
161 str_format.parse = function(fmt) {
150 str_format.parse = function(fmt) {
162 var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
151 var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;
163 while (_fmt) {
152 while (_fmt) {
164 if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
153 if ((match = /^[^\x25]+/.exec(_fmt)) !== null) {
165 parse_tree.push(match[0]);
154 parse_tree.push(match[0]);
166 }
155 }
167 else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
156 else if ((match = /^\x25{2}/.exec(_fmt)) !== null) {
168 parse_tree.push('%');
157 parse_tree.push('%');
169 }
158 }
170 else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
159 else if ((match = /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {
171 if (match[2]) {
160 if (match[2]) {
172 arg_names |= 1;
161 arg_names |= 1;
173 var field_list = [], replacement_field = match[2], field_match = [];
162 var field_list = [], replacement_field = match[2], field_match = [];
174 if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
163 if ((field_match = /^([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
175 field_list.push(field_match[1]);
164 field_list.push(field_match[1]);
176 while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
165 while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {
177 if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
166 if ((field_match = /^\.([a-z_][a-z_\d]*)/i.exec(replacement_field)) !== null) {
178 field_list.push(field_match[1]);
167 field_list.push(field_match[1]);
179 }
168 }
180 else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
169 else if ((field_match = /^\[(\d+)\]/.exec(replacement_field)) !== null) {
181 field_list.push(field_match[1]);
170 field_list.push(field_match[1]);
182 }
171 }
183 else {
172 else {
184 throw('[sprintf] huh?');
173 throw('[sprintf] huh?');
185 }
174 }
186 }
175 }
187 }
176 }
188 else {
177 else {
189 throw('[sprintf] huh?');
178 throw('[sprintf] huh?');
190 }
179 }
191 match[2] = field_list;
180 match[2] = field_list;
192 }
181 }
193 else {
182 else {
194 arg_names |= 2;
183 arg_names |= 2;
195 }
184 }
196 if (arg_names === 3) {
185 if (arg_names === 3) {
197 throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
186 throw('[sprintf] mixing positional and named placeholders is not (yet) supported');
198 }
187 }
199 parse_tree.push(match);
188 parse_tree.push(match);
200 }
189 }
201 else {
190 else {
202 throw('[sprintf] huh?');
191 throw('[sprintf] huh?');
203 }
192 }
204 _fmt = _fmt.substring(match[0].length);
193 _fmt = _fmt.substring(match[0].length);
205 }
194 }
206 return parse_tree;
195 return parse_tree;
207 };
196 };
208
197
209 return str_format;
198 return str_format;
210 })();
199 })();
211
200
212 var vsprintf = function(fmt, argv) {
201 var vsprintf = function(fmt, argv) {
213 argv.unshift(fmt);
202 argv.unshift(fmt);
214 return sprintf.apply(null, argv);
203 return sprintf.apply(null, argv);
215 };
204 };
216 return {
205 return {
217 'url': function(route_name, params) {
206 'url': function(route_name, params) {
218 var result = route_name;
207 var result = route_name;
219 if (typeof(params) != 'object'){
208 if (typeof(params) != 'object'){
220 params = {};
209 params = {};
221 }
210 }
222 if (matchlist.hasOwnProperty(route_name)) {
211 if (matchlist.hasOwnProperty(route_name)) {
223 var route = matchlist[route_name];
212 var route = matchlist[route_name];
224 // param substitution
213 // param substitution
225 for(var i=0; i < route[1].length; i++) {
214 for(var i=0; i < route[1].length; i++) {
226 if (!params.hasOwnProperty(route[1][i]))
215 if (!params.hasOwnProperty(route[1][i]))
227 throw new Error(route[1][i] + ' missing in "' + route_name + '" route generation');
216 throw new Error(route[1][i] + ' missing in "' + route_name + '" route generation');
228 }
217 }
229 result = sprintf(route[0], params);
218 result = sprintf(route[0], params);
230
219
231 var ret = [];
220 var ret = [];
232 //extra params => GET
221 //extra params => GET
233 for(param in params){
222 for(param in params){
234 if (route[1].indexOf(param) == -1){
223 if (route[1].indexOf(param) == -1){
235 ret.push(encodeURIComponent(param) + "=" + encodeURIComponent(params[param]));
224 ret.push(encodeURIComponent(param) + "=" + encodeURIComponent(params[param]));
236 }
225 }
237 }
226 }
238 var _parts = ret.join("&");
227 var _parts = ret.join("&");
239 if(_parts){
228 if(_parts){
240 result = result +'?'+ _parts
229 result = result +'?'+ _parts
241 }
230 }
242 }
231 }
243
232
244 return result;
233 return result;
245 },
234 },
246 'register': function(route_name, route_tmpl, req_params) {
235 'register': function(route_name, route_tmpl, req_params) {
247 if (typeof(req_params) != 'object') {
236 if (typeof(req_params) != 'object') {
248 req_params = [];
237 req_params = [];
249 }
238 }
250 //fix escape
239 //fix escape
251 route_tmpl = unescape(route_tmpl);
240 route_tmpl = unescape(route_tmpl);
252 keys = [];
241 keys = [];
253 for (o in req_params){
242 for (o in req_params){
254 keys.push(req_params[o])
243 keys.push(req_params[o])
255 }
244 }
256 matchlist[route_name] = [
245 matchlist[route_name] = [
257 route_tmpl,
246 route_tmpl,
258 keys
247 keys
259 ]
248 ]
260 },
249 },
261 '_routes': function(){
250 '_routes': function(){
262 return matchlist;
251 return matchlist;
263 }
252 }
264 }
253 }
265 })();
254 })();
266
255
267
256
268 /**
257 /**
269 * GLOBAL YUI Shortcuts
258 * GLOBAL YUI Shortcuts
270 */
259 */
271 var YUC = YAHOO.util.Connect;
260 var YUC = YAHOO.util.Connect;
272 var YUD = YAHOO.util.Dom;
261 var YUD = YAHOO.util.Dom;
273 var YUE = YAHOO.util.Event;
262 var YUE = YAHOO.util.Event;
274 var YUQ = YAHOO.util.Selector.query;
263 var YUQ = YAHOO.util.Selector.query;
275
264
265 /* Invoke all functions in callbacks */
276 var _run_callbacks = function(callbacks){
266 var _run_callbacks = function(callbacks){
277 if (callbacks !== undefined){
267 if (callbacks !== undefined){
278 var _l = callbacks.length;
268 var _l = callbacks.length;
279 for (var i=0;i<_l;i++){
269 for (var i=0;i<_l;i++){
280 var func = callbacks[i];
270 var func = callbacks[i];
281 if(typeof(func)=='function'){
271 if(typeof(func)=='function'){
282 try{
272 try{
283 func();
273 func();
284 }catch (err){};
274 }catch (err){};
285 }
275 }
286 }
276 }
287 }
277 }
288 }
278 }
289
279
290 /**
280 /**
291 * turns objects into GET query string
281 * turns objects into GET query string
292 */
282 */
293 var toQueryString = function(o) {
283 var _toQueryString = function(o) {
294 if(typeof o !== 'object') {
284 if(typeof o !== 'object') {
295 return false;
285 return false;
296 }
286 }
297 var _p, _qs = [];
287 var _p, _qs = [];
298 for(_p in o) {
288 for(_p in o) {
299 _qs.push(encodeURIComponent(_p) + '=' + encodeURIComponent(o[_p]));
289 _qs.push(encodeURIComponent(_p) + '=' + encodeURIComponent(o[_p]));
300 }
290 }
301 return _qs.join('&');
291 return _qs.join('&');
302 };
292 };
303
293
304 /**
294 /**
305 * Partial Ajax Implementation
295 * Partial Ajax Implementation
306 *
296 *
307 * @param url: defines url to make partial request
297 * @param url: defines url to make partial request
308 * @param container: defines id of container to input partial result
298 * @param container: defines id of container to input partial result
309 * @param s_call: success callback function that takes o as arg
299 * @param s_call: success callback function that takes o as arg
310 * o.tId
300 * o.tId
311 * o.status
301 * o.status
312 * o.statusText
302 * o.statusText
313 * o.getResponseHeader[ ]
303 * o.getResponseHeader[ ]
314 * o.getAllResponseHeaders
304 * o.getAllResponseHeaders
315 * o.responseText
305 * o.responseText
316 * o.responseXML
306 * o.responseXML
317 * o.argument
307 * o.argument
318 * @param f_call: failure callback
308 * @param f_call: failure callback
319 * @param args arguments
309 * @param args arguments
320 */
310 */
321 function ypjax(url,container,s_call,f_call,args){
311 function ypjax(url,container,s_call,f_call,args){
322 var method='GET';
312 var method='GET';
323 if(args===undefined){
313 if(args===undefined){
324 args=null;
314 args=null;
325 }
315 }
316 $container = $('#' + container);
326
317
327 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
318 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
328 YUC.initHeader('X-PARTIAL-XHR',true);
319 YUC.initHeader('X-PARTIAL-XHR',true);
329
320
330 // wrapper of passed callback
321 // wrapper of passed callback
331 var s_wrapper = (function(o){
322 var s_wrapper = (function(o){
332 return function(o){
323 return function(o){
333 YUD.get(container).innerHTML=o.responseText;
324 $container.html(o.responseText);
334 YUD.setStyle(container,'opacity','1.0');
325 $container.css('opacity','1.0');
335 //execute the given original callback
326 //execute the given original callback
336 if (s_call !== undefined){
327 if (s_call !== undefined){
337 s_call(o);
328 s_call(o);
338 }
329 }
339 }
330 }
340 })()
331 })()
341 YUD.setStyle(container,'opacity','0.3');
332 $container.css('opacity','0.3');
342 YUC.asyncRequest(method,url,{
333 YUC.asyncRequest(method,url,{
343 success:s_wrapper,
334 success:s_wrapper,
344 failure:function(o){
335 failure:function(o){
345 console.log(o);
336 console.log('ypjax failure: '+o);
346 YUD.get(container).innerHTML='<span class="error_red">ERROR: {0}</span>'.format(o.status);
337 $container.html('<span class="error_red">ERROR: {0}</span>'.format(o.status));
347 YUD.setStyle(container,'opacity','1.0');
338 $container.css('opacity','1.0');
348 },
339 },
349 cache:false
340 cache:false
350 },args);
341 },args);
351
342
352 };
343 };
353
344
354 var ajaxGET = function(url,success) {
345 var ajaxGET = function(url,success) {
355 // Set special header for ajax == HTTP_X_PARTIAL_XHR
346 // Set special header for ajax == HTTP_X_PARTIAL_XHR
356 YUC.initHeader('X-PARTIAL-XHR',true);
347 YUC.initHeader('X-PARTIAL-XHR',true);
357
348
358 var sUrl = url;
349 var sUrl = url;
359 var callback = {
350 var callback = {
360 success: success,
351 success: success,
361 failure: function (o) {
352 failure: function (o) {
362 if (o.status != 0) {
353 if (o.status != 0) {
363 alert("error: " + o.statusText);
354 alert("error: " + o.statusText);
364 };
355 };
365 },
356 },
366 };
357 };
367
358
368 var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
359 var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
369 return request;
360 return request;
370 };
361 };
371
362
372 var ajaxPOST = function(url,postData,success) {
363 var ajaxPOST = function(url,postData,success) {
373 // Set special header for ajax == HTTP_X_PARTIAL_XHR
364 // Set special header for ajax == HTTP_X_PARTIAL_XHR
374 YUC.initHeader('X-PARTIAL-XHR',true);
365 YUC.initHeader('X-PARTIAL-XHR',true);
375
366
376 var sUrl = url;
367 var sUrl = url;
377 var callback = {
368 var callback = {
378 success: success,
369 success: success,
379 failure: function (o) {
370 failure: function (o) {
380 alert("error");
371 alert("error");
381 },
372 },
382 };
373 };
383 var postData = toQueryString(postData);
374 var postData = _toQueryString(postData);
384 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
375 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
385 return request;
376 return request;
386 };
377 };
387
378
388
379
389 /**
380 /**
390 * tooltip activate
381 * activate .show_more links
391 */
382 * the .show_more must have an id that is the the id of an element to hide prefixed with _
392 var tooltip_activate = function(){
383 * the parentnode will be displayed
393 yt = YAHOO.yuitip.main;
394 YUE.onDOMReady(yt.init);
395 };
396
397 /**
398 * show more
399 */
384 */
400 var show_more_event = function(){
385 var show_more_event = function(){
401 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
386 $('.show_more').click(function(e){
402 var el = e.target;
387 var el = e.currentTarget;
403 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
388 $('#' + el.id.substring(1)).hide();
404 YUD.setStyle(el.parentNode,'display','none');
389 $(el.parentNode).show();
405 });
390 });
406 };
391 };
407
392
408 /**
393 /**
409 * show changeset tooltip
394 * activate .lazy-cs mouseover for showing changeset tooltip
410 */
395 */
411 var show_changeset_tooltip = function(){
396 var show_changeset_tooltip = function(){
412 YUE.on(YUD.getElementsByClassName('lazy-cs'), 'mouseover', function(e){
397 $('.lazy-cs').mouseover(function(e){
413 var target = e.currentTarget;
398 var $target = $(e.currentTarget);
414 var rid = YUD.getAttribute(target,'raw_id');
399 var rid = $target.attr('raw_id');
415 var repo_name = YUD.getAttribute(target,'repo_name');
400 var repo_name = $target.attr('repo_name');
416 var ttid = 'tt-'+rid;
401 if(rid && !$target.hasClass('tooltip')){
417 var success = function(o){
402 _show_tooltip(e, _TM['loading ...']);
418 var json = JSON.parse(o.responseText);
403 var url = pyroutes.url('changeset_info', {"repo_name": repo_name, "revision": rid});
419 YUD.addClass(target,'tooltip')
404 ajaxGET(url, function(o){
420 YUD.setAttribute(target, 'title',json['message']);
405 var json = JSON.parse(o.responseText);
421 YAHOO.yuitip.main.show_yuitip(e, target);
406 $target.addClass('tooltip')
422 }
407 _show_tooltip(e, json['message']);
423 if(rid && !YUD.hasClass(target, 'tooltip')){
408 _activate_tooltip($target);
424 YUD.setAttribute(target,'id',ttid);
409 });
425 YUD.setAttribute(target, 'title',_TM['loading ...']);
426 YAHOO.yuitip.main.set_listeners(target);
427 YAHOO.yuitip.main.show_yuitip(e, target);
428 var url = pyroutes.url('changeset_info', {"repo_name":repo_name, "revision": rid});
429 ajaxGET(url, success)
430 }
410 }
431 });
411 });
432 };
412 };
433
413
434 var onSuccessFollow = function(target){
414 var _onSuccessFollow = function(target){
435 var f = YUD.get(target);
415 var $target = $(target);
436 var f_cnt = YUD.get('current_followers_count');
416 var $f_cnt = $('#current_followers_count');
437
417 if($target.hasClass('follow')){
438 if(YUD.hasClass(f, 'follow')){
418 $target.attr('class', 'following');
439 f.setAttribute('class','following');
419 $target.attr('title', _TM['Stop following this repository']);
440 f.setAttribute('title',_TM['Stop following this repository']);
420 if($f_cnt.html()){
441
421 var cnt = Number($f_cnt.html())+1;
442 if(f_cnt){
422 $f_cnt.html(cnt);
443 var cnt = Number(f_cnt.innerHTML)+1;
444 f_cnt.innerHTML = cnt;
445 }
423 }
446 }
424 }
447 else{
425 else{
448 f.setAttribute('class','follow');
426 $target.attr('class', 'follow');
449 f.setAttribute('title',_TM['Start following this repository']);
427 $target.attr('title', _TM['Start following this repository']);
450 if(f_cnt){
428 if($f_cnt.html()){
451 var cnt = Number(f_cnt.innerHTML)-1;
429 var cnt = Number($f_cnt.html())-1;
452 f_cnt.innerHTML = cnt;
430 $f_cnt.html(cnt);
453 }
431 }
454 }
432 }
455 }
433 }
456
434
457 var toggleFollowingRepo = function(target,fallows_repo_id,token,user_id){
435 var toggleFollowingRepo = function(target, follows_repo_id, token, user_id){
458 args = 'follows_repo_id='+fallows_repo_id;
436 args = 'follows_repo_id='+follows_repo_id;
459 args+= '&amp;auth_token='+token;
437 args+= '&amp;auth_token='+token;
460 if(user_id != undefined){
438 if(user_id != undefined){
461 args+="&amp;user_id="+user_id;
439 args+="&amp;user_id="+user_id;
462 }
440 }
463 $.post(TOGGLE_FOLLOW_URL, args, function(data){
441 $.post(TOGGLE_FOLLOW_URL, args, function(data){
464 onSuccessFollow(target);
442 _onSuccessFollow(target);
465 });
443 });
466 return false;
444 return false;
467 }
445 };
468
446
469 var showRepoSize = function(target, repo_name, token){
447 var showRepoSize = function(target, repo_name, token){
470 var args= 'auth_token='+token;
448 var args= 'auth_token='+token;
471
449
472 if(!$("#" + target).hasClass('loaded')){
450 if(!$("#" + target).hasClass('loaded')){
473 $("#" + target).html(_TM['Loading ...']);
451 $("#" + target).html(_TM['Loading ...']);
474 var url = pyroutes.url('repo_size', {"repo_name":repo_name});
452 var url = pyroutes.url('repo_size', {"repo_name":repo_name});
475 $.post(url, args, function(data) {
453 $.post(url, args, function(data) {
476 $("#" + target).html(data);
454 $("#" + target).html(data);
477 $("#" + target).addClass('loaded');
455 $("#" + target).addClass('loaded');
478 });
456 });
479 }
457 }
480 return false;
458 return false;
481 }
459 };
482
460
483 /**
461 /**
484 * TOOLTIP IMPL.
462 * tooltips
485 */
463 */
486 YAHOO.namespace('yuitip');
487 YAHOO.yuitip.main = {
488
489 $: YAHOO.util.Dom.get,
490
464
491 bgColor: '#000',
465 var tooltip_activate = function(){
492 speed: 0.3,
466 $(document).ready(_init_tooltip);
493 opacity: 0.9,
467 };
494 offset: [15,15],
495 useAnim: false,
496 maxWidth: 600,
497 add_links: false,
498 yuitips: [],
499
468
500 set_listeners: function(tt){
469 var _activate_tooltip = function($tt){
501 YUE.on(tt, 'mouseover', yt.show_yuitip, tt);
470 $tt.mouseover(_show_tooltip);
502 YUE.on(tt, 'mousemove', yt.move_yuitip, tt);
471 $tt.mousemove(_move_tooltip);
503 YUE.on(tt, 'mouseout', yt.close_yuitip, tt);
472 $tt.mouseout(_close_tooltip);
504 },
473 };
505
474
506 init: function(){
475 var _init_tooltip = function(){
507 yt.tipBox = yt.$('tip-box');
476 var $tipBox = $('#tip-box');
508 if(!yt.tipBox){
477 if(!$tipBox.length){
509 yt.tipBox = document.createElement('div');
478 $tipBox = $('<div id="tip-box"></div>')
510 document.body.appendChild(yt.tipBox);
479 $(document.body).append($tipBox);
511 yt.tipBox.id = 'tip-box';
480 }
512 }
513
481
514 YUD.setStyle(yt.tipBox, 'display', 'none');
482 $tipBox.hide();
515 YUD.setStyle(yt.tipBox, 'position', 'absolute');
483 $tipBox.css('position', 'absolute');
516 if(yt.maxWidth !== null){
484 $tipBox.css('max-width', '600px');
517 YUD.setStyle(yt.tipBox, 'max-width', yt.maxWidth+'px');
518 }
519
520 var yuitips = YUD.getElementsByClassName('tooltip');
521
485
522 if(yt.add_links === true){
486 _activate_tooltip($('.tooltip'));
523 var links = document.getElementsByTagName('a');
487 };
524 var linkLen = links.length;
525 for(i=0;i<linkLen;i++){
526 yuitips.push(links[i]);
527 }
528 }
529
530 var yuiLen = yuitips.length;
531
488
532 for(i=0;i<yuiLen;i++){
489 var _show_tooltip = function(e, tipText){
533 yt.set_listeners(yuitips[i]);
490 e.stopImmediatePropagation();
534 }
491 var el = e.currentTarget;
535 },
492 if(tipText){
493 // just use it
494 } else if(el.tagName.toLowerCase() === 'img'){
495 tipText = el.alt ? el.alt : '';
496 } else {
497 tipText = el.title ? el.title : '';
498 }
536
499
537 show_yuitip: function(e, el){
500 if(tipText !== ''){
538 YUE.stopEvent(e);
501 // save org title
539 if(el.tagName.toLowerCase() === 'img'){
502 $(el).attr('tt_title', tipText);
540 yt.tipText = el.alt ? el.alt : '';
503 // reset title to not show org tooltips
541 } else {
504 $(el).attr('title', '');
542 yt.tipText = el.title ? el.title : '';
543 }
544
545 if(yt.tipText !== ''){
546 // save org title
547 YUD.setAttribute(el, 'tt_title', yt.tipText);
548 // reset title to not show org tooltips
549 YUD.setAttribute(el, 'title', '');
550
505
551 yt.tipBox.innerHTML = yt.tipText;
506 var $tipBox = $('#tip-box');
552 YUD.setStyle(yt.tipBox, 'display', 'block');
507 $tipBox.html(tipText);
553 if(yt.useAnim === true){
508 $tipBox.css('display', 'block');
554 YUD.setStyle(yt.tipBox, 'opacity', '0');
509 }
555 var newAnim = new YAHOO.util.Anim(yt.tipBox,
510 };
556 {
557 opacity: { to: yt.opacity }
558 }, yt.speed, YAHOO.util.Easing.easeOut
559 );
560 newAnim.animate();
561 }
562 }
563 },
564
511
565 move_yuitip: function(e, el){
512 var _move_tooltip = function(e){
566 YUE.stopEvent(e);
513 e.stopImmediatePropagation();
567 var movePos = YUE.getXY(e);
514 var $tipBox = $('#tip-box');
568 YUD.setStyle(yt.tipBox, 'top', (movePos[1] + yt.offset[1]) + 'px');
515 $tipBox.css('top', (e.pageY + 15) + 'px');
569 YUD.setStyle(yt.tipBox, 'left', (movePos[0] + yt.offset[0]) + 'px');
516 $tipBox.css('left', (e.pageX + 15) + 'px');
570 },
517 };
571
572 close_yuitip: function(e, el){
573 YUE.stopEvent(e);
574
518
575 if(yt.useAnim === true){
519 var _close_tooltip = function(e){
576 var newAnim = new YAHOO.util.Anim(yt.tipBox,
520 e.stopImmediatePropagation();
577 {
521 var $tipBox = $('#tip-box');
578 opacity: { to: 0 }
522 $tipBox.hide();
579 }, yt.speed, YAHOO.util.Easing.easeOut
523 var el = e.currentTarget;
580 );
524 $(el).attr('title', $(el).attr('tt_title'));
581 newAnim.animate();
525 };
582 } else {
583 YUD.setStyle(yt.tipBox, 'display', 'none');
584 }
585 YUD.setAttribute(el,'title', YUD.getAttribute(el, 'tt_title'));
586 }
587 }
588
526
589 /**
527 /**
590 * Quick filter widget
528 * Quick filter widget
591 *
529 *
592 * @param target: filter input target
530 * @param target: filter input target
593 * @param nodes: list of nodes in html we want to filter.
531 * @param nodes: list of nodes in html we want to filter.
594 * @param display_element function that takes current node from nodes and
532 * @param display_element function that takes current node from nodes and
595 * does hide or show based on the node
533 * does hide or show based on the node
596 *
597 */
534 */
598 var q_filter = function(target,nodes,display_element){
535 var q_filter = function(target, nodes, display_element){
599
600 var nodes = nodes;
536 var nodes = nodes;
601 var q_filter_field = YUD.get(target);
537 var $q_filter_field = $('#' + target);
602 var F = YAHOO.namespace(target);
538 var F = YAHOO.namespace(target);
603
539
604 YUE.on(q_filter_field,'keyup',function(e){
540 $q_filter_field.keyup(function(e){
605 clearTimeout(F.filterTimeout);
541 clearTimeout(F.filterTimeout);
606 F.filterTimeout = setTimeout(F.updateFilter,600);
542 F.filterTimeout = setTimeout(F.updateFilter, 600);
607 });
543 });
608
544
609 F.filterTimeout = null;
545 F.filterTimeout = null;
610
546
611 var show_node = function(node){
612 YUD.setStyle(node,'display','')
613 }
614 var hide_node = function(node){
615 YUD.setStyle(node,'display','none');
616 }
617
618 F.updateFilter = function() {
547 F.updateFilter = function() {
619 // Reset timeout
548 // Reset timeout
620 F.filterTimeout = null;
549 F.filterTimeout = null;
621
550
622 var obsolete = [];
551 var obsolete = [];
623
552
624 var req = q_filter_field.value.toLowerCase();
553 var req = $q_filter_field.val().toLowerCase();
625
554
626 var l = nodes.length;
555 var l = nodes.length;
627 var i;
556 var i;
628 var showing = 0;
557 var showing = 0;
629
558
630 for (i=0;i<l;i++ ){
559 for (i=0; i<l; i++ ){
631 var n = nodes[i];
560 var n = nodes[i];
632 var target_element = display_element(n)
561 var target_element = display_element(n)
633 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
562 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
634 hide_node(target_element);
563 $(target_element).hide();
635 }
564 }
636 else{
565 else{
637 show_node(target_element);
566 $(target_element).show();
638 showing+=1;
567 showing += 1;
639 }
568 }
640 }
569 }
641
570
642 // if repo_count is set update the number
571 $('#repo_count').html(showing); /* FIXME: don't hardcode */
643 var cnt = YUD.get('repo_count');
644 if(cnt){
645 YUD.get('repo_count').innerHTML = showing;
646 }
647 }
572 }
648 };
573 };
649
574
650 var tableTr = function(cls, body){
575 /* return jQuery expression with a tr with body in 3rd column and class cls and id named after the body */
651 var _el = document.createElement('div');
576 var _table_tr = function(cls, body){
652 var cont = new YAHOO.util.Element(body);
577 // like: <div class="comment" id="comment-8" line="o92"><div class="comment-wrapp">...
653 var comment_id = fromHTML(body).children[0].id.split('comment-')[1];
578 // except new inlines which are different ...
654 var id = 'comment-tr-{0}'.format(comment_id);
579 var comment_id = ($(body).attr('id') || 'comment-new').split('comment-')[1];
655 var _html = ('<table><tbody><tr id="{0}" class="{1}">'+
580 var tr_id = 'comment-tr-{0}'.format(comment_id);
581 return $(('<tr id="{0}" class="{1}">'+
656 '<td class="lineno-inline new-inline"></td>'+
582 '<td class="lineno-inline new-inline"></td>'+
657 '<td class="lineno-inline old-inline"></td>'+
583 '<td class="lineno-inline old-inline"></td>'+
658 '<td>{2}</td>'+
584 '<td>{2}</td>'+
659 '</tr></tbody></table>').format(id, cls, body);
585 '</tr>').format(tr_id, cls, body));
660 _el.innerHTML = _html;
661 return _el.children[0].children[0].children[0];
662 };
586 };
663
587
664 var createInlineForm = function(parent_tr, f_path, line) {
588 /** return jQuery expression with new inline form based on template **/
665 var tmpl = $('#comment-inline-form-template').html();
589 var _createInlineForm = function(parent_tr, f_path, line) {
666 tmpl = tmpl.format(f_path, line);
590 var $tmpl = $('#comment-inline-form-template').html().format(f_path, line);
667 var form = tableTr('comment-form-inline',tmpl)
591 var $form = _table_tr('comment-form-inline', $tmpl)
668
592
669 // create event for hide button
593 // create event for hide button
670 form = new YAHOO.util.Element(form);
594 $form.find('.hide-inline-form').click(function(e) {
671 var form_hide_button = new YAHOO.util.Element(YUD.getElementsByClassName('hide-inline-form',null,form)[0]);
672 form_hide_button.on('click', function(e) {
673 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
595 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
674 if(YUD.hasClass(newtr.nextElementSibling,'inline-comments-button')){
596 if($(newtr).next().hasClass('inline-comments-button')){
675 YUD.setStyle(newtr.nextElementSibling,'display','');
597 $(newtr).next().show();
676 }
598 }
677 removeInlineForm(newtr);
599 $(newtr).remove();
678 YUD.removeClass(parent_tr, 'form-open');
600 $(parent_tr).removeClass('form-open');
679 YUD.removeClass(parent_tr, 'hl-comment');
601 $(parent_tr).removeClass('hl-comment');
680
681 });
602 });
682
603
683 return form
604 return $form
684 };
605 };
685
606
686 /**
607 /**
687 * Inject inline comment for on given TR this tr should be always an .line
608 * Inject inline comment for an given TR. This tr should always be a .line .
688 * tr containing the line. Code will detect comment, and always put the comment
609 * The form will be inject after any comments.
689 * block at the very bottom
690 */
610 */
691 var injectInlineForm = function(tr){
611 var injectInlineForm = function(tr){
692 if(!$(tr).hasClass('line')){
612 $tr = $(tr);
613 if(!$tr.hasClass('line')){
693 return
614 return
694 }
615 }
695 var submit_url = AJAX_COMMENT_URL;
616 var submit_url = AJAX_COMMENT_URL;
696 var _td = YUD.getElementsByClassName('code',null,tr)[0];
617 var $td = $tr.find('.code');
697 if($(tr).hasClass('form-open') || $(tr).hasClass('context') || $(_td).hasClass('no-comment')){
618 if($tr.hasClass('form-open') || $tr.hasClass('context') || $td.hasClass('no-comment')){
698 return
619 return
699 }
620 }
700 $(tr).addClass('form-open hl-comment');
621 $tr.addClass('form-open hl-comment');
701 var node = YUD.getElementsByClassName('full_f_path',null,tr.parentNode.parentNode.parentNode)[0];
622 var $node = $tr.parent().parent().parent().find('.full_f_path');
702 var f_path = YUD.getAttribute(node,'path');
623 var f_path = $node.attr('path');
703 var lineno = getLineNo(tr);
624 var lineno = _getLineNo(tr);
704 var form = createInlineForm(tr, f_path, lineno, submit_url);
625 var $form = _createInlineForm(tr, f_path, lineno, submit_url);
705
626
706 var parent = tr;
627 var $parent = $tr;
707 while (1){
628 while ($parent.next().hasClass('inline-comments')){
708 var n = parent.nextElementSibling;
629 var $parent = $parent.next();
709 // next element are comments !
710 if($(n).hasClass('inline-comments')){
711 parent = n;
712 }
713 else{
714 break;
715 }
716 }
630 }
717 YUD.insertAfter(form,parent);
631 $form.insertAfter($parent);
718 var f = YUD.get(form);
632 var $overlay = $form.find('.overlay');
719 var overlay = YUD.getElementsByClassName('overlay',null,f)[0];
633 var $inlineform = $form.find('.inline-form');
720 var _form = YUD.getElementsByClassName('inline-form',null,f)[0];
721
722 YUE.on(YUD.get(_form), 'submit',function(e){
723 YUE.preventDefault(e);
724
634
725 //ajax submit
635 $form.submit(function(e){
726 var text = YUD.get('text_'+lineno).value;
636 e.preventDefault();
727 var postData = {
728 'text':text,
729 'f_path':f_path,
730 'line':lineno
731 };
732
637
733 if(lineno === undefined){
638 if(lineno === undefined){
734 alert('missing line !');
639 alert('missing line !');
735 return
640 return
736 }
641 }
737 if(f_path === undefined){
642 if(f_path === undefined){
738 alert('missing file path !');
643 alert('missing file path !');
739 return
644 return
740 }
645 }
741
646
647 var text = $('#text_'+lineno).val();
742 if(text == ""){
648 if(text == ""){
743 return
649 return
744 }
650 }
745
651
746 var success = function(o){
652 if ($overlay.hasClass('overlay')){
747 YUD.removeClass(tr, 'form-open');
653 $overlay.css('width', $inlineform.offsetWidth + 'px');
748 removeInlineForm(f);
654 $overlay.css('height', $inlineform.offsetHeight + 'px');
749 var json_data = JSON.parse(o.responseText);
655 }
750 renderInlineComment(json_data);
656 $overlay.addClass('submitting');
751 };
752
657
753 if (YUD.hasClass(overlay,'overlay')){
658 var success = function(o){
754 var w = _form.offsetWidth;
659 $tr.removeClass('form-open');
755 var h = _form.offsetHeight;
660 $form.remove();
756 YUD.setStyle(overlay,'width',w+'px');
661 var json_data = JSON.parse(o.responseText);
757 YUD.setStyle(overlay,'height',h+'px');
662 _renderInlineComment(json_data);
758 }
663 };
759 YUD.addClass(overlay, 'submitting');
664 var postData = {
760
665 'text': text,
666 'f_path': f_path,
667 'line': lineno
668 };
761 ajaxPOST(submit_url, postData, success);
669 ajaxPOST(submit_url, postData, success);
762 });
670 });
763
671
764 YUE.on('preview-btn_'+lineno, 'click', function(e){
672 $('#preview-btn_'+lineno).click(function(e){
765 var _text = YUD.get('text_'+lineno).value;
673 var text = $('#text_'+lineno).val();
766 if(!_text){
674 if(!text){
767 return
675 return
768 }
676 }
769 var post_data = {'text': _text};
677 $('#preview-box_'+lineno).addClass('unloaded');
770 YUD.addClass('preview-box_'+lineno, 'unloaded');
678 $('#preview-box_'+lineno).html(_TM['Loading ...']);
771 YUD.get('preview-box_'+lineno).innerHTML = _TM['Loading ...'];
679 $('#edit-container_'+lineno).hide();
772 YUD.setStyle('edit-container_'+lineno, 'display', 'none');
680 $('#preview-container_'+lineno).show();
773 YUD.setStyle('preview-container_'+lineno, 'display', '');
774
681
775 var url = pyroutes.url('changeset_comment_preview', {'repo_name': REPO_NAME});
682 var url = pyroutes.url('changeset_comment_preview', {'repo_name': REPO_NAME});
776 ajaxPOST(url,post_data,function(o){
683 var post_data = {'text': text};
777 YUD.get('preview-box_'+lineno).innerHTML = o.responseText;
684 ajaxPOST(url, post_data, function(o){
778 YUD.removeClass('preview-box_'+lineno, 'unloaded');
685 $('#preview-box_'+lineno).html(o.responseText);
686 $('#preview-box_'+lineno).removeClass('unloaded');
779 })
687 })
780 })
688 })
781 YUE.on('edit-btn_'+lineno, 'click', function(e){
689 $('#edit-btn_'+lineno).click(function(e){
782 YUD.setStyle('edit-container_'+lineno, 'display', '');
690 $('#edit-container_'+lineno).show();
783 YUD.setStyle('preview-container_'+lineno, 'display', 'none');
691 $('#preview-container_'+lineno).hide();
784 })
692 })
785
693
786 setTimeout(function(){
694 setTimeout(function(){
787 // callbacks
695 // callbacks
788 tooltip_activate();
696 tooltip_activate();
789 MentionsAutoComplete('text_'+lineno, 'mentions_container_'+lineno,
697 MentionsAutoComplete('text_'+lineno, 'mentions_container_'+lineno,
790 _USERS_AC_DATA, _GROUPS_AC_DATA);
698 _USERS_AC_DATA, _GROUPS_AC_DATA);
791 var _e = YUD.get('text_'+lineno);
699 $('#text_'+lineno).focus();
792 if(_e){
793 _e.focus();
794 }
795 },10)
700 },10)
796 };
701 };
797
702
798 var deleteComment = function(comment_id){
703 var deleteComment = function(comment_id){
799 var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__',comment_id);
704 var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__',comment_id);
800 var postData = {'_method':'delete'};
705 var postData = {'_method':'delete'};
801 var success = function(o){
706 var success = function(o){
802 var n = YUD.get('comment-tr-'+comment_id);
707 var $deleted = $('#comment-tr-'+comment_id);
803 var root = prevElementSibling(prevElementSibling(n));
708 var $prev = $deleted.prev('tr');
804 n.parentNode.removeChild(n);
709 $deleted.remove();
805
710 _placeAddButton($prev);
806 // scann nodes, and attach add button to last one only for TR
807 // which are the inline comments
808 if(root && root.tagName == 'TR'){
809 placeAddButton(root);
810 }
811 }
711 }
812 ajaxPOST(url,postData,success);
712 ajaxPOST(url,postData,success);
813 }
713 }
814
714
815 var createInlineAddButton = function(tr){
715 var _getLineNo = function(tr) {
816
817 var label = TRANSLATION_MAP['Add another comment'];
818
819 var html_el = document.createElement('div');
820 YUD.addClass(html_el, 'add-comment');
821 html_el.innerHTML = '<span class="ui-btn">{0}</span>'.format(label);
822
823 var add = new YAHOO.util.Element(html_el);
824 add.on('click', function(e) {
825 injectInlineForm(tr);
826 });
827 return add;
828 };
829
830 var getLineNo = function(tr) {
831 var line;
716 var line;
832 var o = tr.children[0].id.split('_');
717 var o = $(tr).children()[0].id.split('_');
833 var n = tr.children[1].id.split('_');
718 var n = $(tr).children()[1].id.split('_');
834
719
835 if (n.length >= 2) {
720 if (n.length >= 2) {
836 line = n[n.length-1];
721 line = n[n.length-1];
837 } else if (o.length >= 2) {
722 } else if (o.length >= 2) {
838 line = o[o.length-1];
723 line = o[o.length-1];
839 }
724 }
840
725
841 return line
726 return line
842 };
727 };
843
728
844 var placeAddButton = function(target_tr){
729 var _placeAddButton = function($line_tr){
845 if(!target_tr){
730 var $tr = $line_tr;
846 return
731 while ($tr.next().hasClass('inline-comments')){
732 $tr.find('.add-comment').remove();
733 $tr = $tr.next();
847 }
734 }
848 var last_node = target_tr;
735 $tr.find('.add-comment').remove();
849 //scann
736 var label = TRANSLATION_MAP['Add another comment'];
850 while (1){
737 var $html_el = $('<div class="add-comment"><span class="ui-btn">{0}</span></div>'.format(label));
851 var n = last_node.nextElementSibling;
738 $html_el.click(function(e) {
852 // next element are comments !
739 injectInlineForm($line_tr);
853 if($(n).hasClass('inline-comments')){
740 });
854 last_node = n;
741 $tr.find('.comment').after($html_el);
855 //also remove the comment button from previous
742 };
856 var comment_add_buttons = YUD.getElementsByClassName('add-comment',null,last_node);
857 for(var i=0;i<comment_add_buttons.length;i++){
858 var b = comment_add_buttons[i];
859 b.parentNode.removeChild(b);
860 }
861 }
862 else{
863 break;
864 }
865 }
866
867 var add = createInlineAddButton(target_tr);
868 // get the comment div
869 var comment_block = YUD.getElementsByClassName('comment',null,last_node)[0];
870 // attach add button
871 YUD.insertAfter(add,comment_block);
872 }
873
743
874 /**
744 /**
875 * Places the inline comment into the changeset block in proper line position
745 * Places the inline comment into the changeset block in proper line position
876 */
746 */
877 var placeInline = function(target_container,lineno,html){
747 var _placeInline = function(target_id, lineno, html){
878 var lineid = "{0}_{1}".format(target_container,lineno);
748 var $td = $("#{0}_{1}".format(target_id, lineno));
879 var target_line = YUD.get(lineid);
880 var comment = new YAHOO.util.Element(tableTr('inline-comments',html))
881
749
882 // check if there are comments already !
750 // check if there are comments already !
883 var parent = target_line.parentNode;
751 var $line_tr = $td.parent(); // the tr
884 var root_parent = parent;
752 var $after_tr = $line_tr;
885 while (1){
753 while ($after_tr.next().hasClass('inline-comments')){
886 var n = parent.nextElementSibling;
754 $after_tr = $after_tr.next();
887 // next element are comments !
888 if($(n).hasClass('inline-comments')){
889 parent = n;
890 }
891 else{
892 break;
893 }
894 }
755 }
895 // put in the comment at the bottom
756 // put in the comment at the bottom
896 YUD.insertAfter(comment,parent);
757 $after_tr.after(_table_tr('inline-comments', html));
897
758
898 // scann nodes, and attach add button to last one
759 // scan nodes, and attach add button to last one
899 placeAddButton(root_parent);
760 _placeAddButton($line_tr);
900
901 return target_line;
902 }
761 }
903
762
904 /**
763 /**
905 * make a single inline comment and place it inside
764 * make a single inline comment and place it inside
906 */
765 */
907 var renderInlineComment = function(json_data){
766 var _renderInlineComment = function(json_data){
908 try{
767 var html = json_data['rendered_text'];
909 var html = json_data['rendered_text'];
768 var lineno = json_data['line_no'];
910 var lineno = json_data['line_no'];
769 var target_id = json_data['target_id'];
911 var target_id = json_data['target_id'];
770 _placeInline(target_id, lineno, html);
912 placeInline(target_id, lineno, html);
913 }catch(e){
914 console.log(e);
915 }
916 }
771 }
917
772
918 /**
773 /**
919 * Iterates over all the inlines, and places them inside proper blocks of data
774 * Iterates over all the inlines, and places them inside proper blocks of data
920 */
775 */
921 var renderInlineComments = function(file_comments){
776 var renderInlineComments = function(file_comments){
922 for (f in file_comments){
777 for (f in file_comments){
923 // holding all comments for a FILE
778 // holding all comments for a FILE
924 var box = file_comments[f];
779 var box = file_comments[f];
925
780
926 var target_id = YUD.getAttribute(box,'target_id');
781 var target_id = $(box).attr('target_id');
927 // actually comments with line numbers
782 // actual comments with line numbers
928 var comments = box.children;
783 var comments = box.children;
929 for(var i=0; i<comments.length; i++){
784 for(var i=0; i<comments.length; i++){
930 var data = {
785 var data = {
931 'rendered_text': comments[i].outerHTML,
786 'rendered_text': comments[i].outerHTML,
932 'line_no': YUD.getAttribute(comments[i],'line'),
787 'line_no': $(comments[i]).attr('line'),
933 'target_id': target_id
788 'target_id': target_id
934 }
789 }
935 renderInlineComment(data);
790 _renderInlineComment(data);
936 }
791 }
937 }
792 }
938 }
793 }
939
794
795 /* activate files.html stuff */
940 var fileBrowserListeners = function(current_url, node_list_url, url_base){
796 var fileBrowserListeners = function(current_url, node_list_url, url_base){
941 var current_url_branch = +"?branch=__BRANCH__";
797 var current_url_branch = "?branch=__BRANCH__";
942
798
943 $('#stay_at_branch').on('click',function(e){
799 $('#stay_at_branch').on('click',function(e){
944 if(e.target.checked){
800 if(e.currentTarget.checked){
945 var uri = current_url_branch;
801 var uri = current_url_branch;
946 uri = uri.replace('__BRANCH__',e.target.value);
802 uri = uri.replace('__BRANCH__',e.currentTarget.value);
947 window.location = uri;
803 window.location = uri;
948 }
804 }
949 else{
805 else{
950 window.location = current_url;
806 window.location = current_url;
951 }
807 }
952 })
808 })
953
809
954 var n_filter = YUD.get('node_filter');
810 var $node_filter = $('#node_filter');
955 var F = YAHOO.namespace('node_filter');
956
811
957 F.filterTimeout = null;
812 var filterTimeout = null;
958 var nodes = null;
813 var nodes = null;
959
814
960 F.initFilter = function(){
815 var initFilter = function(){
961 $('#node_filter_box_loading').css('display','');
816 $('#node_filter_box_loading').show();
962 $('#search_activate_id').css('display','none');
817 $('#search_activate_id').hide();
963 $('#add_node_id').css('display','none');
818 $('#add_node_id').hide();
964 YUC.initHeader('X-PARTIAL-XHR',true);
819 YUC.initHeader('X-PARTIAL-XHR',true);
965 YUC.asyncRequest('GET', node_list_url, {
820 YUC.asyncRequest('GET', node_list_url, {
966 success:function(o){
821 success:function(o){
967 nodes = JSON.parse(o.responseText).nodes;
822 nodes = JSON.parse(o.responseText).nodes;
968 $('#node_filter_box_loading').css('display','none');
823 $('#node_filter_box_loading').hide();
969 $('#node_filter_box').css('display','');
824 $('#node_filter_box').show();
970 n_filter.focus();
825 $node_filter.focus();
971 if(YUD.hasClass(n_filter,'init')){
826 if($node_filter.hasClass('init')){
972 n_filter.value = '';
827 $node_filter.val('');
973 YUD.removeClass(n_filter,'init');
828 $node_filter.removeClass('init');
974 }
829 }
975 },
830 },
976 failure:function(o){
831 failure:function(o){
977 console.log('failed to load');
832 console.log('failed to load');
978 }
833 }
979 },null);
834 },null);
980 }
835 }
981
836
982 F.updateFilter = function(e) {
837 var updateFilter = function(e) {
983 return function(){
838 return function(){
984 // Reset timeout
839 // Reset timeout
985 F.filterTimeout = null;
840 filterTimeout = null;
986 var query = e.target.value.toLowerCase();
841 var query = e.currentTarget.value.toLowerCase();
987 var match = [];
842 var match = [];
988 var matches = 0;
843 var matches = 0;
989 var matches_max = 20;
844 var matches_max = 20;
990 if (query != ""){
845 if (query != ""){
991 for(var i=0;i<nodes.length;i++){
846 for(var i=0;i<nodes.length;i++){
992 var pos = nodes[i].name.toLowerCase().indexOf(query)
847 var pos = nodes[i].name.toLowerCase().indexOf(query)
993 if(query && pos != -1){
848 if(query && pos != -1){
994 matches++
849 matches++
995 //show only certain amount to not kill browser
850 //show only certain amount to not kill browser
996 if (matches > matches_max){
851 if (matches > matches_max){
997 break;
852 break;
998 }
853 }
999
854
1000 var n = nodes[i].name;
855 var n = nodes[i].name;
1001 var t = nodes[i].type;
856 var t = nodes[i].type;
1002 var n_hl = n.substring(0,pos)
857 var n_hl = n.substring(0,pos)
1003 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
858 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
1004 +n.substring(pos+query.length)
859 +n.substring(pos+query.length)
1005 var new_url = url_base.replace('__FPATH__',n);
860 var new_url = url_base.replace('__FPATH__',n);
1006 match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,new_url,n_hl));
861 match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,new_url,n_hl));
1007 }
862 }
1008 if(match.length >= matches_max){
863 if(match.length >= matches_max){
1009 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['Search truncated']));
864 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['Search truncated']));
1010 }
865 }
1011 }
866 }
1012 }
867 }
1013 if(query != ""){
868 if(query != ""){
1014 $('#tbody').css('display','none');
869 $('#tbody').hide();
1015 $('#tbody_filtered').css('display','');
870 $('#tbody_filtered').show();
1016
871
1017 if (match.length==0){
872 if (match.length==0){
1018 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['No matching files']));
873 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['No matching files']));
1019 }
874 }
1020
875
1021 YUD.get('tbody_filtered').innerHTML = match.join("");
876 $('#tbody_filtered').html(match.join(""));
1022 }
877 }
1023 else{
878 else{
1024 $('#tbody').css('display','');
879 $('#tbody').show();
1025 $('#tbody_filtered').css('display','none');
880 $('#tbody_filtered').hide();
1026 }
881 }
1027 }
882 }
1028 };
883 };
1029
884
1030 YUE.on(YUD.get('filter_activate'),'click',function(){
885 $('#filter_activate').click(function(){
1031 F.initFilter();
886 initFilter();
1032 })
887 });
1033 YUE.on(n_filter,'click',function(){
888 $node_filter.click(function(){
1034 if(YUD.hasClass(n_filter,'init')){
889 if($node_filter.hasClass('init')){
1035 n_filter.value = '';
890 $node_filter.val('');
1036 YUD.removeClass(n_filter,'init');
891 $node_filter.removeClass('init');
1037 }
892 }
1038 });
893 });
1039 YUE.on(n_filter,'keyup',function(e){
894 $node_filter.keyup(function(e){
1040 clearTimeout(F.filterTimeout);
895 clearTimeout(filterTimeout);
1041 F.filterTimeout = setTimeout(F.updateFilter(e),600);
896 filterTimeout = setTimeout(updateFilter(e),600);
1042 });
897 });
1043 };
898 };
1044
899
1045
900
1046 var initCodeMirror = function(textAreadId,resetUrl){
901 var initCodeMirror = function(textarea_id, resetUrl){
1047 var myCodeMirror = CodeMirror.fromTextArea(YUD.get(textAreadId),{
902 var myCodeMirror = CodeMirror.fromTextArea($('#' + textarea_id)[0], {
1048 mode: "null",
903 mode: "null",
1049 lineNumbers:true,
904 lineNumbers: true,
1050 indentUnit: 4
905 indentUnit: 4
1051 });
906 });
1052 YUE.on('reset','click',function(e){
907 $('#reset').click(function(e){
1053 window.location=resetUrl
908 window.location=resetUrl;
1054 });
909 });
1055
910
1056 YUE.on('file_enable','click',function(){
911 $('#file_enable').click(function(){
1057 $('#editor_container').css('display','');
912 $('#editor_container').show();
1058 $('#upload_file_container').css('display','none');
913 $('#upload_file_container').hide();
1059 $('#filename_container').css('display','');
914 $('#filename_container').show();
1060 });
915 });
1061
916
1062 YUE.on('upload_file_enable','click',function(){
917 $('#upload_file_enable').click(function(){
1063 $('#editor_container').css('display','none');
918 $('#editor_container').hide();
1064 $('#upload_file_container').css('display','');
919 $('#upload_file_container').show();
1065 $('#filename_container').css('display','none');
920 $('#filename_container').hide();
1066 });
921 });
1067
922
1068 return myCodeMirror
923 return myCodeMirror
1069 };
924 };
1070
925
1071 var setCodeMirrorMode = function(codeMirrorInstance, mode) {
926 var setCodeMirrorMode = function(codeMirrorInstance, mode) {
1072 codeMirrorInstance.setOption("mode", mode);
927 codeMirrorInstance.setOption("mode", mode);
1073 CodeMirror.autoLoadMode(codeMirrorInstance, mode);
928 CodeMirror.autoLoadMode(codeMirrorInstance, mode);
1074 }
929 }
1075
930
1076
931
1077 var getIdentNode = function(n){
932 var _getIdentNode = function(n){
1078 //iterate thru nodes untill matched interesting node !
933 //iterate thrugh nodes until matching interesting node
1079
934
1080 if (typeof n == 'undefined'){
935 if (typeof n == 'undefined'){
1081 return -1
936 return -1
1082 }
937 }
1083
938
1084 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
939 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
1085 return n
940 return n
1086 }
941 }
1087 else{
942 else{
1088 return getIdentNode(n.parentNode);
943 return _getIdentNode(n.parentNode);
1089 }
944 }
1090 };
945 };
1091
946
947 /* generate links for multi line selects that can be shown by files.html page_highlights.
948 * This is a mouseup handler for hlcode from CodeHtmlFormatter and pygmentize */
1092 var getSelectionLink = function(e) {
949 var getSelectionLink = function(e) {
1093 //get selection from start/to nodes
950 //get selection from start/to nodes
1094 if (typeof window.getSelection != "undefined") {
951 if (typeof window.getSelection != "undefined") {
1095 s = window.getSelection();
952 s = window.getSelection();
1096
953
1097 from = getIdentNode(s.anchorNode);
954 from = _getIdentNode(s.anchorNode);
1098 till = getIdentNode(s.focusNode);
955 till = _getIdentNode(s.focusNode);
1099
956
1100 f_int = parseInt(from.id.replace('L',''));
957 f_int = parseInt(from.id.replace('L',''));
1101 t_int = parseInt(till.id.replace('L',''));
958 t_int = parseInt(till.id.replace('L',''));
1102
959
1103 if (f_int > t_int){
960 var yoffset = 35;
961 var ranges = [parseInt(from.id.replace('L','')), parseInt(till.id.replace('L',''))];
962 if (ranges[0] > ranges[1]){
1104 //highlight from bottom
963 //highlight from bottom
1105 offset = -35;
964 yoffset = -yoffset;
1106 ranges = [t_int,f_int];
965 ranges = [ranges[1], ranges[0]];
1107
1108 }
966 }
1109 else{
967 var $hl_div = $('div#linktt');
1110 //highligth from top
1111 offset = 35;
1112 ranges = [f_int,t_int];
1113 }
1114 // if we select more than 2 lines
968 // if we select more than 2 lines
1115 if (ranges[0] != ranges[1]){
969 if (ranges[0] != ranges[1]){
1116 if(YUD.get('linktt') == null){
970 if ($hl_div.length) {
1117 hl_div = document.createElement('div');
971 $hl_div.html('');
1118 hl_div.id = 'linktt';
972 } else {
973 $hl_div = $('<div id="linktt" class="hl-tip-box">');
974 $('body').prepend($hl_div);
1119 }
975 }
1120 hl_div.innerHTML = '';
1121
976
1122 anchor = '#L'+ranges[0]+'-'+ranges[1];
977 $hl_div.append($('<a>').html(_TM['Selection link']).attr('href', location.href.substring(0, location.href.indexOf('#')) + '#L' + ranges[0] + '-'+ranges[1]));
1123 var link = document.createElement('a');
978 xy = $(till).offset();
1124 link.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
979 $hl_div.css('top', (xy.top + yoffset) + 'px').css('left', xy.left + 'px');
1125 link.innerHTML = _TM['Selection link'];
980 $hl_div.show();
1126 hl_div.appendChild(link);
1127 YUD.get('body').appendChild(hl_div);
1128
1129 xy = YUD.getXY(till.id);
1130
1131 YUD.addClass('linktt', 'hl-tip-box');
1132 $('#linktt').css('top',xy[1]+offset+'px');
1133 $('#linktt').css('left',xy[0]+'px');
1134 $('#linktt').css('visibility','visible');
1135
1136 }
981 }
1137 else{
982 else{
1138 $('#linktt').css('visibility','hidden');
983 $hl_div.hide();
1139 }
984 }
1140 }
985 }
1141 };
986 };
1142
987
1143 var deleteNotification = function(url, notification_id,callbacks){
988 var deleteNotification = function(url, notification_id, callbacks){
1144 var callback = {
989 var callback = {
1145 success:function(o){
990 success:function(o){
1146 var obj = YUD.get(String("notification_"+notification_id));
991 $("#notification_"+notification_id).remove();
1147 if(obj.parentNode !== undefined){
1148 obj.parentNode.removeChild(obj);
1149 }
1150 _run_callbacks(callbacks);
992 _run_callbacks(callbacks);
1151 },
993 },
1152 failure:function(o){
994 failure:function(o){
1153 alert("error");
995 alert("error");
1154 },
996 },
1155 };
997 };
1156 var postData = '_method=delete';
998 var postData = '_method=delete';
1157 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
999 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
1158 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
1000 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
1159 callback, postData);
1001 callback, postData);
1160 };
1002 };
1161
1003
1162 var readNotification = function(url, notification_id,callbacks){
1004 var readNotification = function(url, notification_id, callbacks){
1163 var callback = {
1005 var callback = {
1164 success:function(o){
1006 success:function(o){
1165 var obj = YUD.get(String("notification_"+notification_id));
1007 var $obj = $("#notification_"+notification_id);
1166 YUD.removeClass(obj, 'unread');
1008 $obj.removeClass('unread');
1167 var r_button = YUD.getElementsByClassName('read-notification',null,obj.children[0])[0];
1009 $obj.find('.read-notification').remove();
1168
1169 if(r_button.parentNode !== undefined){
1170 r_button.parentNode.removeChild(r_button);
1171 }
1172 _run_callbacks(callbacks);
1010 _run_callbacks(callbacks);
1173 },
1011 },
1174 failure:function(o){
1012 failure:function(o){
1175 alert("error");
1013 alert("error");
1176 },
1014 },
1177 };
1015 };
1178 var postData = '_method=put';
1016 var postData = '_method=put';
1179 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
1017 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
1180 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
1018 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
1181 callback, postData);
1019 callback, postData);
1182 };
1020 };
1183
1021
1184 /** MEMBERS AUTOCOMPLETE WIDGET **/
1022 /** MEMBERS AUTOCOMPLETE WIDGET **/
1185
1023
1186 var MembersAutoComplete = function (divid, cont, users_list, groups_list) {
1024 var _MembersAutoComplete = function (divid, cont, users_list, groups_list) {
1187 var myUsers = users_list;
1025 var myUsers = users_list;
1188 var myGroups = groups_list;
1026 var myGroups = groups_list;
1189
1027
1190 // Define a custom search function for the DataSource of users
1028 // Define a custom search function for the DataSource of users
1191 var matchUsers = function (sQuery) {
1029 var matchUsers = function (sQuery) {
1192 // Case insensitive matching
1030 // Case insensitive matching
1193 var query = sQuery.toLowerCase();
1031 var query = sQuery.toLowerCase();
1194 var i = 0;
1032 var i = 0;
1195 var l = myUsers.length;
1033 var l = myUsers.length;
1196 var matches = [];
1034 var matches = [];
1197
1035
1198 // Match against each name of each contact
1036 // Match against each name of each contact
1199 for (; i < l; i++) {
1037 for (; i < l; i++) {
1200 contact = myUsers[i];
1038 contact = myUsers[i];
1201 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1039 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1202 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1040 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1203 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1041 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1204 matches[matches.length] = contact;
1042 matches[matches.length] = contact;
1205 }
1043 }
1206 }
1044 }
1207 return matches;
1045 return matches;
1208 };
1046 };
1209
1047
1210 // Define a custom search function for the DataSource of userGroups
1048 // Define a custom search function for the DataSource of userGroups
1211 var matchGroups = function (sQuery) {
1049 var matchGroups = function (sQuery) {
1212 // Case insensitive matching
1050 // Case insensitive matching
1213 var query = sQuery.toLowerCase();
1051 var query = sQuery.toLowerCase();
1214 var i = 0;
1052 var i = 0;
1215 var l = myGroups.length;
1053 var l = myGroups.length;
1216 var matches = [];
1054 var matches = [];
1217
1055
1218 // Match against each name of each contact
1056 // Match against each name of each contact
1219 for (; i < l; i++) {
1057 for (; i < l; i++) {
1220 matched_group = myGroups[i];
1058 matched_group = myGroups[i];
1221 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
1059 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
1222 matches[matches.length] = matched_group;
1060 matches[matches.length] = matched_group;
1223 }
1061 }
1224 }
1062 }
1225 return matches;
1063 return matches;
1226 };
1064 };
1227
1065
1228 //match all
1066 //match all
1229 var matchAll = function (sQuery) {
1067 var matchAll = function (sQuery) {
1230 u = matchUsers(sQuery);
1068 u = matchUsers(sQuery);
1231 g = matchGroups(sQuery);
1069 g = matchGroups(sQuery);
1232 return u.concat(g);
1070 return u.concat(g);
1233 };
1071 };
1234
1072
1235 // DataScheme for members
1073 // DataScheme for members
1236 var memberDS = new YAHOO.util.FunctionDataSource(matchAll);
1074 var memberDS = new YAHOO.util.FunctionDataSource(matchAll);
1237 memberDS.responseSchema = {
1075 memberDS.responseSchema = {
1238 fields: ["id", "fname", "lname", "nname", "grname", "grmembers", "gravatar_lnk"]
1076 fields: ["id", "fname", "lname", "nname", "grname", "grmembers", "gravatar_lnk"]
1239 };
1077 };
1240
1078
1241 // DataScheme for owner
1079 // DataScheme for owner
1242 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1080 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1243 ownerDS.responseSchema = {
1081 ownerDS.responseSchema = {
1244 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1082 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1245 };
1083 };
1246
1084
1247 // Instantiate AutoComplete for perms
1085 // Instantiate AutoComplete for perms
1248 var membersAC = new YAHOO.widget.AutoComplete(divid, cont, memberDS);
1086 var membersAC = new YAHOO.widget.AutoComplete(divid, cont, memberDS);
1249 membersAC.useShadow = false;
1087 membersAC.useShadow = false;
1250 membersAC.resultTypeList = false;
1088 membersAC.resultTypeList = false;
1251 membersAC.animVert = false;
1089 membersAC.animVert = false;
1252 membersAC.animHoriz = false;
1090 membersAC.animHoriz = false;
1253 membersAC.animSpeed = 0.1;
1091 membersAC.animSpeed = 0.1;
1254
1092
1255 // Instantiate AutoComplete for owner
1093 // Instantiate AutoComplete for owner
1256 var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS);
1094 var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS);
1257 ownerAC.useShadow = false;
1095 ownerAC.useShadow = false;
1258 ownerAC.resultTypeList = false;
1096 ownerAC.resultTypeList = false;
1259 ownerAC.animVert = false;
1097 ownerAC.animVert = false;
1260 ownerAC.animHoriz = false;
1098 ownerAC.animHoriz = false;
1261 ownerAC.animSpeed = 0.1;
1099 ownerAC.animSpeed = 0.1;
1262
1100
1263 // Helper highlight function for the formatter
1101 // Helper highlight function for the formatter
1264 var highlightMatch = function (full, snippet, matchindex) {
1102 var highlightMatch = function (full, snippet, matchindex) {
1265 return full.substring(0, matchindex)
1103 return full.substring(0, matchindex)
1266 + "<span class='match'>"
1104 + "<span class='match'>"
1267 + full.substr(matchindex, snippet.length)
1105 + full.substr(matchindex, snippet.length)
1268 + "</span>" + full.substring(matchindex + snippet.length);
1106 + "</span>" + full.substring(matchindex + snippet.length);
1269 };
1107 };
1270
1108
1271 // Custom formatter to highlight the matching letters
1109 // Custom formatter to highlight the matching letters
1272 var custom_formatter = function (oResultData, sQuery, sResultMatch) {
1110 var custom_formatter = function (oResultData, sQuery, sResultMatch) {
1273 var query = sQuery.toLowerCase();
1111 var query = sQuery.toLowerCase();
1274 var _gravatar = function(res, em, group){
1112 var _gravatar = function(res, em, group){
1275 if (group !== undefined){
1113 if (group !== undefined){
1276 em = '/images/icons/group.png'
1114 em = '/images/icons/group.png'
1277 }
1115 }
1278 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1116 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1279 return tmpl.format(em,res)
1117 return tmpl.format(em,res)
1280 }
1118 }
1281 // group
1119 // group
1282 if (oResultData.grname != undefined) {
1120 if (oResultData.grname != undefined) {
1283 var grname = oResultData.grname;
1121 var grname = oResultData.grname;
1284 var grmembers = oResultData.grmembers;
1122 var grmembers = oResultData.grmembers;
1285 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
1123 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
1286 var grprefix = "{0}: ".format(_TM['Group']);
1124 var grprefix = "{0}: ".format(_TM['Group']);
1287 var grsuffix = " (" + grmembers + " )";
1125 var grsuffix = " (" + grmembers + " )";
1288 var grsuffix = " ({0} {1})".format(grmembers, _TM['members']);
1126 var grsuffix = " ({0} {1})".format(grmembers, _TM['members']);
1289
1127
1290 if (grnameMatchIndex > -1) {
1128 if (grnameMatchIndex > -1) {
1291 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
1129 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
1292 }
1130 }
1293 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
1131 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
1294 // Users
1132 // Users
1295 } else if (oResultData.nname != undefined) {
1133 } else if (oResultData.nname != undefined) {
1296 var fname = oResultData.fname || "";
1134 var fname = oResultData.fname || "";
1297 var lname = oResultData.lname || "";
1135 var lname = oResultData.lname || "";
1298 var nname = oResultData.nname;
1136 var nname = oResultData.nname;
1299
1137
1300 // Guard against null value
1138 // Guard against null value
1301 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1139 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1302 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1140 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1303 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1141 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1304 displayfname, displaylname, displaynname;
1142 displayfname, displaylname, displaynname;
1305
1143
1306 if (fnameMatchIndex > -1) {
1144 if (fnameMatchIndex > -1) {
1307 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1145 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1308 } else {
1146 } else {
1309 displayfname = fname;
1147 displayfname = fname;
1310 }
1148 }
1311
1149
1312 if (lnameMatchIndex > -1) {
1150 if (lnameMatchIndex > -1) {
1313 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1151 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1314 } else {
1152 } else {
1315 displaylname = lname;
1153 displaylname = lname;
1316 }
1154 }
1317
1155
1318 if (nnameMatchIndex > -1) {
1156 if (nnameMatchIndex > -1) {
1319 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1157 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1320 } else {
1158 } else {
1321 displaynname = nname ? "(" + nname + ")" : "";
1159 displaynname = nname ? "(" + nname + ")" : "";
1322 }
1160 }
1323
1161
1324 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1162 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1325 } else {
1163 } else {
1326 return '';
1164 return '';
1327 }
1165 }
1328 };
1166 };
1329 membersAC.formatResult = custom_formatter;
1167 membersAC.formatResult = custom_formatter;
1330 ownerAC.formatResult = custom_formatter;
1168 ownerAC.formatResult = custom_formatter;
1331
1169
1332 var myHandler = function (sType, aArgs) {
1170 var myHandler = function (sType, aArgs) {
1333 var nextId = divid.split('perm_new_member_name_')[1];
1171 var nextId = divid.split('perm_new_member_name_')[1];
1334 var myAC = aArgs[0]; // reference back to the AC instance
1172 var myAC = aArgs[0]; // reference back to the AC instance
1335 var elLI = aArgs[1]; // reference to the selected LI element
1173 var elLI = aArgs[1]; // reference to the selected LI element
1336 var oData = aArgs[2]; // object literal of selected item's result data
1174 var oData = aArgs[2]; // object literal of selected item's result data
1337 //fill the autocomplete with value
1175 //fill the autocomplete with value
1338 if (oData.nname != undefined) {
1176 if (oData.nname != undefined) {
1339 //users
1177 //users
1340 myAC.getInputEl().value = oData.nname;
1178 myAC.getInputEl().value = oData.nname;
1341 YUD.get('perm_new_member_type_'+nextId).value = 'user';
1179 $('#perm_new_member_type_'+nextId).val('user');
1342 } else {
1180 } else {
1343 //groups
1181 //groups
1344 myAC.getInputEl().value = oData.grname;
1182 myAC.getInputEl().value = oData.grname;
1345 YUD.get('perm_new_member_type_'+nextId).value = 'users_group';
1183 $('#perm_new_member_type_'+nextId).val('users_group');
1346 }
1184 }
1347 };
1185 };
1348
1186
1349 membersAC.itemSelectEvent.subscribe(myHandler);
1187 membersAC.itemSelectEvent.subscribe(myHandler);
1350 if(ownerAC.itemSelectEvent){
1188 if(ownerAC.itemSelectEvent){
1351 ownerAC.itemSelectEvent.subscribe(myHandler);
1189 ownerAC.itemSelectEvent.subscribe(myHandler);
1352 }
1190 }
1353
1191
1354 return {
1192 return {
1355 memberDS: memberDS,
1193 memberDS: memberDS,
1356 ownerDS: ownerDS,
1194 ownerDS: ownerDS,
1357 membersAC: membersAC,
1195 membersAC: membersAC,
1358 ownerAC: ownerAC,
1196 ownerAC: ownerAC,
1359 };
1197 };
1360 }
1198 }
1361
1199
1362 var MentionsAutoComplete = function (divid, cont, users_list, groups_list) {
1200 var MentionsAutoComplete = function (divid, cont, users_list, groups_list) {
1363 var myUsers = users_list;
1201 var myUsers = users_list;
1364 var myGroups = groups_list;
1202 var myGroups = groups_list;
1365
1203
1366 // Define a custom search function for the DataSource of users
1204 // Define a custom search function for the DataSource of users
1367 var matchUsers = function (sQuery) {
1205 var matchUsers = function (sQuery) {
1368 var org_sQuery = sQuery;
1206 var org_sQuery = sQuery;
1369 if(this.mentionQuery == null){
1207 if(this.mentionQuery == null){
1370 return []
1208 return []
1371 }
1209 }
1372 sQuery = this.mentionQuery;
1210 sQuery = this.mentionQuery;
1373 // Case insensitive matching
1211 // Case insensitive matching
1374 var query = sQuery.toLowerCase();
1212 var query = sQuery.toLowerCase();
1375 var i = 0;
1213 var i = 0;
1376 var l = myUsers.length;
1214 var l = myUsers.length;
1377 var matches = [];
1215 var matches = [];
1378
1216
1379 // Match against each name of each contact
1217 // Match against each name of each contact
1380 for (; i < l; i++) {
1218 for (; i < l; i++) {
1381 contact = myUsers[i];
1219 contact = myUsers[i];
1382 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1220 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1383 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1221 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1384 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1222 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1385 matches[matches.length] = contact;
1223 matches[matches.length] = contact;
1386 }
1224 }
1387 }
1225 }
1388 return matches
1226 return matches
1389 };
1227 };
1390
1228
1391 //match all
1229 //match all
1392 var matchAll = function (sQuery) {
1230 var matchAll = function (sQuery) {
1393 u = matchUsers(sQuery);
1231 u = matchUsers(sQuery);
1394 return u
1232 return u
1395 };
1233 };
1396
1234
1397 // DataScheme for owner
1235 // DataScheme for owner
1398 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1236 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1399
1237
1400 ownerDS.responseSchema = {
1238 ownerDS.responseSchema = {
1401 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1239 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1402 };
1240 };
1403
1241
1404 // Instantiate AutoComplete for mentions
1242 // Instantiate AutoComplete for mentions
1405 var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1243 var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1406 ownerAC.useShadow = false;
1244 ownerAC.useShadow = false;
1407 ownerAC.resultTypeList = false;
1245 ownerAC.resultTypeList = false;
1408 ownerAC.suppressInputUpdate = true;
1246 ownerAC.suppressInputUpdate = true;
1409 ownerAC.animVert = false;
1247 ownerAC.animVert = false;
1410 ownerAC.animHoriz = false;
1248 ownerAC.animHoriz = false;
1411 ownerAC.animSpeed = 0.1;
1249 ownerAC.animSpeed = 0.1;
1412
1250
1413 // Helper highlight function for the formatter
1251 // Helper highlight function for the formatter
1414 var highlightMatch = function (full, snippet, matchindex) {
1252 var highlightMatch = function (full, snippet, matchindex) {
1415 return full.substring(0, matchindex)
1253 return full.substring(0, matchindex)
1416 + "<span class='match'>"
1254 + "<span class='match'>"
1417 + full.substr(matchindex, snippet.length)
1255 + full.substr(matchindex, snippet.length)
1418 + "</span>" + full.substring(matchindex + snippet.length);
1256 + "</span>" + full.substring(matchindex + snippet.length);
1419 };
1257 };
1420
1258
1421 // Custom formatter to highlight the matching letters
1259 // Custom formatter to highlight the matching letters
1422 ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1260 ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1423 var org_sQuery = sQuery;
1261 var org_sQuery = sQuery;
1424 if(this.dataSource.mentionQuery != null){
1262 if(this.dataSource.mentionQuery != null){
1425 sQuery = this.dataSource.mentionQuery;
1263 sQuery = this.dataSource.mentionQuery;
1426 }
1264 }
1427
1265
1428 var query = sQuery.toLowerCase();
1266 var query = sQuery.toLowerCase();
1429 var _gravatar = function(res, em, group){
1267 var _gravatar = function(res, em, group){
1430 if (group !== undefined){
1268 if (group !== undefined){
1431 em = '/images/icons/group.png'
1269 em = '/images/icons/group.png'
1432 }
1270 }
1433 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1271 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1434 return tmpl.format(em,res)
1272 return tmpl.format(em,res)
1435 }
1273 }
1436 if (oResultData.nname != undefined) {
1274 if (oResultData.nname != undefined) {
1437 var fname = oResultData.fname || "";
1275 var fname = oResultData.fname || "";
1438 var lname = oResultData.lname || "";
1276 var lname = oResultData.lname || "";
1439 var nname = oResultData.nname;
1277 var nname = oResultData.nname;
1440
1278
1441 // Guard against null value
1279 // Guard against null value
1442 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1280 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1443 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1281 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1444 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1282 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1445 displayfname, displaylname, displaynname;
1283 displayfname, displaylname, displaynname;
1446
1284
1447 if (fnameMatchIndex > -1) {
1285 if (fnameMatchIndex > -1) {
1448 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1286 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1449 } else {
1287 } else {
1450 displayfname = fname;
1288 displayfname = fname;
1451 }
1289 }
1452
1290
1453 if (lnameMatchIndex > -1) {
1291 if (lnameMatchIndex > -1) {
1454 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1292 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1455 } else {
1293 } else {
1456 displaylname = lname;
1294 displaylname = lname;
1457 }
1295 }
1458
1296
1459 if (nnameMatchIndex > -1) {
1297 if (nnameMatchIndex > -1) {
1460 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1298 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1461 } else {
1299 } else {
1462 displaynname = nname ? "(" + nname + ")" : "";
1300 displaynname = nname ? "(" + nname + ")" : "";
1463 }
1301 }
1464
1302
1465 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1303 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1466 } else {
1304 } else {
1467 return '';
1305 return '';
1468 }
1306 }
1469 };
1307 };
1470
1308
1471 if(ownerAC.itemSelectEvent){
1309 if(ownerAC.itemSelectEvent){
1472 ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1310 ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1473
1311
1474 var myAC = aArgs[0]; // reference back to the AC instance
1312 var myAC = aArgs[0]; // reference back to the AC instance
1475 var elLI = aArgs[1]; // reference to the selected LI element
1313 var elLI = aArgs[1]; // reference to the selected LI element
1476 var oData = aArgs[2]; // object literal of selected item's result data
1314 var oData = aArgs[2]; // object literal of selected item's result data
1477 //fill the autocomplete with value
1315 //fill the autocomplete with value
1478 if (oData.nname != undefined) {
1316 if (oData.nname != undefined) {
1479 //users
1317 //users
1480 //Replace the mention name with replaced
1318 //Replace the mention name with replaced
1481 var re = new RegExp();
1319 var re = new RegExp();
1482 var org = myAC.getInputEl().value;
1320 var org = myAC.getInputEl().value;
1483 var chunks = myAC.dataSource.chunks
1321 var chunks = myAC.dataSource.chunks
1484 // replace middle chunk(the search term) with actuall match
1322 // replace middle chunk(the search term) with actuall match
1485 chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery,
1323 chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery,
1486 '@'+oData.nname+' ');
1324 '@'+oData.nname+' ');
1487 myAC.getInputEl().value = chunks.join('')
1325 myAC.getInputEl().value = chunks.join('')
1488 YUD.get(myAC.getInputEl()).focus(); // Y U NO WORK !?
1326 myAC.getInputEl().focus(); // Y U NO WORK !?
1489 } else {
1327 } else {
1490 //groups
1328 //groups
1491 myAC.getInputEl().value = oData.grname;
1329 myAC.getInputEl().value = oData.grname;
1492 YUD.get('perm_new_member_type').value = 'users_group';
1330 $('#perm_new_member_type').val('users_group');
1493 }
1331 }
1494 });
1332 });
1495 }
1333 }
1496
1334
1497 // in this keybuffer we will gather current value of search !
1335 // in this keybuffer we will gather current value of search !
1498 // since we need to get this just when someone does `@` then we do the
1336 // since we need to get this just when someone does `@` then we do the
1499 // search
1337 // search
1500 ownerAC.dataSource.chunks = [];
1338 ownerAC.dataSource.chunks = [];
1501 ownerAC.dataSource.mentionQuery = null;
1339 ownerAC.dataSource.mentionQuery = null;
1502
1340
1503 ownerAC.get_mention = function(msg, max_pos) {
1341 ownerAC.get_mention = function(msg, max_pos) {
1504 var org = msg;
1342 var org = msg;
1505 var re = new RegExp('(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)$')
1343 var re = new RegExp('(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)$')
1506 var chunks = [];
1344 var chunks = [];
1507
1345
1508 // cut first chunk until curret pos
1346 // cut first chunk until curret pos
1509 var to_max = msg.substr(0, max_pos);
1347 var to_max = msg.substr(0, max_pos);
1510 var at_pos = Math.max(0,to_max.lastIndexOf('@')-1);
1348 var at_pos = Math.max(0,to_max.lastIndexOf('@')-1);
1511 var msg2 = to_max.substr(at_pos);
1349 var msg2 = to_max.substr(at_pos);
1512
1350
1513 chunks.push(org.substr(0,at_pos))// prefix chunk
1351 chunks.push(org.substr(0,at_pos))// prefix chunk
1514 chunks.push(msg2) // search chunk
1352 chunks.push(msg2) // search chunk
1515 chunks.push(org.substr(max_pos)) // postfix chunk
1353 chunks.push(org.substr(max_pos)) // postfix chunk
1516
1354
1517 // clean up msg2 for filtering and regex match
1355 // clean up msg2 for filtering and regex match
1518 var msg2 = msg2.lstrip(' ').lstrip('\n');
1356 var msg2 = msg2.lstrip(' ').lstrip('\n');
1519
1357
1520 if(re.test(msg2)){
1358 if(re.test(msg2)){
1521 var unam = re.exec(msg2)[1];
1359 var unam = re.exec(msg2)[1];
1522 return [unam, chunks];
1360 return [unam, chunks];
1523 }
1361 }
1524 return [null, null];
1362 return [null, null];
1525 };
1363 };
1526
1364
1527 if (ownerAC.textboxKeyUpEvent){
1365 if (ownerAC.textboxKeyUpEvent){
1528 ownerAC.textboxKeyUpEvent.subscribe(function(type, args){
1366 ownerAC.textboxKeyUpEvent.subscribe(function(type, args){
1529
1367
1530 var ac_obj = args[0];
1368 var ac_obj = args[0];
1531 var currentMessage = args[1];
1369 var currentMessage = args[1];
1532 var currentCaretPosition = args[0]._elTextbox.selectionStart;
1370 var currentCaretPosition = args[0]._elTextbox.selectionStart;
1533
1371
1534 var unam = ownerAC.get_mention(currentMessage, currentCaretPosition);
1372 var unam = ownerAC.get_mention(currentMessage, currentCaretPosition);
1535 var curr_search = null;
1373 var curr_search = null;
1536 if(unam[0]){
1374 if(unam[0]){
1537 curr_search = unam[0];
1375 curr_search = unam[0];
1538 }
1376 }
1539
1377
1540 ownerAC.dataSource.chunks = unam[1];
1378 ownerAC.dataSource.chunks = unam[1];
1541 ownerAC.dataSource.mentionQuery = curr_search;
1379 ownerAC.dataSource.mentionQuery = curr_search;
1542
1380
1543 })
1381 })
1544 }
1382 }
1545 return {
1383 return {
1546 ownerDS: ownerDS,
1384 ownerDS: ownerDS,
1547 ownerAC: ownerAC,
1385 ownerAC: ownerAC,
1548 };
1386 };
1549 }
1387 }
1550
1388
1551 var addReviewMember = function(id,fname,lname,nname,gravatar_link){
1389 var addReviewMember = function(id,fname,lname,nname,gravatar_link){
1552 var members = YUD.get('review_members');
1553 var tmpl = '<li id="reviewer_{2}">'+
1390 var tmpl = '<li id="reviewer_{2}">'+
1554 '<div class="reviewers_member">'+
1391 '<div class="reviewers_member">'+
1555 '<div class="gravatar"><img alt="gravatar" src="{0}"/> </div>'+
1392 '<div class="gravatar"><img alt="gravatar" src="{0}"/> </div>'+
1556 '<div style="float:left">{1}</div>'+
1393 '<div style="float:left">{1}</div>'+
1557 '<input type="hidden" value="{2}" name="review_members" />'+
1394 '<input type="hidden" value="{2}" name="review_members" />'+
1558 '<span class="delete_icon action_button" onclick="removeReviewMember({2})"></span>'+
1395 '<span class="delete_icon action_button" onclick="removeReviewMember({2})"></span>'+
1559 '</div>'+
1396 '</div>'+
1560 '</li>' ;
1397 '</li>' ;
1561 var displayname = "{0} {1} ({2})".format(fname,lname,nname);
1398 var displayname = "{0} {1} ({2})".format(fname,lname,nname);
1562 var element = tmpl.format(gravatar_link,displayname,id);
1399 var element = tmpl.format(gravatar_link,displayname,id);
1563 // check if we don't have this ID already in
1400 // check if we don't have this ID already in
1564 var ids = [];
1401 var ids = [];
1565 var _els = YUQ('#review_members li');
1402 $('#review_members').find('li').each(function() {
1566 for (el in _els){
1403 ids.push(this.id);
1567 ids.push(_els[el].id)
1404 });
1568 }
1569 if(ids.indexOf('reviewer_'+id) == -1){
1405 if(ids.indexOf('reviewer_'+id) == -1){
1570 //only add if it's not there
1406 //only add if it's not there
1571 members.innerHTML += element;
1407 $('#review_members').append(element);
1572 }
1408 }
1573 }
1409 }
1574
1410
1575 var removeReviewMember = function(reviewer_id, repo_name, pull_request_id){
1411 var removeReviewMember = function(reviewer_id, repo_name, pull_request_id){
1576 var el = YUD.get('reviewer_{0}'.format(reviewer_id));
1412 $('#reviewer_{0}'.format(reviewer_id)).remove();
1577 if (el.parentNode !== undefined){
1578 el.parentNode.removeChild(el);
1579 }
1580 }
1413 }
1581
1414
1415 /* handle "Save Changes" of addReviewMember and removeReviewMember on PR */
1582 var updateReviewers = function(reviewers_ids, repo_name, pull_request_id){
1416 var updateReviewers = function(reviewers_ids, repo_name, pull_request_id){
1583 if (reviewers_ids === undefined){
1417 if (reviewers_ids === undefined){
1584 var reviewers_ids = [];
1418 var reviewers_ids = [];
1585 var ids = YUQ('#review_members input');
1419 $('#review_members').find('input').each(function(){
1586 for(var i=0; i<ids.length;i++){
1420 reviewers_ids.push(this.value);
1587 var id = ids[i].value
1421 });
1588 reviewers_ids.push(id);
1589 }
1590 }
1422 }
1591 var url = pyroutes.url('pullrequest_update', {"repo_name":repo_name,
1423 var url = pyroutes.url('pullrequest_update', {"repo_name":repo_name,
1592 "pull_request_id": pull_request_id});
1424 "pull_request_id": pull_request_id});
1593 var postData = {'_method':'put',
1425 var postData = {'_method':'put',
1594 'reviewers_ids': reviewers_ids};
1426 'reviewers_ids': reviewers_ids};
1595 var success = function(o){
1427 var success = function(o){
1596 window.location.reload();
1428 window.location.reload();
1597 }
1429 }
1598 ajaxPOST(url,postData,success);
1430 ajaxPOST(url,postData,success);
1599 }
1431 }
1600
1432
1433 /* activate auto completion of users and groups ... but only used for users as PR reviewers */
1601 var PullRequestAutoComplete = function (divid, cont, users_list, groups_list) {
1434 var PullRequestAutoComplete = function (divid, cont, users_list, groups_list) {
1602 var myUsers = users_list;
1435 var myUsers = users_list;
1603 var myGroups = groups_list;
1436 var myGroups = groups_list;
1604
1437
1605 // Define a custom search function for the DataSource of users
1438 // Define a custom search function for the DataSource of users
1606 var matchUsers = function (sQuery) {
1439 var matchUsers = function (sQuery) {
1607 // Case insensitive matching
1440 // Case insensitive matching
1608 var query = sQuery.toLowerCase();
1441 var query = sQuery.toLowerCase();
1609 var i = 0;
1442 var i = 0;
1610 var l = myUsers.length;
1443 var l = myUsers.length;
1611 var matches = [];
1444 var matches = [];
1612
1445
1613 // Match against each name of each contact
1446 // Match against each name of each contact
1614 for (; i < l; i++) {
1447 for (; i < l; i++) {
1615 contact = myUsers[i];
1448 contact = myUsers[i];
1616 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1449 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
1617 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1450 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
1618 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1451 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
1619 matches[matches.length] = contact;
1452 matches[matches.length] = contact;
1620 }
1453 }
1621 }
1454 }
1622 return matches;
1455 return matches;
1623 };
1456 };
1624
1457
1625 // Define a custom search function for the DataSource of userGroups
1458 // Define a custom search function for the DataSource of userGroups
1626 var matchGroups = function (sQuery) {
1459 var matchGroups = function (sQuery) {
1627 // Case insensitive matching
1460 // Case insensitive matching
1628 var query = sQuery.toLowerCase();
1461 var query = sQuery.toLowerCase();
1629 var i = 0;
1462 var i = 0;
1630 var l = myGroups.length;
1463 var l = myGroups.length;
1631 var matches = [];
1464 var matches = [];
1632
1465
1633 // Match against each name of each contact
1466 // Match against each name of each contact
1634 for (; i < l; i++) {
1467 for (; i < l; i++) {
1635 matched_group = myGroups[i];
1468 matched_group = myGroups[i];
1636 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
1469 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
1637 matches[matches.length] = matched_group;
1470 matches[matches.length] = matched_group;
1638 }
1471 }
1639 }
1472 }
1640 return matches;
1473 return matches;
1641 };
1474 };
1642
1475
1643 //match all
1476 //match all
1644 var matchAll = function (sQuery) {
1477 var matchAll = function (sQuery) {
1645 u = matchUsers(sQuery);
1478 u = matchUsers(sQuery);
1646 return u
1479 return u
1647 };
1480 };
1648
1481
1649 // DataScheme for owner
1482 // DataScheme for owner
1650 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1483 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
1651
1484
1652 ownerDS.responseSchema = {
1485 ownerDS.responseSchema = {
1653 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1486 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
1654 };
1487 };
1655
1488
1656 // Instantiate AutoComplete for mentions
1489 // Instantiate AutoComplete for mentions
1657 var reviewerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1490 var reviewerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
1658 reviewerAC.useShadow = false;
1491 reviewerAC.useShadow = false;
1659 reviewerAC.resultTypeList = false;
1492 reviewerAC.resultTypeList = false;
1660 reviewerAC.suppressInputUpdate = true;
1493 reviewerAC.suppressInputUpdate = true;
1661 reviewerAC.animVert = false;
1494 reviewerAC.animVert = false;
1662 reviewerAC.animHoriz = false;
1495 reviewerAC.animHoriz = false;
1663 reviewerAC.animSpeed = 0.1;
1496 reviewerAC.animSpeed = 0.1;
1664
1497
1665 // Helper highlight function for the formatter
1498 // Helper highlight function for the formatter
1666 var highlightMatch = function (full, snippet, matchindex) {
1499 var highlightMatch = function (full, snippet, matchindex) {
1667 return full.substring(0, matchindex)
1500 return full.substring(0, matchindex)
1668 + "<span class='match'>"
1501 + "<span class='match'>"
1669 + full.substr(matchindex, snippet.length)
1502 + full.substr(matchindex, snippet.length)
1670 + "</span>" + full.substring(matchindex + snippet.length);
1503 + "</span>" + full.substring(matchindex + snippet.length);
1671 };
1504 };
1672
1505
1673 // Custom formatter to highlight the matching letters
1506 // Custom formatter to highlight the matching letters
1674 reviewerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1507 reviewerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
1675 var org_sQuery = sQuery;
1508 var org_sQuery = sQuery;
1676 if(this.dataSource.mentionQuery != null){
1509 if(this.dataSource.mentionQuery != null){
1677 sQuery = this.dataSource.mentionQuery;
1510 sQuery = this.dataSource.mentionQuery;
1678 }
1511 }
1679
1512
1680 var query = sQuery.toLowerCase();
1513 var query = sQuery.toLowerCase();
1681 var _gravatar = function(res, em, group){
1514 var _gravatar = function(res, em, group){
1682 if (group !== undefined){
1515 if (group !== undefined){
1683 em = '/images/icons/group.png'
1516 em = '/images/icons/group.png'
1684 }
1517 }
1685 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1518 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
1686 return tmpl.format(em,res)
1519 return tmpl.format(em,res)
1687 }
1520 }
1688 if (oResultData.nname != undefined) {
1521 if (oResultData.nname != undefined) {
1689 var fname = oResultData.fname || "";
1522 var fname = oResultData.fname || "";
1690 var lname = oResultData.lname || "";
1523 var lname = oResultData.lname || "";
1691 var nname = oResultData.nname;
1524 var nname = oResultData.nname;
1692
1525
1693 // Guard against null value
1526 // Guard against null value
1694 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1527 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
1695 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1528 lnameMatchIndex = lname.toLowerCase().indexOf(query),
1696 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1529 nnameMatchIndex = nname.toLowerCase().indexOf(query),
1697 displayfname, displaylname, displaynname;
1530 displayfname, displaylname, displaynname;
1698
1531
1699 if (fnameMatchIndex > -1) {
1532 if (fnameMatchIndex > -1) {
1700 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1533 displayfname = highlightMatch(fname, query, fnameMatchIndex);
1701 } else {
1534 } else {
1702 displayfname = fname;
1535 displayfname = fname;
1703 }
1536 }
1704
1537
1705 if (lnameMatchIndex > -1) {
1538 if (lnameMatchIndex > -1) {
1706 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1539 displaylname = highlightMatch(lname, query, lnameMatchIndex);
1707 } else {
1540 } else {
1708 displaylname = lname;
1541 displaylname = lname;
1709 }
1542 }
1710
1543
1711 if (nnameMatchIndex > -1) {
1544 if (nnameMatchIndex > -1) {
1712 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1545 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
1713 } else {
1546 } else {
1714 displaynname = nname ? "(" + nname + ")" : "";
1547 displaynname = nname ? "(" + nname + ")" : "";
1715 }
1548 }
1716
1549
1717 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1550 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
1718 } else {
1551 } else {
1719 return '';
1552 return '';
1720 }
1553 }
1721 };
1554 };
1722
1555
1723 //members cache to catch duplicates
1556 //members cache to catch duplicates
1724 reviewerAC.dataSource.cache = [];
1557 reviewerAC.dataSource.cache = [];
1725 // hack into select event
1558 // hack into select event
1726 if(reviewerAC.itemSelectEvent){
1559 if(reviewerAC.itemSelectEvent){
1727 reviewerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1560 reviewerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
1728
1561
1729 var myAC = aArgs[0]; // reference back to the AC instance
1562 var myAC = aArgs[0]; // reference back to the AC instance
1730 var elLI = aArgs[1]; // reference to the selected LI element
1563 var elLI = aArgs[1]; // reference to the selected LI element
1731 var oData = aArgs[2]; // object literal of selected item's result data
1564 var oData = aArgs[2]; // object literal of selected item's result data
1732
1565
1733 //fill the autocomplete with value
1566 //fill the autocomplete with value
1734
1735 if (oData.nname != undefined) {
1567 if (oData.nname != undefined) {
1736 addReviewMember(oData.id, oData.fname, oData.lname, oData.nname,
1568 addReviewMember(oData.id, oData.fname, oData.lname, oData.nname,
1737 oData.gravatar_lnk);
1569 oData.gravatar_lnk);
1738 myAC.dataSource.cache.push(oData.id);
1570 myAC.dataSource.cache.push(oData.id);
1739 YUD.get('user').value = ''
1571 $('#user').val('');
1740 }
1572 }
1741 });
1573 });
1742 }
1574 }
1743 return {
1744 ownerDS: ownerDS,
1745 reviewerAC: reviewerAC,
1746 };
1747 }
1575 }
1748
1576
1749 /**
1577 /**
1750 * QUICK REPO MENU
1578 * Activate .quick_repo_menu
1751 */
1579 */
1752 var quick_repo_menu = function(){
1580 var quick_repo_menu = function(){
1753 YUE.on(YUQ('.quick_repo_menu'),'mouseenter',function(e){
1581 $(".quick_repo_menu").mouseenter(function(e) {
1754 var menu = e.currentTarget.firstElementChild.firstElementChild;
1582 var $menu = $(e.currentTarget).children().first().children().first();
1755 if(YUD.hasClass(menu,'hidden')){
1583 if($menu.hasClass('hidden')){
1756 YUD.replaceClass(e.currentTarget,'hidden', 'active');
1584 $menu.removeClass('hidden').addClass('active');
1757 YUD.replaceClass(menu, 'hidden', 'active');
1585 $(e.currentTarget).removeClass('hidden').addClass('active');
1758 }
1586 }
1759 })
1587 })
1760 YUE.on(YUQ('.quick_repo_menu'),'mouseleave',function(e){
1588 $(".quick_repo_menu").mouseleave(function(e) {
1761 var menu = e.currentTarget.firstElementChild.firstElementChild;
1589 var $menu = $(e.currentTarget).children().first().children().first();
1762 if(YUD.hasClass(menu,'active')){
1590 if($menu.hasClass('active')){
1763 YUD.replaceClass(e.currentTarget, 'active', 'hidden');
1591 $menu.removeClass('active').addClass('hidden');
1764 YUD.replaceClass(menu, 'active', 'hidden');
1592 $(e.currentTarget).removeClass('active').addClass('hidden');
1765 }
1593 }
1766 })
1594 })
1767 };
1595 };
1768
1596
1769
1597
1770 /**
1598 /**
1771 * TABLE SORTING
1599 * TABLE SORTING
1772 */
1600 */
1773
1601
1774 // returns a node from given html;
1602 // returns a node from given html;
1775 var fromHTML = function(html){
1603 var fromHTML = function(html){
1776 var _html = document.createElement('element');
1604 var _html = document.createElement('element');
1777 _html.innerHTML = html;
1605 _html.innerHTML = html;
1778 return _html;
1606 return _html;
1779 }
1607 }
1780
1608
1781 var get_rev = function(node){
1609 var get_rev = function(node){
1782 var n = node.firstElementChild.firstElementChild;
1610 var n = node.firstElementChild.firstElementChild;
1783
1611
1784 if (n===null){
1612 if (n===null){
1785 return -1
1613 return -1
1786 }
1614 }
1787 else{
1615 else{
1788 out = n.firstElementChild.innerHTML.split(':')[0].replace('r','');
1616 out = n.firstElementChild.innerHTML.split(':')[0].replace('r','');
1789 return parseInt(out);
1617 return parseInt(out);
1790 }
1618 }
1791 }
1619 }
1792
1620
1793 var get_date = function(node){
1621 var get_date = function(node){
1794 var date_ = YUD.getAttribute(node.firstElementChild,'date');
1622 return $(node.firstElementChild).attr('date');
1795 return date_
1796 }
1623 }
1797
1624
1798 var revisionSort = function(a, b, desc, field) {
1625 var revisionSort = function(a, b, desc, field) {
1799 var a_ = fromHTML(a.getData(field));
1626 var a_ = get_rev(fromHTML(a.getData(field)));
1800 var b_ = fromHTML(b.getData(field));
1627 var b_ = get_rev(fromHTML(b.getData(field)));
1801
1628
1802 // extract revisions from string nodes
1629 return YAHOO.util.Sort.compare(a_, b_, desc);
1803 a_ = get_rev(a_)
1804 b_ = get_rev(b_)
1805
1806 var comp = YAHOO.util.Sort.compare;
1807 var compState = comp(a_, b_, desc);
1808 return compState;
1809 };
1630 };
1810
1631
1811 var ageSort = function(a, b, desc, field) {
1632 var ageSort = function(a, b, desc, field) {
1812 var a_ = fromHTML(a.getData(field));
1633 // data is like: <span class="tooltip" date="2014-06-04 18:18:55.325474" title="Wed, 04 Jun 2014 18:18:55">1 day and 23 hours ago</span>
1813 var b_ = fromHTML(b.getData(field));
1634 var a_ = $(a.getData(field)).attr('date');
1635 var b_ = $(b.getData(field)).attr('date');
1814
1636
1815 // extract name from table
1637 return YAHOO.util.Sort.compare(a_, b_, desc);
1816 a_ = get_date(a_)
1817 b_ = get_date(b_)
1818
1819 var comp = YAHOO.util.Sort.compare;
1820 var compState = comp(a_, b_, desc);
1821 return compState;
1822 };
1638 };
1823
1639
1824 var lastLoginSort = function(a, b, desc, field) {
1640 var lastLoginSort = function(a, b, desc, field) {
1825 var a_ = a.getData('last_login_raw') || 0;
1641 var a_ = a.getData('last_login_raw') || 0;
1826 var b_ = b.getData('last_login_raw') || 0;
1642 var b_ = b.getData('last_login_raw') || 0;
1827
1643
1828 var comp = YAHOO.util.Sort.compare;
1644 return YAHOO.util.Sort.compare(a_, b_, desc);
1829 var compState = comp(a_, b_, desc);
1830 return compState;
1831 };
1645 };
1832
1646
1833 var nameSort = function(a, b, desc, field) {
1647 var nameSort = function(a, b, desc, field) {
1834 var a_ = a.getData('raw_name') || 0;
1648 var a_ = a.getData('raw_name') || 0;
1835 var b_ = b.getData('raw_name') || 0;
1649 var b_ = b.getData('raw_name') || 0;
1836
1650
1837 var comp = YAHOO.util.Sort.compare;
1651 return YAHOO.util.Sort.compare(a_, b_, desc);
1838 var compState = comp(a_, b_, desc);
1839 return compState;
1840 };
1652 };
1841
1653
1842 var dateSort = function(a, b, desc, field) {
1654 var dateSort = function(a, b, desc, field) {
1843 var a_ = fromHTML(a.getData(field));
1655 var a_ = get_date(fromHTML(a.getData(field)));
1844 var b_ = fromHTML(b.getData(field));
1656 var b_ = get_date(fromHTML(b.getData(field)));
1845
1657
1846 // extract name from table
1658 return YAHOO.util.Sort.compare(a_, b_, desc);
1847 a_ = get_date(a_)
1848 b_ = get_date(b_)
1849
1850 var comp = YAHOO.util.Sort.compare;
1851 var compState = comp(a_, b_, desc);
1852 return compState;
1853 };
1659 };
1854
1660
1855 var addPermAction = function(_html, users_list, groups_list){
1661 var addPermAction = function(_html, users_list, groups_list){
1856 var elmts = YUD.getElementsByClassName('last_new_member');
1662 var $last_node = $('.last_new_member').last(); // empty tr between last and add
1857 var last_node = elmts[elmts.length-1];
1663 var next_id = $('.new_members').length;
1858 if (last_node){
1664 $last_node.before($('<tr class="new_members">').append(_html.format(next_id)));
1859 var next_id = (YUD.getElementsByClassName('new_members')).length;
1665 _MembersAutoComplete("perm_new_member_name_"+next_id,
1860 _html = _html.format(next_id);
1666 "perm_container_"+next_id, users_list, groups_list);
1861 last_node.innerHTML = _html;
1862 YUD.setStyle(last_node, 'display', '');
1863 YUD.removeClass(last_node, 'last_new_member');
1864 MembersAutoComplete("perm_new_member_name_"+next_id,
1865 "perm_container_"+next_id, users_list, groups_list);
1866 //create new last NODE
1867 var el = document.createElement('tr');
1868 el.id = 'add_perm_input';
1869 YUD.addClass(el,'last_new_member');
1870 YUD.addClass(el,'new_members');
1871 YUD.insertAfter(el, last_node);
1872 }
1873 }
1667 }
1874
1668
1875 function ajaxActionRevokePermission(url, obj_id, obj_type, field_id, extra_data) {
1669 function ajaxActionRevokePermission(url, obj_id, obj_type, field_id, extra_data) {
1876 var callback = {
1670 var callback = {
1877 success: function (o) {
1671 success: function (o) {
1878 var tr = YUD.get(String(field_id));
1672 $('#' + field_id).remove();
1879 tr.parentNode.removeChild(tr);
1880 },
1673 },
1881 failure: function (o) {
1674 failure: function (o) {
1882 alert(_TM['Failed to remoke permission'] + ": " + o.status);
1675 alert(_TM['Failed to remoke permission'] + ": " + o.status);
1883 },
1676 },
1884 };
1677 };
1885 query_params = {
1678 query_params = {
1886 '_method': 'delete'
1679 '_method': 'delete'
1887 }
1680 }
1888 // put extra data into POST
1681 // put extra data into POST
1889 if (extra_data !== undefined && (typeof extra_data === 'object')){
1682 if (extra_data !== undefined && (typeof extra_data === 'object')){
1890 for(k in extra_data){
1683 for(k in extra_data){
1891 query_params[k] = extra_data[k];
1684 query_params[k] = extra_data[k];
1892 }
1685 }
1893 }
1686 }
1894
1687
1895 if (obj_type=='user'){
1688 if (obj_type=='user'){
1896 query_params['user_id'] = obj_id;
1689 query_params['user_id'] = obj_id;
1897 query_params['obj_type'] = 'user';
1690 query_params['obj_type'] = 'user';
1898 }
1691 }
1899 else if (obj_type=='user_group'){
1692 else if (obj_type=='user_group'){
1900 query_params['user_group_id'] = obj_id;
1693 query_params['user_group_id'] = obj_id;
1901 query_params['obj_type'] = 'user_group';
1694 query_params['obj_type'] = 'user_group';
1902 }
1695 }
1903
1696
1904 var request = YAHOO.util.Connect.asyncRequest('POST', url, callback,
1697 var request = YAHOO.util.Connect.asyncRequest('POST', url, callback,
1905 toQueryString(query_params));
1698 _toQueryString(query_params));
1906 };
1699 };
1907
1700
1908 /* Multi selectors */
1701 /* Multi selectors */
1909
1702
1910 var MultiSelectWidget = function(selected_id, available_id, form_id){
1703 var MultiSelectWidget = function(selected_id, available_id, form_id){
1911 //definition of containers ID's
1704 var $availableselect = $('#' + available_id);
1912 var selected_container = selected_id;
1705 var $selectedselect = $('#' + selected_id);
1913 var available_container = available_id;
1914
1915 //temp container for selected storage.
1916 var cache = new Array();
1917 var av_cache = new Array();
1918 var c = YUD.get(selected_container);
1919 var ac = YUD.get(available_container);
1920
1921 //get only selected options for further fullfilment
1922 for(var i = 0;node =c.options[i];i++){
1923 if(node.selected){
1924 //push selected to my temp storage left overs :)
1925 cache.push(node);
1926 }
1927 }
1928
1929 //get all available options to cache
1930 for(var i = 0;node =ac.options[i];i++){
1931 //push selected to my temp storage left overs :)
1932 av_cache.push(node);
1933 }
1934
1935 //fill available only with those not in chosen
1936 ac.options.length=0;
1937 tmp_cache = new Array();
1938
1706
1939 for(var i = 0;node = av_cache[i];i++){
1707 //fill available only with those not in selected
1940 var add = true;
1708 var $selectedoptions = $selectedselect.children('option');
1941 for(var i2 = 0;node_2 = cache[i2];i2++){
1709 $availableselect.children('option').filter(function(i, e){
1942 if(node.value == node_2.value){
1710 for(var j = 0, node; node = $selectedoptions[j]; j++){
1943 add=false;
1711 if(node.value == e.value){
1944 break;
1712 return true;
1945 }
1946 }
1947 if(add){
1948 tmp_cache.push(new Option(node.text, node.value, false, false));
1949 }
1950 }
1951
1952 for(var i = 0;node = tmp_cache[i];i++){
1953 ac.options[i] = node;
1954 }
1955
1956 function prompts_action_callback(e){
1957
1958 var chosen = YUD.get(selected_container);
1959 var available = YUD.get(available_container);
1960
1961 //get checked and unchecked options from field
1962 function get_checked(from_field){
1963 //temp container for storage.
1964 var sel_cache = new Array();
1965 var oth_cache = new Array();
1966
1967 for(var i = 0;node = from_field.options[i];i++){
1968 if(node.selected){
1969 //push selected fields :)
1970 sel_cache.push(node);
1971 }
1972 else{
1973 oth_cache.push(node)
1974 }
1713 }
1975 }
1714 }
1976
1715 return false;
1977 return [sel_cache,oth_cache]
1716 }).remove();
1978 }
1979
1980 //fill the field with given options
1981 function fill_with(field,options){
1982 //clear firtst
1983 field.options.length=0;
1984 for(var i = 0;node = options[i];i++){
1985 field.options[i]=new Option(node.text, node.value,
1986 false, false);
1987 }
1988
1989 }
1990 //adds to current field
1991 function add_to(field,options){
1992 for(var i = 0;node = options[i];i++){
1993 field.appendChild(new Option(node.text, node.value,
1994 false, false));
1995 }
1996 }
1997
1717
1998 // add action
1718 $('#add_element').click(function(e){
1999 if (this.id=='add_element'){
1719 $selectedselect.append($availableselect.children('option:selected'));
2000 var c = get_checked(available);
1720 });
2001 add_to(chosen,c[0]);
1721 $('#remove_element').click(function(e){
2002 fill_with(available,c[1]);
1722 $availableselect.append($selectedselect.children('option:selected'));
2003 }
1723 });
2004 // remove action
1724 $('#add_all_elements').click(function(e){
2005 if (this.id=='remove_element'){
1725 $selectedselect.append($availableselect.children('option'));
2006 var c = get_checked(chosen);
1726 });
2007 add_to(available,c[0]);
1727 $('#remove_all_elements').click(function(e){
2008 fill_with(chosen,c[1]);
1728 $availableselect.append($selectedselect.children('option'));
2009 }
1729 });
2010 // add all elements
2011 if(this.id=='add_all_elements'){
2012 for(var i=0; node = available.options[i];i++){
2013 chosen.appendChild(new Option(node.text,
2014 node.value, false, false));
2015 }
2016 available.options.length = 0;
2017 }
2018 //remove all elements
2019 if(this.id=='remove_all_elements'){
2020 for(var i=0; node = chosen.options[i];i++){
2021 available.appendChild(new Option(node.text,
2022 node.value, false, false));
2023 }
2024 chosen.options.length = 0;
2025 }
2026
1730
2027 }
1731 $('#'+form_id).submit(function(){
2028
1732 $selectedselect.children('option').each(function(i, e){
2029 YUE.addListener(['add_element','remove_element',
1733 e.selected = 'selected';
2030 'add_all_elements','remove_all_elements'],'click',
1734 });
2031 prompts_action_callback)
2032 if (form_id !== undefined) {
2033 YUE.addListener(form_id,'submit',function(){
2034 var chosen = YUD.get(selected_container);
2035 for (var i = 0; i < chosen.options.length; i++) {
2036 chosen.options[i].selected = 'selected';
2037 }
2038 });
1735 });
2039 }
2040 }
1736 }
2041
1737
2042 // custom paginator
1738 // custom paginator
2043 var YUI_paginator = function(links_per_page, containers){
1739 var YUI_paginator = function(links_per_page, containers){
2044
1740
2045 (function () {
1741 (function () {
2046
1742
2047 var Paginator = YAHOO.widget.Paginator,
1743 var Paginator = YAHOO.widget.Paginator,
2048 l = YAHOO.lang,
1744 l = YAHOO.lang,
2049 setId = YAHOO.util.Dom.generateId;
1745 setId = YAHOO.util.Dom.generateId;
2050
1746
2051 Paginator.ui.MyFirstPageLink = function (p) {
1747 Paginator.ui.MyFirstPageLink = function (p) {
2052 this.paginator = p;
1748 this.paginator = p;
2053
1749
2054 p.subscribe('recordOffsetChange',this.update,this,true);
1750 p.subscribe('recordOffsetChange',this.update,this,true);
2055 p.subscribe('rowsPerPageChange',this.update,this,true);
1751 p.subscribe('rowsPerPageChange',this.update,this,true);
2056 p.subscribe('totalRecordsChange',this.update,this,true);
1752 p.subscribe('totalRecordsChange',this.update,this,true);
2057 p.subscribe('destroy',this.destroy,this,true);
1753 p.subscribe('destroy',this.destroy,this,true);
2058
1754
2059 // TODO: make this work
1755 // TODO: make this work
2060 p.subscribe('firstPageLinkLabelChange',this.update,this,true);
1756 p.subscribe('firstPageLinkLabelChange',this.update,this,true);
2061 p.subscribe('firstPageLinkClassChange',this.update,this,true);
1757 p.subscribe('firstPageLinkClassChange',this.update,this,true);
2062 };
1758 };
2063
1759
2064 Paginator.ui.MyFirstPageLink.init = function (p) {
1760 Paginator.ui.MyFirstPageLink.init = function (p) {
2065 p.setAttributeConfig('firstPageLinkLabel', {
1761 p.setAttributeConfig('firstPageLinkLabel', {
2066 value : 1,
1762 value : 1,
2067 validator : l.isString
1763 validator : l.isString
2068 });
1764 });
2069 p.setAttributeConfig('firstPageLinkClass', {
1765 p.setAttributeConfig('firstPageLinkClass', {
2070 value : 'yui-pg-first',
1766 value : 'yui-pg-first',
2071 validator : l.isString
1767 validator : l.isString
2072 });
1768 });
2073 p.setAttributeConfig('firstPageLinkTitle', {
1769 p.setAttributeConfig('firstPageLinkTitle', {
2074 value : 'First Page',
1770 value : 'First Page',
2075 validator : l.isString
1771 validator : l.isString
2076 });
1772 });
2077 };
1773 };
2078
1774
2079 // Instance members and methods
1775 // Instance members and methods
2080 Paginator.ui.MyFirstPageLink.prototype = {
1776 Paginator.ui.MyFirstPageLink.prototype = {
2081 current : null,
1777 current : null,
2082 leftmost_page: null,
1778 leftmost_page: null,
2083 rightmost_page: null,
1779 rightmost_page: null,
2084 link : null,
1780 link : null,
2085 span : null,
1781 span : null,
2086 dotdot : null,
1782 dotdot : null,
2087 getPos : function(cur_page, max_page, items){
1783 getPos : function(cur_page, max_page, items){
2088 var edge = parseInt(items / 2) + 1;
1784 var edge = parseInt(items / 2) + 1;
2089 if (cur_page <= edge){
1785 if (cur_page <= edge){
2090 var radius = Math.max(parseInt(items / 2), items - cur_page);
1786 var radius = Math.max(parseInt(items / 2), items - cur_page);
2091 }
1787 }
2092 else if ((max_page - cur_page) < edge) {
1788 else if ((max_page - cur_page) < edge) {
2093 var radius = (items - 1) - (max_page - cur_page);
1789 var radius = (items - 1) - (max_page - cur_page);
2094 }
1790 }
2095 else{
1791 else{
2096 var radius = parseInt(items / 2);
1792 var radius = parseInt(items / 2);
2097 }
1793 }
2098
1794
2099 var left = Math.max(1, (cur_page - (radius)))
1795 var left = Math.max(1, (cur_page - (radius)))
2100 var right = Math.min(max_page, cur_page + (radius))
1796 var right = Math.min(max_page, cur_page + (radius))
2101 return [left, cur_page, right]
1797 return [left, cur_page, right]
2102 },
1798 },
2103 render : function (id_base) {
1799 render : function (id_base) {
2104 var p = this.paginator,
1800 var p = this.paginator,
2105 c = p.get('firstPageLinkClass'),
1801 c = p.get('firstPageLinkClass'),
2106 label = p.get('firstPageLinkLabel'),
1802 label = p.get('firstPageLinkLabel'),
2107 title = p.get('firstPageLinkTitle');
1803 title = p.get('firstPageLinkTitle');
2108
1804
2109 this.link = document.createElement('a');
1805 this.link = document.createElement('a');
2110 this.span = document.createElement('span');
1806 this.span = document.createElement('span');
2111 YUD.setStyle(this.span, 'display', 'none');
1807 $(this.span).hide();
2112
1808
2113 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
1809 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
2114 this.leftmost_page = _pos[0];
1810 this.leftmost_page = _pos[0];
2115 this.rightmost_page = _pos[2];
1811 this.rightmost_page = _pos[2];
2116
1812
2117 setId(this.link, id_base + '-first-link');
1813 setId(this.link, id_base + '-first-link');
2118 this.link.href = '#';
1814 this.link.href = '#';
2119 this.link.className = c;
1815 this.link.className = c;
2120 this.link.innerHTML = label;
1816 this.link.innerHTML = label;
2121 this.link.title = title;
1817 this.link.title = title;
2122 YAHOO.util.Event.on(this.link,'click',this.onClick,this,true);
1818 YUE.on(this.link,'click',this.onClick,this,true);
2123
1819
2124 setId(this.span, id_base + '-first-span');
1820 setId(this.span, id_base + '-first-span');
2125 this.span.className = c;
1821 this.span.className = c;
2126 this.span.innerHTML = label;
1822 this.span.innerHTML = label;
2127
1823
2128 this.current = p.getCurrentPage() > 1 ? this.link : this.span;
1824 this.current = p.getCurrentPage() > 1 ? this.link : this.span;
2129 return this.current;
1825 return this.current;
2130 },
1826 },
2131 update : function (e) {
1827 update : function (e) {
2132 var p = this.paginator;
1828 var p = this.paginator;
2133 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
1829 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
2134 this.leftmost_page = _pos[0];
1830 this.leftmost_page = _pos[0];
2135 this.rightmost_page = _pos[2];
1831 this.rightmost_page = _pos[2];
2136
1832
2137 if (e && e.prevValue === e.newValue) {
1833 if (e && e.prevValue === e.newValue) {
2138 return;
1834 return;
2139 }
1835 }
2140
1836
2141 var par = this.current ? this.current.parentNode : null;
1837 var par = this.current ? this.current.parentNode : null;
2142 if (this.leftmost_page > 1) {
1838 if (this.leftmost_page > 1) {
2143 if (par && this.current === this.span) {
1839 if (par && this.current === this.span) {
2144 par.replaceChild(this.link,this.current);
1840 par.replaceChild(this.link,this.current);
2145 this.current = this.link;
1841 this.current = this.link;
2146 }
1842 }
2147 } else {
1843 } else {
2148 if (par && this.current === this.link) {
1844 if (par && this.current === this.link) {
2149 par.replaceChild(this.span,this.current);
1845 par.replaceChild(this.span,this.current);
2150 this.current = this.span;
1846 this.current = this.span;
2151 }
1847 }
2152 }
1848 }
2153 },
1849 },
2154 destroy : function () {
1850 destroy : function () {
2155 YAHOO.util.Event.purgeElement(this.link);
1851 YUE.purgeElement(this.link);
2156 this.current.parentNode.removeChild(this.current);
1852 this.current.parentNode.removeChild(this.current);
2157 this.link = this.span = null;
1853 this.link = this.span = null;
2158 },
1854 },
2159 onClick : function (e) {
1855 onClick : function (e) {
2160 YAHOO.util.Event.stopEvent(e);
1856 YUE.stopEvent(e);
2161 this.paginator.setPage(1);
1857 this.paginator.setPage(1);
2162 }
1858 }
2163 };
1859 };
2164
1860
2165 })();
1861 })();
2166
1862
2167 (function () {
1863 (function () {
2168
1864
2169 var Paginator = YAHOO.widget.Paginator,
1865 var Paginator = YAHOO.widget.Paginator,
2170 l = YAHOO.lang,
1866 l = YAHOO.lang,
2171 setId = YAHOO.util.Dom.generateId;
1867 setId = YAHOO.util.Dom.generateId;
2172
1868
2173 Paginator.ui.MyLastPageLink = function (p) {
1869 Paginator.ui.MyLastPageLink = function (p) {
2174 this.paginator = p;
1870 this.paginator = p;
2175
1871
2176 p.subscribe('recordOffsetChange',this.update,this,true);
1872 p.subscribe('recordOffsetChange',this.update,this,true);
2177 p.subscribe('rowsPerPageChange',this.update,this,true);
1873 p.subscribe('rowsPerPageChange',this.update,this,true);
2178 p.subscribe('totalRecordsChange',this.update,this,true);
1874 p.subscribe('totalRecordsChange',this.update,this,true);
2179 p.subscribe('destroy',this.destroy,this,true);
1875 p.subscribe('destroy',this.destroy,this,true);
2180
1876
2181 // TODO: make this work
1877 // TODO: make this work
2182 p.subscribe('lastPageLinkLabelChange',this.update,this,true);
1878 p.subscribe('lastPageLinkLabelChange',this.update,this,true);
2183 p.subscribe('lastPageLinkClassChange', this.update,this,true);
1879 p.subscribe('lastPageLinkClassChange', this.update,this,true);
2184 };
1880 };
2185
1881
2186 Paginator.ui.MyLastPageLink.init = function (p) {
1882 Paginator.ui.MyLastPageLink.init = function (p) {
2187 p.setAttributeConfig('lastPageLinkLabel', {
1883 p.setAttributeConfig('lastPageLinkLabel', {
2188 value : -1,
1884 value : -1,
2189 validator : l.isString
1885 validator : l.isString
2190 });
1886 });
2191 p.setAttributeConfig('lastPageLinkClass', {
1887 p.setAttributeConfig('lastPageLinkClass', {
2192 value : 'yui-pg-last',
1888 value : 'yui-pg-last',
2193 validator : l.isString
1889 validator : l.isString
2194 });
1890 });
2195 p.setAttributeConfig('lastPageLinkTitle', {
1891 p.setAttributeConfig('lastPageLinkTitle', {
2196 value : 'Last Page',
1892 value : 'Last Page',
2197 validator : l.isString
1893 validator : l.isString
2198 });
1894 });
2199
1895
2200 };
1896 };
2201
1897
2202 Paginator.ui.MyLastPageLink.prototype = {
1898 Paginator.ui.MyLastPageLink.prototype = {
2203
1899
2204 current : null,
1900 current : null,
2205 leftmost_page: null,
1901 leftmost_page: null,
2206 rightmost_page: null,
1902 rightmost_page: null,
2207 link : null,
1903 link : null,
2208 span : null,
1904 span : null,
2209 dotdot : null,
1905 dotdot : null,
2210 na : null,
1906 na : null,
2211 getPos : function(cur_page, max_page, items){
1907 getPos : function(cur_page, max_page, items){
2212 var edge = parseInt(items / 2) + 1;
1908 var edge = parseInt(items / 2) + 1;
2213 if (cur_page <= edge){
1909 if (cur_page <= edge){
2214 var radius = Math.max(parseInt(items / 2), items - cur_page);
1910 var radius = Math.max(parseInt(items / 2), items - cur_page);
2215 }
1911 }
2216 else if ((max_page - cur_page) < edge) {
1912 else if ((max_page - cur_page) < edge) {
2217 var radius = (items - 1) - (max_page - cur_page);
1913 var radius = (items - 1) - (max_page - cur_page);
2218 }
1914 }
2219 else{
1915 else{
2220 var radius = parseInt(items / 2);
1916 var radius = parseInt(items / 2);
2221 }
1917 }
2222
1918
2223 var left = Math.max(1, (cur_page - (radius)))
1919 var left = Math.max(1, (cur_page - (radius)))
2224 var right = Math.min(max_page, cur_page + (radius))
1920 var right = Math.min(max_page, cur_page + (radius))
2225 return [left, cur_page, right]
1921 return [left, cur_page, right]
2226 },
1922 },
2227 render : function (id_base) {
1923 render : function (id_base) {
2228 var p = this.paginator,
1924 var p = this.paginator,
2229 c = p.get('lastPageLinkClass'),
1925 c = p.get('lastPageLinkClass'),
2230 label = p.get('lastPageLinkLabel'),
1926 label = p.get('lastPageLinkLabel'),
2231 last = p.getTotalPages(),
1927 last = p.getTotalPages(),
2232 title = p.get('lastPageLinkTitle');
1928 title = p.get('lastPageLinkTitle');
2233
1929
2234 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
1930 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
2235 this.leftmost_page = _pos[0];
1931 this.leftmost_page = _pos[0];
2236 this.rightmost_page = _pos[2];
1932 this.rightmost_page = _pos[2];
2237
1933
2238 this.link = document.createElement('a');
1934 this.link = document.createElement('a');
2239 this.span = document.createElement('span');
1935 this.span = document.createElement('span');
2240 YUD.setStyle(this.span, 'display', 'none');
1936 $(this.span).hide();
2241
1937
2242 this.na = this.span.cloneNode(false);
1938 this.na = this.span.cloneNode(false);
2243
1939
2244 setId(this.link, id_base + '-last-link');
1940 setId(this.link, id_base + '-last-link');
2245 this.link.href = '#';
1941 this.link.href = '#';
2246 this.link.className = c;
1942 this.link.className = c;
2247 this.link.innerHTML = label;
1943 this.link.innerHTML = label;
2248 this.link.title = title;
1944 this.link.title = title;
2249 YAHOO.util.Event.on(this.link,'click',this.onClick,this,true);
1945 YUE.on(this.link,'click',this.onClick,this,true);
2250
1946
2251 setId(this.span, id_base + '-last-span');
1947 setId(this.span, id_base + '-last-span');
2252 this.span.className = c;
1948 this.span.className = c;
2253 this.span.innerHTML = label;
1949 this.span.innerHTML = label;
2254
1950
2255 setId(this.na, id_base + '-last-na');
1951 setId(this.na, id_base + '-last-na');
2256
1952
2257 if (this.rightmost_page < p.getTotalPages()){
1953 if (this.rightmost_page < p.getTotalPages()){
2258 this.current = this.link;
1954 this.current = this.link;
2259 }
1955 }
2260 else{
1956 else{
2261 this.current = this.span;
1957 this.current = this.span;
2262 }
1958 }
2263
1959
2264 this.current.innerHTML = p.getTotalPages();
1960 this.current.innerHTML = p.getTotalPages();
2265 return this.current;
1961 return this.current;
2266 },
1962 },
2267
1963
2268 update : function (e) {
1964 update : function (e) {
2269 var p = this.paginator;
1965 var p = this.paginator;
2270
1966
2271 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
1967 var _pos = this.getPos(p.getCurrentPage(), p.getTotalPages(), 5);
2272 this.leftmost_page = _pos[0];
1968 this.leftmost_page = _pos[0];
2273 this.rightmost_page = _pos[2];
1969 this.rightmost_page = _pos[2];
2274
1970
2275 if (e && e.prevValue === e.newValue) {
1971 if (e && e.prevValue === e.newValue) {
2276 return;
1972 return;
2277 }
1973 }
2278
1974
2279 var par = this.current ? this.current.parentNode : null,
1975 var par = this.current ? this.current.parentNode : null,
2280 after = this.link;
1976 after = this.link;
2281 if (par) {
1977 if (par) {
2282
1978
2283 // only show the last page if the rightmost one is
1979 // only show the last page if the rightmost one is
2284 // lower, so we don't have doubled entries at the end
1980 // lower, so we don't have doubled entries at the end
2285 if (!(this.rightmost_page < p.getTotalPages())){
1981 if (!(this.rightmost_page < p.getTotalPages())){
2286 after = this.span
1982 after = this.span
2287 }
1983 }
2288
1984
2289 if (this.current !== after) {
1985 if (this.current !== after) {
2290 par.replaceChild(after,this.current);
1986 par.replaceChild(after,this.current);
2291 this.current = after;
1987 this.current = after;
2292 }
1988 }
2293 }
1989 }
2294 this.current.innerHTML = this.paginator.getTotalPages();
1990 this.current.innerHTML = this.paginator.getTotalPages();
2295
1991
2296 },
1992 },
2297 destroy : function () {
1993 destroy : function () {
2298 YAHOO.util.Event.purgeElement(this.link);
1994 YUE.purgeElement(this.link);
2299 this.current.parentNode.removeChild(this.current);
1995 this.current.parentNode.removeChild(this.current);
2300 this.link = this.span = null;
1996 this.link = this.span = null;
2301 },
1997 },
2302 onClick : function (e) {
1998 onClick : function (e) {
2303 YAHOO.util.Event.stopEvent(e);
1999 YUE.stopEvent(e);
2304 this.paginator.setPage(this.paginator.getTotalPages());
2000 this.paginator.setPage(this.paginator.getTotalPages());
2305 }
2001 }
2306 };
2002 };
2307
2003
2308 })();
2004 })();
2309
2005
2310 var pagi = new YAHOO.widget.Paginator({
2006 var pagi = new YAHOO.widget.Paginator({
2311 rowsPerPage: links_per_page,
2007 rowsPerPage: links_per_page,
2312 alwaysVisible: false,
2008 alwaysVisible: false,
2313 template : "{PreviousPageLink} {MyFirstPageLink} {PageLinks} {MyLastPageLink} {NextPageLink}",
2009 template : "{PreviousPageLink} {MyFirstPageLink} {PageLinks} {MyLastPageLink} {NextPageLink}",
2314 pageLinks: 5,
2010 pageLinks: 5,
2315 containerClass: 'pagination-wh',
2011 containerClass: 'pagination-wh',
2316 currentPageClass: 'pager_curpage',
2012 currentPageClass: 'pager_curpage',
2317 pageLinkClass: 'pager_link',
2013 pageLinkClass: 'pager_link',
2318 nextPageLinkLabel: '&gt;',
2014 nextPageLinkLabel: '&gt;',
2319 previousPageLinkLabel: '&lt;',
2015 previousPageLinkLabel: '&lt;',
2320 containers:containers
2016 containers:containers
2321 })
2017 })
2322
2018
2323 return pagi
2019 return pagi
2324 }
2020 }
2325
2021
2326
2022
2327 // global hooks after DOM is loaded
2023 // global hooks after DOM is loaded
2328
2024
2329 YUE.onDOMReady(function(){
2025 $(document).ready(function(){
2330 YUE.on(YUQ('.diff-collapse-button'), 'click', function(e){
2026 $('.diff-collapse-button').click(function(e) {
2331 var button = e.currentTarget;
2027 var $button = $(e.currentTarget);
2332 var t = YUD.get(button).getAttribute('target');
2028 var $target = $('#' + $button.attr('target'));
2333 console.log(t);
2029 if($target.hasClass('hidden')){
2334 if(YUD.hasClass(t, 'hidden')){
2030 $target.removeClass('hidden');
2335 YUD.removeClass(t, 'hidden');
2031 $button.html("&uarr; {0} &uarr;".format(_TM['Collapse diff']));
2336 YUD.get(button).innerHTML = "&uarr; {0} &uarr;".format(_TM['Collapse diff']);
2337 }
2032 }
2338 else if(!YUD.hasClass(t, 'hidden')){
2033 else if(!$target.hasClass('hidden')){
2339 YUD.addClass(t, 'hidden');
2034 $target.addClass('hidden');
2340 YUD.get(button).innerHTML = "&darr; {0} &darr;".format(_TM['Expand diff']);
2035 $button.html("&darr; {0} &darr;".format(_TM['Expand diff']));
2341 }
2036 }
2342 });
2037 });
2343 });
2038 });
General Comments 0
You need to be logged in to leave comments. Login now