File "fl-builder-export.js"

Full Path: /www/wwwroot/shphe-en.com/wp-content/plugins/bb-plugin/js/fl-builder-export.js
File size: 2.34 KB
MIME-type: --
Charset: utf-8

( function( $ ) {

	/**
	 * @since 1.8
	 * @class FLBuilderExport
	 */
	FLBuilderExport = {
		
		/**
		 * Initializes custom exports for the builder.
		 *
		 * @since 1.8
		 * @access private
		 * @method _init
		 */
		_init: function()
		{
			var templateRadio = $( '#export-filters input[value=fl-builder-template]' );
			
			// Add the template filters after the template radio.
			templateRadio.closest( 'p' ).after( $( '#fl-builder-template-filters' ) );
			
			// Events
			templateRadio.on( 'change', FLBuilderExport._showTemplateFilters );
			$( '#fl-builder-template-export-select' ).on( 'change', FLBuilderExport._templateSelectChange );
		},
		
		/**
		 * Shows the template filters when the template radio
		 * button is clicked.
		 *
		 * @since 1.8
		 * @access private
		 * @method _showTemplateFilters
		 */
		_showTemplateFilters: function()
		{
			$( '#fl-builder-template-filters' ).slideDown();
		},
		
		/**
		 * Called when the template select is changed and shows
		 * all templates to select from when the value is set
		 * to selected.
		 *
		 * @since 1.8
		 * @access private
		 * @method _templateSelectChange
		 */
		_templateSelectChange: function()
		{
			var filter  = $( '#fl-builder-template-filters' ),
				posts   = $( '#fl-builder-template-export-posts' ),
				spinner = filter.find( '.spinner' );
			
			if ( 'all' == $( this ).val() ) {
				spinner.removeClass( 'is-active' );
				posts.hide();
			}
			else {
				
				posts.show();
				
				if ( 0 === posts.find( 'input' ).length ) {	
					
					spinner.addClass( 'is-active' );
								
					$.post( ajaxurl, {
						action: 'fl_builder_export_templates_data'
					}, FLBuilderExport._templateDataLoaded );
				}
			}
		},
		
		/**
		 * Called when the template data is loaded.
		 *
		 * @since 1.8
		 * @access private
		 * @method _templateDataLoaded
		 */
		_templateDataLoaded: function( response )
		{
			var filter  	= $( '#fl-builder-template-filters' ),
				posts   	= $( '#fl-builder-template-export-posts' ),
				spinner 	= filter.find( '.spinner' ),
				data 		= JSON.parse( response ),
				i			= 0;
				
			for ( i in data ) {
				posts.append( '<p><label><input type="checkbox" name="fl-builder-export-template[]" value="' + data[ i ].id + '" /> ' + data[ i ].title + '</label></p>' );
			}
				
			spinner.removeClass( 'is-active' );
		}
	};

	$( FLBuilderExport._init );

} )( jQuery );