From 2fcd892c0ffb30bb5cf61a3d2aeb826adb4d1e61 Mon Sep 17 00:00:00 2001 From: marjev Date: Mon, 24 Nov 2014 23:13:20 +0100 Subject: [PATCH 1/3] Fixes for width/height & test folder repositioning --- google_drive/public/css/google_docs.css | 22 +++++++---- .../public/js/google_calendar_edit.js | 37 +++++++++++++------ google_drive/public/js/google_docs.js | 9 +++++ google_drive/public/js/google_docs_edit.js | 27 +++++++------- .../tests}/unit/test_docs.py | 0 5 files changed, 62 insertions(+), 33 deletions(-) rename {tests => google_drive/tests}/unit/test_docs.py (100%) diff --git a/google_drive/public/css/google_docs.css b/google_drive/public/css/google_docs.css index d69f5ef..a477de9 100644 --- a/google_drive/public/css/google_docs.css +++ b/google_drive/public/css/google_docs.css @@ -1,16 +1,22 @@ -.google-docs-xblock-wrapper{ - position: relative; - padding-bottom: 56.25%; /* 16:9 */ - padding-top: 25px; - height: 0; +.google-docs-xblock-wrapper iframe{ + max-width: 100%; + max-height: 100%; + display:block; + margin: 0 auto; } -.google-docs-xblock-wrapper iframe{ - position: absolute; +iframe.no-width-height{ top: 0; left: 0; width: 100%; - height: 100%; + min-height: 450px; +} + +.google-docs-xblock-wrapper img{ + width: auto; + height : auto; + max-width: 100%; + max-height: 100%; } #validation_alert{ diff --git a/google_drive/public/js/google_calendar_edit.js b/google_drive/public/js/google_calendar_edit.js index 1e08caf..72f2790 100644 --- a/google_drive/public/js/google_calendar_edit.js +++ b/google_drive/public/js/google_calendar_edit.js @@ -5,28 +5,41 @@ function GoogleCalendarEditBlock(runtime, element, defaults) { var save_button = $('.save-button', element); var validation_alert = $('#validation_alert', element); var xblock_inputs_wrapper = $('#xblock-inputs', element); + var edit_calendar_id_input = $('#edit_calendar_id', element); + var edit_display_name_input = $('#edit_display_name', element); + var error_message_div = $('.xblock-editor-error-message', element); ToggleClearDefaultName(); ToggleClearCalendarID(); $('.clear-display-name', element).bind('click', function() { $(this).addClass('inactive'); - $('#edit_display_name', element).val(defaults.defaultName); + edit_display_name_input.val(defaults.defaultName); }); - $('#edit_display_name', element).bind('keyup', function(){ + edit_display_name_input.bind('keyup', function(){ ToggleClearDefaultName(); }); $('.clear-calendar-id', element).bind('click', function() { $(this).addClass('inactive'); - $('#edit_calendar_id', element).val(defaults.defaultID); + edit_calendar_id_input.val(defaults.defaultID); save_button.unbind('click').bind('click', SaveEditing); + + if (!validation_alert.hasClass('covered')) { + validation_alert.addClass('covered'); + save_button.removeClass('disabled'); + edit_calendar_id_input.removeClass('error'); + xblock_inputs_wrapper.removeClass('alerted'); + + save_button.bind('click', SaveEditing); + } }); - $('#edit_calendar_id', element).bind('keyup', function(){ + edit_calendar_id_input.bind('keyup', function(){ ToggleClearCalendarID(); + var inputVal = $(this).val(); var calendarIDReg = /[\w-\.]+@+[\w-\.]/; if(!calendarIDReg.test(inputVal)) { @@ -49,7 +62,7 @@ function GoogleCalendarEditBlock(runtime, element, defaults) { }); function ToggleClearDefaultName(){ - if ($('#edit_display_name').val() == defaults.defaultName){ + if (edit_display_name_input.val() == defaults.defaultName){ if (!clear_name_button.hasClass('inactive')){ clear_name_button.addClass('inactive'); } @@ -60,7 +73,7 @@ function GoogleCalendarEditBlock(runtime, element, defaults) { } function ToggleClearCalendarID(){ - if ($('#edit_calendar_id').val() == defaults.defaultID){ + if (edit_calendar_id_input.val() == defaults.defaultID){ if (!clear_id_button.hasClass('inactive')){ clear_id_button.addClass('inactive'); } @@ -72,20 +85,20 @@ function GoogleCalendarEditBlock(runtime, element, defaults) { function SaveEditing(){ var data = { - 'display_name': $('.edit-display-name', element).val(), - 'calendar_id': $('.edit-calendar-id', element).val(), + 'display_name': edit_display_name_input.val(), + 'calendar_id': edit_calendar_id_input.val(), 'default_view': $('select.edit-label_type > option:selected', element).val(), }; - $('.xblock-editor-error-message', element).html(); - $('.xblock-editor-error-message', element).css('display', 'none'); + error_message_div.html(); + error_message_div.css('display', 'none'); var handlerUrl = runtime.handlerUrl(element, 'studio_submit'); $.post(handlerUrl, JSON.stringify(data)).done(function(response) { if (response.result === 'success') { window.location.reload(false); } else { - $('.xblock-editor-error-message', element).html('Error: '+response.message); - $('.xblock-editor-error-message', element).css('display', 'block'); + error_message_div.html('Error: '+response.message); + error_message_div.css('display', 'block'); } }); } diff --git a/google_drive/public/js/google_docs.js b/google_drive/public/js/google_docs.js index 2b62971..ddcad29 100644 --- a/google_drive/public/js/google_docs.js +++ b/google_drive/public/js/google_docs.js @@ -1,6 +1,15 @@ /* Javascript for GoogleDocumentBlock. */ function GoogleDocumentBlock(runtime, element) { + var iframe = $('iframe', element); + var iframe_src = iframe.attr('src'); + + if ((iframe_src.indexOf("document") >= 0) || + (iframe_src.indexOf("spreadsheets") >= 0)){ + /* add class to iframe containing Google document or spreadsheet*/ + iframe.addClass('no-width-height'); + } + $('iframe', element).load(function(){ var iframe_url = $(this).attr('src'); $.ajax({ diff --git a/google_drive/public/js/google_docs_edit.js b/google_drive/public/js/google_docs_edit.js index b9a714d..1937f2c 100644 --- a/google_drive/public/js/google_docs_edit.js +++ b/google_drive/public/js/google_docs_edit.js @@ -5,17 +5,18 @@ function GoogleDocumentEditBlock(runtime, element, defaults) { var validation_alert = $('#validation_alert', element); var embed_code_textbox = $('#edit_embed_code', element); var xblock_inputs_wrapper = $('#xblock-inputs', element); + var edit_display_name_input = $('#edit_display_name', element); + var error_message_div = $('.xblock-editor-error-message', element); ToggleClearDefaultName(); - IsUrlValid(); $('.clear-display-name', element).bind('click', function() { $(this).addClass('inactive'); - $('#edit_display_name', element).val(defaults.defaultName); + edit_display_name_input.val(defaults.defaultName); }); - $('#edit_display_name', element).bind('keyup', function(){ + edit_display_name_input.bind('keyup', function(){ ToggleClearDefaultName(); }); @@ -28,7 +29,7 @@ function GoogleDocumentEditBlock(runtime, element, defaults) { }); function ToggleClearDefaultName(name, button){ - if ($('#edit_display_name').val() == defaults.defaultName){ + if (edit_display_name_input.val() == defaults.defaultName){ if (!clear_name_button.hasClass('inactive')){ clear_name_button.addClass('inactive'); } @@ -40,28 +41,28 @@ function GoogleDocumentEditBlock(runtime, element, defaults) { function SaveEditing(){ var data = { - 'display_name': $('.edit-display-name', element).val(), - 'embed_code': $('.edit-embed-code', element).val(), + 'display_name': edit_display_name_input.val(), + 'embed_code': embed_code_textbox.val(), }; - $('.xblock-editor-error-message', element).html(); - $('.xblock-editor-error-message', element).css('display', 'none'); + error_message_div.html(); + error_message_div.css('display', 'none'); var handlerUrl = runtime.handlerUrl(element, 'studio_submit'); $.post(handlerUrl, JSON.stringify(data)).done(function(response) { if (response.result === 'success') { window.location.reload(false); } else { - $('.xblock-editor-error-message', element).html('Error: '+response.message); - $('.xblock-editor-error-message', element).css('display', 'block'); + error_message_div.html('Error: '+response.message); + error_message_div.css('display', 'block'); } }); } function IsUrlValid(){ - var embed_html = $("#edit_embed_code", element).val(); + var embed_html = embed_code_textbox.val(); var google_doc = $(embed_html); - $('#edit_embed_code', element).css({'cursor':'wait'}); + embed_code_textbox.css({'cursor':'wait'}); save_button.addClass('disabled').unbind('click'); $.ajax({ @@ -89,7 +90,7 @@ function GoogleDocumentEditBlock(runtime, element, defaults) { xblock_inputs_wrapper.addClass('alerted'); }, complete: function() { - $('#edit_embed_code', element).css({'cursor':'auto'}); + embed_code_textbox.css({'cursor':'auto'}); } }); } diff --git a/tests/unit/test_docs.py b/google_drive/tests/unit/test_docs.py similarity index 100% rename from tests/unit/test_docs.py rename to google_drive/tests/unit/test_docs.py From a5be4e1c85242a37482a26f884c1c5ec7d205ef6 Mon Sep 17 00:00:00 2001 From: Martyn James Date: Wed, 3 Dec 2014 06:47:25 -0500 Subject: [PATCH 2/3] Some tweaks to style and javascript loading --- google_drive/public/css/google_docs.css | 4 +-- google_drive/public/js/google_docs.js | 48 +++++++++++++------------ 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/google_drive/public/css/google_docs.css b/google_drive/public/css/google_docs.css index a477de9..43ba970 100644 --- a/google_drive/public/css/google_docs.css +++ b/google_drive/public/css/google_docs.css @@ -1,11 +1,10 @@ .google-docs-xblock-wrapper iframe{ max-width: 100%; - max-height: 100%; display:block; margin: 0 auto; } -iframe.no-width-height{ +.google-docs-xblock-wrapper iframe.no-width-height{ top: 0; left: 0; width: 100%; @@ -16,7 +15,6 @@ iframe.no-width-height{ width: auto; height : auto; max-width: 100%; - max-height: 100%; } #validation_alert{ diff --git a/google_drive/public/js/google_docs.js b/google_drive/public/js/google_docs.js index ddcad29..a8cdffc 100644 --- a/google_drive/public/js/google_docs.js +++ b/google_drive/public/js/google_docs.js @@ -1,34 +1,36 @@ /* Javascript for GoogleDocumentBlock. */ function GoogleDocumentBlock(runtime, element) { - var iframe = $('iframe', element); - var iframe_src = iframe.attr('src'); + $(function ($) { + + var iframe = $('iframe', element); + if(iframe.length > 0){ + var iframe_src = iframe.attr('src'); - if ((iframe_src.indexOf("document") >= 0) || - (iframe_src.indexOf("spreadsheets") >= 0)){ - /* add class to iframe containing Google document or spreadsheet*/ - iframe.addClass('no-width-height'); - } + if ((iframe_src.indexOf("document") >= 0) || + (iframe_src.indexOf("spreadsheets") >= 0)){ + /* add class to iframe containing Google document or spreadsheet*/ + iframe.addClass('no-width-height'); + } + } - $('iframe', element).load(function(){ - var iframe_url = $(this).attr('src'); - $.ajax({ - type: "POST", - url: runtime.handlerUrl(element, 'iframe_loaded'), - data: JSON.stringify({url: iframe_url}) + $('iframe', element).load(function(){ + var iframe_url = $(this).attr('src'); + $.ajax({ + type: "POST", + url: runtime.handlerUrl(element, 'iframe_loaded'), + data: JSON.stringify({url: iframe_url}) + }); }); - }); - $('img', element).load(function(){ - var image_url = $(this).attr('src'); - $.ajax({ - type: "POST", - url: runtime.handlerUrl(element, 'image_loaded'), - data: JSON.stringify({url: image_url}) + $('img', element).load(function(){ + var image_url = $(this).attr('src'); + $.ajax({ + type: "POST", + url: runtime.handlerUrl(element, 'image_loaded'), + data: JSON.stringify({url: image_url}) + }); }); - }); - $(function ($) { - /* Here's where you'd do things on page load. */ }); } From f9e8653ac39f5466ebb2b5ed118bc1840f6813bf Mon Sep 17 00:00:00 2001 From: marjev Date: Wed, 3 Dec 2014 16:01:26 +0100 Subject: [PATCH 3/3] Set correct default values --- google_drive/google_calendar.py | 2 +- google_drive/google_docs.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/google_drive/google_calendar.py b/google_drive/google_calendar.py index 1ce57c1..b277fa0 100644 --- a/google_drive/google_calendar.py +++ b/google_drive/google_calendar.py @@ -42,7 +42,7 @@ class GoogleCalendarBlock(XBlock): display_name="Public Calendar ID", help="Google provides an ID for publicly available calendars. In the Google Calendar, open Settings and copy the ID from the Calendar Address section into this field.", scope=Scope.settings, - default="edx.org_vme83q0j2v52mbhjncvfd5uqs8@group.calendar.google.com" + default="edx.org_lom804qe3ttspplj1bgeu1l3ak@group.calendar.google.com" ) # 0=Week, 1=Month, 2=Agenda diff --git a/google_drive/google_docs.py b/google_drive/google_docs.py index 17bce29..137567d 100644 --- a/google_drive/google_docs.py +++ b/google_drive/google_docs.py @@ -45,7 +45,7 @@ class GoogleDocumentBlock(XBlock): scope=Scope.settings, default=textwrap.dedent("""