Merge remote-tracking branch 'refs/remotes/tilly-q/OPW-Moderation-Update'
[mediagoblin.git] / mediagoblin / templates / mediagoblin / user_pages / media.html
index 2c8c5033d84e4822d2379d11abcff90fec93632e..81e5013e88e812ab04caa2d696e168e4a7f1a4d6 100644 (file)
@@ -1,6 +1,6 @@
 {#
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 MediaGoblin contributors.  See AUTHORS.
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
@@ -15,7 +15,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #}
-{% extends "mediagoblin/base.html" %}
+{%- extends "mediagoblin/base.html" %}
 
 {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %}
 {% from "mediagoblin/utils/pagination.html" import render_pagination %}
 {% block title %}{{ media.title }} &mdash; {{ super() }}{% endblock %}
 
 {% block mediagoblin_head %}
-  <script>
-    $(document).ready(function(){
-      $('#form_comment').hide();
-      $('#button_addcomment').click(function(){
-          $(this).fadeOut('fast');
-          $('#form_comment').slideDown(function(){
-            $('#comment_content').focus();
-          });
-      });
-    });
-  </script>
+<!--[if lte IE 8]><link rel="stylesheet"
+    href="{{ request.staticdirect('/extlib/leaflet/leaflet.ie.css') }}" /><![endif]-->
+  <script type="text/javascript"
+          src="{{ request.staticdirect('/js/comment_show.js') }}"></script>
+  <script type="text/javascript"
+          src="{{ request.staticdirect('/js/keyboard_navigation.js') }}"></script>
+
+  {% template_hook("media_head") %}
 {% endblock mediagoblin_head %}
 
 {% block mediagoblin_content %}
-  <div class="grid_11 alpha">
+  <p class="context">
+    {%- trans user_url=request.urlgen(
+              'mediagoblin.user_pages.user_home',
+              user=media.get_uploader.username),
+              username=media.get_uploader.username -%}
+    ❖ Browsing media by <a href="{{user_url}}">{{username}}</a>
+    {%- endtrans -%}
+  </p>
+  {% include "mediagoblin/utils/prev_next.html" %}
+  <div class="media_pane">
     <div class="media_image_container">
       {% block mediagoblin_media %}
         {% set display_media = request.app.public_store.file_url(
-                 media.get_display_media(media.media_files)) %}
+                 media.get_display_media()[1]) %}
         {# if there's a medium file size, that means the medium size
          #  isn't the original... so link to the original!
          #}
-        {% if media['media_files'].has_key('medium') %}
+        {% if media.media_files.has_key('medium') %}
           <a href="{{ request.app.public_store.file_url(
-                        media['media_files']['original']) }}">
+                        media.media_files['original']) }}">
             <img class="media_image"
                  src="{{ display_media }}"
-                 alt="Image for {{ media.title }}" />
+                 alt="{% trans media_title=media.title -%}
+                        Image for {{ media_title }}{% endtrans %}" />
           </a>
         {% else %}
           <img class="media_image"
                src="{{ display_media }}"
-               alt="Image for {{ media.title }}" />
+               alt="{% trans media_title=media.title -%}
+                      Image for {{ media_title }}{% endtrans %}" />
         {% endif %}
       {% endblock %}
     </div>
     <h2 class="media_title">
       {{ media.title }}
     </h2>
+    {% if request.user and
+          (media.uploader == request.user.id or
+           request.user.has_privilege('admin')) %}
+      {% set edit_url = request.urlgen('mediagoblin.edit.edit_media',
+                                 user= media.get_uploader.username,
+                                 media_id=media.id) %}
+      <a class="button_action" href="{{ edit_url }}">{% trans %}Edit{% endtrans %}</a>
+      {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete',
+                                 user= media.get_uploader.username,
+                                 media_id=media.id) %}
+      <a class="button_action" href="{{ delete_url }}">{% trans %}Delete{% endtrans %}</a>
+
+    {% endif %}
     {% autoescape False %}
       <p>{{ media.description_html }}</p>
