(function( $ ) { 'use strict'; /** * All of the code for your Dashboard-specific JavaScript source * should reside in this file. * * Note that this assume you're going to use jQuery, so it prepares * the $ function reference to be used within the scope of this * function. * * From here, you're able to define handlers for when the DOM is * ready: * * $(function() { * * }); * * Or when the window is loaded: * * $( window ).load(function() { * * }); * * ...and so on. * * Remember that ideally, we should not attach any more than a single DOM-ready or window-load handler * for any particular page. Though other scripts in WordPress core, other plugins, and other themes may * be doing this, we should try to minimize doing that in our own work. */ $(document).ready(function(){ $('#cwa-form').on('submit', function(e){ e.preventDefault(); var flag = validateForm($(this).serializeArray()); if(flag){ //console.log(); var form_array = {}; $(this).serializeArray().map(function(item){ var vl = []; if(item.value!==null) form_array[item.name] = item.value; }); //if(checkId(form_array.cwa_id)){ $.post(ajaxurl,{'action': 'add_cwa', 'data': form_array}, function(data){ //console.log(data); reloadCwaTable(); showCwaError(data); if(!Array.isArray(data)) resetForm(); }); //} } }); $('.cwa-form input[name=cancel]').on('click', function(){ resetForm(); }); $('#cwa-form input[name=cwa_name]').on('change', function(){ var widget_id = $('#cwa-form input[name=cwa_id]'), cwaId = $(this).val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-').replace(/ /g,"-").toLowerCase(); if(widget_id.val() === ''){ widget_id.val(cwaId); checkId(widget_id,cwaId, 'widget'); } }); $('#cwa-form input[name=cwa_id]').on('keyup', function(){ var self = this; checkId(self, $(self).val(), 'widget'); }); $('#cwa-form #before_after_widget, #cwa-form #before_after_title').on('keyup', function(){ var self = this; if(!isJSON($(this).val()) && $(this).val() != ""){ $(this).parent().find('.cwa-form-message').html(''); } else{ $(this).parent().find('.cwa-form-message').html(''); } }); $('#cwa-form a.fieldSwitcher').on('click', fieldSwitcher); $(document).on('click', '.cwa-edit-link', function(e){ e.preventDefault(); var id = $(this).data('id'); $.post(ajaxurl,{'action': 'get_cwa', 'data': {'cwa_id': id}}, function(data){ //console.log(data); if(data.message) showCwaError(data); $('#cwa-form input[name=task]').val('update'); $('#cwa-form input[name=updateid]').val(data['cwa_id']); $('#cwa-form input[name=cwa_id]').prop('disabled', 'disabled'); var contentElementsArray = ['li','div','span','aside']; var headerElementArray = ['h1','h2','h3','h4','h5','h6']; for (var k in data){ if (typeof data[k] !== 'function') { //alert("Key is " + k + ", value is" + target[k]); if(k == "cwa_widget_wrapper"){ console.log(data[k]); if(contentElementsArray.indexOf(data[k]) >= 0){ $('#cwa-form [name='+k+']').val(data[k]); if($('#cwa-form #before_after_widget').siblings('a.fieldSwitcher').text() == "Default"){ $('#cwa-form #before_after_widget').siblings('a.fieldSwitcher').trigger('click'); } } else{ $('#cwa-form #before_after_widget').val(data[k]); if($('#cwa-form #before_after_widget').siblings('a.fieldSwitcher').text() == "Custom"){ $('#cwa-form #before_after_widget').siblings('a.fieldSwitcher').trigger('click'); } } }else if(k == "cwa_widget_header_wrapper"){ if(headerElementArray.indexOf(data[k]) >= 0){ $('#cwa-form [name='+k+']').val(data[k]); if($('#cwa-form #before_after_title').siblings('a.fieldSwitcher').text() == "Default"){ $('#cwa-form #before_after_title').siblings('a.fieldSwitcher').trigger('click'); } } else{ $('#cwa-form #before_after_title').val(data[k]); if($('#cwa-form #before_after_title').siblings('a.fieldSwitcher').text() == "Custom"){ $('#cwa-form #before_after_title').siblings('a.fieldSwitcher').trigger('click'); } } } else{ $('#cwa-form [name='+k+']').val(data[k]); } } } //console.log(data); $('.cwa-form input[type="submit"]' ).val('Update'); $('.cwa-form input[name="cwa_name"]' ).focus(); }); }); $(document).on('click', '.cwa-delete-link', function(e){ e.preventDefault(); var id = $(this).data('id'); $.post(ajaxurl,{'action': 'delete_cwa', 'data': {'cwa_id': id}}, function(data){ //console.log(data); showCwaError(data); reloadCwaTable(); }); }); $(document).on('click', '.cwa-menu-delete-link', function(e){ e.preventDefault(); var id = $(this).data('id'); $.post(ajaxurl,{'action': 'delete_menu', 'data': {'cwa_id': id}}, function(data){ //console.log(data); showCwaError(data); reloadMenuTable(); }); }); $('#cwa-advance-btn').on('click', function(e){ e.preventDefault(); $('#cwa-form .advanced').toggle('show').toggleClass('hide'); //console.log($('#cwa-form .advanced.hide')); if($('#cwa-form .advanced.hide').length===0) $(this).text('Basic'); else $(this).text('Advanced'); }); /* menu scripts starts*/ $('#cwa-menu-form').on('submit', function(e){ e.preventDefault(); var flag = validateForm($(this).serializeArray()); if(flag){ //console.log(); var form_array = {}; $(this).serializeArray().map(function(item){ var vl = []; if(item.value!==null) form_array[item.name] = item.value; }); //if(checkId(form_array.cwa_id)){ $.post(ajaxurl,{'action': 'add_menu', 'data': form_array}, function(data){ //console.log(data); reloadMenuTable(); showCwaError(data); resetForm(); }); //} } }); $('#cwa-menu-form input[name=cwa_name]').on('change', function(){ var menu_id = $('#cwa-menu-form input[name=cwa_id]'), cwaId = $(this).val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-').replace(/ /g,"-").toLowerCase(); //console.log(menu_id.val()); if(menu_id.val() === ''){ menu_id.val(cwaId); checkId(menu_id,cwaId, 'menu'); } }); $('#cwa-menu-form input[name=cwa_id]').on('keyup', function(){ //console.log("hey"); var self = this; checkId(self, $(self).val(), 'menu'); }); $('.more').on('click', function(e){ e.preventDefault(); $(this).parent().toggleClass('show-less'); var text = ($(this).html() == "Less")? "Read more" : "Less"; $(this).html(text); }); //tab plugin $('#tab-container').easytabs(); runTooltip(); enableTextareaTab(); }); function validateForm(arr){ //window.xt = arr; return true; } function checkId(self, cwa_id, type){ $.post(ajaxurl,{'action': (type=='widget')?'check_cwa_id': 'check_menu_id', 'data': {'cwa_id': cwa_id}}, function(data){ //console.log(data); if(data.code === 0){ $(self).next('.cwa-form-message').html(""); } else{ $(self).next('.cwa-form-message').html(""); } //console.log(data); }); }; function reloadCwaTable(){ $.post(ajaxurl,{'action': 'reloadTable'}, function(data){ $('#cwa-table-wrap').html(data); runTooltip(); //console.log(data); }); } function reloadMenuTable(){ $.post(ajaxurl,{'action': 'reloadMenuTable'}, function(data){ $('#cwa-table-wrap').html(data); runTooltip(); //console.log(data); }); } function showCwaError(obj){ if(Array.isArray(obj)){ var message = ''; for(var i = 0; i"; } }else{ var type = (obj.code === 0)? "cwa-warning" : "cwa-success" ; //console.log(obj.code === 0); var message = obj.message; } $('.cwa-error').html(message).addClass(type).fadeIn(); setTimeout(function(){ $('.cwa-error').fadeOut().html("").removeClass(type); }, 5000); } function resetForm(){ $('.cwa-form input[type="hidden"]' ).val(''); $('.cwa-form input[disabled]' ).prop('disabled', false); $('.cwa-form select' ).children(':first-child').prop('selected', true); $('.cwa-form input[type="text"]' ).val(''); $('.cwa-form textarea' ).val(''); $('.cwa-form input[type="submit"]' ).val('Create'); $('.cwa-form .cwa-form-message' ).empty(); } function runTooltip(){ $('.tooltip').tooltipster({ contentAsHTML: true, animation: 'fade', delay: 200, interactive: true, //theme: 'tooltipster-default', trigger: 'click' }); } function enableTextareaTab(){ $(document).delegate('.cwa-form-row textarea', 'keydown', function(e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); var start = $(this).get(0).selectionStart; var end = $(this).get(0).selectionEnd; // set textarea value to: text before caret + tab + text after caret $(this).val($(this).val().substring(0, start) + "\t" + $(this).val().substring(end)); // put caret at right position again $(this).get(0).selectionStart = $(this).get(0).selectionEnd = start + 1; } }); } function fieldSwitcher(){ if($(this).parent().find('textarea').hasClass('hidden')){ $(this).text("Default"); $(this).parent().find('.tg').val('custom'); //console.log($(this).parent().find('.tg').val()); }else{ $(this).text("Custom"); $(this).parent().find('.tg').val(''); } $(this).parent().find('select').toggleClass('hidden'); $(this).parent().find('textarea').toggleClass('hidden'); } function isJSON(data) { var ret = true; try { JSON.parse(data); }catch(e) { ret = false; } return ret; } })( jQuery );