11 * Auto-hide summary textarea if empty and show hide and unhide links.
13 * @type {Drupal~behavior}
15 * @prop {Drupal~behaviorAttach} attach
16 * Attaches auto-hide behavior on `text-summary` events.
18 Drupal.behaviors.textSummary = {
19 attach: function (context, settings) {
20 $(context).find('.js-text-summary').once('text-summary').each(function () {
21 var $widget = $(this).closest('.js-text-format-wrapper');
23 var $summary = $widget.find('.js-text-summary-wrapper');
24 var $summaryLabel = $summary.find('label').eq(0);
25 var $full = $widget.find('.js-text-full').closest('.js-form-item');
26 var $fullLabel = $full.find('label').eq(0);
28 // Create a placeholder label when the field cardinality is greater
30 if ($fullLabel.length === 0) {
31 $fullLabel = $('<label></label>').prependTo($full);
34 // Set up the edit/hide summary link.
35 var $link = $('<span class="field-edit-link"><button type="button" class="link link-edit-summary btn btn-default btn-xs pull-right" data-toggle="button" aria-pressed="false" autocomplete="off">' + Drupal.t('Hide summary') + '</button></span>');
36 var $button = $link.find('button');
37 var toggleClick = true;
38 $link.on('click', function (e) {
41 $button.html(Drupal.t('Edit summary'));
42 $fullLabel.before($link);
46 $button.html(Drupal.t('Hide summary'));
47 $summaryLabel.before($link);
50 toggleClick = !toggleClick;
52 $summaryLabel.before($link);
54 // If no summary is set, hide the summary field.
55 if ($widget.find('.js-text-summary').val() === '') {
56 $link.trigger('click');
59 $link.addClass('active');