(function($) { var callbacks = { install_plugins: function(data, beforestart, callback) { var plugins = $('').PluginManager(); plugins.init(beforestart, callback); }, import_data: function(data, beforestart, callback) { $('#bs_import_form').submit(); }, save_theme_settings: function(data, beforestart, callback) { $.ajax({ type: "POST", url: ajaxurl, data: { action: "bs_save_theme_settings", logo_url: $('#new_logo_url').val(), pr_color: $('#pr_accent_color').val() }, beforeSend: function() { if (typeof beforestart == 'function') { beforestart(); } $('#setup-next').addClass('disabled'); $('#setup-back').addClass('disabled'); } }).done(function(re) { if (typeof callback == 'function') { callback(); } goToStep(5, function() { $('#setup-next').removeClass('disabled'); $('#setup-back').removeClass('disabled'); $('#setup-next').data('step', 5); $('#setup-next').attr('data-step', 5); }); }); } }; var afterReplace = { import_functions: function() { $("select.image-picker").imagepicker({ show_label: true, initialized: function(e) { $('.image_picker_selector').imagePreview(); }, selected: function(select, picker, event) { } }) form_installer(); check_selected_data(); radio_list(); }, logo_design: function() { var $color_el = $('.cotton-colorpicker'); $color_el.wpColorPicker({ change: function(event, ui) { pickColor($(this).wpColorPicker('color')); }, clear: function() { pickColor(''); } }); $('.button-upload').on('click', function(e) { e.preventDefault(); renderMediaUploader(); }); $('.theme-presets a').on('click', function(e) { e.preventDefault(); var $ul = $(this).parents('ul').first(); $ul.find('.current').removeClass('current'); var $li = $(this).parents('li').first(); $li.addClass('current'); var newcolor = $(this).data('style'); $('#new_style').val(newcolor); return false; }); } }; $.fn.replaceWithCallback = function(replace, callback) { var ret = $.fn.replaceWith.call(this, replace); // Call replaceWith if (typeof callback === 'function') { callback.call(ret); // Call your callback } return ret; // For chaining }; function pickColor(color) { $('#pr_accent_color').val(color); } function renderMediaUploader() { 'use strict'; var file_frame, attachment; if (undefined !== file_frame) { file_frame.open(); return; } file_frame = wp.media.frames.file_frame = wp.media({ title: 'Upload Logo', //jQuery( this ).data( 'uploader_title' ), button: { text: 'Select Logo' //jQuery( this ).data( 'uploader_button_text' ) }, multiple: false // Set to true to allow multiple files to be selected }); // When an image is selected, run a callback. file_frame.on('select', function() { // We set multiple to false so only get one image from the uploader attachment = file_frame.state().get('selection').first().toJSON(); jQuery('.site-logo').attr('src', attachment.url); jQuery('#new_logo_id').val(attachment.id); jQuery('#new_logo_url').val(attachment.url); // Do something with attachment.id and/or attachment.url here }); // Now display the actual file_frame file_frame.open(); } function active_step() { var $curr_step = $('#setup-next').data('step'); $('.content-guide').find('li.active').removeClass('active'); $('.content-guide').find('li').each(function() { if ($(this).data('step') == $curr_step) { $(this).addClass('active'); } }) } function ajax_handle(demo, action, loader, next) { $.ajax({ url: ajaxurl, type: 'POST', data: { action: action, demo: demo, }, beforeSend: function() { $(loader).removeClass('click'); $(loader).addClass('loading'); $('#setup-next').addClass('disabled'); $('#setup-back').addClass('disabled'); }, success: function(resp) { $(loader).removeClass('loading'); $(loader).addClass('done'); $(loader).addClass('click'); if (typeof next === undefined) { console.log('tyes'); } if ('function' === typeof next) { next(resp); } }, }).done(function(re) { if ($('.bs_demo_content').find('li.loading').length === 0) { $('#bs_import_form').removeClass('disabled'); $('#setup-next').removeClass('disabled'); $('.bs_demo_content li').removeClass('done'); $('.bs_demo_content li').removeClass('click'); check_selected_data(); goToStep(4, function() { $('#setup-next').removeClass('disabled'); $('#setup-back').removeClass('disabled'); $('#setup-next').data('step', 4); $('#setup-next').attr('data-step', 4); }); } console.log(re); }) } function form_installer() { $('#bs_import_form').submit(function(e) { var data = [], demo = $('select[name="bs_demo_file"]').val(), ajaxSlug = 'bs', dataSize, selc, el, import_log, current = 0; $('.bs_demo_content').find('li').each(function() { if ($(this).hasClass('click')) { data.push($(this).data('value')); } }) $('#bs_import_form').addClass('disabled'); $('#setup-next').addClass('disabled'); dataSize = data.length; if (dataSize > 0) { selc = data[dataSize - dataSize]; el = $('.bs_demo_content').find('[data-value="' + selc + '"]'); ajax_handle(demo, ajaxSlug + '_' + selc, el, function(resp2) { current = current + 1; import_log += resp2 + "\n"; if (dataSize >= 2) { selc = data[current]; el = $('.bs_demo_content').find('[data-value="' + selc + '"]');; ajax_handle(demo, ajaxSlug + '_' + selc, el, function(resp3) { current = current + 1; import_log += resp3 + "\n"; if (dataSize >= 3) { selc = data[current]; el = $('.bs_demo_content').find('[data-value="' + selc + '"]'); ajax_handle(demo, ajaxSlug + '_' + selc, el, function(resp4) { current = current + 1; import_log += resp4 + "\n"; if (dataSize >= 4) { selc = data[current]; el = $('.bs_demo_content').find('[data-value="' + selc + '"]'); ajax_handle(demo, ajaxSlug + '_' + selc, el, function(resp5) { current = current + 1; import_log += resp5 + "\n"; if (dataSize >= 5) { selc = data[current]; el = $('.bs_demo_content').find('[data-value="' + selc + '"]'); ajax_handle(demo, ajaxSlug + '_' + selc, el, function(resp6) { import_log += resp6 + "\n"; }); } }) } }) } }) } }) } else { } e.preventDefault(); }); } function slideLeftPanel() { } function bodyBG() { $('#wpwrap').animate({ backgroundColor: 'rgba(0, 0, 0, 0.85)' }, 800); } function check_selected_data() { if ($('.bs_demo_content').find('li.click').length === 0) { $('#setup-next').addClass('disabled'); } else { $('#setup-next').removeClass('disabled'); } } function radio_list() { $('.radio-list').find('li').each(function() { $(this).on('click', function() { var that = $(this); if (!$('#bs_import_form').hasClass('disabled')) { if (that.hasClass('disable')) { that.removeClass('click'); } else { that.toggleClass('click'); } } check_selected_data(); }) }) } function back() { $('#setup-back').off('click').on('click', function(e) { e.preventDefault(); var step = $('#setup-next').data('step'); goToStep(step - 1, function() { $('#setup-next').data('step', step - 1); $('#setup-next').attr('data-step', step - 1); $('#setup-next').removeClass('disabled'); }); }); } function footer_buttons() { if ($('#setup-next').data('step') == '1') { $('#setup-back').css('display', 'none'); } else { $('#setup-back').css('display', 'block') } if ($('#setup-next').data('step') == '6') { $('#setup-next').css('display', 'none'); } else { $('#setup-next').css('display', 'block'); } } function goToStep(step, callback) { $.ajax({ type: "POST", url: ajaxurl, data: { action: "bs_setup_next", nextstep: step }, beforeSend: function() { $('#setup-wizard').addClass('is-active'); } }).done(function(re) { var prased = $.parseHTML(re); $('.setup_content').replaceWithCallback(re, function() { if ($('.setup_content').data('after') != '') { var after = afterReplace[String($('.setup_content').data('after'))]; after(); } }); $('#setup-wizard').removeClass('is-active'); if (typeof callback == 'function') { callback(); } active_step(); footer_buttons(); }); } function next() { $('#setup-next').on('click', function(e) { e.preventDefault(); var step = $(this).data('step'); if ($('.setup_content').data('action') != '') { var fn = callbacks[(String($('.setup_content').data('action')))], demo = $('select[name="bs_demo_file"]').val(); return fn(demo, function() { }, function() { $('.setup_content').data('action', ''); $('.setup_content').attr('data-action', ''); }); } else { $(this).data('step', step + 1); $(this).attr('data-step', step + 1); } goToStep(step + 1); }); } function exitORskip() { $('#setup-exit').on('click', function() { $.confirm({ title: bs_vars.popup_title, content: bs_vars.popup_content, buttons: { exit: { text: bs_vars.popup_exit, btnClass: 'btn-blue', keys: ['enter', 'shift'], action: function() { return window.location.href = bs_vars.dashboard_url; } }, skip: { text: bs_vars.popup_skip, btnClass: 'btn-orange', action: function() { var $step = $('#setup-next').data('step'); return goToStep($step + 1, function() { $('#setup-next').data('step', $step + 1); $('#setup-next').attr('data-step', $step + 1); }); } }, cancel: function() { } } }); }) } $.fn.imagePreview = function() { /* CONFIG */ xOffset = 30; yOffset = 30; $(this).find('img').each(function() { var that = $(this); that.hover(function(e) { this.t = this.title; this.title = ""; var c = (this.t != "") ? "
" + this.t : ""; $("body").append("

Image preview" + c + "

"); $("#bs-preview") .css("top", (e.pageY + yOffset) + "px") .css("left", (e.pageX + xOffset) + "px") .css("position", "absolute") .fadeIn("fast"); }, function() { this.title = this.t; $("#bs-preview").remove(); }); that.mousemove(function(e) { $("#bs-preview") .css("top", (e.pageY + yOffset) + "px") .css("left", (e.pageX + xOffset) + "px"); }); }) }; $(document).ready(function() { footer_buttons(); bodyBG(); exitORskip(); next(); back(); }) })(jQuery);