/** * @file * Text behaviors. */ (function ($, Drupal) { 'use strict'; /** * Auto-hide summary textarea if empty and show hide and unhide links. * * @type {Drupal~behavior} * * @prop {Drupal~behaviorAttach} attach * Attaches auto-hide behavior on `text-summary` events. */ Drupal.behaviors.textSummary = { attach: function (context, settings) { $(context).find('.js-text-summary').once('text-summary').each(function () { var $widget = $(this).closest('.js-text-format-wrapper'); var $summary = $widget.find('.js-text-summary-wrapper'); var $summaryLabel = $summary.find('label').eq(0); var $full = $widget.find('.js-text-full').closest('.js-form-item'); var $fullLabel = $full.find('label').eq(0); // Create a placeholder label when the field cardinality is greater // than 1. if ($fullLabel.length === 0) { $fullLabel = $('').prependTo($full); } // Set up the edit/hide summary link. var $link = $(' ()'); var $button = $link.find('button'); var toggleClick = true; $link.on('click', function (e) { if (toggleClick) { $summary.hide(); $button.html(Drupal.t('Edit summary')); $link.appendTo($fullLabel); } else { $summary.show(); $button.html(Drupal.t('Hide summary')); $link.appendTo($summaryLabel); } e.preventDefault(); toggleClick = !toggleClick; }).appendTo($summaryLabel); // If no summary is set, hide the summary field. if ($widget.find('.js-text-summary').val() === '') { $link.trigger('click'); } }); } }; })(jQuery, Drupal);