protected function _getScript_RegisterCallbacks()
{
$_aJSArray = json_encode($this->aFieldTypeSlugs);
return <<<JAVASCRIPTS
jQuery( document ).ready( function(){
jQuery().registerAdminPageFrameworkCallbacks( {
/**
* Called when a field of this field type gets repeated.
*/
repeated_field: function( oCloned, aModel ) {
// Remove the value of the cloned preview element - check the value for repeatable sections.
var sValue = oCloned.find( 'input' ).first().val();
if ( 1 !== aModel[ 'call_type' ] || ! sValue ) { // if it's not for repeatable sections
oCloned.find( '.image_preview' ).hide(); // for the image field type, hide the preview element
oCloned.find( '.image_preview img' ).attr( 'src', '' ); // for the image field type, empty the src property for the image uploader field
}
// Increment element IDs.
oCloned.find( '.image_preview, .image_preview img, .select_image' ).incrementAttribute(
'id', // attribute name
aModel[ 'incremented_from' ], // index incremented from
aModel[ 'id' ] // digit model
);
// Bind the event.
var _oFieldContainer = oCloned.closest( '.admin-page-framework-field' );
var _oSelectButton = _oFieldContainer.find( '.select_image' );
var _oImageInput = _oFieldContainer.find( '.image-field input' );
if ( _oImageInput.length <= 0 ) {
return true;
}
setAdminPageFrameworkImageUploader(
_oImageInput.attr( 'id' ),
true,
_oSelectButton.attr( 'data-enable_external_source' )
);
},
},
{$_aJSArray}
);
});
JAVASCRIPTS;
}