Files
edx-platform/lms/static/js/courseware/toggle_element_visibility.js
2016-08-05 15:29:20 -04:00

52 lines
2.3 KiB
JavaScript

(function(define) {
'use strict';
define(['jquery', 'logger', 'moment'],
function($, Logger, moment) {
return function() {
// define variables for code legibility
var toggleActionElements = $('.toggle-visibility-button');
var updateToggleActionText = function(elementIsHidden, actionElement) {
var show_text = actionElement.data('show'),
hide_text = actionElement.data('hide'),
first_hidden_update = $('.old-updates .toggle-visibility-button').first();
actionElement.attr('aria-expanded', elementIsHidden);
if (elementIsHidden) {
if (hide_text) {
actionElement.html(actionElement.data('hide'));
} else {
actionElement.hide();
first_hidden_update.focus();
}
} else {
if (show_text) {
actionElement.html(actionElement.data('show'));
}
}
};
$.each(toggleActionElements, function(i, elem) {
var toggleActionElement = $(elem),
toggleTargetElement = toggleActionElement.siblings('.toggle-visibility-element'),
elementIsHidden = toggleTargetElement.is(':visible'),
date = toggleTargetElement.siblings('.date').text();
updateToggleActionText(elementIsHidden, toggleActionElement);
toggleActionElement.on('click', function(event) {
event.preventDefault();
toggleTargetElement.toggleClass('hidden');
updateToggleActionText(!toggleTargetElement.hasClass('hidden'), toggleActionElement);
Logger.log('edx.course.home.course_update.toggled', {
action: elementIsHidden ? 'hide' : 'show',
publish_date: moment(date, 'MMM DD, YYYY').format()
});
});
});
};
});
})(define || RequireJS.define);