Commit 8462f23f authored by Seb's avatar Seb
Browse files

Styling changes for add multiple. Single video uploading section working, added permissions

parent 4f107daf
...@@ -61,11 +61,11 @@ class VideoTranscodeAdminForm(forms.Form): ...@@ -61,11 +61,11 @@ class VideoTranscodeAdminForm(forms.Form):
self.video.do_transcode(media_format) self.video.do_transcode(media_format)
GroupImagePermissionFormSet = collection_member_permission_formset_factory( GroupVideoPermissionFormSet = collection_member_permission_formset_factory(
Video, Video,
[ [
('add_image', _("Add"), _("Add/edit images you own")), ('add_video', _("Add"), _("Add/edit images you own")),
('change_image', _("Edit"), _("Edit any image")), ('change_video', _("Edit"), _("Edit any video")),
], ],
'wagtailimages/permissions/includes/image_permissions_formset.html' 'wagtailvideos/permissions/includes/video_permissions_formset.html'
) )
...@@ -37,12 +37,6 @@ $(function() { ...@@ -37,12 +37,6 @@ $(function() {
data.context.find('.left').each(function(index, elm) { data.context.find('.left').each(function(index, elm) {
$(elm).append(escapeHtml(data.files[index].name)); $(elm).append(escapeHtml(data.files[index].name));
}); });
data.context.find('.preview .thumb').each(function(index, elm) {
debugger;
$(elm).addClass('hasthumb');
});
}).done(function() { }).done(function() {
data.context.find('.start').prop('disabled', false); data.context.find('.start').prop('disabled', false);
if ((that._trigger('added', e, data) !== false) && if ((that._trigger('added', e, data) !== false) &&
...@@ -99,7 +93,7 @@ $(function() { ...@@ -99,7 +93,7 @@ $(function() {
if (response.success) { if (response.success) {
itemElement.addClass('upload-success') itemElement.addClass('upload-success')
$('.preview', itemElement).attr('data-thumb-target', response.video_id);
$('.right', itemElement).append(response.form); $('.right', itemElement).append(response.form);
} else { } else {
itemElement.addClass('upload-failure'); itemElement.addClass('upload-failure');
......
...@@ -9,7 +9,6 @@ function createVideoChooser(id) { ...@@ -9,7 +9,6 @@ function createVideoChooser(id) {
url: window.chooserUrls.videoChooser, url: window.chooserUrls.videoChooser,
responses: { responses: {
videoChosen: function(videoData) { videoChosen: function(videoData) {
debugger;
input.val(videoData.id); input.val(videoData.id);
previewVideo.attr({ previewVideo.attr({
src: videoData.preview.url, src: videoData.preview.url,
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
</section> </section>
{% if uploadform %} {% if uploadform %}
<section id="upload" class="{% if uploadform.errors %}active{% endif %} nice-padding"> <section id="upload" class="{% if uploadform.errors %}active{% endif %} nice-padding">
<form class="image-upload" action="{% url 'wagtailvideos:chooser_upload' %}" method="POST" enctype="multipart/form-data"> <form class="video-upload" action="{% url 'wagtailvideos:chooser_upload' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
<ul class="fields"> <ul class="fields">
{% for field in uploadform %} {% for field in uploadform %}
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
<li> <li>
<button type="submit" class="button-longrunning" data-clicked-text="{% trans 'Uploading...' %}"><span class="icon icon-spinner"></span><em>{% trans 'Upload' %}</em></button> <button type="submit" class="button button-longrunning" data-clicked-text="{% trans 'Uploading...' %}"><span class="icon icon-spinner"></span><em>{% trans 'Upload' %}</em></button>
</li> </li>
</ul> </ul>
</form> </form>
......
...@@ -56,9 +56,8 @@ function(modal) { ...@@ -56,9 +56,8 @@ function(modal) {
ajaxifyLinks(modal.body); ajaxifyLinks(modal.body);
$('form.image-upload', modal.body).submit(function() { $('form.video-upload', modal.body).submit(function() {
var formdata = new FormData(this); var formdata = new FormData(this);
$.ajax({ $.ajax({
url: this.action, url: this.action,
data: formdata, data: formdata,
......
{# Image chooser is now implemented as an entirely standard form widget - image_chooser_panel.html is redundant #}
{% include "wagtailadmin/shared/field.html" %}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<form action="{% url 'wagtailvideos:add_multiple' %}" method="POST" enctype="multipart/form-data"> <form action="{% url 'wagtailvideos:add_multiple' %}" method="POST" enctype="multipart/form-data">
<div class="replace-file-input"> <div class="replace-file-input">
<button class="bicolor icon icon-plus">{% trans "Or choose from your computer" %}</button> <button class="button bicolor icon icon-plus">{% trans "Or choose from your computer" %}</button>
<input id="fileupload" type="file" name="files[]" data-url="{% url 'wagtailvideos:add_multiple' %}" multiple> <input id="fileupload" type="file" name="files[]" data-url="{% url 'wagtailvideos:add_multiple' %}" multiple>
</div> </div>
{% csrf_token %} {% csrf_token %}
......
{% load i18n %} {% load i18n %}
<div data-video-thumb="{{ video.id }}" class='thumb icon icon-image hasthumb'>
<img src="{{ video.thumbnail.url }}" />
</div>
<form action="{% url 'wagtailvideos:edit_multiple' video.id %}" method="POST" enctype="multipart/form-data"> <form action="{% url 'wagtailvideos:edit_multiple' video.id %}" method="POST" enctype="multipart/form-data">
<ul class="fields"> <ul class="fields">
{% csrf_token %} {% csrf_token %}
...@@ -13,12 +10,16 @@ ...@@ -13,12 +10,16 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
<li> <li>
<input type="submit" value="{% trans 'Update' %}" /> <input class='button' type="submit" value="{% trans 'Update' %}" />
<a href="{% url 'wagtailvideos:delete_multiple' video.id %}" class="delete button button-secondary no">{% trans "Delete" %}</a> <a href="{% url 'wagtailvideos:delete_multiple' video.id %}" class="delete button button-secondary no">{% trans "Delete" %}</a>
</li> </li>
</ul> </ul>
</form> </form>
<div data-video-thumb="{{ video.id }}" class='thumb icon icon-image hasthumb'>
<img src="{{ video.thumbnail.url }}" />
</div>
<script> <script>
var thumb = $("[data-video-thumb=\"" + {{ video.id }} + "\"]"); var thumb = $("[data-video-thumb=\"" + {{ video.id }} + "\"]");
$(".preview").append(thumb); $("[data-thumb-target=\"" + {{ video.id }} + "\"]").append(thumb);
</script> </script>
{% extends "wagtailadmin/permissions/includes/collection_member_permissions_formset.html" %} {% extends "wagtailadmin/permissions/includes/collection_member_permissions_formset.html" %}
{% load i18n %} {% load i18n %}
{% block title %}{% trans "Image permissions" %}{% endblock %} {% block title %}{% trans "Video permissions" %}{% endblock %}
{% block add_button_label %}{% trans "Add an image permission" %}{% endblock %} {% block add_button_label %}{% trans "Add an video permission" %}{% endblock %}
{% extends "wagtailadmin/base.html" %} {% extends "wagtailadmin/base.html" %}
{% load wagtailimages_tags %}
{% load i18n %} {% load i18n %}
{% block titletag %}{% trans "Add an image" %}{% endblock %} {% block titletag %}{% trans "Add an image" %}{% endblock %}
...@@ -17,11 +16,11 @@ ...@@ -17,11 +16,11 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% trans "Add image" as add_str %} {% trans "Add video" as add_str %}
{% include "wagtailadmin/shared/header.html" with title=add_str icon="image" %} {% include "wagtailadmin/shared/header.html" with title=add_str icon="media" %}
<div class="nice-padding"> <div class="nice-padding">
<form action="{% url 'wagtailimages:add' %}" method="POST" enctype="multipart/form-data"> <form action="{% url 'wagtailvideos:add' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
<ul class="fields"> <ul class="fields">
{% for field in form %} {% for field in form %}
...@@ -31,7 +30,7 @@ ...@@ -31,7 +30,7 @@
{% include "wagtailadmin/shared/field_as_li.html" with field=field %} {% include "wagtailadmin/shared/field_as_li.html" with field=field %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
<li><input type="submit" value="{% trans 'Save' %}" /></li> <li><input class='button' type="submit" value="{% trans 'Save' %}" /></li>
</ul> </ul>
</form> </form>
</div> </div>
......
...@@ -96,6 +96,7 @@ def video_chosen(request, video_id): ...@@ -96,6 +96,7 @@ def video_chosen(request, video_id):
def chooser_upload(request): def chooser_upload(request):
print("chooser_upload hit!!!")
VideoForm = get_video_form(Video) VideoForm = get_video_form(Video)
searchform = SearchForm() searchform = SearchForm()
......
...@@ -147,36 +147,37 @@ def delete(request, video_id): ...@@ -147,36 +147,37 @@ def delete(request, video_id):
'video': video, 'video': video,
}) })
@permission_checker.require('add') @permission_checker.require('add')
def add(request): def add(request):
# FIXME try and find where this is used VideoForm = get_video_form(Video)
print("\n\n----------------------------ADD HIT---------------------------\n\n")
ImageModel = Video
ImageForm = get_video_form(ImageModel)
if request.POST: if request.POST:
image = ImageModel(uploaded_by_user=request.user) video = Video(uploaded_by_user=request.user)
form = ImageForm(request.POST, request.FILES, instance=image, user=request.user) form = VideoForm(request.POST, request.FILES, instance=video, user=request.user)
if form.is_valid(): if form.is_valid():
# Set image file size # Save
image.file_size = image.file.size video = form.save(commit=False)
video.file_size = video.file.size
form.save() video.save()
# Double save because the video file needs to *really* exists to generate thumbnail
video.thumbnail = video.get_thumbnail()
video.save(update_fields=['thumbnail'])
# Reindex the image to make sure all tags are indexed # Success! Send back an edit form
for backend in get_search_backends(): for backend in get_search_backends():
backend.add(image) backend.add(video)
messages.success(request, _("Image '{0}' added.").format(image.title), buttons=[ messages.success(request, _("Video '{0}' added.").format(video.title), buttons=[
messages.button(reverse('wagtailvideos:edit', args=(image.id,)), _('Edit')) messages.button(reverse('wagtailvideos:edit', args=(video.id,)), _('Edit'))
]) ])
return redirect('wagtailvideos:index') return redirect('wagtailvideos:index')
else: else:
messages.error(request, _("The image could not be created due to errors.")) messages.error(request, _("The video could not be created due to errors."))
else: else:
form = ImageForm(user=request.user) form = VideoForm(user=request.user)
return render(request, "wagtailvideos/images/add.html", { return render(request, "wagtailvideos/videos/add.html", {
'form': form, 'form': form,
}) })
......
...@@ -8,6 +8,8 @@ from django.utils.translation import ugettext_lazy as _ ...@@ -8,6 +8,8 @@ from django.utils.translation import ugettext_lazy as _
from wagtail.wagtailadmin.menu import MenuItem from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailcore import hooks from wagtail.wagtailcore import hooks
from wagtailvideos.forms import GroupVideoPermissionFormSet
from . import urls from . import urls
...@@ -36,6 +38,9 @@ def editor_js(): ...@@ -36,6 +38,9 @@ def editor_js():
urlresolvers.reverse('wagtailvideos:chooser') urlresolvers.reverse('wagtailvideos:chooser')
) )
@hooks.register('register_group_permission_panel')
def register_video_permissions_panel():
return GroupVideoPermissionFormSet
@hooks.register('register_admin_menu_item') @hooks.register('register_admin_menu_item')
def register_images_menu_item(): def register_images_menu_item():
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment