diff --git a/muckrock/assets/js/crowdsource.js b/muckrock/assets/js/crowdsource.js index 468e6a65e..41e945a96 100644 --- a/muckrock/assets/js/crowdsource.js +++ b/muckrock/assets/js/crowdsource.js @@ -2,7 +2,6 @@ ** */ -import Embedo from 'embedo'; $(document).ready(function(){ var formBuilder = $("#build-wrap").formBuilder({ @@ -96,8 +95,6 @@ $(document).ready(function(){ flag = null, search = ""; - var embedo = new Embedo(); - function handleUpdateResponses(data) { var response, values, dataValues, dataUrlP, oEmbed, flagged, galleried, tags; var responses = $("section.assignment-responses"); @@ -110,7 +107,7 @@ $(document).ready(function(){ dataUrlP = `

Data: ${data.results[i].data}

`; - oEmbed = `
`; + oEmbed = `
`; } else { dataUrlP = ""; oEmbed = ""; @@ -173,8 +170,16 @@ $(document).ready(function(){ }); }); if ($("#data-inline").prop("checked")) { - $(".embedo").each(function(){ - embedo.load(this, $(this).data('url')); + $(".embed").each(function(){ + var embed = $(this); + $.ajax({ + url: "/assignment/oembed/", + type: "GET", + data: {"url": $(this).data('url')}, + success: function(data) { + embed.html(data); + } + }); }); } @@ -233,8 +238,16 @@ $(document).ready(function(){ $("#data-inline").change(function() { if ($(this).prop("checked")) { - $(".embedo").each(function(){ - embedo.load(this, $(this).data('url')); + $(".embed").each(function(){ + var embed = $(this); + $.ajax({ + url: "/assignment/oembed/", + type: "GET", + data: {"url": $(this).data('url')}, + success: function(data) { + embed.html(data); + } + }); }); } }); diff --git a/muckrock/assets/js/muckrock.js b/muckrock/assets/js/muckrock.js index 07d9d62f9..6a801258b 100644 --- a/muckrock/assets/js/muckrock.js +++ b/muckrock/assets/js/muckrock.js @@ -16,7 +16,6 @@ import 'jquery-ui/widget'; import 'jquery-ui/sortable'; import 'formBuilder'; import 'tooltipster'; -import 'embedo'; import '../vendor/formset'; import '../vendor/loupe'; import '../vendor/quicksearch'; diff --git a/muckrock/assets/scss/view/_crowdsource.scss b/muckrock/assets/scss/view/_crowdsource.scss index 93f4fc394..355a72d9d 100644 --- a/muckrock/assets/scss/view/_crowdsource.scss +++ b/muckrock/assets/scss/view/_crowdsource.scss @@ -36,7 +36,7 @@ .textbox__section { flex: 1 1 50%; } - .embedo { + .embed { flex: 1 1 50%; } } diff --git a/muckrock/crowdsource/urls.py b/muckrock/crowdsource/urls.py index e793047c0..547ca028b 100644 --- a/muckrock/crowdsource/urls.py +++ b/muckrock/crowdsource/urls.py @@ -55,4 +55,9 @@ views.CrowdsourceCreateView.as_view(), name='crowdsource-create', ), + url( + r'^oembed/$', + views.oembed, + name='crowdsource-oembed', + ), ] diff --git a/muckrock/crowdsource/views.py b/muckrock/crowdsource/views.py index 38cc22684..36bdcadc4 100644 --- a/muckrock/crowdsource/views.py +++ b/muckrock/crowdsource/views.py @@ -6,7 +6,12 @@ from django.contrib.auth.decorators import login_required from django.contrib.auth.mixins import PermissionRequiredMixin from django.core.urlresolvers import reverse -from django.http import Http404, StreamingHttpResponse +from django.http import ( + Http404, + HttpResponse, + HttpResponseBadRequest, + StreamingHttpResponse, +) from django.shortcuts import redirect from django.utils.decorators import method_decorator from django.utils.text import slugify @@ -40,6 +45,7 @@ ) from muckrock.crowdsource.models import ( Crowdsource, + CrowdsourceData, CrowdsourceResponse, CrowdsourceValue, ) @@ -510,3 +516,12 @@ def form_valid(self, form): ) messages.success(self.request, msg) return redirect(crowdsource) + + +def oembed(request): + """AJAX view to get oembed data""" + if 'url' in request.GET: + data = CrowdsourceData(url=request.GET['url']) + return HttpResponse(data.embed()) + else: + return HttpResponseBadRequest() diff --git a/package.json b/package.json index 5da27f5a8..8adde9c91 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,6 @@ "dependencies": { "autonumeric": "^1.9.43", "axios": "^0.13.1", - "embedo": "^1.7.3", "fine-uploader": "5.14.1", "formBuilder": "^2.9.8", "jquery-ui": "1.10.x",