X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmisc%2Fentity-form.es6.js;fp=web%2Fcore%2Fmisc%2Fentity-form.es6.js;h=a0433010f214999f649a7c4d0a9d71698db4ca0f;hp=0000000000000000000000000000000000000000;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/web/core/misc/entity-form.es6.js b/web/core/misc/entity-form.es6.js new file mode 100644 index 000000000..a0433010f --- /dev/null +++ b/web/core/misc/entity-form.es6.js @@ -0,0 +1,53 @@ +/** + * @file + * Defines Javascript behaviors for the block_content module. + */ + +(function ($, Drupal) { + /** + * Sets summaries about revision and translation of entities. + * + * @type {Drupal~behavior} + * + * @prop {Drupal~behaviorAttach} attach + * Attaches summary behaviour entity form tabs. + * + * Specifically, it updates summaries to the revision information and the + * translation options. + */ + Drupal.behaviors.entityContentDetailsSummaries = { + attach(context) { + const $context = $(context); + $context.find('.entity-content-form-revision-information').drupalSetSummary((context) => { + const $revisionContext = $(context); + const revisionCheckbox = $revisionContext.find('.js-form-item-revision input'); + + // Return 'New revision' if the 'Create new revision' checkbox is checked, + // or if the checkbox doesn't exist, but the revision log does. For users + // without the "Administer content" permission the checkbox won't appear, + // but the revision log will if the content type is set to auto-revision. + if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $revisionContext.find('.js-form-item-revision-log textarea').length)) { + return Drupal.t('New revision'); + } + + return Drupal.t('No revision'); + }); + + $context.find('details.entity-translation-options').drupalSetSummary((context) => { + const $translationContext = $(context); + let translate; + let $checkbox = $translationContext.find('.js-form-item-translation-translate input'); + + if ($checkbox.length) { + translate = $checkbox.is(':checked') ? Drupal.t('Needs to be updated') : Drupal.t('Does not need to be updated'); + } + else { + $checkbox = $translationContext.find('.js-form-item-translation-retranslate input'); + translate = $checkbox.is(':checked') ? Drupal.t('Flag other translations as outdated') : Drupal.t('Do not flag other translations as outdated'); + } + + return translate; + }); + }, + }; +}(jQuery, Drupal));