-    {% endautoescape %}       
-    <p class="media_specs">
-      {% trans date=media.created.strftime("%Y-%m-%d") -%}
-        Added on {{ date }}.
-      {%- endtrans %}
-      {% if media['uploader'] == request.user._id or 
-                               request.user['is_admin'] %}
-        {% set edit_url = request.urlgen('mediagoblin.edit.edit_media',
-                                   user= media.get_uploader().username,
-                                   media= media._id) %}
-        <a class="button_action" href="{{ edit_url }}">{% trans %}Edit{% endtrans %}</a>
-        {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete',
-                                   user= media.get_uploader().username,
-                                   media= media._id) %}
-        <a class="button_action" href="{{ delete_url }}">{% trans %}Delete{% endtrans %}</a>
-      {% endif %}
-    </p>
-    <h3>{% trans %}23 comments{% endtrans %}
-      <div class="right_align">
+    {% endautoescape %}
+    {% if comments and request.user and request.user.has_privilege('commenter') %}
+      {% if app_config['allow_comments'] %}
         <a
           {% if not request.user %}
-            href="{{ request.urlgen('mediagoblin.auth.login') }}"
+          href="{{ request.urlgen('mediagoblin.auth.login') }}?next={{
+                                                request.base_url|urlencode }}"
           {% endif %}
           class="button_action" id="button_addcomment" title="Add a comment">
-          {% trans %}Add one{% endtrans %}
+          {% trans %}Add a comment{% endtrans %}
         </a>
-      </div>
-    </h3>
-    {# 0 comments. Be the first to add one! #}
+        {% include "mediagoblin/utils/comment-subscription.html" %}
+
+      {% endif %}
       {% if request.user %}
-        <form action="{{ request.urlgen('mediagoblin.user_pages.media_post_comment', 
-                                         user= media.get_uploader().username,
-                                         media=media._id) }}" method="POST" id="form_comment">
-          <p>
-            {% trans %}Type your comment here. You can use <a href="http://daringfireball.net/projects/markdown/basics" target="_blank">Markdown</a> for formatting.{% endtrans %}
-          </p>
+        <form action="{{ request.urlgen('mediagoblin.user_pages.media_post_comment',
+                                         user= media.get_uploader.username,
+                                         media_id=media.id) }}" method="POST" id="form_comment">
           {{ wtforms_util.render_divs(comment_form) }}
           <div class="form_submit_buttons">
             <input type="submit" value="{% trans %}Add this comment{% endtrans %}" class="button_action" />
               {{ csrf_token }}
           </div>
+          <input type="hidden" value="{{ request.urlgen('mediagoblin.user_pages.media_preview_comment') }}" id="previewURL" />
+          <input type="hidden" value="{% trans %}Comment Preview{% endtrans %}" id="previewText"/>
         </form>
+       <div id="comment_preview"></div>
       {% endif %}
-      {% if comments %}
-        {% for comment in comments %}
-          {% set comment_author = comment.author() %}
-                 {% if pagination.active_id == comment._id %}
-              <div class="comment_wrapper comment_active" id="comment-{{ comment._id }}">
-                           <a name="comment" id="comment"></a>
-            {% else %}
-              <div class="comment_wrapper" id="comment-{{ comment._id }}">
-                 {% endif %}
-                <div class="comment_content">
-                  {% autoescape False %}
-                    {{ comment.content_html }}
-                  {% endautoescape %}
-                  <img src="{{ request.staticdirect('/images/icon_comment.png') }}" />
-                  <a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
-                              user = comment_author.username) }}">
-                    {{ comment_author.username }}
-                  </a>
-                  {% trans %}at{% endtrans %} 
-                  <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.view_comment',
-                         comment = comment._id,
-                         user = media.get_uploader().username,
-                         media = media.slug) }}#comment">
-                    {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }}
-                  </a>
-                </div>
-              </div>
-        {% endfor %}
-      {{ render_pagination(request, pagination, 
-                 request.urlgen('mediagoblin.user_pages.media_home',
-                 user = media.get_uploader().username,
-                 media = media._id)) }}
+      <ul style="list-style:none">
+      {% for comment in comments %}
+        {% set comment_author = comment.get_author %}
+        <li id="comment-{{ comment.id }}"
+          {%- if pagination.active_id == comment.id %}
+            class="comment_wrapper comment_active">
+            <a name="comment" id="comment"></a>
+          {%- else %}
+            class="comment_wrapper">
+          {%- endif %}
+          <div class="comment_author">
+            <img src="{{ request.staticdirect('/images/icon_comment.png') }}" />
+            <a href="{{ request.urlgen('mediagoblin.user_pages.user_home',
+                            user=comment_author.username) }}"
+               class="comment_authorlink">
+              {{- comment_author.username -}}
+            </a>
+            <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.view_comment',
+                            comment=comment.id,
+                            user=media.get_uploader.username,
+                            media=media.slug_or_id) }}#comment"
+               class="comment_whenlink">
+              <span title='{{- comment.created.strftime("%I:%M%p %Y-%m-%d") -}}'>
+                {%- trans formatted_time=timesince(comment.created) -%}
+                  {{ formatted_time }} ago
+                {%- endtrans -%}
+              </span></a>:
+          </div>
+          <div class="comment_content">
+            {% autoescape False -%}
+              {{ comment.content_html }}
+            {%- endautoescape %}
+          </div>
+          <div>
+            {% if app_config.allow_reporting %}
+                <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.report_comment',
+                            user=media.get_uploader.username,
+                             media=media.slug_or_id,
+                             comment=comment.id) }}">
+                    {% trans %}Report{% endtrans %}</a>
+            {% endif %}
+          </div>
+        </li>
+      {% endfor %}
+      </ul>
+      {{ render_pagination(request, pagination,
+                 media.url_for_self(request.urlgen)) }}
     {% endif %}
   </div>
