52 lines
2.3 KiB
JavaScript
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));
|