Merge branch '540_User_delete_deletes_related_entries'
[mediagoblin.git] / mediagoblin / templates / mediagoblin / user_pages / media.html
index 000b1b800adb24a29c6f1278e00a4bf3100ce037..10b48296234e2dc73ac9590e3addd6908922f410 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
 {% block title %}{{ media.title }} — {{ 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>
+
+  {% if app_config['geolocation_map_visible'] %}
+    <link rel="stylesheet"
+         href="{{ request.staticdirect('/extlib/leaflet/leaflet.css') }}" />
+
+    <script type="text/javascript"
+            src="{{ request.staticdirect('/extlib/leaflet/leaflet.js') }}"></script>
+    <script type="text/javascript"
+            src="{{ request.staticdirect('/js/geolocation-map.js') }}"></script>
+  {% endif %}
 {% endblock mediagoblin_head %}
 
 {% block mediagoblin_content %}
-  {% if media %}
-    <div class="grid_11 alpha">
-      <div class="media_image_container">
-        {% block mediagoblin_media %}
-          {% set display_media = request.app.public_store.file_url(
-                   media.get_display_media(media.media_files)) %}
-
-          {# 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') %}
-            <a href="{{ request.app.public_store.file_url(
-                          media['media_files']['original']) }}">
-              <img class="media_image"
-                   src="{{ display_media }}"
-                   alt="Image for {{ media.title }}" />
-            </a>
-          {% else %}
+  <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)) %}
+        {# 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') %}
+          <a href="{{ request.app.public_store.file_url(
+                        media.media_files['original']) }}">
             <img class="media_image"
                  src="{{ display_media }}"
-                 alt="Image for {{ media.title }}" />
-          {% endif %}
-        {% endblock %}
-      </div>
-
-      <h2 class="media_title">
-        {{ media.title }}
-      </h2>
-      {% autoescape False %}
-        <p>{{ media.description_html }}</p>
-      {% endautoescape %}
-      <p class="media_uploader">
-        {% trans date=media.created.strftime("%Y-%m-%d") -%}
-          {{ date }}
-        {%- endtrans %}
-      </p>
-      
-      {% if media['uploader'] == request.user._id or 
-                                 request.user['is_admin'] %}
-        <p>
-          {% 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>
-        </p>
-        <p>
-          {% 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>
-        </p>
-      {% endif %}
-      
-      <h3>{% trans %}23 comments{% endtrans %} <div class="right_align"><a {% if not request.user %}href="{{ request.urlgen('mediagoblin.auth.login') }}"{% endif %}class="button_action" id="button_addcomment" title="Add a comment">{% trans %}Add one{% endtrans %}</a></div></h3>
-      {# 0 comments. Be the first to add one! #}
+                 alt="{% trans media_title=media.title -%}
+                        Image for {{ media_title }}{% endtrans %}" />
+          </a>
+        {% else %}
+          <img class="media_image"
+               src="{{ display_media }}"
+               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.is_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 %}
+    {% if comments %}
+          <a
+            {% if not request.user %}
+              href="{{ request.urlgen('mediagoblin.auth.login') }}"
+            {% endif %}
+            class="button_action" id="button_addcomment" title="Add a comment">
+            {% trans %}Add a comment{% endtrans %}
+          </a>
       {% 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>
+                                         user= media.get_uploader.username,
+                                         media_id=media.id) }}" method="POST" id="form_comment">
+          <p>
+            {% trans %}You can use <a href="http://daringfireball.net/projects/markdown/basics">Markdown</a> for formatting.{% endtrans %}
+          </p>
           {{ wtforms_util.render_divs(comment_form) }}
           <div class="form_submit_buttons">
             <input type="submit" value="{% trans %}Add this comment{% endtrans %}" class="button_action" />
           </div>
         </form>
       {% 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 %}
+      {% for comment in comments %}
+        {% set comment_author = comment.get_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_author">
             <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._id) }}#comment">
-                {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }}
-              </a>
-            </div>
+                            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_or_id) }}#comment">
+              {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }}
+            </a>:
           </div>
-        {% endfor %}
+          <div class="comment_content">
+            {% autoescape False %}
+              {{ comment.content_html }}
+            {% endautoescape %}
+          </div>
+        </div>
+      {% endfor %}
+      {{ render_pagination(request, pagination,
+                 media.url_for_self(request.urlgen)) }}
+    {% endif %}
+  </div>
+  <div class="media_sidebar">
+    {% trans date=media.created.strftime("%Y-%m-%d") -%}
+      <h3>Added on</h3>
+      <p>{{ date }}</p>
+    {%- endtrans %}
+    {% if media.tags %}
+      {% include "mediagoblin/utils/tags.html" %}
+    {% endif %}
 
-        {{ render_pagination(request, pagination, 
-             request.urlgen('mediagoblin.user_pages.media_home',
-             user = media.get_uploader().username,
-             media = media._id)) }}
-      </div>
+    {% if media.collections %}
+      {% include "mediagoblin/utils/collections.html" %}
     {% endif %}
 
-    <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" %}
+    {% include "mediagoblin/utils/license.html" %}
 
-      {% if media.attachment_files|count %}
-        <h3>Attachments</h3>
-        <ul>
-          {% for attachment in media.attachment_files %}
-            <li>
-              <a href="{{ request.app.public_store.file_url(attachment.filepath) }}">
-                {{ attachment.name }}
-              </a>
-            </li>
-          {% endfor %}
-        </ul>
-      {% endif %}
+    {% include "mediagoblin/utils/geolocation_map.html" %}
 
-      {% if app_config['allow_attachments']
-            and (media['uploader'] == request.user._id
-                 or request.user['is_admin']) %}
-        <p>
-          <a href="{{ request.urlgen('mediagoblin.edit.attachments',
-                        user=media.get_uploader().username,
-                        media=media._id) }}">Add attachment</a>
-        </p>
+    {% include "mediagoblin/utils/exif.html" %}
+    
+    {% if media.attachment_files|count %}
+      <h3>{% trans %}Attachments{% endtrans %}</h3>
+      <ul>
+        {% for attachment in media.attachment_files %}
+          <li>
+            <a href="{{ request.app.public_store.file_url(attachment.filepath) }}">
+              {{- attachment.name -}}
+            </a>
+          </li>
+        {% endfor %}
+      </ul>
+    {% endif %}
+    {% if app_config['allow_attachments']
+          and request.user
+          and (media.uploader == request.user.id
+               or request.user.is_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) }}">{% trans %}Add attachment{% endtrans %}</a>
+      </p>
+    {% endif %}
 
-      {% if media.tags %}
-        {% include "mediagoblin/utils/tags.html" %}
-      {% endif %}
-    </div>
-  {% else %}
-    <p>{% trans %}Sorry, no such media found.{% endtrans %}<p/>
-  {% endif %}
+    {% if request.user %}
+      <p>
+        <a type="submit" href="{{ request.urlgen('mediagoblin.user_pages.media_collect', 
+                                    user=media.get_uploader.username,
+                                    media=media.id) }}"
+           class="button_action"
+           title="{% trans %}Add media to collection{% endtrans %}">
+          <img src="{{ request.staticdirect('/images/icon_collect.png') }}"
+               />
+       </a>
+      </p>
+    {% endif %}
+
+    {% block mediagoblin_sidebar %}
+    {% endblock %}
+  </div>
+  <div class="clear"></div>
 {% endblock %}