2015-08-17 17:00:26 -07:00
/ * *
* @ file
* Defines Javascript behaviors for the node module .
* /
( function ( $ , Drupal , drupalSettings ) {
"use strict" ;
/ * *
2015-09-04 13:20:09 -07:00
* Behaviors for tabs in the node edit form .
2015-08-17 17:00:26 -07:00
*
* @ type { Drupal ~ behavior }
2015-09-04 13:20:09 -07:00
*
* @ prop { Drupal ~ behaviorAttach } attach
* Attaches summary behavior for tabs in the node edit form .
2015-08-17 17:00:26 -07:00
* /
Drupal . behaviors . nodeDetailsSummaries = {
attach : function ( context ) {
var $context = $ ( context ) ;
$context . find ( '.node-form-revision-information' ) . drupalSetSummary ( function ( context ) {
var $revisionContext = $ ( context ) ;
var revisionCheckbox = $revisionContext . find ( '.form-item-revision input' ) ;
2015-09-04 13:20:09 -07:00
// 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.
2015-08-17 17:00:26 -07:00
if ( revisionCheckbox . is ( ':checked' ) || ( ! revisionCheckbox . length && $revisionContext . find ( '.form-item-revision-log textarea' ) . length ) ) {
return Drupal . t ( 'New revision' ) ;
}
return Drupal . t ( 'No revision' ) ;
} ) ;
$context . find ( '.node-form-author' ) . drupalSetSummary ( function ( context ) {
var $authorContext = $ ( context ) ;
2015-09-04 13:20:09 -07:00
var name = $authorContext . find ( '.field--name-uid input' ) . val ( ) ;
var date = $authorContext . find ( '.field--name-created input' ) . val ( ) ;
2015-08-17 17:00:26 -07:00
return date ?
Drupal . t ( 'By @name on @date' , { '@name' : name , '@date' : date } ) :
Drupal . t ( 'By @name' , { '@name' : name } ) ;
} ) ;
$context . find ( '.node-form-options' ) . drupalSetSummary ( function ( context ) {
var $optionsContext = $ ( context ) ;
var vals = [ ] ;
if ( $optionsContext . find ( 'input' ) . is ( ':checked' ) ) {
$optionsContext . find ( 'input:checked' ) . next ( 'label' ) . each ( function ( ) {
vals . push ( Drupal . checkPlain ( $ . trim ( $ ( this ) . text ( ) ) ) ) ;
} ) ;
return vals . join ( ', ' ) ;
}
else {
return Drupal . t ( 'Not promoted' ) ;
}
} ) ;
$context . find ( 'fieldset.node-translation-options' ) . drupalSetSummary ( function ( context ) {
var $translationContext = $ ( context ) ;
var translate ;
var $checkbox = $translationContext . find ( '.form-item-translation-translate input' ) ;
if ( $checkbox . size ( ) ) {
translate = $checkbox . is ( ':checked' ) ? Drupal . t ( 'Needs to be updated' ) : Drupal . t ( 'Does not need to be updated' ) ;
}
else {
$checkbox = $translationContext . find ( '.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 , drupalSettings ) ;