/** * @file * Defines JavaScript behaviors for the node module. */ (function ($, Drupal, drupalSettings) { /** * Behaviors for tabs in the node edit form. * * @type {Drupal~behavior} * * @prop {Drupal~behaviorAttach} attach * Attaches summary behavior for tabs in the node edit form. */ Drupal.behaviors.nodeDetailsSummaries = { attach(context) { const $context = $(context); $context.find('.node-form-author').drupalSetSummary((context) => { const nameElement = context.querySelector('.field--name-uid input'); const name = nameElement && nameElement.value; const dateElement = context.querySelector('.field--name-created input'); const date = dateElement && dateElement.value; if (name && date) { return Drupal.t('By @name on @date', { '@name': name, '@date': date, }); } if (name) { return Drupal.t('By @name', { '@name': name }); } if (date) { return Drupal.t('Authored on @date', { '@date': date }); } }); $context.find('.node-form-options').drupalSetSummary((context) => { const $optionsContext = $(context); const values = []; if ($optionsContext.find('input:checked').length) { $optionsContext .find('input:checked') .next('label') .each(function () { values.push(Drupal.checkPlain(this.textContent.trim())); }); return values.join(', '); } return Drupal.t('Not promoted'); }); }, }; })(jQuery, Drupal, drupalSettings);