mirror of
https://github.com/djohnlewis/stackdump
synced 2025-04-07 10:13:27 +00:00
Excess comments (defaults to any over 3) are now hidden by default.
They can be shown by clicking on the 'show comments' link.
This commit is contained in:
parent
3d515f51b1
commit
827445105b
python
@ -243,6 +243,7 @@ pre code {
|
|||||||
.post-comments ul {
|
.post-comments ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
|
margin-bottom: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-comments li {
|
.post-comments li {
|
||||||
@ -275,6 +276,10 @@ li .post-comment-metadata {
|
|||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.show-comments {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.user-card {
|
.user-card {
|
||||||
background-color: #F2F2F2;
|
background-color: #F2F2F2;
|
||||||
}
|
}
|
||||||
|
34
python/media/js/comments.js
Normal file
34
python/media/js/comments.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/**
|
||||||
|
* Bits of JavaScript used on the question page in Stackdump,
|
||||||
|
* (https://bitbucket.org/samuel.lai/stackdump/).
|
||||||
|
*
|
||||||
|
* Requires jQuery.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function hideExcessCommentsInit() {
|
||||||
|
// this function initialises the 'hiding excess comments' functionality.
|
||||||
|
|
||||||
|
// show the show-comments links and attach a click event handler to them
|
||||||
|
$('.show-comments').show();
|
||||||
|
$('.show-comments a').click(showHiddenComments);
|
||||||
|
|
||||||
|
// hide the all the hidden comments
|
||||||
|
$('.hidden-comment').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
function showHiddenComments() {
|
||||||
|
// once comments are show, they can't be hidden again
|
||||||
|
|
||||||
|
// get the relevant hidden comments
|
||||||
|
var comments = $(this).closest('.show-comments').siblings('ul').children('li.hidden-comment');
|
||||||
|
|
||||||
|
// show the comments
|
||||||
|
comments.show();
|
||||||
|
|
||||||
|
// hide the link
|
||||||
|
$(this).closest('.show-comments').hide();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(hideExcessCommentsInit);
|
@ -14,7 +14,12 @@ SERVER_PORT = 8080
|
|||||||
# slash.
|
# slash.
|
||||||
APP_URL_ROOT = '/'
|
APP_URL_ROOT = '/'
|
||||||
|
|
||||||
|
# number of comments to show before the rest are hidden behind a 'click to show'
|
||||||
|
# link
|
||||||
|
NUM_OF_DEFAULT_COMMENTS = 3
|
||||||
|
|
||||||
# settings that are available in templates
|
# settings that are available in templates
|
||||||
TEMPLATE_SETTINGS = [
|
TEMPLATE_SETTINGS = [
|
||||||
'APP_URL_ROOT'
|
'APP_URL_ROOT',
|
||||||
|
'NUM_OF_DEFAULT_COMMENTS'
|
||||||
]
|
]
|
@ -15,4 +15,27 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
{{ user.displayName }}
|
{{ user.displayName }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro render_comments(p, default_comments_max) %}
|
||||||
|
<ul>
|
||||||
|
{% for c in p.comments %}
|
||||||
|
<li {% if loop.index > default_comments_max %}class="hidden-comment"{% endif %}>
|
||||||
|
{% if c.score > 0 %}
|
||||||
|
<p class="post-comment-score">{{ c.score }}</p>
|
||||||
|
{% endif %}
|
||||||
|
<p class="post-comment-text">
|
||||||
|
{{ c.text }} —
|
||||||
|
<span class="post-comment-metadata">
|
||||||
|
<strong>{{ user_name(c.user) }}</strong> on
|
||||||
|
<strong>{{ c.creationDate|format_datetime }}</strong>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% if p.comments|length > default_comments_max %}
|
||||||
|
{% set additional_comments = p.comments|length - default_comments_max %}
|
||||||
|
<div class="show-comments"><a href="#">show <strong>{{ additional_comments }}</strong> more comment{% if additional_comments != 1 %}s{% endif %}...</a></div>
|
||||||
|
{% endif %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
@ -6,6 +6,7 @@
|
|||||||
{% block extrahead %}
|
{% block extrahead %}
|
||||||
<link rel="stylesheet" href="{{ SETTINGS.APP_URL_ROOT }}media/js/google-code-prettify/prettify.css" type="text/css" />
|
<link rel="stylesheet" href="{{ SETTINGS.APP_URL_ROOT }}media/js/google-code-prettify/prettify.css" type="text/css" />
|
||||||
<script type="text/javascript" src="{{ SETTINGS.APP_URL_ROOT }}media/js/google-code-prettify/prettify.js"></script>
|
<script type="text/javascript" src="{{ SETTINGS.APP_URL_ROOT }}media/js/google-code-prettify/prettify.js"></script>
|
||||||
|
<script type="text/javascript" src="{{ SETTINGS.APP_URL_ROOT }}media/js/comments.js"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
@ -59,22 +60,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% if r.question.comments %}
|
{% if r.question.comments %}
|
||||||
<div class="post-comments">
|
<div class="post-comments">
|
||||||
<ul>
|
{{ macros.render_comments(r.question, SETTINGS.NUM_OF_DEFAULT_COMMENTS) }}
|
||||||
{% for c in r.question.comments %}
|
|
||||||
<li>
|
|
||||||
{% if c.score > 0 %}
|
|
||||||
<p class="post-comment-score">{{ c.score }}</p>
|
|
||||||
{% endif %}
|
|
||||||
<p class="post-comment-text">
|
|
||||||
{{ c.text }} —
|
|
||||||
<span class="post-comment-metadata">
|
|
||||||
<strong>{{ macros.user_name(c.user) }}</strong> on
|
|
||||||
<strong>{{ c.creationDate|format_datetime }}</strong>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
@ -126,22 +112,7 @@
|
|||||||
|
|
||||||
<div class="post-comments">
|
<div class="post-comments">
|
||||||
{% if a.comments %}
|
{% if a.comments %}
|
||||||
<ul>
|
{{ macros.render_comments(a, SETTINGS.NUM_OF_DEFAULT_COMMENTS) }}
|
||||||
{% for c in a.comments %}
|
|
||||||
<li>
|
|
||||||
{% if c.score > 0 %}
|
|
||||||
<p class="post-comment-score">{{ c.score }}</p>
|
|
||||||
{% endif %}
|
|
||||||
<p class="post-comment-text">
|
|
||||||
{{ c.text }} —
|
|
||||||
<span class="post-comment-metadata">
|
|
||||||
<strong>{{ macros.user_name(c.user) }}</strong> on
|
|
||||||
<strong>{{ c.creationDate|format_datetime }}</strong>
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user