# HG changeset patch # User cavaliet # Date 1300793729 -3600 # Node ID ba02faf089df3d2d75769329acbaac1a4b97c395 # Parent c3048a2c07589d771645551398ce909f1a9c5d19 Update media adding, to allow youtube import, and display the thumbnail when we paste the youtube url. diff -r c3048a2c0758 -r ba02faf089df src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html Fri Mar 11 18:47:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html Tue Mar 22 12:35:29 2011 +0100 @@ -8,6 +8,7 @@ + {{ content_form.media.js }} {% endblock %} @@ -36,7 +37,28 @@ $(".media_fields").hide(); $("#media_field_"+$(e.target).val()).show(); }); + // The textinput's id for external url is id_media-src + $('#id_media-src').bind('textchange', function(e) { testUrlValue(e); }); }); + function testUrlValue(e){ + // First, we remove the current thumbnail if there is one. + if($('#media_field_create').children().size()>2){ + $('#external_thumbnail').remove(); + $('#media_fields_div').height(50); + } + // If the pasted text is a youtube url, we get the default thumbnail of the video and display it. + url = $('#id_media-src').val(); + if(url.match("youtube") && url.match("[\\?&]v=([^&#]*)")){ + results = url.match("[\\?&]v=([^&#]*)"); + vid = ( results === null ) ? url : results[1].substring(0,11); + if(vid.length===11){ + //$('#id_content-description').val($('#media_field_create') + 'Youtube Thumbnail'); + $('#media_field_create').append('Youtube Thumbnail'); + $('#media_fields_div').height(150); + } + } + } + {% endblock %} diff -r c3048a2c0758 -r ba02faf089df src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Fri Mar 11 18:47:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/views.py Tue Mar 22 12:35:29 2011 +0100 @@ -751,7 +751,7 @@ else: media = None - if media and not created: + if media and not created: for attribute in ('external_id', 'external_permalink', 'external_publication_url', 'external_src_url', 'media_creation_date', 'videopath', 'duration', 'description', 'title'): setattr(media, attribute, cleaned_data.get(attribute)) mimetype = cleaned_data.get('mimetype_field',None) diff -r c3048a2c0758 -r ba02faf089df src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo has changed diff -r c3048a2c0758 -r ba02faf089df src/ldt/ldt/locale/fr/LC_MESSAGES/django.po --- a/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Fri Mar 11 18:47:17 2011 +0100 +++ b/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Tue Mar 22 12:35:29 2011 +0100 @@ -46,7 +46,7 @@ #: .\ldt_utils\forms.py:44 msgid "create_media" -msgstr "source serveur de stream" +msgstr "source externe : fichier streamé, statique, url youtube..." #: .\ldt_utils\forms.py:44 msgid "none_media" diff -r c3048a2c0758 -r ba02faf089df src/ldt/ldt/media/js/jquery.textchange.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldt/ldt/media/js/jquery.textchange.min.js Tue Mar 22 12:35:29 2011 +0100 @@ -0,0 +1,10 @@ +/*! + * jQuery TextChange Plugin + * http://www.zurb.com/playground/jquery-text-change-custom-event + * + * Copyright 2010, ZURB + * Released under the MIT License + */ + (function(a){a.event.special.textchange={setup:function(){a(this).data("lastValue",this.contentEditable==="true"?a(this).html():a(this).val());a(this).bind("keyup.textchange",a.event.special.textchange.handler);a(this).bind("cut.textchange paste.textchange input.textchange",a.event.special.textchange.delayedHandler)},teardown:function(){a(this).unbind(".textchange")},handler:function(){a.event.special.textchange.triggerIfChanged(a(this))},delayedHandler:function(){var b=a(this);setTimeout(function(){a.event.special.textchange.triggerIfChanged(b)}, + 25)},triggerIfChanged:function(b){var c=b[0].contentEditable==="true"?b.html():b.val();if(c!==b.data("lastValue")){b.trigger("textchange",b.data("lastValue"));b.data("lastValue",c)}}};a.event.special.hastext={setup:function(){a(this).bind("textchange",a.event.special.hastext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.hastext.handler)},handler:function(b,c){c===""&&c!==a(this).val()&&a(this).trigger("hastext")}};a.event.special.notext={setup:function(){a(this).bind("textchange", + a.event.special.notext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.notext.handler)},handler:function(b,c){a(this).val()===""&&a(this).val()!==c&&a(this).trigger("notext")}}})(jQuery); \ No newline at end of file diff -r c3048a2c0758 -r ba02faf089df src/ldt/ldt/media/js/projectscontents.js --- a/src/ldt/ldt/media/js/projectscontents.js Fri Mar 11 18:47:17 2011 +0100 +++ b/src/ldt/ldt/media/js/projectscontents.js Tue Mar 22 12:35:29 2011 +0100 @@ -138,7 +138,7 @@ filters: ['iframe'], sizes: { minW: 770, - minH: 500 + minH: 550 }, callbacks: { afterClose: function(nm) { @@ -146,7 +146,7 @@ }, afterShowCont: function(nm) { nm.store.iframe.width(770); - nm.store.iframe.height(500); + nm.store.iframe.height(550); nm.store.iframe.load(function() { var form_status = $(this).contents().find("#content_form_status").val(); if(form_status === 'saved' || form_status === 'deleted' ) { @@ -164,7 +164,7 @@ filters: ['iframe'], sizes: { minW: 770, - minH: 500 + minH: 550 }, callbacks: { afterClose: function(nm) { @@ -172,7 +172,7 @@ }, afterShowCont: function(nm) { nm.store.iframe.width(770); - nm.store.iframe.height(500); + nm.store.iframe.height(550); nm.store.iframe.load(function() { var form_status = $(this).contents().find("#content_form_status").val(); if(form_status === 'saved' || form_status === 'deleted') { @@ -240,7 +240,7 @@ callbacks: { afterShowCont: function(nm) { nm.store.iframe.width(600); - nm.store.iframe.height(500); + nm.store.iframe.height(600); var iframe = nm.store.iframe; iframe.load(function(){ var form_status = $(this).contents().find("#project_form_status").val(); @@ -311,7 +311,7 @@ filters: ['iframe'], sizes: { minH:680, - minW:500 + minW:600 }, callbacks: { afterClose: function(nm) { diff -r c3048a2c0758 -r ba02faf089df web/static/ldt/js/jquery.textchange.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/static/ldt/js/jquery.textchange.min.js Tue Mar 22 12:35:29 2011 +0100 @@ -0,0 +1,10 @@ +/*! + * jQuery TextChange Plugin + * http://www.zurb.com/playground/jquery-text-change-custom-event + * + * Copyright 2010, ZURB + * Released under the MIT License + */ + (function(a){a.event.special.textchange={setup:function(){a(this).data("lastValue",this.contentEditable==="true"?a(this).html():a(this).val());a(this).bind("keyup.textchange",a.event.special.textchange.handler);a(this).bind("cut.textchange paste.textchange input.textchange",a.event.special.textchange.delayedHandler)},teardown:function(){a(this).unbind(".textchange")},handler:function(){a.event.special.textchange.triggerIfChanged(a(this))},delayedHandler:function(){var b=a(this);setTimeout(function(){a.event.special.textchange.triggerIfChanged(b)}, + 25)},triggerIfChanged:function(b){var c=b[0].contentEditable==="true"?b.html():b.val();if(c!==b.data("lastValue")){b.trigger("textchange",b.data("lastValue"));b.data("lastValue",c)}}};a.event.special.hastext={setup:function(){a(this).bind("textchange",a.event.special.hastext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.hastext.handler)},handler:function(b,c){c===""&&c!==a(this).val()&&a(this).trigger("hastext")}};a.event.special.notext={setup:function(){a(this).bind("textchange", + a.event.special.notext.handler)},teardown:function(){a(this).unbind("textchange",a.event.special.notext.handler)},handler:function(b,c){a(this).val()===""&&a(this).val()!==c&&a(this).trigger("notext")}}})(jQuery); \ No newline at end of file diff -r c3048a2c0758 -r ba02faf089df web/static/ldt/js/projectscontents.js --- a/web/static/ldt/js/projectscontents.js Fri Mar 11 18:47:17 2011 +0100 +++ b/web/static/ldt/js/projectscontents.js Tue Mar 22 12:35:29 2011 +0100 @@ -138,7 +138,7 @@ filters: ['iframe'], sizes: { minW: 770, - minH: 500 + minH: 550 }, callbacks: { afterClose: function(nm) { @@ -146,7 +146,7 @@ }, afterShowCont: function(nm) { nm.store.iframe.width(770); - nm.store.iframe.height(500); + nm.store.iframe.height(550); nm.store.iframe.load(function() { var form_status = $(this).contents().find("#content_form_status").val(); if(form_status === 'saved' || form_status === 'deleted' ) { @@ -164,7 +164,7 @@ filters: ['iframe'], sizes: { minW: 770, - minH: 500 + minH: 550 }, callbacks: { afterClose: function(nm) { @@ -172,7 +172,7 @@ }, afterShowCont: function(nm) { nm.store.iframe.width(770); - nm.store.iframe.height(500); + nm.store.iframe.height(550); nm.store.iframe.load(function() { var form_status = $(this).contents().find("#content_form_status").val(); if(form_status === 'saved' || form_status === 'deleted') { @@ -240,7 +240,7 @@ callbacks: { afterShowCont: function(nm) { nm.store.iframe.width(600); - nm.store.iframe.height(500); + nm.store.iframe.height(600); var iframe = nm.store.iframe; iframe.load(function(){ var form_status = $(this).contents().find("#project_form_status").val(); @@ -311,7 +311,7 @@ filters: ['iframe'], sizes: { minH:680, - minW:500 + minW:600 }, callbacks: { afterClose: function(nm) {