0
|
1 |
{% extends "admin/page_change_form.html" %} |
|
2 |
{% load i18n admin_modify adminmedia cms_tags cms_admin %} |
|
3 |
{% block js_import %} |
|
4 |
{% endblock %} |
|
5 |
{% block extrahead %} |
|
6 |
{{ block.super }} |
|
7 |
{% if not add %} |
|
8 |
<script type="text/javascript" src="{{ CMS_MEDIA_URL }}js/change_form.js"></script> |
|
9 |
{% endif %} |
|
10 |
<script type="text/javascript" src="{% admin_media_prefix %}js/urlify.js"></script> |
|
11 |
|
|
12 |
{% if add %} |
|
13 |
<script type="text/javascript"> |
|
14 |
$(document).ready(function(){ |
|
15 |
$("#id_title").keyup(function() { |
|
16 |
var e = $("#id_slug")[0]; |
|
17 |
if (!e._changed) { |
|
18 |
e.value = URLify(this.value, 64); |
|
19 |
} |
|
20 |
}); |
|
21 |
}); |
|
22 |
</script> |
|
23 |
{% endif %} |
|
24 |
|
|
25 |
|
|
26 |
{% endblock %} |
|
27 |
|
|
28 |
{% block content_title %} |
|
29 |
{% if moderation_delete_request %} |
|
30 |
<h1 class="moderation-approve-deletion">{% trans "Approve page deletion" %}</h1> |
|
31 |
|
|
32 |
{% else %} |
|
33 |
|
|
34 |
<h1>{{ title }} |
|
35 |
{% if CMS_MODERATOR %} |
|
36 |
{% if moderation_required %}<span class="moderation-requires-approvement">{% blocktrans %}(requires approvement at {{ moderation_level }} level){% endblocktrans %}</span> |
|
37 |
{% else %}<span>{% trans '(you can perform actions on this page directly)' %}</span> |
|
38 |
{% endif %} |
|
39 |
{% endif %} |
|
40 |
</h1> |
|
41 |
{% endif %} |
|
42 |
|
|
43 |
{% endblock %} |
|
44 |
|
|
45 |
{% block content %}<div id="content-main"> |
|
46 |
|
|
47 |
{% block object-tools %} |
|
48 |
{% if change %}{% if not is_popup %} |
|
49 |
<ul class="object-tools"> |
|
50 |
{% if moderation_delete_request %}<li><a href="remove-delete-state/" class="approvelink">{% trans "Remove delete request" %}</a></li>{% endif %} |
|
51 |
{% if moderator_should_approve %} |
|
52 |
<li><a href="approve/" class="approvelink">{% if moderation_delete_request %}{% trans "Approve delete" %}{% else %}{% trans "Approve" %} {% trans "draft" %}{% endif %}</a></li> |
|
53 |
<li><a href="{% if cl.current_site %}{% ifnotequal cl.current_site site %}http://{{ cl.current_site.domain }}{% endifnotequal %}{% endif %}{{ page.get_absolute_url }}?preview&draft=1" class="previewdraftlink">{% trans "Preview" %} {% trans "draft" %}</a></li> |
|
54 |
{% endif %} |
|
55 |
|
|
56 |
<li><a href="history/" class="historylink">{% trans "History" %}</a></li> |
|
57 |
{% if has_absolute_url %}<li><a href="{% if cl.current_site %}{% ifnotequal cl.current_site site %}http://{{ cl.current_site.domain }}{% endifnotequal %}{% endif %}{{ page|preview_link:language }}?preview" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif%} |
|
58 |
</ul> |
|
59 |
{% endif %}{% endif %} |
|
60 |
{% endblock %} |
|
61 |
|
|
62 |
|
|
63 |
<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="?language={{ language }}{%if request.GET.target %}&target={{ request.GET.target }}{% endif %}&{%if request.GET.target %}position={{ request.GET.position }}{% endif %}" method="post" id="page_form">{% block form_top %}{% endblock %} |
|
64 |
{{ adminForm.fields.parent }} |
|
65 |
|
|
66 |
<input type="hidden" name="language" value="{{ language }}" /> |
|
67 |
|
|
68 |
{% if show_language_tabs %} |
|
69 |
<div id="page_form_lang_tabs"> |
|
70 |
{% for lang_code, lang_name in traduction_language %} |
|
71 |
<input type="button" onclick="trigger_lang_button(this,'./?language={{lang_code}}');" |
|
72 |
class="language_button {% ifequal lang_code language %}selected{% endifequal %}" |
|
73 |
id="debutton" name="{{lang_code}}" value="{{lang_name}}" /> |
|
74 |
{% endfor %} |
|
75 |
</div> |
|
76 |
{% endif %} |
|
77 |
|
|
78 |
|
|
79 |
<div id="lang_tab_content"> |
|
80 |
{% if show_language_tabs %} |
|
81 |
<h2 class="header"></h2> |
|
82 |
{% endif %} |
|
83 |
{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %} |
|
84 |
{% if save_on_top %}{% submit_row %}{% endif %} |
|
85 |
{% if errors %} |
|
86 |
<p class="errornote"> |
|
87 |
{% blocktrans count errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} |
|
88 |
</p> |
|
89 |
<ul class="errorlist">{% for error in adminform.form.non_field_errors %}<li>{{ error }}</li>{% endfor %}</ul> |
|
90 |
{% endif %} |
|
91 |
|
|
92 |
{% for fieldset in adminform %} |
|
93 |
{% include "admin/cms/page/includes/fieldset.html" %} |
|
94 |
{% endfor %} |
|
95 |
|
|
96 |
|
|
97 |
{% for inline_admin_formset in inline_admin_formsets %} |
|
98 |
{% include inline_admin_formset.opts.template %} |
|
99 |
{% endfor %} |
|
100 |
|
|
101 |
|
|
102 |
{% if not add %} |
|
103 |
{% if CMS_PERMISSION and has_change_permissions_permission %} |
|
104 |
<div class="inline-group"> |
|
105 |
<div class="tabular inline-related"> |
|
106 |
<fieldset id="inherited_permissions" class="module aligned collapse"> |
|
107 |
<h2>{% trans 'All permissions' %}</h2> |
|
108 |
<div class="loading">{% trans 'Loading...' %}</div> |
|
109 |
<div class="load">./permissions/</div> |
|
110 |
</fieldset> |
|
111 |
</div> |
|
112 |
</div> |
|
113 |
{% endif %} |
|
114 |
|
|
115 |
{% if CMS_MODERATOR and has_moderate_permission %} |
|
116 |
<div class="inline-group"> |
|
117 |
<div class="tabular inline-related"> |
|
118 |
<fieldset id="inherited_permissions" class="module aligned collapse"> |
|
119 |
<h2 class="load_remote">{% trans 'Page states' %}</h2> |
|
120 |
<div class="loading">{% trans 'Loading...' %}</div> |
|
121 |
<div class="load">./moderation-states/</div> |
|
122 |
</fieldset> |
|
123 |
</div> |
|
124 |
</div> |
|
125 |
{% endif %} |
|
126 |
|
|
127 |
{% if moderation_delete_request %}<script type="text/javascript"> |
|
128 |
$(function(){ |
|
129 |
// disable all fields |
|
130 |
function lockControls(){ |
|
131 |
$('input,select,textarea').attr("disabled", "disabled"); |
|
132 |
$('a[id^=add_],span[class^=add-plugin],a[class^=selector-],p[class^=selector-]').remove(); |
|
133 |
} |
|
134 |
$('fieldset[class=collapsed]').remove(); |
|
135 |
lockControls(); |
|
136 |
setTimeout(lockControls,200); |
|
137 |
}); |
|
138 |
</script>{% endif %} |
|
139 |
|
|
140 |
{% if CMS_MODERATOR and moderation_required %} |
|
141 |
<div id="dialog" title="Approve dialog"> |
|
142 |
<p>{% blocktrans %}This page must be moderated at level {{ moderation_level }}, post a message for moderator.{% endblocktrans %}</p> |
|
143 |
<div class="row"><input type="text" name="df_moderator_message" id="id_df_moderator_message" class="wide" value=""/></div> |
|
144 |
<div class="row"><input type="checkbox" name="df_moderator_state" id="id_df_moderator_state" value="1"/><label for="id_df_moderator_reguest">{% trans 'Request approvemet' %}</label></div> |
|
145 |
</div> |
|
146 |
|
|
147 |
<script type="text/javascript"> |
|
148 |
$(function(){ |
|
149 |
// override standard uncolapse_all javascript function, we need to call it |
|
150 |
// only if there is submit, but submit might be cancelled over dialog. |
|
151 |
var old_uncollapse_all = CollapsedFieldsets.uncollapse_all; |
|
152 |
CollapsedFieldsets.uncollapse_all = function() {} |
|
153 |
|
|
154 |
var submitActor; |
|
155 |
var forceSubmit = false; |
|
156 |
var seen = false; |
|
157 |
|
|
158 |
// change submit states, open dialog |
|
159 |
$('#page_form').submit(function(event){ |
|
160 |
return showDialog(event); |
|
161 |
}); |
|
162 |
|
|
163 |
$('#page_form input[name=_continue]').click(function(event){ |
|
164 |
return showDialog(event, this); |
|
165 |
}); |
|
166 |
|
|
167 |
function showDialog(event, actor) { |
|
168 |
if (forceSubmit) return true; // escape sequence |
|
169 |
|
|
170 |
if (!seen) { |
|
171 |
// show previously posted message if there were an error |
|
172 |
$('#id_df_moderator_message').val($('#id_moderator_message').val()); |
|
173 |
} |
|
174 |
seen = true |
|
175 |
event.preventDefault(); |
|
176 |
submitActor = actor; |
|
177 |
$('#dialog').dialog('open'); |
|
178 |
return false; |
|
179 |
} |
|
180 |
|
|
181 |
function dialogSave(){ |
|
182 |
// assign values from dialog form to real form |
|
183 |
$('#id_moderator_message').val($('#id_df_moderator_message').val()); |
|
184 |
$('#id_moderator_state').val( |
|
185 |
$('#id_df_moderator_state').is(':checked') ? $('#id_df_moderator_state').val() : 0 |
|
186 |
); |
|
187 |
|
|
188 |
old_uncollapse_all(); // uncolapse all fields django way |
|
189 |
$('#dialog').dialog('close'); |
|
190 |
forceSubmit = true; |
|
191 |
$(submitActor || '#page_form input[name=_save]').click(); |
|
192 |
return false; |
|
193 |
} |
|
194 |
|
|
195 |
$('#dialog').dialog({ |
|
196 |
bgiframe: true, |
|
197 |
autoOpen: false, |
|
198 |
height: 200, |
|
199 |
width: 400, |
|
200 |
modal: true, |
|
201 |
buttons: { |
|
202 |
Cancel: function() { |
|
203 |
$(this).dialog('close'); |
|
204 |
}, |
|
205 |
Save: function() { |
|
206 |
dialogSave(); |
|
207 |
} |
|
208 |
|
|
209 |
}, |
|
210 |
open: function(){ |
|
211 |
var val = $('#id_moderator_state').val(); |
|
212 |
$('#id_df_moderator_state').attr('checked', val >= 1 ? 'checked': ''); |
|
213 |
$('#id_df_moderator_message') |
|
214 |
.focus() |
|
215 |
.keydown(function(event) { if (event.keyCode == 13) dialogSave()}); |
|
216 |
|
|
217 |
// add default button class to last rendered button (Save) |
|
218 |
$(this.uiDialogButtonPane).find('div.ui-dialog-buttonpane button:last').addClass('default'); |
|
219 |
}, |
|
220 |
close: function(){ |
|
221 |
forceSubmit = false; |
|
222 |
} |
|
223 |
}); |
|
224 |
}); |
|
225 |
</script> |
|
226 |
{% endif %} |
|
227 |
|
|
228 |
{% endif %} |
|
229 |
|
|
230 |
{% block after_related_objects %}{% endblock %} |
|
231 |
|
|
232 |
{% if add %} |
|
233 |
<div class="submit-row"{% if is_popup %} style="overflow: auto;"{% endif %}> |
|
234 |
<input type="submit" name="_save" class="default" value="{% trans 'Save' %}" {{ onclick_attrib }}/> |
|
235 |
<input type="submit" name="_continue" value="{% trans 'Save and continue editing' %}" {{ onclick_attrib }}/> |
|
236 |
</div> |
|
237 |
{% else %} |
|
238 |
{% if not moderation_delete_request %}{% submit_row %}{% endif %} |
|
239 |
{% endif %} |
|
240 |
|
|
241 |
{% if add %} |
|
242 |
<script type="text/javascript">document.getElementById("{{ adminform.first_field.auto_id }}").focus();</script> |
|
243 |
{% endif %} |
|
244 |
|
|
245 |
{# JavaScript for prepopulated fields #} |
|
246 |
{% prepopulated_fields_js %} |
|
247 |
|
|
248 |
</div> |
|
249 |
</form></div> |
|
250 |
{% endblock %} |