Commit | Line | Data |
---|---|---|
359cd2a2 A |
1 | {# |
2 | # GNU MediaGoblin -- federated, autonomous media hosting | |
3 | # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. | |
4 | # | |
5 | # This program is free software: you can redistribute it and/or modify | |
6 | # it under the terms of the GNU Affero General Public License as published by | |
7 | # the Free Software Foundation, either version 3 of the License, or | |
8 | # (at your option) any later version. | |
9 | # | |
10 | # This program is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU Affero General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU Affero General Public License | |
16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | #} | |
18 | {%- extends "mediagoblin/base.html" %} | |
19 | ||
20 | {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} | |
21 | {% from "mediagoblin/utils/pagination.html" import render_pagination %} | |
22 | ||
23 | {% block title %}{{ media.title }} — {{ super() }}{% endblock %} | |
24 | ||
25 | {% block mediagoblin_head %} | |
26 | <!--[if lte IE 8]><link rel="stylesheet" | |
27 | href="{{ request.staticdirect('/extlib/leaflet/leaflet.ie.css') }}" /><![endif]--> | |
28 | <script type="text/javascript" | |
29 | src="{{ request.staticdirect('/js/comment_show.js') }}"></script> | |
30 | <script type="text/javascript" | |
31 | src="{{ request.staticdirect('/js/keyboard_navigation.js') }}"></script> | |
32 | ||
33 | {% template_hook("media_head") %} | |
34 | {% endblock mediagoblin_head %} | |
35 | ||
36 | {% block mediagoblin_content %} | |
37 | <p class="context"> | |
38 | {%- trans user_url=request.urlgen( | |
39 | 'mediagoblin.user_pages.user_home', | |
beb5a4a1 | 40 | user=media.get_actor.username), |
41 | username=media.get_actor.username -%} | |
e70fcc00 | 42 | ❖ Blog post by <a href="{{user_url}}">{{username}}</a> |
359cd2a2 A |
43 | {%- endtrans -%} |
44 | </p> | |
45 | {% include "mediagoblin/utils/prev_next.html" %} | |
46 | <div class="media_pane"> | |
47 | <div class="media_image_container"> | |
48 | {% block mediagoblin_media %} | |
49 | {% set display_media = request.app.public_store.file_url( | |
50 | media.get_display_media()[1]) %} | |
51 | {# if there's a medium file size, that means the medium size | |
52 | # isn't the original... so link to the original! | |
53 | #} | |
54 | {% if media.media_files.has_key('medium') %} | |
55 | <a href="{{ request.app.public_store.file_url( | |
56 | media.media_files['original']) }}"> | |
57 | <img class="media_image" | |
58 | src="{{ display_media }}" | |
59 | alt="{% trans media_title=media.title -%} | |
60 | Image for {{ media_title }}{% endtrans %}" /> | |
61 | </a> | |
62 | {% else %} | |
63 | <img class="media_image" | |
64 | src="{{ display_media }}" | |
65 | alt="{% trans media_title=media.title -%} | |
66 | Image for {{ media_title }}{% endtrans %}" /> | |
67 | {% endif %} | |
68 | {% endblock %} | |
69 | </div> | |
70 | {% if request.user and | |
beb5a4a1 | 71 | (media.actor == request.user.id or |
39fbb834 | 72 | request.user.has_privilege('admin')) %} |
0f3bf8d4 JT |
73 | {% set edit_url = request.urlgen('mediagoblin.media_types.blog.blogpost.edit', |
74 | blog_slug=media.media_manager.get_blog_by_blogpost().slug, | |
dee425d2 | 75 | user=request.user.username, blog_post_slug=media.slug) %} |
359cd2a2 A |
76 | <a class="button_action" href="{{ edit_url }}">{% trans %}Edit{% endtrans %}</a> |
77 | {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', | |
beb5a4a1 | 78 | user= media.get_actor.username, |
359cd2a2 | 79 | media_id=media.id) %} |
12c0872b | 80 | <a class="button_action button_warning" href="{{ delete_url }}">{% trans %}Delete{% endtrans %}</a> |
359cd2a2 A |
81 | |
82 | {% endif %} | |
83 | </br> | |
84 | </br> | |
85 | {% if comments %} | |
86 | {% if app_config['allow_comments'] %} | |
87 | <a | |
88 | {% if not request.user %} | |
89 | href="{{ request.urlgen('mediagoblin.auth.login') }}" | |
90 | {% endif %} | |
91 | class="button_action" id="button_addcomment" title="Add a comment"> | |
92 | {% trans %}Add a comment{% endtrans %} | |
93 | </a> | |
94 | {% include "mediagoblin/utils/comment-subscription.html" %} | |
95 | ||
96 | {% endif %} | |
97 | {% if request.user %} | |
98 | <form action="{{ request.urlgen('mediagoblin.user_pages.media_post_comment', | |
beb5a4a1 | 99 | user= media.get_actor.username, |
359cd2a2 A |
100 | media_id=media.id) }}" method="POST" id="form_comment"> |
101 | {{ wtforms_util.render_divs(comment_form) }} | |
102 | <div class="form_submit_buttons"> | |
103 | <input type="submit" value="{% trans %}Add this comment{% endtrans %}" class="button_action" /> | |
104 | {{ csrf_token }} | |
105 | </div> | |
106 | </form> | |
107 | {% endif %} | |
108 | <ul style="list-style:none"> | |
109 | {% for comment in comments %} | |
512ed083 AB |
110 | {% set comment_object = comment.comment() %} |
111 | {% set comment_author = comment_object.get_actor %} | |
359cd2a2 A |
112 | <li id="comment-{{ comment.id }}" |
113 | {%- if pagination.active_id == comment.id %} | |
114 | class="comment_wrapper comment_active"> | |
115 | <a name="comment" id="comment"></a> | |
116 | {%- else %} | |
117 | class="comment_wrapper"> | |
118 | {%- endif %} | |
119 | <div class="comment_author"> | |
120 | <img src="{{ request.staticdirect('/images/icon_comment.png') }}" /> | |
121 | <a href="{{ request.urlgen('mediagoblin.user_pages.user_home', | |
122 | user=comment_author.username) }}" | |
123 | class="comment_authorlink"> | |
124 | {{- comment_author.username -}} | |
125 | </a> | |
126 | <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.view_comment', | |
127 | comment=comment.id, | |
beb5a4a1 | 128 | user=media.get_actor.username, |
359cd2a2 A |
129 | media=media.slug_or_id) }}#comment" |
130 | class="comment_whenlink"> | |
512ed083 AB |
131 | <span title='{{- comment_object.created.strftime("%I:%M%p %Y-%m-%d") -}}'> |
132 | {%- trans formatted_time=timesince(comment_object.created) -%} | |
359cd2a2 A |
133 | {{ formatted_time }} ago |
134 | {%- endtrans -%} | |
135 | </span></a>: | |
136 | </div> | |
137 | <div class="comment_content"> | |
138 | {% autoescape False -%} | |
512ed083 | 139 | {{ comment_object.content_html }} |
359cd2a2 A |
140 | {%- endautoescape %} |
141 | </div> | |
142 | </li> | |
143 | {% endfor %} | |
144 | </ul> | |
145 | {{ render_pagination(request, pagination, | |
146 | media.url_for_self(request.urlgen)) }} | |
147 | {% endif %} | |
148 | </div> | |
149 | <div class="media_sidebar"> | |
150 | <h3>{% trans %}Added{% endtrans %}</h3> | |
151 | <p><span title="{{ media.created.strftime("%I:%M%p %Y-%m-%d") }}"> | |
0f3bf8d4 | 152 | {%- trans formatted_time=timesince(media.created) -%} |
359cd2a2 A |
153 | {{ formatted_time }} ago |
154 | {%- endtrans -%} | |
155 | </span></p> | |
156 | ||
157 | {% block mediagoblin_after_added_sidebar %} | |
158 | {% endblock %} | |
159 | ||
160 | {% if media.tags %} | |
161 | {% include "mediagoblin/utils/tags.html" %} | |
162 | {% endif %} | |
163 | ||
164 | {% include "mediagoblin/utils/collections.html" %} | |
165 | ||
166 | {% include "mediagoblin/utils/license.html" %} | |
167 | ||
359cd2a2 A |
168 | {% template_hook("media_sideinfo") %} |
169 | ||
170 | {% block mediagoblin_sidebar %} | |
171 | {% endblock %} | |
172 | ||
173 | </div> | |
174 | <div class="clear"></div> | |
175 | {% endblock %} |