2015-08-17 17:00:26 -07:00
/ * *
* @ file
* Defines Javascript behaviors for the node module .
* /
( function ( $ , Drupal , drupalSettings ) {
2015-10-21 21:44:50 -07:00
'use strict' ;
2015-08-17 17:00:26 -07:00
/ * *
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 ) ;
2015-10-08 11:40:12 -07:00
var revisionCheckbox = $revisionContext . find ( '.js-form-item-revision input' ) ;
2015-08-17 17:00:26 -07:00
2015-10-08 11:40:12 -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.
if ( revisionCheckbox . is ( ':checked' ) || ( ! revisionCheckbox . length && $revisionContext . find ( '.js-form-item-revision-log textarea' ) . length ) ) {
2015-08-17 17:00:26 -07:00
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 ( ) ;
2016-01-06 16:31:26 -08:00
if ( name && date ) {
return Drupal . t ( 'By @name on @date' , { '@name' : name , '@date' : date } ) ;
}
else if ( name ) {
return Drupal . t ( 'By @name' , { '@name' : name } ) ;
}
else if ( date ) {
return Drupal . t ( 'Authored on @date' , { '@date' : date } ) ;
}
2015-08-17 17:00:26 -07:00
} ) ;
$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 ;
2015-10-08 11:40:12 -07:00
var $checkbox = $translationContext . find ( '.js-form-item-translation-translate input' ) ;
2015-08-17 17:00:26 -07:00
if ( $checkbox . size ( ) ) {
translate = $checkbox . is ( ':checked' ) ? Drupal . t ( 'Needs to be updated' ) : Drupal . t ( 'Does not need to be updated' ) ;
}
else {
2015-10-08 11:40:12 -07:00
$checkbox = $translationContext . find ( '.js-form-item-translation-retranslate input' ) ;
2015-08-17 17:00:26 -07:00
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 ) ;