diff --git a/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_new.html b/common/lib/xmodule/xmodule/js/fixtures/lti.html similarity index 90% rename from common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_new.html rename to common/lib/xmodule/xmodule/js/fixtures/lti.html index 8fad7b05d2..14bea7d771 100644 --- a/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_new.html +++ b/common/lib/xmodule/xmodule/js/fixtures/lti.html @@ -2,7 +2,7 @@
- Click to view LTI in new window -
diff --git a/common/lib/xmodule/xmodule/js/fixtures/lti_iframe_url_default.html b/common/lib/xmodule/xmodule/js/fixtures/lti_iframe_url_default.html deleted file mode 100644 index 1f8b8120cd..0000000000 --- a/common/lib/xmodule/xmodule/js/fixtures/lti_iframe_url_default.html +++ /dev/null @@ -1,36 +0,0 @@ -
-
- -
- - - - - - - - - - - - - - - - -
- -

- Please provide launch_url. Click "Edit", and fill in the - required fields. -

- -
-
diff --git a/common/lib/xmodule/xmodule/js/fixtures/lti_iframe_url_new.html b/common/lib/xmodule/xmodule/js/fixtures/lti_iframe_url_new.html deleted file mode 100644 index e5a909f0e1..0000000000 --- a/common/lib/xmodule/xmodule/js/fixtures/lti_iframe_url_new.html +++ /dev/null @@ -1,37 +0,0 @@ -
-
- -
- - - - - - - - - - - - - - - - -
- - - -
-
diff --git a/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_default.html b/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_default.html deleted file mode 100644 index 90cd2f7541..0000000000 --- a/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_default.html +++ /dev/null @@ -1,36 +0,0 @@ -
-
- -
- - - - - - - - - - - - - - - - -
- -

- Please provide launch_url. Click "Edit", and fill in the - required fields. -

- -
-
diff --git a/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_empty.html b/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_empty.html deleted file mode 100644 index 0a4cc0088d..0000000000 --- a/common/lib/xmodule/xmodule/js/fixtures/lti_newpage_url_empty.html +++ /dev/null @@ -1,36 +0,0 @@ -
-
- -
- - - - - - - - - - - - - - - - -
- -

- Please provide launch_url. Click "Edit", and fill in the - required fields. -

- -
-
diff --git a/common/lib/xmodule/xmodule/js/spec/lti/constructor.js b/common/lib/xmodule/xmodule/js/spec/lti/constructor.js index a5b2df1955..cda1d7988d 100644 --- a/common/lib/xmodule/xmodule/js/spec/lti/constructor.js +++ b/common/lib/xmodule/xmodule/js/spec/lti/constructor.js @@ -25,16 +25,48 @@ */ (function () { - var element, form, frame, link; + var element, container, form, link, + IN_NEW_WINDOW = 'true', + IN_IFRAME = 'false', + EMPTY_URL = '', + DEFAULT_URL = 'http://www.example.com', + NEW_URL = 'http://www.example.com/some_book'; - function initialize(fixture, hasLink) { - loadFixtures(fixture); + function initialize(target, action) { + var tempEl; + + loadFixtures('lti.html'); element = $('.lti-wrapper'); - if (hasLink) { - link = element.find('a.link_lti_new_window'); + container = element.find('.lti'); + form = container.find('.ltiLaunchForm'); + + if (target === IN_IFRAME) { + container.data('open_in_a_new_page', 'false'); + form.attr('target', 'ltiLaunchFrame'); + } + + form.attr('action', action); + + // If we have a new proper action (non-default), we create either + // a link that will submit the form, or an iframe that will contain + // the answer of auto submitted form. + if (action !== EMPTY_URL && action !== DEFAULT_URL) { + if (target === IN_NEW_WINDOW) { + $('', { + href: '#', + class: 'link_lti_new_window' + }).appendTo(container); + + link = container.find('.link_lti_new_window'); + } else { + $('