save videoOverlay, add getEmbedUrl stump

This commit is contained in:
j 2013-02-12 18:39:46 +05:30
parent 43b93cbdb0
commit c8a454dcfa
3 changed files with 73 additions and 2 deletions

View file

@ -13,7 +13,7 @@ from django import forms
from django.db.models import F from django.db.models import F
from ox.django.http import HttpFileResponse from ox.django.http import HttpFileResponse
from ox.django.shortcuts import render_to_json_response from ox.django.shortcuts import render_to_json_response, json_response
import models import models
class ChunkForm(forms.Form): class ChunkForm(forms.Form):

View file

@ -1,3 +1,20 @@
window.addEventListener('message', function(event) {
if(event.origin != 'null' && event.data) {
var data = JSON.parse(event.data);
if(data.event == 'close') {
var e = document.getElementById(data.id);
Array.prototype.forEach.call(e.parentElement.getElementsByClassName('button'), function(e) {
e.style.display = 'block';
});
e.parentElement.removeChild(e);
}
}
});
function getEmbedUrl(id, videoUrl) {
return '';
}
function getVideoOverlay(page) { function getVideoOverlay(page) {
return (editable || videoOverlay[page]) ? { return (editable || videoOverlay[page]) ? {
beginLayout: function() { beginLayout: function() {
@ -22,7 +39,16 @@ function getVideoOverlay(page) {
div.onclick = function(event) { div.onclick = function(event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
div.innerHTML = videoOverlay[page][id]; var iframe = document.createElement('iframe');
iframe.width = '100%';
iframe.height = '100%';
iframe.frameborder = 0;
iframe.id = 'video' + page + id;
iframe.src = getEmbedUrl(iframe.id, videoOverlay[page][id]);
div.appendChild(iframe);
Array.prototype.forEach.call(div.getElementsByClassName('button'), function(e) {
e.style.display = 'none';
});
return false; return false;
}; };
var img = document.createElement('img'); var img = document.createElement('img');
@ -41,7 +67,19 @@ function getVideoOverlay(page) {
img.onclick = function(event) { img.onclick = function(event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
if(!videoOverlay[page]) {
videoOverlay[page] = {}
}
if(! videoOverlay[page][id]) {
videoOverlay[page][id] = '';
}
console.log('EDIT'); console.log('EDIT');
var message = 'Please enter a pan.do/ra video URL, like\nhttp://pad.ma/A/editor/00:00:00,00:01:00,00:02:00';
var url = prompt(message, videoOverlay[page][id]);
if (url !== null) {
videoOverlay[page][id] = url;
saveVideoOverlay();
}
return false; return false;
} }
div.appendChild(img); div.appendChild(img);
@ -51,3 +89,35 @@ function getVideoOverlay(page) {
} }
} : null; } : null;
} }
function saveVideoOverlay() {
var request = new XMLHttpRequest(),
id = document.location.pathname.substring(1),
formData = new FormData();
request.addEventListener('load', function (evt) {
console.log(evt);
});
formData.append('data', JSON.stringify({
'id': id,
'overlay': videoOverlay
}));
request.open('POST', '/save');
request.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
request.send(formData);
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
}

View file

@ -30,6 +30,7 @@ if settings.DEBUG:
urlpatterns += patterns('item.views', urlpatterns += patterns('item.views',
(r'^$', 'index'), (r'^$', 'index'),
(r'^add$', 'add'), (r'^add$', 'add'),
(r'^save$', 'save'),
(r'^([A-Z0-9].*)/$', 'item'), (r'^([A-Z0-9].*)/$', 'item'),
(r'^([A-Z0-9].*)/chunk$', 'chunk'), (r'^([A-Z0-9].*)/chunk$', 'chunk'),
(r'^([A-Z0-9].*)/(.+.pdf)$', 'pdf'), (r'^([A-Z0-9].*)/(.+.pdf)$', 'pdf'),