Skip to content

Commit 3914714

Browse files
authored
Merge pull request #1411 from appsembler/vladyslav/hide-html-elements-in-iframe
Hide html elements if the parameter is set
2 parents 6290527 + 71f0978 commit 3914714

File tree

5 files changed

+39
-16
lines changed

5 files changed

+39
-16
lines changed

common/static/js/src/iframe-render.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

lms/static/js/student_account/views/FinishAuthView.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@
5151
courseId: $.url('?course_id'),
5252
courseMode: $.url('?course_mode'),
5353
emailOptIn: $.url('?email_opt_in'),
54-
purchaseWorkflow: $.url('?purchase_workflow')
54+
purchaseWorkflow: $.url('?purchase_workflow'),
55+
hideElements: $.url('?hide_elements')
5556
};
5657
for (var key in queryParams) {
5758
if (queryParams[key]) {
@@ -64,6 +65,7 @@
6465
this.emailOptIn = queryParams.emailOptIn;
6566
this.nextUrl = this.urls.defaultNextUrl;
6667
this.purchaseWorkflow = queryParams.purchaseWorkflow;
68+
this.hideElements = queryParams.hideElements;
6769
if (queryParams.next) {
6870
// Ensure that the next URL is internal for security reasons
6971
if (! window.isExternal(queryParams.next)) {
@@ -76,6 +78,9 @@
7678
try {
7779
var next = _.bind(this.enrollment, this);
7880
this.checkEmailOptIn(next);
81+
if (this.hideElements) {
82+
document.cookie = 'hideElements=' + this.hideElements + '; path=/';
83+
}
7984
} catch (err) {
8085
this.updateTaskDescription(gettext('Error') + ': ' + err.message);
8186
this.redirect(this.nextUrl);

lms/static/lms/js/iframe-render.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// List of the classes to hide while rendered in an iframe
2+
const classesToHide = ['.global-header', '.wrapper-course-material', '.a--footer'];
3+
4+
// Function to get a cookie by name
5+
function getCookieByName(name) {
6+
let cname = name + "=";
7+
let decodedCookie = decodeURIComponent(document.cookie);
8+
let cookies = decodedCookie.split(';');
9+
for (let i = 0; i < cookies.length; i++) {
10+
let c = cookies[i];
11+
while (c.charAt(0) == ' ') {
12+
c = c.substring(1);
13+
}
14+
if (c.indexOf(name) == 0) {
15+
return c.substring(name.length, c.length);
16+
}
17+
}
18+
return "";
19+
}
20+
21+
document.addEventListener('DOMContentLoaded', function () {
22+
const hideElements = getCookieByName('hideElements');
23+
24+
if (hideElements) {
25+
classesToHide.forEach(function (className) {
26+
document.querySelectorAll(className).forEach(function (element) {
27+
element.classList.add('hidden-element');
28+
});
29+
});
30+
}
31+
});

lms/static/sass/shared-v2/_base.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
}
2626

2727
// Hide element when rendered in iFrame
28-
.hidden-in-iframe {
28+
.hidden-element {
2929
display: none !important;
3030
}
3131

lms/templates/main.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@
123123
}).call(this, require || RequireJS.require);
124124
</script>
125125
<script type="text/javascript" src="${static.url("lms/js/require-config.js")}"></script>
126+
<script type="text/javascript" src="${static.url("lms/js/iframe-render.js")}"></script>
126127
<%block name="js_overrides">
127128
${render_require_js_path_overrides(settings.REQUIRE_JS_PATH_OVERRIDES) | n, decode.utf8}
128129
</%block>
@@ -211,7 +212,6 @@
211212
<script type="text/javascript" src="${static.url('js/header/header.js')}"></script>
212213
<%static:optional_include_mako file="body-extra.html" is_theming_enabled="True" />
213214
<script type="text/javascript" src="${static.url('js/src/jquery_extend_patch.js')}"></script>
214-
<script type="text/javascript" src="${static.url('js/src/iframe-render.js')}"></script>
215215
</body>
216216
</html>
217217

0 commit comments

Comments
 (0)