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):
self.video.do_transcode(media_format)
GroupImagePermissionFormSet = collection_member_permission_formset_factory(
GroupVideoPermissionFormSet = collection_member_permission_formset_factory(
Video,
[
('add_image', _("Add"), _("Add/edit images you own")),
('change_image', _("Edit"), _("Edit any image")),
('add_video', _("Add"), _("Add/edit images you own")),
('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() {
data.context.find('.left').each(function(index, elm) {
$(elm).append(escapeHtml(data.files[index].name));
});
data.context.find('.preview .thumb').each(function(index, elm) {
debugger;
$(elm).addClass('hasthumb');
});
}).done(function() {
data.context.find('.start').prop('disabled', false);
if ((that._trigger('added', e, data) !== false) &&
......@@ -99,7 +93,7 @@ $(function() {
if (response.success) {
itemElement.addClass('upload-success')
$('.preview', itemElement).attr('data-thumb-target', response.video_id);
$('.right', itemElement).append(response.form);
} else {
itemElement.addClass('upload-failure');
......
......@@ -9,7 +9,6 @@ function createVideoChooser(id) {
url: window.chooserUrls.videoChooser,
responses: {
videoChosen: function(videoData) {
debugger;
input.val(videoData.id);
previewVideo.attr({
src: videoData.preview.url,
......
......@@ -36,7 +36,7 @@
</section>
{% if uploadform %}
<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 %}
<ul class="fields">
{% for field in uploadform %}
......@@ -47,7 +47,7 @@
{% endif %}
{% endfor %}
<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>
</ul>
</form>
......
......@@ -56,9 +56,8 @@ function(modal) {
ajaxifyLinks(modal.body);
$('form.image-upload', modal.body).submit(function() {
$('form.video-upload', modal.body).submit(function() {
var formdata = new FormData(this);
$.ajax({
url: this.action,
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 @@
<form action="{% url 'wagtailvideos:add_multiple' %}" method="POST" enctype="multipart/form-data">
<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>
</div>
{% csrf_token %}
......
{% 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">
<ul class="fields">
{% csrf_token %}
......@@ -13,12 +10,16 @@
{% endif %}
{% endfor %}
<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>
</li>
</ul>
</form>
<div data-video-thumb="{{ video.id }}" class='thumb icon icon-image hasthumb'>
<img src="{{ video.thumbnail.url }}" />
</div>
<script>
var thumb = $("[data-video-thumb=\"" + {{ video.id }} + "\"]");
$(".preview").append(thumb);
$("[data-thumb-target=\"" + {{ video.id }} + "\"]").append(thumb);
</script>
{% extends "wagtailadmin/permissions/includes/collection_member_permissions_formset.html" %}
{% load i18n %}
{% block title %}{% trans "Image permissions" %}{% endblock %}
{% block add_button_label %}{% trans "Add an image permission" %}{% endblock %}
{% block title %}{% trans "Video permissions" %}{% endblock %}
{% block add_button_label %}{% trans "Add an video permission" %}{% endblock %}
{% extends "wagtailadmin/base.html" %}
{% load wagtailimages_tags %}
{% load i18n %}
{% block titletag %}{% trans "Add an image" %}{% endblock %}
......@@ -17,11 +16,11 @@
{% endblock %}
{% block content %}
{% trans "Add image" as add_str %}
{% include "wagtailadmin/shared/header.html" with title=add_str icon="image" %}
{% trans "Add video" as add_str %}
{% include "wagtailadmin/shared/header.html" with title=add_str icon="media" %}
<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 %}
<ul class="fields">
{% for field in form %}
......@@ -31,7 +30,7 @@
{% include "wagtailadmin/shared/field_as_li.html" with field=field %}
{% endif %}
{% endfor %}
<li><input type="submit" value="{% trans 'Save' %}" /></li>
<li><input class='button' type="submit" value="{% trans 'Save' %}" /></li>
</ul>
</form>
</div>
......
......@@ -96,6 +96,7 @@ def video_chosen(request, video_id):
def chooser_upload(request):
print("chooser_upload hit!!!")
VideoForm = get_video_form(Video)
searchform = SearchForm()
......
......@@ -147,36 +147,37 @@ def delete(request, video_id):
'video': video,
})
@permission_checker.require('add')
def add(request):
# FIXME try and find where this is used
print("\n\n----------------------------ADD HIT---------------------------\n\n")
ImageModel = Video
ImageForm = get_video_form(ImageModel)
VideoForm = get_video_form(Video)
if request.POST:
image = ImageModel(uploaded_by_user=request.user)
form = ImageForm(request.POST, request.FILES, instance=image, user=request.user)
video = Video(uploaded_by_user=request.user)
form = VideoForm(request.POST, request.FILES, instance=video, user=request.user)
if form.is_valid():
# Set image file size
image.file_size = image.file.size
form.save()
# Save
video = form.save(commit=False)
video.file_size = video.file.size
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():
backend.add(image)
backend.add(video)
messages.success(request, _("Image '{0}' added.").format(image.title), buttons=[
messages.button(reverse('wagtailvideos:edit', args=(image.id,)), _('Edit'))
messages.success(request, _("Video '{0}' added.").format(video.title), buttons=[
messages.button(reverse('wagtailvideos:edit', args=(video.id,)), _('Edit'))
])
return redirect('wagtailvideos:index')
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:
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,
})
......
......@@ -8,6 +8,8 @@ from django.utils.translation import ugettext_lazy as _
from wagtail.wagtailadmin.menu import MenuItem
from wagtail.wagtailcore import hooks
from wagtailvideos.forms import GroupVideoPermissionFormSet
from . import urls
......@@ -36,6 +38,9 @@ def editor_js():
urlresolvers.reverse('wagtailvideos:chooser')
)
@hooks.register('register_group_permission_panel')
def register_video_permissions_panel():
return GroupVideoPermissionFormSet
@hooks.register('register_admin_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