##// END OF EJS Templates
Show last replies feed on the landing page
neko259 -
r2092:c826bdd6 default
parent child Browse files
Show More
@@ -1,50 +1,51 b''
1 [Version]
1 [Version]
2 Version = 4.9.2 Serpen
2 Version = 4.9.2 Serpen
3 SiteName = Neboard DEV
3 SiteName = Neboard DEV
4
4
5 [Cache]
5 [Cache]
6 # Timeout for caching, if cache is used
6 # Timeout for caching, if cache is used
7 CacheTimeout = 600
7 CacheTimeout = 600
8
8
9 [Forms]
9 [Forms]
10 # Max post length in characters
10 # Max post length in characters
11 MaxTextLength = 30000
11 MaxTextLength = 30000
12 MaxFileSize = 8000000
12 MaxFileSize = 8000000
13 LimitFirstPosting = true
13 LimitFirstPosting = true
14 LimitPostingSpeed = false
14 LimitPostingSpeed = false
15 PowDifficulty = 0
15 PowDifficulty = 0
16 # Delay in seconds
16 # Delay in seconds
17 PostingDelay = 30
17 PostingDelay = 30
18 Autoban = false
18 Autoban = false
19 DefaultTag = test
19 DefaultTag = test
20 MaxFileCount = 5
20 MaxFileCount = 5
21 AdditionalSpoilerSpaces = false
21 AdditionalSpoilerSpaces = false
22 BanWhitelist = 127.0.0.1
22 BanWhitelist = 127.0.0.1
23
23
24 [Messages]
24 [Messages]
25 # Thread bumplimit
25 # Thread bumplimit
26 MaxPostsPerThread = 10
26 MaxPostsPerThread = 10
27 ThreadArchiveDays = 300
27 ThreadArchiveDays = 300
28 AnonymousMode = false
28 AnonymousMode = false
29
29
30 [View]
30 [View]
31 DefaultTheme = md
31 DefaultTheme = md
32 DefaultImageViewer = simple
32 DefaultImageViewer = simple
33 LastRepliesCount = 3
33 LastRepliesCount = 3
34 ThreadsPerPage = 3
34 ThreadsPerPage = 3
35 PostsPerPage = 10
35 PostsPerPage = 10
36 ImagesPerPageGallery = 20
36 ImagesPerPageGallery = 20
37 MaxLandingThreads = 20
37 MaxLandingThreads = 20
38 MaxLandingPosts = 10
38 Themes=md:Mystic Dark,md_centered:Mystic Dark (centered),sw:Snow White,pg:Photon Grey,ad:Amanita Dark,iw:Inocibe White
39 Themes=md:Mystic Dark,md_centered:Mystic Dark (centered),sw:Snow White,pg:Photon Grey,ad:Amanita Dark,iw:Inocibe White
39 ImageViewers=simple:Simple,popup:Popup
40 ImageViewers=simple:Simple,popup:Popup
40
41
41 [Storage]
42 [Storage]
42 # Enable archiving threads instead of deletion when the thread limit is reached
43 # Enable archiving threads instead of deletion when the thread limit is reached
43 ArchiveThreads = true
44 ArchiveThreads = true
44
45
45 [RSS]
46 [RSS]
46 MaxItems = 20
47 MaxItems = 20
47
48
48 [External]
49 [External]
49 ImageSearchHost=
50 ImageSearchHost=
50 SourceFetcherTripcode=
51 SourceFetcherTripcode=
@@ -1,598 +1,602 b''
1 * {
1 * {
2 text-decoration: none;
2 text-decoration: none;
3 font-weight: inherit;
3 font-weight: inherit;
4 }
4 }
5
5
6 b, strong {
6 b, strong {
7 font-weight: bold;
7 font-weight: bold;
8 }
8 }
9
9
10 html {
10 html {
11 background: #555;
11 background: #555;
12 color: #ffffff;
12 color: #ffffff;
13 }
13 }
14
14
15 body {
15 body {
16 margin: 0;
16 margin: 0;
17 }
17 }
18
18
19 #admin_panel {
19 #admin_panel {
20 background: #FF0000;
20 background: #FF0000;
21 color: #00FF00
21 color: #00FF00
22 }
22 }
23
23
24 .input_field_error {
24 .input_field_error {
25 color: #FF0000;
25 color: #FF0000;
26 }
26 }
27
27
28 .title {
28 .title {
29 font-weight: bold;
29 font-weight: bold;
30 color: #ffcc00;
30 color: #ffcc00;
31 }
31 }
32
32
33 .link, a {
33 .link, a {
34 color: #afdcec;
34 color: #afdcec;
35 }
35 }
36
36
37 .block {
37 .block {
38 display: inline-block;
38 display: inline-block;
39 vertical-align: top;
39 vertical-align: top;
40 }
40 }
41
41
42 .tag {
42 .tag {
43 color: #FFD37D;
43 color: #FFD37D;
44 }
44 }
45
45
46 .post_id {
46 .post_id {
47 color: #fff380;
47 color: #fff380;
48 }
48 }
49
49
50 .post, .dead_post, .archive_post, #posts-table {
50 .post, .dead_post, .archive_post, #posts-table {
51 background: #333;
51 background: #333;
52 padding: 10px;
52 padding: 10px;
53 clear: left;
53 clear: left;
54 word-wrap: break-word;
54 word-wrap: break-word;
55 border-top: 1px solid #777;
55 border-top: 1px solid #777;
56 border-bottom: 1px solid #777;
56 border-bottom: 1px solid #777;
57 }
57 }
58
58
59 .post + .post {
59 .post + .post {
60 border-top: none;
60 border-top: none;
61 }
61 }
62
62
63 .dead_post + .dead_post {
63 .dead_post + .dead_post {
64 border-top: none;
64 border-top: none;
65 }
65 }
66
66
67 .archive_post + .archive_post {
67 .archive_post + .archive_post {
68 border-top: none;
68 border-top: none;
69 }
69 }
70
70
71 .metadata {
71 .metadata {
72 padding-top: 5px;
72 padding-top: 5px;
73 margin-top: 10px;
73 margin-top: 10px;
74 border-top: solid 1px #666;
74 border-top: solid 1px #666;
75 color: #ddd;
75 color: #ddd;
76 }
76 }
77
77
78 .navigation_panel, .tag_info {
78 .navigation_panel, .tag_info {
79 background: #222;
79 background: #222;
80 margin-bottom: 5px;
80 margin-bottom: 5px;
81 margin-top: 5px;
81 margin-top: 5px;
82 padding: 10px;
82 padding: 10px;
83 border-bottom: solid 1px #888;
83 border-bottom: solid 1px #888;
84 border-top: solid 1px #888;
84 border-top: solid 1px #888;
85 color: #eee;
85 color: #eee;
86 }
86 }
87
87
88 .navigation_panel .link:first-child {
88 .navigation_panel .link:first-child {
89 border-right: 1px solid #fff;
89 border-right: 1px solid #fff;
90 font-weight: bold;
90 font-weight: bold;
91 margin-right: 1ex;
91 margin-right: 1ex;
92 padding-right: 1ex;
92 padding-right: 1ex;
93 }
93 }
94
94
95 .navigation_panel .right-link {
95 .navigation_panel .right-link {
96 border-left: 1px solid #fff;
96 border-left: 1px solid #fff;
97 border-right: none;
97 border-right: none;
98 float: right;
98 float: right;
99 margin-left: 1ex;
99 margin-left: 1ex;
100 margin-right: 0;
100 margin-right: 0;
101 padding-left: 1ex;
101 padding-left: 1ex;
102 padding-right: 0;
102 padding-right: 0;
103 }
103 }
104
104
105 .navigation_panel .link {
105 .navigation_panel .link {
106 font-weight: bold;
106 font-weight: bold;
107 }
107 }
108
108
109 .navigation_panel::after, .post::after {
109 .navigation_panel::after, .post::after {
110 clear: both;
110 clear: both;
111 content: ".";
111 content: ".";
112 display: block;
112 display: block;
113 height: 0;
113 height: 0;
114 line-height: 0;
114 line-height: 0;
115 visibility: hidden;
115 visibility: hidden;
116 }
116 }
117
117
118 .tag_info {
118 .tag_info {
119 text-align: center;
119 text-align: center;
120 }
120 }
121
121
122 .tag_info > .tag-text-data {
122 .tag_info > .tag-text-data {
123 text-align: left;
123 text-align: left;
124 max-width: 30em;
124 max-width: 30em;
125 }
125 }
126
126
127 header.navigation_panel {
127 header.navigation_panel {
128 border-bottom: solid 2px #ccc;
128 border-bottom: solid 2px #ccc;
129 margin-bottom: 5px;
129 margin-bottom: 5px;
130 border-top: none;
130 border-top: none;
131 margin-top: 0;
131 margin-top: 0;
132 }
132 }
133
133
134 footer.navigation_panel {
134 footer.navigation_panel {
135 border-top: solid 2px #ccc;
135 border-top: solid 2px #ccc;
136 margin-top: 5px;
136 margin-top: 5px;
137 border-bottom: none;
137 border-bottom: none;
138 margin-bottom: 0;
138 margin-bottom: 0;
139 }
139 }
140
140
141 p, .br {
141 p, .br {
142 margin-top: .5em;
142 margin-top: .5em;
143 margin-bottom: .5em;
143 margin-bottom: .5em;
144 }
144 }
145
145
146 .post-form-w {
146 .post-form-w {
147 background: #333344;
147 background: #333344;
148 border-top: solid 1px #888;
148 border-top: solid 1px #888;
149 border-bottom: solid 1px #888;
149 border-bottom: solid 1px #888;
150 color: #fff;
150 color: #fff;
151 padding: 10px;
151 padding: 10px;
152 margin-bottom: 5px;
152 margin-bottom: 5px;
153 margin-top: 5px;
153 margin-top: 5px;
154 }
154 }
155
155
156 .form-row {
156 .form-row {
157 width: 100%;
157 width: 100%;
158 display: table-row;
158 display: table-row;
159 }
159 }
160
160
161 .form-label {
161 .form-label {
162 padding: .25em 1ex .25em 0;
162 padding: .25em 1ex .25em 0;
163 vertical-align: top;
163 vertical-align: top;
164 display: table-cell;
164 display: table-cell;
165 }
165 }
166
166
167 .form-input {
167 .form-input {
168 padding: .25em 0;
168 padding: .25em 0;
169 width: 100%;
169 width: 100%;
170 display: table-cell;
170 display: table-cell;
171 }
171 }
172
172
173 .form-errors {
173 .form-errors {
174 font-weight: bolder;
174 font-weight: bolder;
175 vertical-align: middle;
175 vertical-align: middle;
176 display: table-cell;
176 display: table-cell;
177 }
177 }
178
178
179 .post-form input:not([name="image"]):not([type="checkbox"]):not([type="submit"]), .post-form textarea, .post-form select {
179 .post-form input:not([name="image"]):not([type="checkbox"]):not([type="submit"]), .post-form textarea, .post-form select {
180 background: #333;
180 background: #333;
181 color: #fff;
181 color: #fff;
182 border: solid 1px;
182 border: solid 1px;
183 padding: 0;
183 padding: 0;
184 font: medium sans-serif;
184 font: medium sans-serif;
185 width: 100%;
185 width: 100%;
186 }
186 }
187
187
188 .post-form textarea {
188 .post-form textarea {
189 resize: vertical;
189 resize: vertical;
190 }
190 }
191
191
192 .form-submit {
192 .form-submit {
193 display: table;
193 display: table;
194 margin-bottom: 1ex;
194 margin-bottom: 1ex;
195 margin-top: 1ex;
195 margin-top: 1ex;
196 }
196 }
197
197
198 .form-title {
198 .form-title {
199 font-weight: bold;
199 font-weight: bold;
200 font-size: 2ex;
200 font-size: 2ex;
201 margin-bottom: 0.5ex;
201 margin-bottom: 0.5ex;
202 }
202 }
203
203
204 input[type="submit"], button {
204 input[type="submit"], button {
205 background: #222;
205 background: #222;
206 border: solid 2px #fff;
206 border: solid 2px #fff;
207 color: #fff;
207 color: #fff;
208 padding: 0.5ex;
208 padding: 0.5ex;
209 margin-right: 0.5ex;
209 margin-right: 0.5ex;
210 }
210 }
211
211
212 input[type="submit"]:hover {
212 input[type="submit"]:hover {
213 background: #060;
213 background: #060;
214 }
214 }
215
215
216 .form-submit > button:hover {
216 .form-submit > button:hover {
217 background: #006;
217 background: #006;
218 }
218 }
219
219
220 blockquote {
220 blockquote {
221 border-left: solid 2px;
221 border-left: solid 2px;
222 padding-left: 5px;
222 padding-left: 5px;
223 color: #B1FB17;
223 color: #B1FB17;
224 margin: 0;
224 margin: 0;
225 }
225 }
226
226
227 .post > .image {
227 .post > .image {
228 float: left;
228 float: left;
229 margin: 0 1ex .5ex 0;
229 margin: 0 1ex .5ex 0;
230 min-width: 1px;
230 min-width: 1px;
231 text-align: center;
231 text-align: center;
232 display: table-row;
232 display: table-row;
233 }
233 }
234
234
235 .post > .metadata {
235 .post > .metadata {
236 clear: left;
236 clear: left;
237 }
237 }
238
238
239 .get {
239 .get {
240 font-weight: bold;
240 font-weight: bold;
241 color: #d55;
241 color: #d55;
242 }
242 }
243
243
244 * {
244 * {
245 text-decoration: none;
245 text-decoration: none;
246 }
246 }
247
247
248 .dead_post > .post-info {
248 .dead_post > .post-info {
249 font-style: italic;
249 font-style: italic;
250 }
250 }
251
251
252 .archive_post > .post-info {
252 .archive_post > .post-info {
253 text-decoration: line-through;
253 text-decoration: line-through;
254 }
254 }
255
255
256 .mark_btn {
256 .mark_btn {
257 border: 1px solid;
257 border: 1px solid;
258 padding: 2px 2ex;
258 padding: 2px 2ex;
259 display: inline-block;
259 display: inline-block;
260 margin: 0 5px 4px 0;
260 margin: 0 5px 4px 0;
261 }
261 }
262
262
263 .mark_btn:hover {
263 .mark_btn:hover {
264 background: #555;
264 background: #555;
265 }
265 }
266
266
267 .quote {
267 .quote {
268 color: #92cf38;
268 color: #92cf38;
269 font-style: italic;
269 font-style: italic;
270 }
270 }
271
271
272 .multiquote {
272 .multiquote {
273 padding: 3px;
273 padding: 3px;
274 display: inline-block;
274 display: inline-block;
275 background: #222;
275 background: #222;
276 border-style: solid;
276 border-style: solid;
277 border-width: 1px 1px 1px 8px;
277 border-width: 1px 1px 1px 8px;
278 font-size: 0.9em;
278 font-size: 0.9em;
279 }
279 }
280
280
281 .spoiler {
281 .spoiler {
282 background: black;
282 background: black;
283 color: black;
283 color: black;
284 }
284 }
285
285
286 .spoiler:hover {
286 .spoiler:hover {
287 color: #ddd;
287 color: #ddd;
288 }
288 }
289
289
290 .comment {
290 .comment {
291 color: #eb2;
291 color: #eb2;
292 }
292 }
293
293
294 a:hover {
294 a:hover {
295 text-decoration: underline;
295 text-decoration: underline;
296 }
296 }
297
297
298 .last-replies {
298 .last-replies {
299 margin-left: 3ex;
299 margin-left: 3ex;
300 margin-right: 3ex;
300 margin-right: 3ex;
301 border-left: solid 1px #777;
301 border-left: solid 1px #777;
302 border-right: solid 1px #777;
302 border-right: solid 1px #777;
303 }
303 }
304
304
305 .last-replies > .post:first-child {
305 .last-replies > .post:first-child {
306 border-top: none;
306 border-top: none;
307 }
307 }
308
308
309 .thread {
309 .thread {
310 margin-bottom: 3ex;
310 margin-bottom: 3ex;
311 margin-top: 1ex;
311 margin-top: 1ex;
312 }
312 }
313
313
314 .post:target {
314 .post:target {
315 border: solid 2px white;
315 border: solid 2px white;
316 }
316 }
317
317
318 pre{
318 pre{
319 white-space:pre-wrap
319 white-space:pre-wrap
320 }
320 }
321
321
322 li {
322 li {
323 list-style-position: inside;
323 list-style-position: inside;
324 }
324 }
325
325
326 .fancybox-skin {
326 .fancybox-skin {
327 position: relative;
327 position: relative;
328 background-color: #fff;
328 background-color: #fff;
329 color: #ddd;
329 color: #ddd;
330 text-shadow: none;
330 text-shadow: none;
331 }
331 }
332
332
333 .fancybox-image {
333 .fancybox-image {
334 border: 1px solid black;
334 border: 1px solid black;
335 }
335 }
336
336
337 .image-mode-tab {
337 .image-mode-tab {
338 background: #444;
338 background: #444;
339 color: #eee;
339 color: #eee;
340 margin-top: 5px;
340 margin-top: 5px;
341 padding: 5px;
341 padding: 5px;
342 border-top: 1px solid #888;
342 border-top: 1px solid #888;
343 border-bottom: 1px solid #888;
343 border-bottom: 1px solid #888;
344 }
344 }
345
345
346 .image-mode-tab > label {
346 .image-mode-tab > label {
347 margin: 0 1ex;
347 margin: 0 1ex;
348 }
348 }
349
349
350 .image-mode-tab > label > input {
350 .image-mode-tab > label > input {
351 margin-right: .5ex;
351 margin-right: .5ex;
352 }
352 }
353
353
354 #posts-table {
354 #posts-table {
355 margin-top: 5px;
355 margin-top: 5px;
356 margin-bottom: 5px;
356 margin-bottom: 5px;
357 }
357 }
358
358
359 .tag-text-data > h2 {
359 .tag-text-data > h2 {
360 margin: 0;
360 margin: 0;
361 font-size: 2.5em;
361 font-size: 2.5em;
362 }
362 }
363
363
364 .post-info {
364 .post-info {
365 color: #ddd;
365 color: #ddd;
366 margin-bottom: 1ex;
366 margin-bottom: 1ex;
367 }
367 }
368
368
369 .moderator_info {
369 .moderator_info {
370 color: #e99d41;
370 color: #e99d41;
371 opacity: 0.4;
371 opacity: 0.4;
372 }
372 }
373
373
374 .moderator_info:hover {
374 .moderator_info:hover {
375 opacity: 1;
375 opacity: 1;
376 }
376 }
377
377
378 .refmap {
378 .refmap {
379 font-size: 0.9em;
379 font-size: 0.9em;
380 color: #ccc;
380 color: #ccc;
381 margin-top: 1em;
381 margin-top: 1em;
382 }
382 }
383
383
384 .fav {
384 .fav {
385 color: yellow;
385 color: yellow;
386 }
386 }
387
387
388 .not_fav {
388 .not_fav {
389 color: #ccc;
389 color: #ccc;
390 }
390 }
391
391
392 .form-email {
392 .form-email {
393 display: none;
393 display: none;
394 }
394 }
395
395
396 .bar-value {
396 .bar-value {
397 background: rgba(50, 55, 164, 0.45);
397 background: rgba(50, 55, 164, 0.45);
398 font-size: 0.9em;
398 font-size: 0.9em;
399 height: 1.5em;
399 height: 1.5em;
400 }
400 }
401
401
402 .bar-bg {
402 .bar-bg {
403 position: relative;
403 position: relative;
404 border-top: solid 1px #888;
404 border-top: solid 1px #888;
405 border-bottom: solid 1px #888;
405 border-bottom: solid 1px #888;
406 margin-top: 5px;
406 margin-top: 5px;
407 overflow: hidden;
407 overflow: hidden;
408 }
408 }
409
409
410 .bar-text {
410 .bar-text {
411 padding: 2px;
411 padding: 2px;
412 position: absolute;
412 position: absolute;
413 left: 0;
413 left: 0;
414 top: 0;
414 top: 0;
415 }
415 }
416
416
417 .page_link {
417 .page_link {
418 background: #444;
418 background: #444;
419 border-top: solid 1px #888;
419 border-top: solid 1px #888;
420 border-bottom: solid 1px #888;
420 border-bottom: solid 1px #888;
421 padding: 5px;
421 padding: 5px;
422 color: #eee;
422 color: #eee;
423 font-size: 2ex;
423 font-size: 2ex;
424 margin-top: .5ex;
424 margin-top: .5ex;
425 margin-bottom: .5ex;
425 margin-bottom: .5ex;
426 }
426 }
427
427
428 .skipped_replies {
428 .skipped_replies {
429 padding: 5px;
429 padding: 5px;
430 margin-left: 3ex;
430 margin-left: 3ex;
431 margin-right: 3ex;
431 margin-right: 3ex;
432 border-left: solid 1px #888;
432 border-left: solid 1px #888;
433 border-right: solid 1px #888;
433 border-right: solid 1px #888;
434 border-bottom: solid 1px #888;
434 border-bottom: solid 1px #888;
435 background: #000;
435 background: #000;
436 }
436 }
437
437
438 .current_page {
438 .current_page {
439 padding: 2px;
439 padding: 2px;
440 background-color: #afdcec;
440 background-color: #afdcec;
441 color: #000;
441 color: #000;
442 }
442 }
443
443
444 .current_mode {
444 .current_mode {
445 font-weight: bold;
445 font-weight: bold;
446 }
446 }
447
447
448 .gallery_image {
448 .gallery_image {
449 border: solid 1px #999;
449 border: solid 1px #999;
450 margin: 0.5ex;
450 margin: 0.5ex;
451 text-align: center;
451 text-align: center;
452 padding: 1ex;
452 padding: 1ex;
453 }
453 }
454
454
455 code {
455 code {
456 border: dashed 1px #ccc;
456 border: dashed 1px #ccc;
457 background: #111;
457 background: #111;
458 padding: 2px;
458 padding: 2px;
459 display: inline-block;
459 display: inline-block;
460 font-family: monospace;
460 font-family: monospace;
461 }
461 }
462
462
463 pre {
463 pre {
464 overflow: auto;
464 overflow: auto;
465 }
465 }
466
466
467 .img-full {
467 .img-full {
468 background: #222;
468 background: #222;
469 border: solid 1px white;
469 border: solid 1px white;
470 }
470 }
471
471
472 .tag_item {
472 .tag_item {
473 display: inline-block;
473 display: inline-block;
474 }
474 }
475
475
476 #id_models li {
476 #id_models li {
477 list-style: none;
477 list-style: none;
478 }
478 }
479
479
480 #id_q {
480 #id_q {
481 margin-left: 1ex;
481 margin-left: 1ex;
482 }
482 }
483
483
484 ul {
484 ul {
485 padding-left: 0px;
485 padding-left: 0px;
486 }
486 }
487
487
488 .quote-header {
488 .quote-header {
489 border-bottom: 2px solid #ddd;
489 border-bottom: 2px solid #ddd;
490 margin-bottom: 1ex;
490 margin-bottom: 1ex;
491 padding-bottom: .5ex;
491 padding-bottom: .5ex;
492 color: #ddd;
492 color: #ddd;
493 font-size: 1.2em;
493 font-size: 1.2em;
494 }
494 }
495
495
496 .global-id {
496 .global-id {
497 font-weight: bolder;
497 font-weight: bolder;
498 opacity: .5;
498 opacity: .5;
499 }
499 }
500
500
501 /* Reflink preview */
501 /* Reflink preview */
502 .post_preview {
502 .post_preview {
503 border-left: 1px solid #777;
503 border-left: 1px solid #777;
504 border-right: 1px solid #777;
504 border-right: 1px solid #777;
505 max-width: 600px;
505 max-width: 600px;
506 }
506 }
507
507
508 /* Code highlighter */
508 /* Code highlighter */
509 .hljs {
509 .hljs {
510 color: #fff;
510 color: #fff;
511 background: #000;
511 background: #000;
512 display: inline-block;
512 display: inline-block;
513 }
513 }
514
514
515 .hljs, .hljs-subst, .hljs-tag .hljs-title, .lisp .hljs-title, .clojure .hljs-built_in, .nginx .hljs-title {
515 .hljs, .hljs-subst, .hljs-tag .hljs-title, .lisp .hljs-title, .clojure .hljs-built_in, .nginx .hljs-title {
516 color: #fff;
516 color: #fff;
517 }
517 }
518
518
519 #up {
519 #up {
520 position: fixed;
520 position: fixed;
521 bottom: 5px;
521 bottom: 5px;
522 right: 5px;
522 right: 5px;
523 border: 1px solid #777;
523 border: 1px solid #777;
524 background: #000;
524 background: #000;
525 padding: 4px;
525 padding: 4px;
526 opacity: 0.3;
526 opacity: 0.3;
527 }
527 }
528
528
529 #up:hover {
529 #up:hover {
530 opacity: 1;
530 opacity: 1;
531 }
531 }
532
532
533 .user-cast {
533 .user-cast {
534 border: solid #ffffff 1px;
534 border: solid #ffffff 1px;
535 padding: .2ex;
535 padding: .2ex;
536 background: #152154;
536 background: #152154;
537 color: #fff;
537 color: #fff;
538 }
538 }
539
539
540 .highlight {
540 .highlight {
541 background: #222;
541 background: #222;
542 }
542 }
543
543
544 .post-button-form > button:hover {
544 .post-button-form > button:hover {
545 text-decoration: underline;
545 text-decoration: underline;
546 }
546 }
547
547
548 .tree_reply > .post {
548 .tree_reply > .post {
549 margin-top: 1ex;
549 margin-top: 1ex;
550 border-left: solid 1px #777;
550 border-left: solid 1px #777;
551 padding-right: 0;
551 padding-right: 0;
552 }
552 }
553
553
554 #preview-text {
554 #preview-text {
555 border: solid 1px white;
555 border: solid 1px white;
556 margin: 1ex 0 1ex 0;
556 margin: 1ex 0 1ex 0;
557 padding: 1ex;
557 padding: 1ex;
558 }
558 }
559
559
560 .image-metadata {
560 .image-metadata {
561 font-size: 0.9em;
561 font-size: 0.9em;
562 }
562 }
563
563
564 .tripcode {
564 .tripcode {
565 color: white;
565 color: white;
566 }
566 }
567
567
568 #fav-panel {
568 #fav-panel {
569 border: 1px solid white;
569 border: 1px solid white;
570 }
570 }
571
571
572 .post-blink {
572 .post-blink {
573 background-color: #000;
573 background-color: #000;
574 }
574 }
575
575
576 #quote-button {
576 #quote-button {
577 background-color: black;
577 background-color: black;
578 border: solid white 1px;
578 border: solid white 1px;
579 padding: 2px;
579 padding: 2px;
580 }
580 }
581
581
582 #quote-button:hover {
582 #quote-button:hover {
583 background-color: #2d3955;
583 background-color: #2d3955;
584 }
584 }
585
585
586 .landing-threads > .thread {
586 .landing-threads > .thread {
587 border-left: solid 1px #777;
587 border-left: solid 1px #777;
588 border-right: solid 1px #777;
588 border-right: solid 1px #777;
589 }
589 }
590
590
591 .landing-threads {
592 margin-bottom: 1em;
593 }
594
591 .post[data-opening=True] > .post-info {
595 .post[data-opening=True] > .post-info {
592 background: black;
596 background: black;
593 padding: 4px;
597 padding: 4px;
594 border: white 1px solid;
598 border: white 1px solid;
595 max-width: -moz-fit-content;
599 max-width: -moz-fit-content;
596 max-width: fit-content;
600 max-width: fit-content;
597 }
601 }
598
602
@@ -1,52 +1,52 b''
1 {% extends "boards/paginated.html" %}
1 {% extends "boards/paginated.html" %}
2
2
3 {% load i18n %}
3 {% load i18n %}
4 {% load board %}
4 {% load board %}
5 {% load static %}
5 {% load static %}
6 {% load tz %}
6 {% load tz %}
7
7
8 {% block head %}
8 {% block head %}
9 <meta name="robots" content="noindex">
9 <meta name="robots" content="noindex">
10
10
11 <title>{{ site_name }} - {% trans "feed" %}</title>
11 <title>{{ site_name }} - {% trans "feed" %}</title>
12
12
13 {% if prev_page_link %}
13 {% if prev_page_link %}
14 <link rel="prev" href="{{ prev_page_link }}" />
14 <link rel="prev" href="{{ prev_page_link }}" />
15 {% endif %}
15 {% endif %}
16 {% if next_page_link %}
16 {% if next_page_link %}
17 <link rel="next" href="{{ next_page_link }}" />
17 <link rel="next" href="{{ next_page_link }}" />
18 {% endif %}
18 {% endif %}
19
19
20 {% endblock %}
20 {% endblock %}
21
21
22 {% block content %}
22 {% block content %}
23
23
24 {% get_current_language as LANGUAGE_CODE %}
24 {% get_current_language as LANGUAGE_CODE %}
25 {% get_current_timezone as TIME_ZONE %}
25 {% get_current_timezone as TIME_ZONE %}
26
26
27 {% for query in queries %}
27 {% for query in queries %}
28 <div class="image-mode-tab">{{ query }}</div>
28 <div class="image-mode-tab">{{ query }}</div>
29 {% endfor %}
29 {% endfor %}
30
30
31 {% if posts %}
31 {% if posts %}
32 {% if prev_page_link %}
32 {% if prev_page_link %}
33 <div class="page_link">
33 <div class="page_link">
34 <a href="{{ prev_page_link }}">&lt;&lt; {% trans "Previous page" %} &lt;&lt;</a>
34 <a href="{{ prev_page_link }}">&lt;&lt; {% trans "Previous page" %} &lt;&lt;</a>
35 </div>
35 </div>
36 {% endif %}
36 {% endif %}
37
37
38 {% for post in posts %}
38 {% for post in posts %}
39 {% post_view post moderator=moderator truncated=True need_op_data=True %}
39 {% post_view post truncated=True need_op_data=True %}
40 {% endfor %}
40 {% endfor %}
41
41
42 {% if next_page_link %}
42 {% if next_page_link %}
43 <div class="page_link">
43 <div class="page_link">
44 <a href="{{ next_page_link }}">&gt;&gt; {% trans "Next page" %} &gt;&gt;</a>
44 <a href="{{ next_page_link }}">&gt;&gt; {% trans "Next page" %} &gt;&gt;</a>
45 </div>
45 </div>
46 {% endif %}
46 {% endif %}
47 {% else %}
47 {% else %}
48 <div class="post">
48 <div class="post">
49 {% trans 'No posts exist. Create the first one!' %}</div>
49 {% trans 'No posts exist. Create the first one!' %}</div>
50 {% endif %}
50 {% endif %}
51 {% endblock %}
51 {% endblock %}
52
52
@@ -1,39 +1,42 b''
1 {% extends "boards/base.html" %}
1 {% extends "boards/base.html" %}
2
2
3 {% load i18n %}
3 {% load i18n %}
4 {% load static %}
4 {% load static %}
5 {% load board %}
5 {% load board %}
6
6
7 {% block head %}
7 {% block head %}
8 <title>{{ site_name|safe }}</title>
8 <title>{{ site_name|safe }}</title>
9 {% endblock %}
9 {% endblock %}
10
10
11 {% block content %}
11 {% block content %}
12 {% autoescape off %}
12 {% autoescape off %}
13 <div id="posts-table">
13 <div id="posts-table">
14 <div class="landing-tags">
14 <div class="landing-tags">
15 {{ section_str }}
15 {{ section_str }}
16 </div>
16 </div>
17 <br />
17 <br />
18 {% if latest_threads %}
18 {% if latest_threads %}
19 <div class="landing-threads">
19 <div class="landing-threads">
20 {% for op in latest_threads %}
20 {% for op in latest_threads %}
21 <div class="thread-short gallery_image">
21 <div class="thread-short gallery_image">
22 {{ op.attachments.first.get_view|safe }}
22 {{ op.attachments.first.get_view|safe }}
23 {% with title=op.get_title_or_text %}
23 {% with title=op.get_title_or_text %}
24 {% if title %}
24 {% if title %}
25 <div class="title">{{ title }}</div>
25 <div class="title">{{ title }}</div>
26 {% endif %}
26 {% endif %}
27 {% endwith %}
27 {% endwith %}
28 <hr />
28 <hr />
29 <div>{{ op.thread.get_sections_str }}</div>
29 <div>{{ op.thread.get_sections_str }}</div>
30 <div>{{ op.get_link_view }}</div>
30 <div>{{ op.get_link_view }}</div>
31 <div>{{ op.thread.last_edit_time }}</div>
31 <div>{{ op.thread.last_edit_time }}</div>
32 <div>β™₯{{ op.thread.get_reply_count }} +{{ op.today_post_count }}</div>
32 <div>β™₯{{ op.thread.get_reply_count }} +{{ op.today_post_count }}</div>
33 </div>
33 </div>
34 {% endfor %}
34 {% endfor %}
35 </div>
35 </div>
36 {% endif %}
36 {% endif %}
37 {% for post in latest_posts %}
38 {% post_view post truncated=True need_op_data=True %}
39 {% endfor %}
37 </div>
40 </div>
38 {% endautoescape %}
41 {% endautoescape %}
39 {% endblock %}
42 {% endblock %}
@@ -1,41 +1,46 b''
1 from datetime import datetime
1 from datetime import datetime
2 from datetime import timedelta
2 from datetime import timedelta
3
3
4 from django.db.models import Count, Q
4 from django.db.models import Count, Q
5 from django.shortcuts import render
5 from django.shortcuts import render
6 from django.utils.decorators import method_decorator
6 from django.utils.decorators import method_decorator
7 from django.views.decorators.csrf import csrf_protect
7 from django.views.decorators.csrf import csrf_protect
8
8
9 from boards import settings
9 from boards import settings
10 from boards.models import Post, Tag, STATUS_ACTIVE, TagAlias
10 from boards.models import Post, Tag, STATUS_ACTIVE, TagAlias
11 from boards.settings import SECTION_VIEW
11 from boards.settings import SECTION_VIEW
12 from boards.views.base import BaseBoardView
12 from boards.views.base import BaseBoardView
13
13
14 PARAM_SECTION_STR = 'section_str'
14 PARAM_SECTION_STR = 'section_str'
15 PARAM_LATEST_THREADS = 'latest_threads'
15 PARAM_LATEST_THREADS = 'latest_threads'
16 PARAM_LATEST_POSTS = 'latest_posts'
16
17
17 TEMPLATE = 'boards/landing.html'
18 TEMPLATE = 'boards/landing.html'
18
19
19
20
20 class LandingView(BaseBoardView):
21 class LandingView(BaseBoardView):
21 @method_decorator(csrf_protect)
22 @method_decorator(csrf_protect)
22 def get(self, request):
23 def get(self, request):
23 params = dict()
24 params = dict()
24
25
25 params[PARAM_SECTION_STR] = Tag.objects.get_tag_url_list(
26 params[PARAM_SECTION_STR] = Tag.objects.get_tag_url_list(
26 Tag.objects.filter(Q(aliases__in=TagAlias.objects.filter_localized()) & Q(required=True))
27 Tag.objects.filter(Q(aliases__in=TagAlias.objects.filter_localized()) & Q(required=True))
27 .order_by('aliases__name'))
28 .order_by('aliases__name'))
28
29
29 today = datetime.now() - timedelta(1)
30 today = datetime.now() - timedelta(1)
30 ops = Post.objects.filter(thread__replies__pub_time__gt=today, opening=True, thread__status=STATUS_ACTIVE)\
31 ops = Post.objects.filter(thread__replies__pub_time__gt=today, opening=True, thread__status=STATUS_ACTIVE)\
31 .annotate(today_post_count=Count('thread__replies'))\
32 .annotate(today_post_count=Count('thread__replies'))\
32 .order_by('-pub_time')
33 .order_by('-pub_time')
33
34
34 max_landing_threads = settings.get_int(SECTION_VIEW, 'MaxLandingThreads')
35 max_landing_threads = settings.get_int(SECTION_VIEW, 'MaxLandingThreads')
35 if max_landing_threads > 0:
36 if max_landing_threads > 0:
36 ops = ops[:max_landing_threads]
37 ops = ops[:max_landing_threads]
37
38
38 params[PARAM_LATEST_THREADS] = ops
39 params[PARAM_LATEST_THREADS] = ops
39
40
41 max_landing_posts = settings.get_int(SECTION_VIEW, 'MaxLandingPosts')
42 params[PARAM_LATEST_POSTS] = Post.objects.filter(pub_time__gt=today)\
43 .order_by('-pub_time')[:max_landing_posts]
44
40 return render(request, TEMPLATE, params)
45 return render(request, TEMPLATE, params)
41
46
General Comments 0
You need to be logged in to leave comments. Login now