blob: c8afd9eef8cda9745eeb6233113ad4c4add7cf4e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
{% macro disp_user(username) -%}
<a href="{{url_for('user.view_user',username=username)}}" class="username">{{username}}</a>
{%- endmacro %}
{% macro post_url(post) -%}
{{url_for('thread.view_thread', thread_id=post.thread)}}#post_{{post.id}}
{%- endmacro %}
{% macro disp_post(post, buttons=False, footer=None) %}
<div class="post" id="post_{{post.id}}">
<div class="post-heading">
<span class="post-heading-a">
{{disp_user(post.author)}}
{{ts(post.created)}}
{% if post.edited %}
(edited {{ts(post.updated)}})
{% endif %}
</span>
<span class="post-heading-b">
{% if buttons %}
{% if post.author == g.user %}
<a class="actionbutton"
href="{{url_for('thread.edit_post',post_id=post.id)}}">edit</a>
<a class="actionbutton"
href="{{url_for('thread.delete_post',post_id=post.id)}}">delete</a>
{% endif %}
<a class="actionbutton"
href="{{url_for('thread.view_post',post_id=post.id)}}">src</a>
{% endif %}
<a class="post-anchor-link" href="{{post_url(post)}}">#{{post.id}}</a>
</span>
</div>
<div class="post-content md">
{{ post.content|md|safe }}
</div>
{% if footer %}
<div class="post-footer">
{{ footer }}
</div>
{% endif %}
</div>
{% endmacro %}
{% macro ts(dt) -%}
<time title="{{dt.isoformat(' ')}}" datetime="{{dt.isoformat(' ')}}">{{dt | fuzzy}}</time>
{%- endmacro %}
{% macro tag(the_tag) -%}
<span class="tag" style="color: {{the_tag.text_colour}}; background-color: {{the_tag.bg_colour}}">{{the_tag.name}}</span>
{%- endmacro %}
{% macro vote_meter(poll) %}
{% set total_votes = poll.total_votes %}
{% set n = namespace() %}
{% set n.runningtotal = 0 %}
<svg width="100%" height="15px" xmlns="http://www.w3.org/2000/svg">
{% if total_votes == 0 %}
<text text-anchor="middle" dominant-baseline="middle" x="11%" y="55%" fill="black" style="font-size:15px">no votes</text>
{% else %}
{% for opt in poll.options %}
{% set opt_count = opt.num or 0 %}
{% set colour = (loop.count|string + opt.text)|gen_colour %}
{% if opt_count != 0 %}
{% set percentage = 100*(opt_count/total_votes) %}
{# todo: do this in css somehow #}
{% if opt.text|length > 10 %}
{% set opt_text = opt.text[:7] + "..." %}
{% else %}
{% set opt_text = opt.text %}
{% endif %}
<rect y="0" height="100%" x="{{n.runningtotal}}%" width="{{percentage}}%" stroke="black" fill="{{colour}}" />
<text text-anchor="middle" dominant-baseline="middle" y="55%" fill="black" style="font-size:15px" x="{{n.runningtotal+(percentage/2)}}%">
{{opt_text}}: {{opt_count}}
</text>
{% set n.runningtotal = n.runningtotal + percentage %}
{% endif %}
{% endfor %}
{% endif %}
<desc>
poll: {{poll.title}}
{% for opt in poll.options %}
option "{{opt.text}}": {{opt.num or 0}} votes
{% endfor %}
total votes: {{total_votes}}
</desc>
</svg>
{% endmacro %}
|