Mercurial > hg > isophonics-drupal-site
view core/modules/text/text.es6.js @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | c2387f117808 |
line wrap: on
line source
/** * @file * Text behaviors. */ (function ($, Drupal) { /** * 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(context, settings) { $(context).find('.js-text-summary').once('text-summary').each(function () { const $widget = $(this).closest('.js-text-format-wrapper'); const $summary = $widget.find('.js-text-summary-wrapper'); const $summaryLabel = $summary.find('label').eq(0); const $full = $widget.find('.js-text-full').closest('.js-form-item'); let $fullLabel = $full.find('label').eq(0); // Create a placeholder label when the field cardinality is greater // than 1. if ($fullLabel.length === 0) { $fullLabel = $('<label></label>').prependTo($full); } // Set up the edit/hide summary link. const $link = $(`<span class="field-edit-link"> (<button type="button" class="link link-edit-summary">${Drupal.t('Hide summary')}</button>)</span>`); const $button = $link.find('button'); let toggleClick = true; $link.on('click', (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));