Commit | Line | Data |
---|---|---|
76c9ea6b WKG |
1 | {# |
2 | # GNU MediaGoblin -- federated, autonomous media hosting | |
cf29e8a8 | 3 | # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. |
76c9ea6b WKG |
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/>. | |
9a5b2da5 CAW |
17 | -#} |
18 | <!doctype html> | |
a80ebf3b AL |
19 | <html |
20 | {% block mediagoblin_html_tag %} | |
21 | {% endblock mediagoblin_html_tag %} | |
22 | > | |
a0598d5c | 23 | <head> |
5fa35884 | 24 | <meta charset="utf-8"> |
e58f2599 | 25 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
4f8f0a4e | 26 | <meta http-equiv="X-UA-Compatible" content="IE=Edge"> |
78801685 | 27 | <title>{% block title %}{{ app_config['html_title'] }}{% endblock %}</title> |
1344821d | 28 | <link rel="stylesheet" type="text/css" |
1dc7f28d | 29 | href="{{ request.staticdirect('/css/extlib/reset.css') }}"/> |
8ac897c3 CAW |
30 | <link rel="stylesheet" type="text/css" |
31 | href="{{ request.staticdirect('/css/base.css') }}"/> | |
7a8ad818 CAW |
32 | <link rel="shortcut icon" |
33 | href="{{ request.staticdirect('/images/goblin.ico') }}" /> | |
742bfa7a E |
34 | <script type="text/javascript" |
35 | src="{{ request.staticdirect('/js/extlib/jquery.js') }}"></script> | |
3c912132 CAW |
36 | <script type="text/javascript" |
37 | src="{{ request.staticdirect('/js/header_dropdown.js') }}"></script> | |
2d7b6bde JW |
38 | <script type="text/javascript" |
39 | src="{{ request.staticdirect('/js/notifications.js') }}"></script> | |
3c912132 | 40 | |
f6d1d28d | 41 | {# For clarification, the difference between the extra_head.html template |
cac17c15 | 42 | # and the head template hook is that the former should be used by |
f6d1d28d CAW |
43 | # themes and the latter should be used by plugins. |
44 | # The reason is that only one thing can override extra_head.html... | |
45 | # but multiple plugins can hook into the template hook. | |
46 | #} | |
667d1fc8 | 47 | {% include "mediagoblin/extra_head.html" %} |
cac17c15 | 48 | {% template_hook("head") %} |
0416b866 | 49 | |
e39b9cc6 | 50 | {% template_hook("persona_head") %} |
4f8f0a4e | 51 | |
00c39256 BK |
52 | {% block mediagoblin_head %} |
53 | {% endblock mediagoblin_head %} | |
a0598d5c | 54 | </head> |
a0598d5c | 55 | <body> |
8ca51d32 | 56 | {% include 'mediagoblin/bits/body_start.html' %} |
a0598d5c CAW |
57 | {% block mediagoblin_body %} |
58 | {% block mediagoblin_header %} | |
afcb0855 | 59 | <header> |
17dcc3ae | 60 | {%- include "mediagoblin/bits/logo.html" -%} |
afcb0855 JS |
61 | {% block mediagoblin_header_title %}{% endblock %} |
62 | <div class="header_right"> | |
155438cd | 63 | {%- if request.user %} |
29497982 | 64 | {% if request.user and request.user.status == 'active' %} |
2d7b6bde | 65 | |
7949d88a | 66 | {% set notification_count = get_notification_count(request.user.id) %} |
0c7fa755 | 67 | {% if notification_count %} |
7949d88a CAW |
68 | <a href="#notifications" class="notification-gem button_action" title="Notifications"> |
69 | {{ notification_count }}</a> | |
0c7fa755 | 70 | {% endif %} |
135dd529 RE |
71 | <a href="#header" class="button_action header_dropdown_down">▼</a> |
72 | <a href="#no_header" class="button_action header_dropdown_up">▲</a> | |
29497982 | 73 | {% elif request.user and request.user.status == "needs_email_verification" %} |
afcb0855 | 74 | {# the following link should only appear when verification is needed #} |
7b6836a3 | 75 | <a href="{{ request.urlgen('mediagoblin.user_pages.user_home', |
29497982 | 76 | user=request.user.username) }}" |
afcb0855 | 77 | class="button_action_highlight"> |
29497982 | 78 | {% trans %}Verify your email!{% endtrans %}</a> |
4f8f0a4e RE |
79 | or <a id="logout" href= |
80 | {% if persona is not defined %} | |
81 | "{{ request.urlgen('mediagoblin.auth.logout') }}" | |
82 | {% else %} | |
83 | "javascript:;" | |
84 | {% endif %} | |
85 | >{% trans %}log out{% endtrans %}</a> | |
681e1371 | 86 | {% endif %} |
744f1c83 | 87 | {%- elif auth %} |
4f8f0a4e RE |
88 | <a href= |
89 | {% if persona_auth is defined %} | |
90 | "javascript:;" id="persona_login" | |
91 | {% else %} | |
92 | "{{ request.urlgen('mediagoblin.auth.login') }}" | |
93 | {% endif %} | |
94 | > | |
155438cd E |
95 | {%- trans %}Log in{% endtrans -%} |
96 | </a> | |
97 | {%- endif %} | |
afcb0855 | 98 | </div> |
d297d8e8 | 99 | <div class="clear"></div> |
a7d079ac | 100 | {% if request.user and request.user.status == 'active' %} |
2369feb5 | 101 | <div class="header_dropdown"> |
d1d53560 CAW |
102 | <p> |
103 | <span class="dropdown_title"> | |
104 | {% trans user_url=request.urlgen('mediagoblin.user_pages.user_home', | |
105 | user=request.user.username), | |
106 | user_name=request.user.username -%} | |
107 | <a href="{{ user_url }}">{{ user_name }}</a>'s account | |
108 | {%- endtrans %} | |
a5b9a066 JS |
109 | </span> |
110 | · | |
111 | <a href="{{ request.urlgen('mediagoblin.edit.account') }}">{%- trans %}Change account settings{% endtrans -%}</a> | |
112 | · | |
113 | <a href="{{ request.urlgen('mediagoblin.user_pages.processing_panel', | |
fe253e31 | 114 | user=request.user.username) }}"> |
a5b9a066 JS |
115 | {%- trans %}Media processing panel{% endtrans -%} |
116 | </a> | |
117 | · | |
4f8f0a4e RE |
118 | <a id="logout" href= |
119 | {% if persona is not defined %} | |
120 | "{{ request.urlgen('mediagoblin.auth.logout') }}" | |
121 | {% else %} | |
122 | "javascript:;" | |
123 | {% endif %} | |
124 | >{% trans %}Log out{% endtrans %}</a> | |
d1d53560 | 125 | </p> |
a5b9a066 | 126 | <a class="button_action" href="{{ request.urlgen('mediagoblin.submit.start') }}"> |
5a42915b | 127 | {%- trans %}Add media{% endtrans -%} |
fe253e31 | 128 | </a> |
a5b9a066 | 129 | <a class="button_action" href="{{ request.urlgen('mediagoblin.submit.collection') }}"> |
5a42915b | 130 | {%- trans %}Create new collection{% endtrans -%} |
fe253e31 | 131 | </a> |
5a42915b | 132 | {% if request.user.is_admin %} |
a5b9a066 JS |
133 | <p> |
134 | <span class="dropdown_title">Admin powers:</span> | |
135 | <a href="{{ request.urlgen('mediagoblin.admin.panel') }}"> | |
136 | {%- trans %}Media processing panel{% endtrans -%} | |
137 | </a> | |
138 | </p> | |
5a42915b | 139 | {% endif %} |
2d7b6bde | 140 | {% include 'mediagoblin/fragments/header_notifications.html' %} |
5a42915b JS |
141 | </div> |
142 | {% endif %} | |
afcb0855 | 143 | </header> |
a0598d5c | 144 | {% endblock %} |
155438cd | 145 | <div class="container"> |
8ca51d32 | 146 | {% include 'mediagoblin/bits/above_content.html' %} |
155438cd | 147 | <div class="mediagoblin_content"> |
741d5a37 | 148 | {% include "mediagoblin/utils/messages.html" %} |
f7bcfaff JS |
149 | {% block mediagoblin_content %} |
150 | {% endblock mediagoblin_content %} | |
e39b9cc6 | 151 | {% if csrf_token is defined %} |
4f8f0a4e RE |
152 | {% template_hook("persona_form") %} |
153 | {% endif %} | |
155438cd | 154 | </div> |
19968583 | 155 | {%- include "mediagoblin/bits/base_footer.html" %} |
155438cd E |
156 | </div> |
157 | {%- endblock mediagoblin_body %} | |
8ca51d32 | 158 | {% include 'mediagoblin/bits/body_end.html' %} |
a0598d5c CAW |
159 | </body> |
160 | </html> |