Commit | Line | Data |
---|---|---|
a0fdc00f AW |
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 | ||
19 | {% from "mediagoblin/utils/pagination.html" import render_pagination %} | |
20 | ||
21 | {% macro media_grid(request, collection_items, col_number=5) %} | |
da77b8e9 | 22 | <div class="thumb_gallery"> |
2222278d | 23 | {% for row in collection_items|batch(col_number) %} |
da77b8e9 | 24 | <div class="row thumb_row |
a0fdc00f AW |
25 | {%- if loop.first %} thumb_row_first |
26 | {%- elif loop.last %} thumb_row_last{% endif %}"> | |
27 | {% for item in row %} | |
0f3bf8d4 JT |
28 | {% set obj = item.get_object() %} |
29 | {% set obj_url = obj.url_for_self(request.urlgen) %} | |
da77b8e9 | 30 | <div class="three columns media_thumbnail thumb_entry |
a0fdc00f AW |
31 | {%- if loop.first %} thumb_entry_first |
32 | {%- elif loop.last %} thumb_entry_last{% endif %}"> | |
0f3bf8d4 | 33 | <a href="{{ obj_url }}"> |
be44e006 AB |
34 | {% if obj.icon_url %} |
35 | <img class="entry_type_icon" src="{{ obj.icon_url }}" /> | |
36 | {% endif %} | |
0f3bf8d4 | 37 | <img src="{{ obj.thumb_url }}" /> |
a0fdc00f | 38 | </a> |
2e4ad359 | 39 | |
a0fdc00f | 40 | {% if item.note %} |
0f3bf8d4 | 41 | <a href="{{ obj_url }}">{{ item.note }}</a> |
a0fdc00f AW |
42 | {% endif %} |
43 | {% if request.user and | |
0f3bf8d4 | 44 | (item.in_collection.actor == request.user.id or |
f1bf5ccd | 45 | request.user.has_privilege('admin')) %} |
32255ec0 | 46 | {%- set remove_url=request.urlgen( |
a0fdc00f | 47 | 'mediagoblin.user_pages.collection_item_confirm_remove', |
0f3bf8d4 | 48 | user=item.in_collection.get_actor.username, |
a0fdc00f AW |
49 | collection=item.in_collection.slug, |
50 | collection_item=item.id) -%} | |
32255ec0 E |
51 | <a href="{{ remove_url }}" class="remove"> |
52 | {%- trans %}(remove){% endtrans -%} | |
53 | </a> | |
a0fdc00f | 54 | {% endif %} |
da77b8e9 | 55 | </div> |
a0fdc00f | 56 | {% endfor %} |
da77b8e9 | 57 | </div> |
a0fdc00f | 58 | {% endfor %} |
da77b8e9 | 59 | </div> |
a0fdc00f AW |
60 | {%- endmacro %} |
61 | ||
62 | {# | |
63 | Render a media gallery with pagination. | |
64 | ||
65 | Args: | |
66 | - request: Request | |
67 | - collection_items: cursor of collection items | |
68 | - pagination: Paginator object | |
69 | - pagination_base_url: If you want the pagination to point to a | |
70 | different URL, point it here | |
71 | - col_number: How many columns per row (default 5) | |
72 | #} | |
73 | {% macro collection_gallery(request, collection_items, pagination, | |
74 | pagination_base_url=None, col_number=5) %} | |
75 | {% if collection_items and collection_items.count() %} | |
76 | {{ media_grid(request, collection_items, col_number=col_number) }} | |
77 | <div class="clear"></div> | |
78 | {% if pagination_base_url %} | |
79 | {# different url, so set that and don't keep the get params #} | |
80 | {{ render_pagination(request, pagination, pagination_base_url, False) }} | |
81 | {% else %} | |
82 | {{ render_pagination(request, pagination) }} | |
83 | {% endif %} | |
84 | {% else %} | |
85 | <p> | |
86 | <i> | |
87 | {%- trans -%} | |
88 | There doesn't seem to be any media here yet... | |
89 | {%- endtrans -%} | |
90 | </i> | |
91 | </p> | |
92 | {% endif %} | |
93 | {% endmacro %} |