-  <div class="grid_5 omega">
-    {% trans user_url=request.urlgen(
-                'mediagoblin.user_pages.user_home',
-                user=media.get_uploader().username),
-                username=media.get_uploader().username -%}
-      <p>❖ Browsing media by <a href="{{ user_url }}">{{ username }}</a></p>
-    {%- endtrans %}  
-    {% include "mediagoblin/utils/prev_next.html" %}
-    {% if media.attachment_files|count %}
-      <h3>Attachments</h3>
+  <div class="media_sidebar">
+    <h3>{% trans %}Added{% endtrans %}</h3>
+    <p><span title="{{ media.created.strftime("%I:%M%p %Y-%m-%d") }}">
+        {%- trans formatted_time=timesince(media.created) -%}
+          {{ formatted_time }} ago
+        {%- endtrans -%}
+    </span></p>
+
+    {% block mediagoblin_after_added_sidebar %}
+    {% endblock %}
+
+    {% if media.tags %}
+      {% include "mediagoblin/utils/tags.html" %}
+    {% endif %}
+
+    {% include "mediagoblin/utils/collections.html" %}
+
+    {% if app_config.allow_reporting %}
+      {% include "mediagoblin/utils/report.html" %}
+    {% endif %}
+
+    {% include "mediagoblin/utils/license.html" %}
+
+    {% include "mediagoblin/utils/exif.html" %}
+
+    {%- if media.attachment_files|count %}
+      <h3>{% trans %}Attachments{% endtrans %}</h3>
       <ul>
-        {% for attachment in media.attachment_files %}
+        {%- for attachment in media.attachment_files %}
           <li>
             <a href="{{ request.app.public_store.file_url(attachment.filepath) }}">
-              {{ attachment.name }}
+              {{- attachment.name -}}
             </a>
           </li>
-        {% endfor %}
+        {%- endfor %}
       </ul>
-    {% endif %}
-    {% if app_config['allow_attachments']
-          and (media.uploader == request.user._id
-               or request.user.is_admin) %}
+    {%- endif %}
+    {%- if app_config['allow_attachments']
+          and request.user
+          and (media.uploader == request.user.id
+               or request.user.has_privilege('admin')) %}
+      {%- if not media.attachment_files|count %}
+        <h3>{% trans %}Attachments{% endtrans %}</h3>
+      {%- endif %}
       <p>
         <a href="{{ request.urlgen('mediagoblin.edit.attachments',
-                      user=media.get_uploader().username,
-                      media=media._id) }}">Add attachment</a>
+                      user=media.get_uploader.username,
+                      media_id=media.id) }}">
+          {%- trans %}Add attachment{% endtrans -%}
+        </a>
       </p>
-    {% endif %}
-    {% if media.tags %}
-      {% include "mediagoblin/utils/tags.html" %}
-    {% endif %}
+    {%- endif %}
+
+    {% template_hook("media_sideinfo") %}
+
+    {% block mediagoblin_sidebar %}
+    {% endblock %}
+
   </div>
+  <div class="clear"></div>
 {% endblock %}