2026-02-05 17:08:59 +03:00

85 lines
2.6 KiB
JavaScript

/* global fusionAllElements, FusionApp, FusionPageBuilderApp */
var FusionPageBuilder = FusionPageBuilder || {};
( function() {
jQuery( document ).ready( function() {
// Related Component View.
FusionPageBuilder.fusion_tb_post_card_archives = FusionPageBuilder.fusion_post_cards.extend( {
onInit: function() {
var output, markupIsEmpty, markupIsPlaceholder;
this.filterTemplateAtts = this._filterTemplateAtts( this.filterTemplateAtts );
output = this.model.attributes.markup && this.model.attributes.markup.output;
markupIsEmpty = '' === output;
markupIsPlaceholder = output && output.includes( 'fusion-builder-placeholder' );
if ( markupIsEmpty || markupIsPlaceholder ) {
this.model.attributes.markup.output = this.getComponentPlaceholder();
}
},
/**
* Modify template attributes.
*
* @since 3.3
* @param {Object} atts - The attributes.
* @return {Object}
*/
_filterTemplateAtts: function( filterTemplateAtts ) {
var self = this;
return function( atts ) {
atts.params.show_title = 'yes';
atts = filterTemplateAtts.call( self, atts );
atts.placeholder = self.getComponentPlaceholder();
return atts;
};
},
/**
* Runs after view DOM is patched.
*
* @since 3.3
* @return {void}
*/
afterPatch: function() {
jQuery( '#fb-preview' )[ 0 ].contentWindow.jQuery( 'body' ).trigger( 'fusion-element-render-fusion_post_cards', this.model.attributes.cid );
},
/**
* Runs just after render on cancel.
*
* @since 3.5
* @return null
*/
beforeGenerateShortcode: function() {
var elementType = this.model.get( 'element_type' ),
options = fusionAllElements[ elementType ].params,
values = jQuery.extend( true, {}, fusionAllElements[ elementType ].defaults, _.fusionCleanParameters( this.model.get( 'params' ) ) );
if ( 'object' !== typeof options ) {
return;
}
// If images needs replaced lets check element to see if we have media being used to add to object.
if ( 'undefined' !== typeof FusionApp.data.replaceAssets && FusionApp.data.replaceAssets && ( 'undefined' !== typeof FusionApp.data.fusion_element_type || 'fusion_template' === FusionApp.getPost( 'post_type' ) ) ) {
this.mapStudioImages( options, values );
if ( '' !== values.post_card ) {
// If its not within object already, add it.
if ( 'undefined' === typeof FusionPageBuilderApp.mediaMap.post_cards[ values.post_card ] ) {
FusionPageBuilderApp.mediaMap.post_cards[ values.post_card ] = true;
}
}
}
}
} );
} );
}( jQuery ) );