2015-04-19 13:55:49 +02:00

60 lines
1.5 KiB
JavaScript
Executable File

(function ($) {
/**
* Attach collapse behavior to the feedback form block.
*/
Drupal.behaviors.feedbackForm = {
attach: function (context) {
$('#block-feedback-form', context).once('feedback', function () {
var $block = $(this);
$block.find('span.feedback-link')
.prepend('<span id="feedback-form-toggle">[ + ]</span> ')
.css('cursor', 'pointer')
.toggle(function () {
Drupal.feedbackFormToggle($block, false);
},
function() {
Drupal.feedbackFormToggle($block, true);
}
);
$block.find('form').hide();
$block.show();
});
}
};
/**
* Re-collapse the feedback form after every successful form submission.
*/
Drupal.behaviors.feedbackFormSubmit = {
attach: function (context) {
var $context = $(context);
if (!$context.is('#feedback-status-message')) {
return;
}
// Collapse the form.
$('#block-feedback-form .feedback-link').click();
// Blend out and remove status message.
window.setTimeout(function () {
$context.fadeOut('slow', function () {
$context.remove();
});
}, 3000);
}
};
/**
* Collapse or uncollapse the feedback form block.
*/
Drupal.feedbackFormToggle = function ($block, enable) {
$block.find('form').slideToggle('medium');
if (enable) {
$('#feedback-form-toggle', $block).html('[ + ]');
}
else {
$('#feedback-form-toggle', $block).html('[ &minus; ]');
}
};
})(jQuery);