| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- (function ($) {
- /**
- * Only show links to report comments after the comment has been moused over.
- */
- Drupal.behaviors.mollomReportComment = {
- showReportLink: function(e) {
- $(this).find('.mollom-flag').show();
- },
- hideReportLink: function(e) {
- if ($(this).find('.mollom-flag-reasons').length === 0) {
- // Only hide the link if the comment is not currently being reported.
- $(this).find('.mollom-flag').hide();
- }
- },
- attach: function (context) {
- // Leave the report links visible for touch devices.
- if (!!('ontouchstart' in window) || !!('msmaxtouchpoints' in window.navigator)) {
- return;
- }
- // Don't show/hide the report link if the text is aligned right or its
- // appearance will cause all other inline links to jump to the left.
- var ul = $(context).find('.comment ul.links:has(.mollom-flag)');
- if ((ul.css('display') == 'block' && ul.css('textAlign') == 'right')
- || ul.css('float') == 'right'
- || ul.find('li').css('float') == 'right') {
- } else {
- $(context).find('.comment:has(.mollom-flag)').bind('mouseover',this.showReportLink);
- $(context).find('.comment:has(.mollom-flag)').bind('mouseout',this.hideReportLink);
- $(context).find('.comment .mollom-flag').hide();
- }
- },
- detach: function(context) {
- $(context).find('.comment:has(.mollom-flag)').unbind('mouseover',this.showReportLink);
- $(context).find('.comment:has(.mollom-flag)').unbind('mouseout',this.hideReportLink);
- }
- };
- /**
- * Close a form to report comments as inappropriate if user clicks outside.
- */
- Drupal.behaviors.mollomReportCancel = {
- lastFocus: null,
- context: null,
- // Helper functions have "this" set to Drupal.behaviors.mollomReportCancel.
- closeReportDialog: function(e) {
- if ($('.mollom-flag-container').length > 0) {
- e.stopPropagation();
- $('.mollom-flag-container').remove();
- this.lastFocus.focus();
- }
- },
- checkEscapeDialog: function(e) {
- if (e.keyCode === 27) {
- this.closeReportDialog(e);
- }
- },
- checkClickOutside: function(e) {
- if (!$.contains(this.context[0],e.target)) {
- this.closeReportDialog(e);
- }
- },
- attach: function (context) {
- if ($(context).hasClass('mollom-flag-container')) {
- // Enable and set focus on the new dialog.
- this.context = context;
- this.lastFocus = document.activeElement;
- context.tabIndex = -1;
- context.focus();
- $(document).bind('keydown',$.proxy(this.checkEscapeDialog,this));
- $(document).bind('click',$.proxy(this.checkClickOutside,this));
- }
- },
- detach: function(context) {
- if ($(context).hasClass('mollom-flag-container')) {
- $(document).unbind('keydown',this.checkCloseDialog);
- $(document).unbind('click',this.checkClickOutside);
- }
- }
- };
- /**
- * Add a class to reported content to allow overriding the display with CSS.
- */
- Drupal.behaviors.mollomReportedMarkAsFlagged = {
- attach: function (context) {
- if ($(context).hasClass('mollom-flag-confirm')) {
- $(context).parents('.mollom-flag-content').addClass('mollom-flagged');
- }
- }
- }
- /**
- * Close reporting confirmation and remove a comment that has been reported.
- */
- Drupal.behaviors.mollomReportedCommentHide = {
- attach: function (context) {
- if ($(context).hasClass('mollom-flag-confirm')) {
- // Removes the comment from view.
- $(context).parent().delay(1000).fadeOut(400,function() {
- $(context).parents('.mollom-flag-content-comment').prev().remove();
- $(context).parents('.mollom-flag-content-comment').slideUp(200, this.remove);
- });
- }
- }
- };
- })(jQuery);
|