##// END OF EJS Templates
templates: use bootstrap grid system for centered panels (login page etc.)...
domruf -
r7149:919cebd1 default
parent child Browse files
Show More
@@ -1,931 +1,926 b''
1 body {
1 body {
2 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
2 background: url("../images/background.png") repeat scroll 0 0 #B0B0B0;
3 }
3 }
4
4
5 /* pseude content that should not be selected or copied by the user */
5 /* pseude content that should not be selected or copied by the user */
6 [data-pseudo-content]:before {
6 [data-pseudo-content]:before {
7 content: attr(data-pseudo-content);
7 content: attr(data-pseudo-content);
8 }
8 }
9
9
10 /* class for texts where newlines should be preserved, for very light-weight ascii art markup (like pull request descriptions) */
10 /* class for texts where newlines should be preserved, for very light-weight ascii art markup (like pull request descriptions) */
11 .formatted-fixed {
11 .formatted-fixed {
12 white-space: pre-wrap;
12 white-space: pre-wrap;
13 }
13 }
14
14
15 /* use monospace for changeset hashes */
15 /* use monospace for changeset hashes */
16 .changeset_hash {
16 .changeset_hash {
17 font-family: @font-family-monospace;
17 font-family: @font-family-monospace;
18 }
18 }
19
19
20 /* Note: class 'icon-empty' or 'icon-gravatar' can be used to get icon-ish styling without an actual glyph */
20 /* Note: class 'icon-empty' or 'icon-gravatar' can be used to get icon-ish styling without an actual glyph */
21 i[class^='icon-empty'],
21 i[class^='icon-empty'],
22 i[class^='icon-gravatar'] {
22 i[class^='icon-gravatar'] {
23 background-repeat: no-repeat;
23 background-repeat: no-repeat;
24 background-position: center;
24 background-position: center;
25 display: inline-block;
25 display: inline-block;
26 min-width: 16px;
26 min-width: 16px;
27 min-height: 16px;
27 min-height: 16px;
28 margin: -2px 0 -4px 0;
28 margin: -2px 0 -4px 0;
29 }
29 }
30
30
31 .inline-comments-general.show-general-status .hidden.general-only {
31 .inline-comments-general.show-general-status .hidden.general-only {
32 display: block !important;
32 display: block !important;
33 }
33 }
34 .truncate {
34 .truncate {
35 white-space: nowrap;
35 white-space: nowrap;
36 overflow: hidden;
36 overflow: hidden;
37 text-overflow: ellipsis;
37 text-overflow: ellipsis;
38 -o-text-overflow: ellipsis;
38 -o-text-overflow: ellipsis;
39 -ms-text-overflow: ellipsis;
39 -ms-text-overflow: ellipsis;
40 }
40 }
41 .truncate.autoexpand:hover {
41 .truncate.autoexpand:hover {
42 overflow: visible;
42 overflow: visible;
43 }
43 }
44
44
45 /* show comment anchors when hovering over panel-heading */
45 /* show comment anchors when hovering over panel-heading */
46 a.permalink {
46 a.permalink {
47 visibility: hidden;
47 visibility: hidden;
48 }
48 }
49 .panel-heading:hover .permalink {
49 .panel-heading:hover .permalink {
50 visibility: visible;
50 visibility: visible;
51 }
51 }
52
52
53 .navbar-inverse {
53 .navbar-inverse {
54 border: none;
54 border: none;
55 }
55 }
56
56
57 /* logo */
57 /* logo */
58 nav.navbar.mainmenu > .navbar-header > .navbar-brand {
58 nav.navbar.mainmenu > .navbar-header > .navbar-brand {
59 font-size: 20px;
59 font-size: 20px;
60 padding-top: 12px;
60 padding-top: 12px;
61 > .branding:before {
61 > .branding:before {
62 content: "";
62 content: "";
63 display: inline-block;
63 display: inline-block;
64 margin-right: .2em;
64 margin-right: .2em;
65 background-image: url(@kallithea-logo-url);
65 background-image: url(@kallithea-logo-url);
66 width: @kallithea-logo-width;
66 width: @kallithea-logo-width;
67 height: @kallithea-logo-height;
67 height: @kallithea-logo-height;
68 margin-bottom: -@kallithea-logo-bottom;
68 margin-bottom: -@kallithea-logo-bottom;
69 margin-top: -12px;
69 margin-top: -12px;
70 }
70 }
71 }
71 }
72
72
73 /* code highlighting */
73 /* code highlighting */
74 /* don't use bootstrap style for code blocks */
74 /* don't use bootstrap style for code blocks */
75 .code-highlighttable pre {
75 .code-highlighttable pre {
76 background: inherit;
76 background: inherit;
77 border: 0;
77 border: 0;
78 }
78 }
79
79
80 /* every direct child of a panel, that is not .panel-heading, should auto
80 /* every direct child of a panel, that is not .panel-heading, should auto
81 * overflow to prevent overflowing of elements like text boxes and tables */
81 * overflow to prevent overflowing of elements like text boxes and tables */
82 .panel > :not(.panel-heading){
82 .panel > :not(.panel-heading){
83 overflow-x: auto;
83 overflow-x: auto;
84 min-height: 0.01%;
84 min-height: 0.01%;
85 }
85 }
86
86
87 /* allow other exceptions to automatic overflow-x */
87 /* allow other exceptions to automatic overflow-x */
88 .panel > .overflow-x-visible {
88 .panel > .overflow-x-visible {
89 overflow-x: visible;
89 overflow-x: visible;
90 }
90 }
91
91
92 /* margin below top level panels */
92 /* margin below top level panels */
93 #main > .panel {
93 #main > .panel {
94 margin-bottom: @kallithea-panel-margin;
94 margin-bottom: @kallithea-panel-margin;
95 }
95 }
96
96
97 /* search highlighting */
97 /* search highlighting */
98 div.search-code-body pre .match {
98 div.search-code-body pre .match {
99 background-color: @highlight-color;
99 background-color: @highlight-color;
100 }
100 }
101 div.search-code-body pre .break {
101 div.search-code-body pre .break {
102 background-color: @highlight-line-color;
102 background-color: @highlight-line-color;
103 width: 100%;
103 width: 100%;
104 display: block;
104 display: block;
105 }
105 }
106
106
107 /* use @alert-danger-text for form error messages and .alert-danger for the input element */
107 /* use @alert-danger-text for form error messages and .alert-danger for the input element */
108 .form-group .error-message {
108 .form-group .error-message {
109 color: @alert-danger-text;
109 color: @alert-danger-text;
110 display: inline-block;
110 display: inline-block;
111 padding-top: 5px;
111 padding-top: 5px;
112 &:empty{
112 &:empty{
113 display: none;
113 display: none;
114 }
114 }
115 }
115 }
116 input.error {
116 input.error {
117 .alert-danger;
117 .alert-danger;
118 }
118 }
119
119
120 /* datatable */
120 /* datatable */
121 .dataTables_left {
121 .dataTables_left {
122 .pull-left;
122 .pull-left;
123 }
123 }
124 .dataTables_right {
124 .dataTables_right {
125 .pull-right;
125 .pull-right;
126 }
126 }
127
127
128 /* make all datatable paginations small */
128 /* make all datatable paginations small */
129 .dataTables_paginate .pagination {
129 .dataTables_paginate .pagination {
130 .pagination-sm;
130 .pagination-sm;
131 }
131 }
132
132
133 /* show column sort icons in our font ... and before column header */
133 /* show column sort icons in our font ... and before column header */
134 table.dataTable {
134 table.dataTable {
135 .sorting_asc:before {
135 .sorting_asc:before {
136 font-family: "kallithea";
136 font-family: "kallithea";
137 content: "\23f6";
137 content: "\23f6";
138 padding-right: 8px;
138 padding-right: 8px;
139 }
139 }
140 .sorting_desc:before {
140 .sorting_desc:before {
141 font-family: "kallithea";
141 font-family: "kallithea";
142 content: "\23f7";
142 content: "\23f7";
143 padding-right: 8px;
143 padding-right: 8px;
144 }
144 }
145 .sorting:before {
145 .sorting:before {
146 font-family: "kallithea";
146 font-family: "kallithea";
147 content: "\2195";
147 content: "\2195";
148 padding-right: 8px;
148 padding-right: 8px;
149 opacity: 0.5;
149 opacity: 0.5;
150 }
150 }
151 .sorting_asc:after,
151 .sorting_asc:after,
152 .sorting_desc:after,
152 .sorting_desc:after,
153 .sorting:after {
153 .sorting:after {
154 content: "" !important;
154 content: "" !important;
155 }
155 }
156 }
156 }
157
157
158 /* language bars (summary page) */
158 /* language bars (summary page) */
159 #lang_stats {
159 #lang_stats {
160 .progress-bar {
160 .progress-bar {
161 min-width: 15px;
161 min-width: 15px;
162 border-top-right-radius: 8px;
162 border-top-right-radius: 8px;
163 border-bottom-right-radius: 8px;
163 border-bottom-right-radius: 8px;
164 }
164 }
165 td {
165 td {
166 padding: 1px 0 !important;
166 padding: 1px 0 !important;
167 }
167 }
168 }
168 }
169
169
170 /* use pointer cursor for expand_commit */
170 /* use pointer cursor for expand_commit */
171 .expand_commit .icon-align-left {
171 .expand_commit .icon-align-left {
172 cursor: pointer;
172 cursor: pointer;
173 color: #999;
173 color: #999;
174 }
174 }
175
175
176 /* don't break author, date and comment cells into multiple lines in changeset table */
176 /* don't break author, date and comment cells into multiple lines in changeset table */
177 table.changesets {
177 table.changesets {
178 .author,
178 .author,
179 .date,
179 .date,
180 .comments {
180 .comments {
181 white-space: nowrap;
181 white-space: nowrap;
182 }
182 }
183 }
183 }
184
184
185 /* textareas should be at least 100px high and 400px wide */
185 /* textareas should be at least 100px high and 400px wide */
186 textarea.form-control {
186 textarea.form-control {
187 min-height: 100px;
187 min-height: 100px;
188 min-width: 400px;
188 min-width: 400px;
189 }
189 }
190
190
191 /* add some space between the code-browser icons and the file names */
191 /* add some space between the code-browser icons and the file names */
192 .browser-dir > i[class^='icon-'],
192 .browser-dir > i[class^='icon-'],
193 .submodule-dir > i[class^='icon-'],
193 .submodule-dir > i[class^='icon-'],
194 .browser-file > i[class^='icon-'] {
194 .browser-file > i[class^='icon-'] {
195 padding-right: 0.3em;
195 padding-right: 0.3em;
196 }
196 }
197
197
198 .dt_repo_pending {
198 .dt_repo_pending {
199 opacity: 0.5;
199 opacity: 0.5;
200 }
200 }
201
201
202 div.panel-primary {
202 div.panel-primary {
203 border: none;
203 border: none;
204 }
204 }
205
205
206 /* no extra vertical margin */
206 /* no extra vertical margin */
207 #content div.panel ul.pagination {
207 #content div.panel ul.pagination {
208 margin: 0;
208 margin: 0;
209 }
209 }
210
210
211 /* remove margin below footer */
211 /* remove margin below footer */
212 .navbar.footer {
212 .navbar.footer {
213 margin-bottom: 0;
213 margin-bottom: 0;
214 }
214 }
215
215
216 .user-menu {
216 .user-menu {
217 padding: 0 !important;
217 padding: 0 !important;
218 }
218 }
219 #quick_login {
219 #quick_login {
220 width: 360px;
220 width: 360px;
221 margin-top: 15px;
221 margin-top: 15px;
222 min-height: 110px;
222 min-height: 110px;
223 }
223 }
224 #quick_login input#username,
224 #quick_login input#username,
225 #quick_login input#password {
225 #quick_login input#password {
226 display: block;
226 display: block;
227 margin: 5px 0 10px;
227 margin: 5px 0 10px;
228 }
228 }
229 #quick_login .password_forgotten a,
229 #quick_login .password_forgotten a,
230 #quick_login .register a {
230 #quick_login .register a {
231 padding: 0 !important;
231 padding: 0 !important;
232 line-height: 25px !important;
232 line-height: 25px !important;
233 float: left;
233 float: left;
234 clear: both;
234 clear: both;
235 }
235 }
236 #quick_login .submit {
236 #quick_login .submit {
237 float: right;
237 float: right;
238 }
238 }
239 #quick_login .submit input#sign_in {
239 #quick_login .submit input#sign_in {
240 margin-top: 5px;
240 margin-top: 5px;
241 }
241 }
242 #quick_login > .pull-left {
242 #quick_login > .pull-left {
243 width: 170px;
243 width: 170px;
244 }
244 }
245 #quick_login > .pull-right {
245 #quick_login > .pull-right {
246 width: 140px;
246 width: 140px;
247 }
247 }
248 #quick_login .full_name {
248 #quick_login .full_name {
249 font-weight: bold;
249 font-weight: bold;
250 padding: 3px;
250 padding: 3px;
251 }
251 }
252 #quick_login .email {
252 #quick_login .email {
253 padding: 3px 3px 3px 0;
253 padding: 3px 3px 3px 0;
254 }
254 }
255 #quick_login :not(input) {
255 #quick_login :not(input) {
256 color: @kallithea-theme-inverse-color;
256 color: @kallithea-theme-inverse-color;
257 padding-bottom: 3px;
257 padding-bottom: 3px;
258 }
258 }
259
259
260 #journal .journal_user {
260 #journal .journal_user {
261 color: #747474;
261 color: #747474;
262 font-size: 14px;
262 font-size: 14px;
263 font-weight: bold;
263 font-weight: bold;
264 height: 30px;
264 height: 30px;
265 }
265 }
266 #journal .journal_user.deleted {
266 #journal .journal_user.deleted {
267 color: #747474;
267 color: #747474;
268 font-size: 14px;
268 font-size: 14px;
269 font-weight: normal;
269 font-weight: normal;
270 height: 30px;
270 height: 30px;
271 font-style: italic;
271 font-style: italic;
272 }
272 }
273 #journal .journal_icon {
273 #journal .journal_icon {
274 clear: both;
274 clear: both;
275 float: left;
275 float: left;
276 padding-right: 4px;
276 padding-right: 4px;
277 padding-top: 3px;
277 padding-top: 3px;
278 }
278 }
279 #journal .journal_action {
279 #journal .journal_action {
280 padding-top: 4px;
280 padding-top: 4px;
281 min-height: 2px;
281 min-height: 2px;
282 float: left;
282 float: left;
283 }
283 }
284 #journal .journal_action_params {
284 #journal .journal_action_params {
285 clear: left;
285 clear: left;
286 padding-left: 22px;
286 padding-left: 22px;
287 }
287 }
288 #journal .date {
288 #journal .date {
289 clear: both;
289 clear: both;
290 color: #777777;
290 color: #777777;
291 font-size: 11px;
291 font-size: 11px;
292 padding-left: 22px;
292 padding-left: 22px;
293 }
293 }
294 #journal .journal_repo_name {
294 #journal .journal_repo_name {
295 font-weight: bold;
295 font-weight: bold;
296 font-size: 1.1em;
296 font-size: 1.1em;
297 }
297 }
298 #journal .compare_view {
298 #journal .compare_view {
299 padding: 5px 0px 5px 0px;
299 padding: 5px 0px 5px 0px;
300 width: 95px;
300 width: 95px;
301 }
301 }
302 .trending_language_tbl,
302 .trending_language_tbl,
303 .trending_language_tbl td {
303 .trending_language_tbl td {
304 border: 0 !important;
304 border: 0 !important;
305 margin: 0 !important;
305 margin: 0 !important;
306 padding: 0 !important;
306 padding: 0 !important;
307 }
307 }
308 .trending_language_tbl,
308 .trending_language_tbl,
309 .trending_language_tbl tr {
309 .trending_language_tbl tr {
310 border-spacing: 1px;
310 border-spacing: 1px;
311 }
311 }
312 h3.files_location {
312 h3.files_location {
313 font-size: 1.8em;
313 font-size: 1.8em;
314 font-weight: 700;
314 font-weight: 700;
315 border-bottom: none !important;
315 border-bottom: none !important;
316 margin: 10px 0 !important;
316 margin: 10px 0 !important;
317 }
317 }
318 .file_history {
318 .file_history {
319 padding-top: 10px;
319 padding-top: 10px;
320 font-size: 16px;
320 font-size: 16px;
321 }
321 }
322 .file_author {
322 .file_author {
323 float: left;
323 float: left;
324 }
324 }
325 .file_author .item {
325 .file_author .item {
326 float: left;
326 float: left;
327 padding: 5px;
327 padding: 5px;
328 color: #888;
328 color: #888;
329 }
329 }
330 table#updaterevs-table tr.mergerow,
330 table#updaterevs-table tr.mergerow,
331 table#updaterevs-table tr.out-of-range,
331 table#updaterevs-table tr.out-of-range,
332 table#changesets tr.mergerow,
332 table#changesets tr.mergerow,
333 table#changesets tr.out-of-range {
333 table#changesets tr.out-of-range {
334 opacity: 0.6;
334 opacity: 0.6;
335 }
335 }
336 .issue-tracker-link {
336 .issue-tracker-link {
337 color: #3F6F9F;
337 color: #3F6F9F;
338 font-weight: bold !important;
338 font-weight: bold !important;
339 }
339 }
340 /* changeset statuses (must be the same name as the status) */
340 /* changeset statuses (must be the same name as the status) */
341 .changeset-status-not_reviewed {
341 .changeset-status-not_reviewed {
342 color: #bababa;
342 color: #bababa;
343 }
343 }
344 .changeset-status-approved {
344 .changeset-status-approved {
345 color: #81ba51;
345 color: #81ba51;
346 }
346 }
347 .changeset-status-rejected {
347 .changeset-status-rejected {
348 color: #d06060;
348 color: #d06060;
349 }
349 }
350 .changeset-status-under_review {
350 .changeset-status-under_review {
351 color: #ffc71e;
351 color: #ffc71e;
352 }
352 }
353
353
354 #repo_size {
354 #repo_size {
355 display: block;
355 display: block;
356 margin-top: 4px;
356 margin-top: 4px;
357 color: #666;
357 color: #666;
358 float: right;
358 float: right;
359 }
359 }
360 .currently_following {
360 .currently_following {
361 padding-left: 10px;
361 padding-left: 10px;
362 padding-bottom: 5px;
362 padding-bottom: 5px;
363 }
363 }
364 #switch_repos {
364 #switch_repos {
365 position: absolute;
365 position: absolute;
366 height: 25px;
366 height: 25px;
367 z-index: 1;
367 z-index: 1;
368 }
368 }
369 #switch_repos select {
369 #switch_repos select {
370 min-width: 150px;
370 min-width: 150px;
371 max-height: 250px;
371 max-height: 250px;
372 z-index: 1;
372 z-index: 1;
373 }
373 }
374 .breadcrumbs {
374 .breadcrumbs {
375 border: medium none;
375 border: medium none;
376 color: #FFF;
376 color: #FFF;
377 font-weight: 700;
377 font-weight: 700;
378 font-size: 14px;
378 font-size: 14px;
379 }
379 }
380 table#permissions_manage span.private_repo_msg {
380 table#permissions_manage span.private_repo_msg {
381 font-size: 0.8em;
381 font-size: 0.8em;
382 opacity: 0.6;
382 opacity: 0.6;
383 }
383 }
384 table#permissions_manage td.private_repo_msg {
384 table#permissions_manage td.private_repo_msg {
385 font-size: 0.8em;
385 font-size: 0.8em;
386 }
386 }
387 table#permissions_manage tr#add_perm_input td {
387 table#permissions_manage tr#add_perm_input td {
388 vertical-align: middle;
388 vertical-align: middle;
389 }
389 }
390 div.gravatar {
390 div.gravatar {
391 float: left;
391 float: left;
392 background-color: #FFF;
392 background-color: #FFF;
393 margin-right: 0.7em;
393 margin-right: 0.7em;
394 padding: 1px 1px 1px 1px;
394 padding: 1px 1px 1px 1px;
395 line-height: 0;
395 line-height: 0;
396 border-radius: 3px;
396 border-radius: 3px;
397 }
397 }
398 div.gravatar img {
398 div.gravatar img {
399 border-radius: 2px;
399 border-radius: 2px;
400 }
400 }
401 .panel-body.settings .nav-pills > :not(.active) > a {
401 .panel-body.settings .nav-pills > :not(.active) > a {
402 color: inherit;
402 color: inherit;
403 }
403 }
404 .panel-body.no-padding {
404 .panel-body.no-padding {
405 padding: 0;
405 padding: 0;
406 }
406 }
407 .panel-body ~ .panel-body {
407 .panel-body ~ .panel-body {
408 padding-top: 0;
408 padding-top: 0;
409 }
409 }
410 .panel-body.no-padding ~ .panel-body {
410 .panel-body.no-padding ~ .panel-body {
411 padding-top: 15px;
411 padding-top: 15px;
412 }
412 }
413 .panel-body > :last-child {
413 .panel-body > :last-child {
414 margin-bottom: 0;
414 margin-bottom: 0;
415 }
415 }
416 .panel-body.settings .text-muted {
416 .panel-body.settings .text-muted {
417 margin: 5px 0;
417 margin: 5px 0;
418 }
418 }
419 ins,
419 ins,
420 div.options a:hover {
420 div.options a:hover {
421 text-decoration: none;
421 text-decoration: none;
422 }
422 }
423 img,
423 img,
424 nav.navbar #quick li a:hover span.normal,
424 nav.navbar #quick li a:hover span.normal,
425 #clone_url,
425 #clone_url,
426 #clone_url_id {
426 #clone_url_id {
427 border: none;
427 border: none;
428 }
428 }
429 img.icon,
429 img.icon,
430 .right .merge img {
430 .right .merge img {
431 vertical-align: bottom;
431 vertical-align: bottom;
432 }
432 }
433 #content div.panel div.panel-heading ul.links,
433 #content div.panel div.panel-heading ul.links,
434 #content div.panel div.message div.dismiss {
434 #content div.panel div.message div.dismiss {
435 float: right;
435 float: right;
436 margin: 0;
436 margin: 0;
437 padding: 0;
437 padding: 0;
438 }
438 }
439 nav.navbar #home,
439 nav.navbar #home,
440 #content div.panel ul.left,
440 #content div.panel ul.left,
441 #content div.panel ol.left,
441 #content div.panel ol.left,
442 div#commit_history,
442 div#commit_history,
443 div#legend_data,
443 div#legend_data,
444 div#legend_container,
444 div#legend_container,
445 div#legend_choices {
445 div#legend_choices {
446 float: left;
446 float: left;
447 }
447 }
448
448
449 /* set size for statistics charts */
449 /* set size for statistics charts */
450 #commit_history {
450 #commit_history {
451 width: 450px;
451 width: 450px;
452 height: 300px;
452 height: 300px;
453 }
453 }
454 #overview {
454 #overview {
455 clear: both;
455 clear: both;
456 width: 450px;
456 width: 450px;
457 height: 100px;
457 height: 100px;
458 }
458 }
459
459
460 #content #left #menu ul.closed,
460 #content #left #menu ul.closed,
461 #content #left #menu li ul.collapsed,
461 #content #left #menu li ul.collapsed,
462 .yui-tt-shadow {
462 .yui-tt-shadow {
463 display: none;
463 display: none;
464 }
464 }
465 #content #left #menu ul.opened,
465 #content #left #menu ul.opened,
466 #content #left #menu li ul.expanded {
466 #content #left #menu li ul.expanded {
467 display: block !important;
467 display: block !important;
468 }
468 }
469
469
470 #content div.panel ol.lower-roman,
470 #content div.panel ol.lower-roman,
471 #content div.panel ol.upper-roman,
471 #content div.panel ol.upper-roman,
472 #content div.panel ol.lower-alpha,
472 #content div.panel ol.lower-alpha,
473 #content div.panel ol.upper-alpha,
473 #content div.panel ol.upper-alpha,
474 #content div.panel ol.decimal {
474 #content div.panel ol.decimal {
475 margin: 10px 24px 10px 44px;
475 margin: 10px 24px 10px 44px;
476 }
476 }
477
477
478 div.form div.form-group div.button input,
478 div.form div.form-group div.button input,
479 #content div.panel div.form div.buttons input,
479 #content div.panel div.form div.buttons input,
480 div.form div.buttons input,
480 div.form div.buttons input,
481 #content div.panel div.action div.button input {
481 #content div.panel div.action div.button input {
482 font-size: 11px;
482 font-size: 11px;
483 font-weight: 700;
483 font-weight: 700;
484 margin: 0;
484 margin: 0;
485 }
485 }
486 div.form div.form-group div.highlight,
486 div.form div.form-group div.highlight,
487 #content div.panel div.form div.buttons div.highlight {
487 #content div.panel div.form div.buttons div.highlight {
488 display: inline;
488 display: inline;
489 }
489 }
490 #content div.panel table td.user,
490 #content div.panel table td.user,
491 #content div.panel table td.address {
491 #content div.panel table td.address {
492 width: 10%;
492 width: 10%;
493 text-align: center;
493 text-align: center;
494 }
494 }
495 #content div.panel div.action div.button {
495 #content div.panel div.action div.button {
496 text-align: right;
496 text-align: right;
497 margin: 6px 0 0;
497 margin: 6px 0 0;
498 padding: 0;
498 padding: 0;
499 }
499 }
500 #login,
501 #register {
502 width: 520px;
503 margin: 10% auto 0;
504 padding: 0;
505 }
506 .ac .match {
500 .ac .match {
507 font-weight: 700;
501 font-weight: 700;
508 padding-top: 5px;
502 padding-top: 5px;
509 padding-bottom: 5px;
503 padding-bottom: 5px;
510 }
504 }
511 .q_filter_box {
505 .q_filter_box {
512 border-radius: 4px;
506 border-radius: 4px;
513 border: 0 none;
507 border: 0 none;
514 margin-bottom: -4px;
508 margin-bottom: -4px;
515 margin-top: -4px;
509 margin-top: -4px;
516 padding-left: 3px;
510 padding-left: 3px;
517 }
511 }
518 #node_filter {
512 #node_filter {
519 border: 0px solid #545454;
513 border: 0px solid #545454;
520 color: #AAAAAA;
514 color: #AAAAAA;
521 padding-left: 3px;
515 padding-left: 3px;
522 }
516 }
523 /** comment main **/
517 /** comment main **/
524 .comment .panel,
518 .comment .panel,
525 .comment-inline-form {
519 .comment-inline-form {
526 max-width: 978px;
520 max-width: 978px;
527 }
521 }
528 .comment .panel-body {
522 .comment .panel-body {
529 background-color: #FAFAFA;
523 background-color: #FAFAFA;
530 }
524 }
531 .comments-number {
525 .comments-number {
532 padding: 10px 0;
526 padding: 10px 0;
533 color: #666;
527 color: #666;
534 }
528 }
535 .automatic-comment {
529 .automatic-comment {
536 font-style: italic;
530 font-style: italic;
537 }
531 }
538 /** comment form **/
532 /** comment form **/
539 .status-block {
533 .status-block {
540 margin: 5px;
534 margin: 5px;
541 clear: both;
535 clear: both;
542 }
536 }
543 .panel-heading .pull-left input[type=checkbox],
537 .panel-heading .pull-left input[type=checkbox],
544 .panel-heading .pull-right input[type=checkbox] {
538 .panel-heading .pull-right input[type=checkbox] {
545 position: relative;
539 position: relative;
546 top: 4px;
540 top: 4px;
547 margin: -10px 2px 0;
541 margin: -10px 2px 0;
548 }
542 }
549 /** comment inline form **/
543 /** comment inline form **/
550 .comment-inlines textarea {
544 .comment-inlines textarea {
551 font-family: @font-family-monospace;
545 font-family: @font-family-monospace;
552 }
546 }
553 /** comment inline **/
547 /** comment inline **/
554 .inline-comments {
548 .inline-comments {
555 padding: 5px;
549 padding: 5px;
556 }
550 }
557 .inline-comments .comments-number {
551 .inline-comments .comments-number {
558 padding: 0px 0px 10px 0px;
552 padding: 0px 0px 10px 0px;
559 }
553 }
560 input.status_change_checkbox,
554 input.status_change_checkbox,
561 input.status_change_radio {
555 input.status_change_radio {
562 margin: 0 0 5px 15px;
556 margin: 0 0 5px 15px;
563 }
557 }
564 @keyframes animated-comment-background {
558 @keyframes animated-comment-background {
565 0% {
559 0% {
566 background-position: 0 0;
560 background-position: 0 0;
567 }
561 }
568 100% {
562 100% {
569 background-position: 20px 0;
563 background-position: 20px 0;
570 }
564 }
571 }
565 }
572 .comment-preview.failed .user,
566 .comment-preview.failed .user,
573 .comment-preview.failed .panel-body {
567 .comment-preview.failed .panel-body {
574 color: #666;
568 color: #666;
575 }
569 }
576 .comment-preview .comment-submission-status {
570 .comment-preview .comment-submission-status {
577 float: right;
571 float: right;
578 }
572 }
579 .comment-preview .comment-submission-status .btn-group {
573 .comment-preview .comment-submission-status .btn-group {
580 margin-left: 10px;
574 margin-left: 10px;
581 }
575 }
582 .comment-preview.submitting .panel-body {
576 .comment-preview.submitting .panel-body {
583 background-image: linear-gradient(-45deg, #FAFAFA, #FAFAFA 25%, #FFF 25%, #FFF 50%, #FAFAFA 50%, #FAFAFA 75%, #FFF 75%, #FFF 100%);
577 background-image: linear-gradient(-45deg, #FAFAFA, #FAFAFA 25%, #FFF 25%, #FFF 50%, #FAFAFA 50%, #FAFAFA 75%, #FFF 75%, #FFF 100%);
584 background-size: 20px 20px;
578 background-size: 20px 20px;
585 animation: animated-comment-background 0.4s linear infinite;
579 animation: animated-comment-background 0.4s linear infinite;
586 }
580 }
587 /****
581 /****
588 PULL REQUESTS
582 PULL REQUESTS
589 *****/
583 *****/
590 div.pr-details-title.closed {
584 div.pr-details-title.closed {
591 color: #555;
585 color: #555;
592 background: #eee;
586 background: #eee;
593 }
587 }
594 div.pr {
588 div.pr {
595 margin: 0px 15px;
589 margin: 0px 15px;
596 padding: 4px 4px;
590 padding: 4px 4px;
597 }
591 }
598 tr.pr-closed td {
592 tr.pr-closed td {
599 background-color: #eee !important;
593 background-color: #eee !important;
600 color: #555 !important;
594 color: #555 !important;
601 }
595 }
602 span.pr-closed-tag {
596 span.pr-closed-tag {
603 margin-bottom: 1px;
597 margin-bottom: 1px;
604 margin-right: 1px;
598 margin-right: 1px;
605 padding: 1px 3px;
599 padding: 1px 3px;
606 font-size: 10px;
600 font-size: 10px;
607 color: @kallithea-theme-main-color;
601 color: @kallithea-theme-main-color;
608 white-space: nowrap;
602 white-space: nowrap;
609 border-radius: 4px;
603 border-radius: 4px;
610 border: 1px solid #d9e8f8;
604 border: 1px solid #d9e8f8;
611 line-height: 1.5em;
605 line-height: 1.5em;
612 }
606 }
613 #s2id_org_ref,
607 #s2id_org_ref,
614 #s2id_other_ref,
608 #s2id_other_ref,
615 #s2id_org_repo,
609 #s2id_org_repo,
616 #s2id_other_repo {
610 #s2id_other_repo {
617 min-width: 150px;
611 min-width: 150px;
618 margin: 5px;
612 margin: 5px;
619 }
613 }
620 #pr-summary > .pr-not-edit {
614 #pr-summary > .pr-not-edit {
621 min-height: 50px !important;
615 min-height: 50px !important;
622 }
616 }
623 /* make 'next iteration' changeset table smaller and scrollable */
617 /* make 'next iteration' changeset table smaller and scrollable */
624 #pr-summary #updaterevs {
618 #pr-summary #updaterevs {
625 max-height: 200px;
619 max-height: 200px;
626 overflow-y: auto;
620 overflow-y: auto;
627 overflow-x: hidden;
621 overflow-x: hidden;
628 }
622 }
629
623
630 /****
624 /****
631 PERMS
625 PERMS
632 *****/
626 *****/
633 .perm-gravatar-ac {
627 .perm-gravatar-ac {
634 vertical-align: middle;
628 vertical-align: middle;
635 padding: 2px;
629 padding: 2px;
636 width: 14px;
630 width: 14px;
637 height: 14px;
631 height: 14px;
638 }
632 }
639
633
640 /* avoid gaps between the navbar and browser */
634 /* avoid gaps between the navbar and browser */
641 .navbar.mainmenu {
635 .navbar.mainmenu {
642 border-top-left-radius: 0;
636 border-top-left-radius: 0;
643 border-top-right-radius: 0;
637 border-top-right-radius: 0;
644 }
638 }
645 .navbar.footer {
639 .navbar.footer {
646 border-bottom-left-radius: 0;
640 border-bottom-left-radius: 0;
647 border-bottom-right-radius: 0;
641 border-bottom-right-radius: 0;
648 }
642 }
649
643
650 /* show some context of link targets - but only works when the link target
644 /* show some context of link targets - but only works when the link target
651 can be extended with any visual difference */
645 can be extended with any visual difference */
652 div.comment:target:before {
646 div.comment:target:before {
653 display: block;
647 display: block;
654 height: 100px;
648 height: 100px;
655 margin: -100px 0 0;
649 margin: -100px 0 0;
656 content: "";
650 content: "";
657 }
651 }
658 div.comment:target > .panel {
652 div.comment:target > .panel {
659 border: solid 2px #ee0 !important;
653 border: solid 2px #ee0 !important;
660 }
654 }
661 .lineno:target a {
655 .lineno:target a {
662 border: solid 2px #ee0 !important;
656 border: solid 2px #ee0 !important;
663 margin: -2px;
657 margin: -2px;
664 }
658 }
665 .btn-image-diff-show,
659 .btn-image-diff-show,
666 .btn-image-diff-swap {
660 .btn-image-diff-swap {
667 margin: 5px;
661 margin: 5px;
668 }
662 }
669 .img-diff {
663 .img-diff {
670 max-width: 45%;
664 max-width: 45%;
671 height: auto;
665 height: auto;
672 margin: 5px;
666 margin: 5px;
673 /* http://lea.verou.me/demos/css3-patterns.html */
667 /* http://lea.verou.me/demos/css3-patterns.html */
674 background-image: linear-gradient(45deg, #888 25%, transparent 25%, transparent), linear-gradient(-45deg, #888 25%, transparent 25%, transparent), linear-gradient(45deg, transparent 75%, #888 75%), linear-gradient(-45deg, transparent 75%, #888 75%);
668 background-image: linear-gradient(45deg, #888 25%, transparent 25%, transparent), linear-gradient(-45deg, #888 25%, transparent 25%, transparent), linear-gradient(45deg, transparent 75%, #888 75%), linear-gradient(-45deg, transparent 75%, #888 75%);
675 background-size: 10px 10px;
669 background-size: 10px 10px;
676 background-color: #999;
670 background-color: #999;
677 }
671 }
678 .img-preview {
672 .img-preview {
679 max-width: 100%;
673 max-width: 100%;
680 height: auto;
674 height: auto;
681 margin: 5px;
675 margin: 5px;
682 }
676 }
683 div.comment-prev-next-links div.prev-comment,
677 div.comment-prev-next-links div.prev-comment,
684 div.comment-prev-next-links div.next-comment {
678 div.comment-prev-next-links div.next-comment {
685 display: inline-block;
679 display: inline-block;
686 min-width: 150px;
680 min-width: 150px;
687 margin: 3px 6px;
681 margin: 3px 6px;
688 }
682 }
689 #comments-general-comments div.comment-prev-next-links div.prev-comment,
683 #comments-general-comments div.comment-prev-next-links div.prev-comment,
690 #comments-general-comments div.comment-prev-next-links div.next-comment {
684 #comments-general-comments div.comment-prev-next-links div.next-comment {
691 margin-left: 0;
685 margin-left: 0;
692 }
686 }
693
687
694 /* changelog graph */
688 /* changelog graph */
695 #graph_nodes,
689 #graph_nodes,
696 #updaterevs-graph {
690 #updaterevs-graph {
697 .make-xs-column(1);
691 .make-xs-column(1);
698 }
692 }
699 #graph_content,
693 #graph_content,
700 #graph_content_pr,
694 #graph_content_pr,
701 #updaterevs-table {
695 #updaterevs-table {
702 .make-xs-column(11);
696 .make-xs-column(11);
703 }
697 }
704
698
705 /* use bootstrap grid columns for centered forms */
699 /* use bootstrap grid columns for centered columns */
706 #login,
700 .centered-column {
707 #register {
701 .make-sm-column-offset(3);
702 .make-sm-column(6);
708 .form {
703 .form {
709 .form-horizontal;
704 .form-horizontal;
710 .form-group > label {
705 .form-group > label {
711 .make-sm-column(4);
706 .make-sm-column(4);
712 }
707 }
713 .form-group > div {
708 .form-group > div {
714 .make-sm-column(8);
709 .make-sm-column(8);
715 }
710 }
716 .form-group > div:first-child { /* in case there is no label */
711 .form-group > div:first-child { /* in case there is no label */
717 .make-sm-column-offset(4);
712 .make-sm-column-offset(4);
718 .make-sm-column(8);
713 .make-sm-column(8);
719 }
714 }
720 }
715 }
721 }
716 }
722
717
723 /* use columns and form-horizontal for settings pages ... on wide screens */
718 /* use columns and form-horizontal for settings pages ... on wide screens */
724 @media (min-width: @screen-sm-min) {
719 @media (min-width: @screen-sm-min) {
725 .settings {
720 .settings {
726 max-width: @container-md;
721 max-width: @container-md;
727 > ul.nav-stacked {
722 > ul.nav-stacked {
728 .make-sm-column(2);
723 .make-sm-column(2);
729 max-width: (@container-md/12)*2;
724 max-width: (@container-md/12)*2;
730 }
725 }
731 > div {
726 > div {
732 .make-sm-column(10);
727 .make-sm-column(10);
733 max-width: (@container-md/12)*10;
728 max-width: (@container-md/12)*10;
734 }
729 }
735 .form {
730 .form {
736 .form-horizontal;
731 .form-horizontal;
737 }
732 }
738 .form-group {
733 .form-group {
739 .clearfix;
734 .clearfix;
740 > label {
735 > label {
741 .make-xs-column(3);
736 .make-xs-column(3);
742 input {
737 input {
743 width: 100%;
738 width: 100%;
744 }
739 }
745 }
740 }
746 > div {
741 > div {
747 .make-xs-column(9);
742 .make-xs-column(9);
748 }
743 }
749 .buttons {
744 .buttons {
750 .make-xs-column-offset(3);
745 .make-xs-column-offset(3);
751 }
746 }
752 }
747 }
753 }
748 }
754 }
749 }
755
750
756 /* use columns and form-horizontal for summary page */
751 /* use columns and form-horizontal for summary page */
757 #summary {
752 #summary {
758 max-width: @container-md;
753 max-width: @container-md;
759 .form-horizontal;
754 .form-horizontal;
760 .make-sm-column(10);
755 .make-sm-column(10);
761 .form-group > label {
756 .form-group > label {
762 .make-sm-column(2);
757 .make-sm-column(2);
763 }
758 }
764 .form-group > div {
759 .form-group > div {
765 .make-sm-column(10);
760 .make-sm-column(10);
766 }
761 }
767 }
762 }
768 #summary-menu-stats {
763 #summary-menu-stats {
769 .make-sm-column(2);
764 .make-sm-column(2);
770 }
765 }
771
766
772 /* use columns and form-horizontal for pull request page */
767 /* use columns and form-horizontal for pull request page */
773 .pr-box {
768 .pr-box {
774 .make-sm-column(9);
769 .make-sm-column(9);
775 #pr-summary {
770 #pr-summary {
776 max-width: @container-md;
771 max-width: @container-md;
777 .form-horizontal;
772 .form-horizontal;
778 .form-group > label {
773 .form-group > label {
779 .make-sm-column(3);
774 .make-sm-column(3);
780 }
775 }
781 .form-group > div {
776 .form-group > div {
782 .make-sm-column(9);
777 .make-sm-column(9);
783 }
778 }
784 .form-group > .buttons {
779 .form-group > .buttons {
785 .make-sm-column-offset(3);
780 .make-sm-column-offset(3);
786 .make-sm-column(9);
781 .make-sm-column(9);
787 }
782 }
788 }
783 }
789 }
784 }
790 .pr-reviewers-box {
785 .pr-reviewers-box {
791 .make-sm-column(3);
786 .make-sm-column(3);
792 }
787 }
793
788
794 /* repo table icons */
789 /* repo table icons */
795 #repos_list_wrap_wrapper {
790 #repos_list_wrap_wrapper {
796 /* make icon-folder and repotag the same width */
791 /* make icon-folder and repotag the same width */
797 .icon-folder:before {
792 .icon-folder:before {
798 margin: 0; // default margin would otherwise add to the total width
793 margin: 0; // default margin would otherwise add to the total width
799 width: 24px;
794 width: 24px;
800 text-align: left;
795 text-align: left;
801 }
796 }
802 .label-repo {
797 .label-repo {
803 display: inline-block;
798 display: inline-block;
804 width: 24px;
799 width: 24px;
805 }
800 }
806 }
801 }
807
802
808 /* changelog table columns */
803 /* changelog table columns */
809 .table#changesets {
804 .table#changesets {
810 table-layout: fixed;
805 table-layout: fixed;
811 td {
806 td {
812 overflow: hidden;
807 overflow: hidden;
813 text-overflow: ellipsis;
808 text-overflow: ellipsis;
814 white-space: nowrap;
809 white-space: nowrap;
815 vertical-align: baseline;
810 vertical-align: baseline;
816 }
811 }
817 .checkbox-column {
812 .checkbox-column {
818 width: 24px;
813 width: 24px;
819 /* the optional second checkbox will be inline-block but should wrap to a new line */
814 /* the optional second checkbox will be inline-block but should wrap to a new line */
820 white-space: normal;
815 white-space: normal;
821 }
816 }
822 .changeset-logical-index {
817 .changeset-logical-index {
823 color: @gray-light;
818 color: @gray-light;
824 font-style: italic;
819 font-style: italic;
825 font-size: 85%;
820 font-size: 85%;
826 text-align: right;
821 text-align: right;
827 overflow: visible;
822 overflow: visible;
828 }
823 }
829 .changeset-logical-index,
824 .changeset-logical-index,
830 .expand_commit,
825 .expand_commit,
831 .status {
826 .status {
832 width: 28px;
827 width: 28px;
833 }
828 }
834 .author {
829 .author {
835 width: 200px;
830 width: 200px;
836 @media (max-width: @screen-sm-max) {
831 @media (max-width: @screen-sm-max) {
837 width: 120px;
832 width: 120px;
838 }
833 }
839 @media (max-width: @screen-xs-max) {
834 @media (max-width: @screen-xs-max) {
840 width: 20px;
835 width: 20px;
841 /* keep gravatar but hide name on tiny screens to give important columns more room */
836 /* keep gravatar but hide name on tiny screens to give important columns more room */
842 span {
837 span {
843 .hidden;
838 .hidden;
844 }
839 }
845 }
840 }
846 }
841 }
847 .hash {
842 .hash {
848 .small;
843 .small;
849 width: 110px;
844 width: 110px;
850 @media (max-width: @screen-xs-max) {
845 @media (max-width: @screen-xs-max) {
851 width: 48px;
846 width: 48px;
852 }
847 }
853 }
848 }
854 .date {
849 .date {
855 .small;
850 .small;
856 width: 100px;
851 width: 100px;
857 }
852 }
858 /* hide on small screens to give important columns more room */
853 /* hide on small screens to give important columns more room */
859 .status,
854 .status,
860 .expand_commit,
855 .expand_commit,
861 .comments,
856 .comments,
862 .extra-container {
857 .extra-container {
863 .hidden-xs;
858 .hidden-xs;
864 }
859 }
865 .mid > .log-container {
860 .mid > .log-container {
866 position: relative;
861 position: relative;
867 overflow: hidden;
862 overflow: hidden;
868 > .extra-container {
863 > .extra-container {
869 position: absolute;
864 position: absolute;
870 top: 0;
865 top: 0;
871 right: 0;
866 right: 0;
872 background: white;
867 background: white;
873 box-shadow: -10px 0px 10px 0px white;
868 box-shadow: -10px 0px 10px 0px white;
874 }
869 }
875 }
870 }
876 }
871 }
877
872
878 /* undo Bootstrap chrome/webkit blue outline on focus in navbar */
873 /* undo Bootstrap chrome/webkit blue outline on focus in navbar */
879 .navbar-inverse .navbar-nav > li > a:focus {
874 .navbar-inverse .navbar-nav > li > a:focus {
880 outline: 0;
875 outline: 0;
881 }
876 }
882
877
883 /* use same badge coloring in navbar inverse as in panel-heading */
878 /* use same badge coloring in navbar inverse as in panel-heading */
884 .navbar-inverse {
879 .navbar-inverse {
885 .badge {
880 .badge {
886 color: @navbar-inverse-bg;
881 color: @navbar-inverse-bg;
887 background-color: @navbar-inverse-color;
882 background-color: @navbar-inverse-color;
888 }
883 }
889 }
884 }
890
885
891 /* pygments style */
886 /* pygments style */
892 div.search-code-body pre .match {
887 div.search-code-body pre .match {
893 background-color: @highlight-color;
888 background-color: @highlight-color;
894 }
889 }
895 div.search-code-body pre .break {
890 div.search-code-body pre .break {
896 background-color: @highlight-line-color;
891 background-color: @highlight-line-color;
897 width: 100%;
892 width: 100%;
898 color: #747474;
893 color: #747474;
899 display: block;
894 display: block;
900 }
895 }
901 div.annotatediv {
896 div.annotatediv {
902 margin-left: 2px;
897 margin-left: 2px;
903 margin-right: 4px;
898 margin-right: 4px;
904 }
899 }
905 .code-highlight {
900 .code-highlight {
906 border-left: 1px solid #ccc;
901 border-left: 1px solid #ccc;
907 }
902 }
908 .code-highlight pre,
903 .code-highlight pre,
909 .linenodiv pre {
904 .linenodiv pre {
910 padding: 5px 2px 0px 5px;
905 padding: 5px 2px 0px 5px;
911 margin: 0;
906 margin: 0;
912 }
907 }
913 .code-highlight pre div:target {
908 .code-highlight pre div:target {
914 background-color: #FFFFBE !important;
909 background-color: #FFFFBE !important;
915 }
910 }
916 .linenos a { text-decoration: none; }
911 .linenos a { text-decoration: none; }
917
912
918 /* Stylesheets for the context bar */
913 /* Stylesheets for the context bar */
919 #quick_login > .pull-right .list-group-item {
914 #quick_login > .pull-right .list-group-item {
920 background-color: @kallithea-theme-main-color;
915 background-color: @kallithea-theme-main-color;
921 border: 0;
916 border: 0;
922 }
917 }
923 #content #context-pages .follow .show-following,
918 #content #context-pages .follow .show-following,
924 #content #context-pages .following .show-follow {
919 #content #context-pages .following .show-follow {
925 display: none;
920 display: none;
926 }
921 }
927
922
928 nav.navbar #quick > li > a,
923 nav.navbar #quick > li > a,
929 #context-pages > ul > li > a {
924 #context-pages > ul > li > a {
930 height: @navbar-height;
925 height: @navbar-height;
931 }
926 }
@@ -1,70 +1,76 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.html"/>
2 <%inherit file="base/root.html"/>
3
3
4 <%block name="title">
4 <%block name="title">
5 ${_('Log In')}
5 ${_('Log In')}
6 </%block>
6 </%block>
7
7
8 <%include file="/base/flash_msg.html"/>
8 <%include file="/base/flash_msg.html"/>
9 <div class="container">
10 <div class="row">
11 <div class="centered-column">
9 <div id="login" class="panel panel-primary">
12 <div id="login" class="panel panel-primary">
10 <div class="panel-heading">
13 <div class="panel-heading">
11 <h5>
14 <h5>
12 <i class="icon-lock"></i>
15 <i class="icon-lock"></i>
13 %if c.site_name:
16 %if c.site_name:
14 ${_('Log In to %s') % c.site_name}
17 ${_('Log In to %s') % c.site_name}
15 %else:
18 %else:
16 ${_('Log In')}
19 ${_('Log In')}
17 %endif
20 %endif
18 </h5>
21 </h5>
19 </div>
22 </div>
20 <div class="panel-body">
23 <div class="panel-body">
21 ${h.form(url('login_home', came_from=c.came_from))}
24 ${h.form(url('login_home', came_from=c.came_from))}
22 <div class="form">
25 <div class="form">
23
26
24 <div class="form-group">
27 <div class="form-group">
25 <label class="control-label" for="username">${_('Username')}:</label>
28 <label class="control-label" for="username">${_('Username')}:</label>
26 <div>
29 <div>
27 ${h.text('username',class_='form-control')}
30 ${h.text('username',class_='form-control')}
28 </div>
31 </div>
29 </div>
32 </div>
30 <div class="form-group">
33 <div class="form-group">
31 <label class="control-label" for="password">${_('Password')}:</label>
34 <label class="control-label" for="password">${_('Password')}:</label>
32 <div>
35 <div>
33 ${h.password('password',class_='form-control')}
36 ${h.password('password',class_='form-control')}
34 </div>
37 </div>
35 </div>
38 </div>
36 <div class="form-group">
39 <div class="form-group">
37 <div>
40 <div>
38 <div class="checkbox">
41 <div class="checkbox">
39 <label>
42 <label>
40 <input type="checkbox" id="remember" name="remember"/>
43 <input type="checkbox" id="remember" name="remember"/>
41 ${_('Stay logged in after browser restart')}
44 ${_('Stay logged in after browser restart')}
42 </label>
45 </label>
43 </div>
46 </div>
44 </div>
47 </div>
45 </div>
48 </div>
46
49
47 <div class="form-group">
50 <div class="form-group">
48 <div>
51 <div>
49 ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
52 ${h.link_to(_('Forgot your password ?'),h.url('reset_password'))}
50 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
53 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
51 /
54 /
52 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
55 ${h.link_to(_("Don't have an account ?"),h.url('register'))}
53 %endif
56 %endif
54 </div>
57 </div>
55 </div>
58 </div>
56
59
57 <div class="form-group">
60 <div class="form-group">
58 <div class="buttons">
61 <div class="buttons">
59 ${h.submit('sign_in',_('Sign In'),class_="btn btn-default")}
62 ${h.submit('sign_in',_('Sign In'),class_="btn btn-default")}
60 </div>
63 </div>
61 </div>
64 </div>
62 </div>
65 </div>
63 ${h.end_form()}
66 ${h.end_form()}
64 <script type="text/javascript">
67 <script type="text/javascript">
65 $(document).ready(function(){
68 $(document).ready(function(){
66 $('#username').focus();
69 $('#username').focus();
67 });
70 });
68 </script>
71 </script>
69 </div>
72 </div>
70 </div>
73 </div>
74 </div>
75 </div>
76 </div>
@@ -1,64 +1,70 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.html"/>
2 <%inherit file="base/root.html"/>
3
3
4 <%block name="title">
4 <%block name="title">
5 ${_('Password Reset')}
5 ${_('Password Reset')}
6 </%block>
6 </%block>
7
7
8 <%include file="/base/flash_msg.html"/>
8 <%include file="/base/flash_msg.html"/>
9 <div class="container">
10 <div class="row">
11 <div class="centered-column">
9 <div id="register" class="panel panel-primary">
12 <div id="register" class="panel panel-primary">
10 <div class="panel-heading">
13 <div class="panel-heading">
11 %if c.site_name:
14 %if c.site_name:
12 <h5>${_('Reset Your Password to %s') % c.site_name}</h5>
15 <h5>${_('Reset Your Password to %s') % c.site_name}</h5>
13 %else:
16 %else:
14 <h5>${_('Reset Your Password')}</h5>
17 <h5>${_('Reset Your Password')}</h5>
15 %endif
18 %endif
16 </div>
19 </div>
17 <div class="panel-body">
20 <div class="panel-body">
18 ${h.form(url('password_reset'))}
21 ${h.form(url('password_reset'))}
19 <div class="form">
22 <div class="form">
20 <div class="form-group">
23 <div class="form-group">
21 <label class="control-label" for="email">${_('Email Address')}:</label>
24 <label class="control-label" for="email">${_('Email Address')}:</label>
22 <div>
25 <div>
23 ${h.text('email', class_='form-control')}
26 ${h.text('email', class_='form-control')}
24 </div>
27 </div>
25 </div>
28 </div>
26
29
27 %if c.captcha_active:
30 %if c.captcha_active:
28 <div class="form-group">
31 <div class="form-group">
29 <label class="control-label" for="recaptcha_field">${_('Captcha')}:</label>
32 <label class="control-label" for="recaptcha_field">${_('Captcha')}:</label>
30 <div>
33 <div>
31 ${h.hidden('recaptcha_field')}
34 ${h.hidden('recaptcha_field')}
32 <div id="recaptcha"></div>
35 <div id="recaptcha"></div>
33 </div>
36 </div>
34 </div>
37 </div>
35 %endif
38 %endif
36
39
37 <div class="form-group">
40 <div class="form-group">
38 <div class="buttons">
41 <div class="buttons">
39 ${h.submit('send',_('Send Password Reset Email'),class_="btn btn-default")}
42 ${h.submit('send',_('Send Password Reset Email'),class_="btn btn-default")}
40 </div>
43 </div>
41 </div>
44 </div>
42
45
43 <div class="alert alert-info">
46 <div class="alert alert-info">
44 ${_('A password reset link will be sent to the specified email address if it is registered in the system.')}
47 ${_('A password reset link will be sent to the specified email address if it is registered in the system.')}
45 </div>
48 </div>
46 </div>
49 </div>
47 ${h.end_form()}
50 ${h.end_form()}
48 %if c.captcha_active:
51 %if c.captcha_active:
49 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
52 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
50 %endif
53 %endif
51 <script type="text/javascript">
54 <script type="text/javascript">
52 $(document).ready(function(){
55 $(document).ready(function(){
53 $('#email').focus();
56 $('#email').focus();
54 %if c.captcha_active:
57 %if c.captcha_active:
55 Recaptcha.create(${h.js(c.captcha_public_key)}, "recaptcha",
58 Recaptcha.create(${h.js(c.captcha_public_key)}, "recaptcha",
56 {
59 {
57 theme: "white"
60 theme: "white"
58 }
61 }
59 );
62 );
60 %endif
63 %endif
61 });
64 });
62 </script>
65 </script>
63 </div>
66 </div>
64 </div>
67 </div>
68 </div>
69 </div>
70 </div>
@@ -1,54 +1,60 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.html"/>
2 <%inherit file="base/root.html"/>
3
3
4 <%block name="title">
4 <%block name="title">
5 ${_('Reset Your Password')}
5 ${_('Reset Your Password')}
6 </%block>
6 </%block>
7
7
8 <%include file="/base/flash_msg.html"/>
8 <%include file="/base/flash_msg.html"/>
9
9
10 <div class="container">
11 <div class="row">
12 <div class="centered-column">
10 <div id="register" class="panel panel-primary">
13 <div id="register" class="panel panel-primary">
11 <div class="panel-heading">
14 <div class="panel-heading">
12 %if c.site_name:
15 %if c.site_name:
13 <h5>${_('Reset Your Password to %s') % c.site_name}</h5>
16 <h5>${_('Reset Your Password to %s') % c.site_name}</h5>
14 %else:
17 %else:
15 <h5>${_('Reset Your Password')}</h5>
18 <h5>${_('Reset Your Password')}</h5>
16 %endif
19 %endif
17 </div>
20 </div>
18 <div class="panel-body">
21 <div class="panel-body">
19 ${h.form(h.url('reset_password_confirmation'), method='post')}
22 ${h.form(h.url('reset_password_confirmation'), method='post')}
20 <p>${_('You are about to set a new password for the email address %s.') % c.email}</p>
23 <p>${_('You are about to set a new password for the email address %s.') % c.email}</p>
21 <p>${_('Note that you must use the same browser session for this as the one used to request the password reset.')}</p>
24 <p>${_('Note that you must use the same browser session for this as the one used to request the password reset.')}</p>
22 ${h.hidden('email')}
25 ${h.hidden('email')}
23 ${h.hidden('timestamp')}
26 ${h.hidden('timestamp')}
24 <div class="form">
27 <div class="form">
25 <div class="form-group">
28 <div class="form-group">
26 <label class="control-label" for="token">${_('Code you received in the email')}:</label>
29 <label class="control-label" for="token">${_('Code you received in the email')}:</label>
27 <div>
30 <div>
28 ${h.text('token', class_='form-control')}
31 ${h.text('token', class_='form-control')}
29 </div>
32 </div>
30 </div>
33 </div>
31
34
32 <div class="form-group">
35 <div class="form-group">
33 <label class="control-label" for="password">${_('New Password')}:</label>
36 <label class="control-label" for="password">${_('New Password')}:</label>
34 <div>
37 <div>
35 ${h.password('password',class_='form-control')}
38 ${h.password('password',class_='form-control')}
36 </div>
39 </div>
37 </div>
40 </div>
38
41
39 <div class="form-group">
42 <div class="form-group">
40 <label class="control-label" for="password_confirm">${_('Confirm New Password')}:</label>
43 <label class="control-label" for="password_confirm">${_('Confirm New Password')}:</label>
41 <div>
44 <div>
42 ${h.password('password_confirm',class_='form-control')}
45 ${h.password('password_confirm',class_='form-control')}
43 </div>
46 </div>
44 </div>
47 </div>
45
48
46 <div class="form-group">
49 <div class="form-group">
47 <div class="buttons">
50 <div class="buttons">
48 ${h.submit('send',_('Confirm'),class_="btn btn-default")}
51 ${h.submit('send',_('Confirm'),class_="btn btn-default")}
49 </div>
52 </div>
50 </div>
53 </div>
51 </div>
54 </div>
52 ${h.end_form()}
55 ${h.end_form()}
53 </div>
56 </div>
54 </div>
57 </div>
58 </div>
59 </div>
60 </div>
@@ -1,102 +1,108 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.html"/>
2 <%inherit file="base/root.html"/>
3
3
4 <%block name="title">
4 <%block name="title">
5 ${_('Sign Up')}
5 ${_('Sign Up')}
6 </%block>
6 </%block>
7
7
8 <%include file="/base/flash_msg.html"/>
8 <%include file="/base/flash_msg.html"/>
9
9
10 <div class="container">
11 <div class="row">
12 <div class="centered-column">
10 <div id="register" class="panel panel-primary">
13 <div id="register" class="panel panel-primary">
11 <div class="panel-heading">
14 <div class="panel-heading">
12 %if c.site_name:
15 %if c.site_name:
13 <h5>${_('Sign Up to %s') % c.site_name}</h5>
16 <h5>${_('Sign Up to %s') % c.site_name}</h5>
14 %else:
17 %else:
15 <h5>${_('Sign Up')}</h5>
18 <h5>${_('Sign Up')}</h5>
16 %endif
19 %endif
17 </div>
20 </div>
18 <div class="panel-body">
21 <div class="panel-body">
19 ${h.form(url('register'))}
22 ${h.form(url('register'))}
20 <div class="form">
23 <div class="form">
21 <div class="form-group">
24 <div class="form-group">
22 <label class="control-label" for="username">${_('Username')}:</label>
25 <label class="control-label" for="username">${_('Username')}:</label>
23 <div>
26 <div>
24 ${h.text('username',class_='form-control')}
27 ${h.text('username',class_='form-control')}
25 </div>
28 </div>
26 </div>
29 </div>
27
30
28 <div class="form-group">
31 <div class="form-group">
29 <label class="control-label" for="password">${_('Password')}:</label>
32 <label class="control-label" for="password">${_('Password')}:</label>
30 <div>
33 <div>
31 ${h.password('password',class_='form-control')}
34 ${h.password('password',class_='form-control')}
32 </div>
35 </div>
33 </div>
36 </div>
34
37
35 <div class="form-group">
38 <div class="form-group">
36 <label class="control-label" for="password_confirmation">${_('Re-enter password')}:</label>
39 <label class="control-label" for="password_confirmation">${_('Re-enter password')}:</label>
37 <div>
40 <div>
38 ${h.password('password_confirmation',class_='form-control')}
41 ${h.password('password_confirmation',class_='form-control')}
39 </div>
42 </div>
40 </div>
43 </div>
41
44
42 <div class="form-group">
45 <div class="form-group">
43 <label class="control-label" for="firstname">${_('First Name')}:</label>
46 <label class="control-label" for="firstname">${_('First Name')}:</label>
44 <div>
47 <div>
45 ${h.text('firstname',class_='form-control')}
48 ${h.text('firstname',class_='form-control')}
46 </div>
49 </div>
47 </div>
50 </div>
48
51
49 <div class="form-group">
52 <div class="form-group">
50 <label class="control-label" for="lastname">${_('Last Name')}:</label>
53 <label class="control-label" for="lastname">${_('Last Name')}:</label>
51 <div>
54 <div>
52 ${h.text('lastname',class_='form-control')}
55 ${h.text('lastname',class_='form-control')}
53 </div>
56 </div>
54 </div>
57 </div>
55
58
56 <div class="form-group">
59 <div class="form-group">
57 <label class="control-label" for="email">${_('Email')}:</label>
60 <label class="control-label" for="email">${_('Email')}:</label>
58 <div>
61 <div>
59 ${h.text('email',class_='form-control')}
62 ${h.text('email',class_='form-control')}
60 </div>
63 </div>
61 </div>
64 </div>
62
65
63 %if c.captcha_active:
66 %if c.captcha_active:
64 <div class="form-group">
67 <div class="form-group">
65 <label class="control-label" for="recaptcha_field">${_('Captcha')}:</label>
68 <label class="control-label" for="recaptcha_field">${_('Captcha')}:</label>
66 <div>
69 <div>
67 ${h.hidden('recaptcha_field')}
70 ${h.hidden('recaptcha_field')}
68 <div id="recaptcha"></div>
71 <div id="recaptcha"></div>
69 </div>
72 </div>
70 </div>
73 </div>
71 %endif
74 %endif
72
75
73 <div class="form-group">
76 <div class="form-group">
74 <div class="buttons">
77 <div class="buttons">
75 ${h.submit('sign_up',_('Sign Up'),class_="btn btn-default")}
78 ${h.submit('sign_up',_('Sign Up'),class_="btn btn-default")}
76 %if c.auto_active:
79 %if c.auto_active:
77 <div class="alert alert-info">${_('Registered accounts are ready to use and need no further action.')}</div>
80 <div class="alert alert-info">${_('Registered accounts are ready to use and need no further action.')}</div>
78 %else:
81 %else:
79 <div class="alert alert-info">${_('Please wait for an administrator to activate your account.')}</div>
82 <div class="alert alert-info">${_('Please wait for an administrator to activate your account.')}</div>
80 %endif
83 %endif
81 </div>
84 </div>
82 </div>
85 </div>
83 </div>
86 </div>
84 ${h.end_form()}
87 ${h.end_form()}
85 %if c.captcha_active:
88 %if c.captcha_active:
86 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
89 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
87 %endif
90 %endif
88 <script type="text/javascript">
91 <script type="text/javascript">
89 $(document).ready(function(){
92 $(document).ready(function(){
90 $('#username').focus();
93 $('#username').focus();
91
94
92 %if c.captcha_active:
95 %if c.captcha_active:
93 Recaptcha.create(${h.js(c.captcha_public_key)}, "recaptcha",
96 Recaptcha.create(${h.js(c.captcha_public_key)}, "recaptcha",
94 {
97 {
95 theme: "white"
98 theme: "white"
96 }
99 }
97 );
100 );
98 %endif
101 %endif
99 });
102 });
100 </script>
103 </script>
101 </div>
104 </div>
102 </div>
105 </div>
106 </div>
107 </div>
108 </div>
General Comments 0
You need to be logged in to leave comments. Login now