62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
/**
 | 
						|
* DO NOT EDIT THIS FILE.
 | 
						|
* See the following change record for more information,
 | 
						|
* https://www.drupal.org/node/2815083
 | 
						|
* @preserve
 | 
						|
**/
 | 
						|
 | 
						|
(function ($, Drupal, window) {
 | 
						|
  function processCommentNewIndicators(placeholders) {
 | 
						|
    let isFirstNewComment = true;
 | 
						|
    const newCommentString = Drupal.t('new');
 | 
						|
    let $placeholder;
 | 
						|
    placeholders.forEach(placeholder => {
 | 
						|
      $placeholder = $(placeholder);
 | 
						|
      const timestamp = parseInt($placeholder.attr('data-comment-timestamp'), 10);
 | 
						|
      const $node = $placeholder.closest('[data-history-node-id]');
 | 
						|
      const nodeID = $node.attr('data-history-node-id');
 | 
						|
      const lastViewTimestamp = Drupal.history.getLastRead(nodeID);
 | 
						|
 | 
						|
      if (timestamp > lastViewTimestamp) {
 | 
						|
        placeholder.textContent = newCommentString;
 | 
						|
        $placeholder.removeClass('hidden').closest('.js-comment').addClass('new');
 | 
						|
 | 
						|
        if (isFirstNewComment) {
 | 
						|
          isFirstNewComment = false;
 | 
						|
          $placeholder.prev().before('<a id="new"></a>');
 | 
						|
 | 
						|
          if (window.location.hash === '#new') {
 | 
						|
            window.scrollTo(0, $placeholder.offset().top - Drupal.displace.offsets.top);
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    });
 | 
						|
  }
 | 
						|
 | 
						|
  Drupal.behaviors.commentNewIndicator = {
 | 
						|
    attach(context) {
 | 
						|
      const nodeIDs = [];
 | 
						|
      const placeholders = once('history', '[data-comment-timestamp]', context).filter(placeholder => {
 | 
						|
        const $placeholder = $(placeholder);
 | 
						|
        const commentTimestamp = parseInt($placeholder.attr('data-comment-timestamp'), 10);
 | 
						|
        const nodeID = $placeholder.closest('[data-history-node-id]').attr('data-history-node-id');
 | 
						|
 | 
						|
        if (Drupal.history.needsServerCheck(nodeID, commentTimestamp)) {
 | 
						|
          nodeIDs.push(nodeID);
 | 
						|
          return true;
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
      });
 | 
						|
 | 
						|
      if (placeholders.length === 0) {
 | 
						|
        return;
 | 
						|
      }
 | 
						|
 | 
						|
      Drupal.history.fetchTimestamps(nodeIDs, () => {
 | 
						|
        processCommentNewIndicators(placeholders);
 | 
						|
      });
 | 
						|
    }
 | 
						|
 | 
						|
  };
 | 
						|
})(jQuery, Drupal, window); |