(function( $ ){ let settingAjax = function( action, block_id ){ var data = { action : action, nonce : GUTENTOR_SETTINGS.ajax_nonce, block_id : block_id }; $.ajax({ url : GUTENTOR_SETTINGS.ajax_url, type: "POST", data: data, success: function(result){ // console.log( result ); }, beforeSend: function(){ }, complete : function(){ } }); }; $( document ).ready( function(){ $("#gutentor-admin-element-tab").click(function () { $(this).addClass("tablist-item-active").siblings().removeClass("tablist-item-active"); $(".gutentor-admin-element-content").addClass("gutentor-active").siblings().removeClass("gutentor-active"); }); $("#gutentor-admin-module-tab").click(function () { $(this).addClass("tablist-item-active").siblings().removeClass("tablist-item-active"); $(".gutentor-admin-module-content").addClass("gutentor-active").siblings().removeClass("gutentor-active"); }); $("#gutentor-admin-post-tab").click(function () { $(this).addClass("tablist-item-active").siblings().removeClass("tablist-item-active"); $(".gutentor-admin-post-content").addClass("gutentor-active").siblings().removeClass("gutentor-active"); }); $("#gutentor-admin-term-tab").click(function () { $(this).addClass("tablist-item-active").siblings().removeClass("tablist-item-active"); $(".gutentor-admin-term-content").addClass("gutentor-active").siblings().removeClass("gutentor-active"); }); $("#gutentor-admin-widget-tab").click(function () { $(this).addClass("tablist-item-active").siblings().removeClass("tablist-item-active"); $(".gutentor-admin-widget-content").addClass("gutentor-active").siblings().removeClass("gutentor-active"); }); $( document ).on( 'click', '.onoffswitch', function( e ){ e.preventDefault(); let block_id = $( this ).find('input').data( 'action' ); $( this ).find('input').prop( 'checked', !$( this ).find('input').prop( 'checked' ) ); let val = $( this ).find('input').prop( 'checked' ); let action = val ? 'gutentor_activate_block' : 'gutentor_deactivate_block'; if( 'bulk' === block_id ){ action = val ? 'gutentor_bulk_activate_blocks' : 'gutentor_bulk_deactivate_blocks'; } settingAjax( action, block_id ); }); /*Video*/ /*WOW*/ if ($('.gutentor-getting-started-watch-video').length) { $('.gutentor-getting-started-watch-video').magnificPopup({ disableOn: 700, type: 'iframe', mainClass: 'mfp-fade', removalDelay: 160, preloader: false, fixedContentPos: false, }); } /*Color Picker * Copied for FieldPress * https://github.com/addonspress/fieldpress * */ if( typeof Color === 'function' ) { /*adding alpha support for Automattic Color.js toString function.*/ Color.fn.toString = function () { /*check for alpha*/ if ( this._alpha < 1 ) { return this.toCSS('rgba', this._alpha).replace(/\s+/g, ''); } var hex = parseInt( this._color, 10 ).toString( 16 ); if ( this.error ) { return ''; } /*maybe left pad it*/ if ( hex.length < 6 ) { for (var i = 6 - hex.length - 1; i >= 0; i--) { hex = '0' + hex; } } return '#' + hex; }; } var FPPARSERGBACOLOR = function( val ) { var value = val.replace(/\s+/g, ''), alpha = ( value.indexOf('rgba') !== -1 ) ? parseFloat( value.replace(/^.*,(.+)\)/, '$1') * 100 ) : 100, rgba = ( alpha < 100 ); return { value: value, alpha: alpha, rgba: rgba }; }; var FPCOLORPICKER = function( $this ) { /*Default Color Picker*/ if( $this.data('rgba') && $this.data('rgba') === 1 ){ /*parse rgba*/ var picker = FPPARSERGBACOLOR( $this.val() ); $this.wpColorPicker({ /*wpColorPicker.clear*/ clear: function() { $this.trigger('keyup'); }, /*wpColorPicker.change*/ change: function( event, ui ) { var ui_color_value = ui.color.toString(); /*update checkerboard background color*/ $this.closest('.wp-picker-container').find('.fp-rgba-slider-offset').css('background-color', ui_color_value); $this.val(ui_color_value).trigger('change'); }, /*wpColorPicker.create*/ create: function() { /*set variables for alpha slider*/ var a8cIris = $this.data('a8cIris'), $container = $this.closest('.wp-picker-container'), /*appending alpha wrapper*/ $alpha_wrap = $('<div class="fp-rgba-wrap">' + '<div class="fp-rgba-slider"></div>' + '<div class="fp-rgba-slider-offset"></div>' + '<div class="fp-rgba-text"></div>' + '</div>').appendTo( $container.find('.wp-picker-holder') ), $alpha_slider = $alpha_wrap.find('.fp-rgba-slider'), $alpha_text = $alpha_wrap.find('.fp-rgba-text'), $alpha_offset = $alpha_wrap.find('.fp-rgba-slider-offset'); /*alpha slider*/ $alpha_slider.slider({ /*slider.slide*/ slide: function( event, ui ) { var slide_value = parseFloat( ui.value / 100 ); /*update iris data alpha && wpColorPicker color option && alpha text*/ a8cIris._color._alpha = slide_value; $this.wpColorPicker( 'color', a8cIris._color.toString() ); $alpha_text.text( ( slide_value < 1 ? slide_value : '' ) ); }, /*slider: create*/ create: function() { var slide_value = parseFloat( picker.alpha / 100 ), alpha_text_value = slide_value < 1 ? slide_value : ''; /*update alpha text && checkerboard background color*/ $alpha_text.text(alpha_text_value); $alpha_offset.css('background-color', picker.value); /*wpColorPicker clear for update iris data alpha && alpha text && slider color option*/ $container.on('click', '.wp-picker-clear', function() { a8cIris._color._alpha = 1; $alpha_text.text('').trigger('change'); $alpha_slider.slider('option', 'value', 100).trigger('slide'); }); /*wpColorPicker default button for update iris data alpha && alpha text && slider color option*/ $container.on('click', '.wp-picker-default', function() { var default_picker = FPPARSERGBACOLOR( $this.data('default-color') ), default_value = parseFloat( default_picker.alpha / 100 ), default_text = default_value < 1 ? default_value : ''; a8cIris._color._alpha = default_value; $alpha_text.text(default_text); $alpha_slider.slider('option', 'value', default_picker.alpha).trigger('slide'); }); /*show alpha wrapper on click color picker button*/ $container.on('click', '.wp-color-result', function() { $alpha_wrap.toggle(); }); /*hide alpha wrapper on click body*/ $(document).on( 'click.wpcolorpicker', function() { $alpha_wrap.hide(); }); }, /* slider: options */ value: picker.alpha, step: 1, min: 1, max: 100 }); } }); } else{ $this.wpColorPicker( { change: _.throttle( function() { /* For Customizer */ $this.trigger( 'change' ); }, 3000 ), clear: _.throttle( function() { /* For Customizer */ $this.trigger( 'change' ); }, 4000 ) }); } }; $('body').find('.gutentor-color-picker').each(function(){ FPCOLORPICKER($(this)); }); /*image loader*/ var FPIMAGEUPLOAD = function () { $(document).on('click', '.gutentor-img-uploader-open', function (e){ e.preventDefault(); var image_uploader_open = $(this), image_wrapper = image_uploader_open.closest('.gutentor-fields'), preview = image_wrapper.find('.gutentor-img-preview'), input = image_wrapper.find('input'), image = image_wrapper.find('img'), wp_media_frame; /* Check if the `wp.media.gallery` API exists. */ if ( typeof wp === 'undefined' || ! wp.media || ! wp.media.gallery ) { return; } /* If the media frame already exists, reopen it. */ if ( wp_media_frame ) { wp_media_frame.open(); return; } /* Create the media frame. */ wp_media_frame = wp.media({ library: { type: 'image' }, title: image_uploader_open.data('upload'), button: { text: image_uploader_open.data('button-text') } }); /*select selected image*/ wp_media_frame.on('open', function(){ var selected = input.val(); // the id of the image if (selected) { var selection = wp_media_frame.state().get('selection'), attachment = wp.media.attachment(selected); selection.add(attachment); } }); /* When an image is selected, run a callback. */ wp_media_frame.on( 'select', function() { var attachment = wp_media_frame.state().get('selection').first().toJSON(), thumbnail = ( typeof attachment.sizes.thumbnail !== 'undefined' ) ? attachment.sizes.thumbnail.url : attachment.url; preview.removeClass('hidden'); image.attr('src', thumbnail); input.val( attachment.id ); input.trigger('change'); }); /* Finally, open the modal. */ wp_media_frame.open(); }); /* Remove image */ $(document).on('click','.gutentor-clear-img',function (e) { e.preventDefault(); var image_wrapper = $(this).closest('.gutentor-fields'), preview = image_wrapper.find('.gutentor-img-preview'), input = image_wrapper.find('input'); input.val(''); preview.addClass('hidden'); }); }; FPIMAGEUPLOAD(); /*video loader*/ var FPVIDEOUPLOAD = function () { /*Video Meta*/ $( document ).on('click', '.gutentor-media-video-upload', function(e){ // Prevents the default action from occuring. e.preventDefault(); var media_title = $( this ).data( 'title' ), media_button = $( this ).data( 'button' ), media_input_val = $( this ).prev(), media_image_url = $( this ).siblings( '.gutentor-video-preview-wrap' ); meta_image_frame = wp.media.frames.meta_image_frame = wp.media( { title: media_title, button: { text: media_button }, library: { type: [ 'video/mp4' ] }, } ); // Opens the media library frame. meta_image_frame.open(); // Runs when an video is selected. meta_image_frame.on( 'select', function(){ // Grabs the attachment selection and creates a JSON representation of the model. var media_attachment = meta_image_frame.state().get( 'selection' ).first().toJSON(); // Sends the attachment ID/URL to our custom video input field. media_input_val.val( media_attachment.id ); var video = $( '<video />', { class: 'gutentor-video-preview', src: media_attachment.url, type: 'video/mp4', controls: true } ); media_image_url.html( video ); media_image_url.show(); media_input_val.trigger( 'change' ); } ); } ); // Runs when the video remove button is clicked. $( document ).on('click', '.gutentor-media-video-remove', function(e){ $( this ).siblings( '.gutentor-video-preview-wrap' ).html( '' ); $( this ).prev().prev().val( '' ); } ); }; FPVIDEOUPLOAD(); /*Video Src Selection*/ $( '#gutentor_meta_video_src_option' ).change( function(){ var selected_val = $( this ).find( ":selected" ).val(), g_video_url = $( '.header_video' ), g_video_upload = $( '.gutentor-meta-video-upload-wrap' ); if (selected_val === 'external-url' ) { g_video_url.show(); g_video_url.siblings().hide(); } else if (selected_val === 'self-hosted' ) { g_video_upload.show(); g_video_upload.siblings().hide(); } } ).trigger( "change" ); }); })( jQuery );