jQuery(document).ready(function($){
if( 'undefined' == typeof( apl_admin_settings ) )
{
return;
}
var plugin_url = apl_admin_settings.plugin_url;
var savePresetNonce = apl_admin_settings.savePresetNonce;
var deletePresetNonce = apl_admin_settings.deletePresetNonce;
var restorePresetNonce = apl_admin_settings.restorePresetNonce;
var exportNonce = apl_admin_settings.exportNonce;
var importNonce = apl_admin_settings.importNonce;
var saveSettingsNonce = apl_admin_settings.saveSettingsNonce;
var presetObj = apl_admin_settings.presetDb;
presetObj = JSON.parse(presetObj);
var postTax = apl_admin_settings.postTax;
//postTax = JSON.parse(postTax);
var taxTerms = apl_admin_settings.taxTerms;
function setPHPOutput(preset_name)
{
//$('#presetPHP').html('PHP code: if(function_exists("kalinsPost_show"){kalinsPost_show("' + data.preset_name + '");}');
//$('#presetPHP').html('PHP code: <?php if(function_exists("display_post_list")){display_post_list("' + preset_name + '");} ? >');
$('#presetPHP').html('PHP code: <?php if (method_exists($advanced_post_list, "display_post_list")){echo $advanced_post_list->display_post_list("' + preset_name + '");} ? >');
}
//build the file table - we build it all in javascript so we can
// simply rebuild it whenever an entry is added through ajax
function buildPresetTable()
{
function tc(str)
{
return "
" + str + " ";
}
var tableHTML = "# Preset Name Load Download Delete Shortcode ";
var count = 0;
for(var i in presetObj)
{
var shortcode = '[post_list name="' + i + '"]';
tableHTML += "" + tc(count) + tc(i) + tc("Load ") + tc("Download ") + tc("Delete ") + tc(shortcode) + " ";
count++;
}
tableHTML += "
";
$('#presetListDiv').html(tableHTML);
count = 0;
for(j in presetObj)
{
$('#btnDelete_' + count).attr('presetname', j);
$('#btnDelete_' + count).click(function()
{
if(confirm("Are you sure you want to delete " + $(this).attr('presetname') + "?"))
{
deletePreset($(this).attr('presetname'));
}
});
$('#btnDelete_' + count).button();
$('#btnDownload_' + count).attr('presetname', j);
$('#btnDownload_' + count).click(function()
{
//FIX - REPLACE PHP CODE
var name = $(this).attr('presetname');
apl_preset_export(name);
//var url = plugin_url + "includes/export.php?presetname=" + name;
//alert(url);
//window.location = url;
});
$('#btnDownload_' + count).button();
$('#btnLoad_' + count).attr('presetname', j);
$('#btnLoad_' + count).click(function()
{
loadPreset($(this).attr('presetname'));
});
$('#btnLoad_' + count).button();
count++;
}
}
function apl_preset_export(preset_name)
{
var exportData = {
action : 'APL_handler_export',
_ajax_nonce : exportNonce,
export_type : 'preset',
filename : $.trim(preset_name)
};
//TESTING MODE SWITCH
//formData.append('alpha_mode', 'true');
jQuery.ajax({
url: ajaxurl,
type: 'POST',
//cache: false,
//contentType: false,
//processData: false,
data: exportData,
beforeSend: function(jqXHR, settings){
var element = document.getElementById("APL_exportIF");
if (element != null)
{
element.parentNode.removeChild(element);
}
},
dataFilter: function(data, type){
var dataRtn = convert_JSON_data(data);
return dataRtn;
},
success: function(data, textStatus, jqXHR){
//console.log("Hooray, it worked!");
if (data._status != 'success')
{
apl_alert(data._error, (data._status.charAt(0).toUpperCase() + data._status.slice(1)));
}
else
{
var paramStr = '';
paramStr += '?_ajax_nonce=' + data._ajax_nonce;
paramStr += '&action=' + data.action;
paramStr += '&filename=' + data.filename;
var elemIF = document.createElement("iframe");
elemIF.id = 'APL_exportIF'
elemIF.style.display = "none";
elemIF.src = ajaxurl + paramStr;
document.body.appendChild(elemIF);
//optionsHeader('Exporting Data Successful');
}
},
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown.stack);
},
complete: function(jqXHR, textStatus){
}
});
}
////////////////////////////////////////////////////////////////////////////
//// AJAX FUNCTIONS ////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
function deletePreset(id)
{
//alert("deleting: " + id);
var data = {
action: 'APL_handler_delete_preset',
_ajax_nonce : deletePresetNonce
}
data.preset_name = id;
$('#createStatus').html("Deleting preset...");
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response)
{
//alert(response);
var startPosition = response.indexOf("{");
var responseObjString = response.substr(startPosition, response.lastIndexOf("}") - startPosition + 1);
var newFileData = JSON.parse(responseObjString);
/*if(newFileData.status == "success"){
$('#createStatus').html("Preset deleted successfully.");
}else{
$('#createStatus').html(response);
}*/
presetObj = newFileData;//.preset_arr;
buildPresetTable();
$('#createStatus').html("Preset deleted successfully.");
});
}
function loadPreset(id)
{
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
$('#divPreview').html("");
var newValues = presetObj[id];
$("#txtPresetName").val(id);
set_postTax(newValues._postTax);
set_parent(newValues._postParents);
$("#txtDisplayAmount").val(newValues["_listCount"]);
$("#slctOrderBy").val(newValues["_listOrderBy"]);
$('#slctOrderBy').multiselect('refresh');
$("#slctOrder").val(newValues["_listOrder"]);
$('#slctOrder').multiselect('refresh');
var postVisibilityArr = jQuery.makeArray(newValues._postVisibility);
$('#cboPostVisibility').val(postVisibilityArr);
$('#cboPostVisibility').multiselect('refresh');
var postStatusArr = jQuery.makeArray(newValues._postStatus);
$('#cboPostStatus').val(postStatusArr);
$('#cboPostStatus').multiselect('refresh');
$("#slctUserPerm").val(newValues["_userPerm"]);//ADDED //string
$('#slctUserPerm').multiselect('refresh');
$("#chkIgnoreSticky").attr('checked', newValues["_listIgnoreSticky"]);//ADDED //boolean
$("#chkExcldCurrent").attr('checked', newValues["_listExcludeCurrent"]); //boolean
$("#chkExcldDuplicates").attr('checked', newValues["_listExcludeDuplicates"]);//ADDED //boolean
var tmpString = '';
for (var i in newValues["_listExcludePosts"])
{
if (newValues["_listExcludePosts"][i] != 0)
{
tmpString += newValues["_listExcludePosts"][i];
if( i < (newValues["_listExcludePosts"].length - 1) )
{
tmpString += ',';
}
}
}
$("#txtExcldPosts").val(tmpString);//ADDED //string
var postAuthorIDs = new Array();
if (newValues["_postAuthorOperator"] === 'include' || newValues["_postAuthorOperator"] === 'exclude')
{
$("#slctAuthorOperator").val(newValues["_postAuthorOperator"])
$("#cboAuthorIDs").multiselect("enable");
if (newValues["_postAuthorIDs"].length > 0)
{
postAuthorIDs = newValues["_postAuthorIDs"];
}
$("#cboAuthorIDs").val(postAuthorIDs);//ADDED //array
$('#cboAuthorIDs').multiselect('refresh');
}
else if (newValues["_postAuthorOperator"] === 'none')
{
$("#slctAuthorOperator").val(newValues["_postAuthorOperator"])
$("#cboAuthorIDs").val(postAuthorIDs);
$("#cboAuthorIDs").multiselect("disable");
$('#cboAuthorIDs').multiselect('refresh');
}
else
{
$("#slctAuthorOperator").val('none')
$("#cboAuthorIDs").val(postAuthorIDs);
$("#cboAuthorIDs").multiselect("disable");
$('#cboAuthorIDs').multiselect('refresh');
}
$('#slctAuthorOperator').multiselect('refresh');
$("#txtExitMsg").val(newValues["_exit"]);
$("#txtBeforeList").val(newValues["_before"]);
$("#txtContent").val(newValues["_content"]);
$("#txtAfterList").val(newValues["_after"]);
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
setPHPOutput(id);
setNoneHide();
}
function set_postTax(post_tax)
{
reset_postTax();
for (var post_type_name in post_tax)
{
for (var taxonomy_name in post_tax[post_type_name]['taxonomies'])
{
$("#chkReqTaxonomy-" + post_type_name + "-" + taxonomy_name).attr('checked', post_tax[post_type_name]['taxonomies'][taxonomy_name]['require_taxonomy']);
$("#chkReqTerms-" + post_type_name + "-" + taxonomy_name).attr('checked', post_tax[post_type_name]['taxonomies'][taxonomy_name]['require_terms']);
$("#chkIncldTerms-" + post_type_name + "-" + taxonomy_name).attr('checked', post_tax[post_type_name]['taxonomies'][taxonomy_name]['include_terms']);
for (var term in post_tax[post_type_name]['taxonomies'][taxonomy_name]['terms'])
{
$("#chkTerm-" + post_type_name + "-" + taxonomy_name + '-' + post_tax[post_type_name]['taxonomies'][taxonomy_name]['terms'][term]).attr('checked',true)
}
}
}
}
function reset_postTax()
{
for (var post_type_name in postTax)
{
for (var taxonomy_name in postTax[post_type_name].taxonomies)
{
$("#chkReqTaxonomy-" + post_type_name + "-" + taxonomy_name).attr('checked', false);
$("#chkReqTerms-" + post_type_name + "-" + taxonomy_name).attr('checked', false);
$("#chkIncldTerms-" + post_type_name + "-" + taxonomy_name).attr('checked', false);
var terms = taxTerms[taxonomy_name].terms;
$("#chkTerm-" + post_type_name + "-" + taxonomy_name + '-0').attr('checked',false)
for (var term in terms)
{
$("#chkTerm-" + post_type_name + "-" + taxonomy_name + '-' + terms[term]).attr('checked',false)
}
}
}
}
function set_parent(parentArr)
{
reset_parent();
//parentArr.toArray();
parentArr = jQuery.makeArray(parentArr);
for (var post_type_name in postTax)
{
$("#slctParentSelector-" + post_type_name).val(parentArr);
$("#slctParentSelector-" + post_type_name).multiselect('refresh');
//$("#slctParentSelector-" + post_type_name).each(object, callback);
}
}
function reset_parent()
{
for (var post_type_name in postTax)
{
$("#slctParentSelector-" + post_type_name).val([]);
$("#slctParentSelector-" + post_type_name).multiselect('refresh');
}
}
////////////////////////////////////////////////////////////////////////////
//// AJAX BUTTONS //////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
$('#btnSavePreset').click(function()
{
if (!save_preset_precheck())
{
save_preset();
}
});
//// RETURN TRUE IF AN EVENT OCCURED
function save_preset_precheck()
{
if (!check_required())
{
if (!check_preset_name())
{
return false;
}
return true;
}
return true;
}
function check_required()
{
//var event_occured = false;
for (var post_type_name in postTax)
{
var require_taxonomy = new Array();
for (var taxonomy_name in postTax[post_type_name].taxonomies)
{
require_taxonomy[taxonomy_name] = new Array();
require_taxonomy[taxonomy_name]['require'] = $("#chkReqTaxonomy-" + post_type_name + "-" + taxonomy_name).is(':checked');
var require_terms = $("#chkReqTerms-" + post_type_name + "-" + taxonomy_name).is(':checked');
var include_terms = $("#chkIncldTerms-" + post_type_name + "-" + taxonomy_name).is(':checked');
require_taxonomy[taxonomy_name]['count'] = 0;
var terms = taxTerms[taxonomy_name].terms;
for (var term in terms)
{
if ($("#chkTerm-" + post_type_name + "-" + taxonomy_name + '-' + terms[term]).is(':checked'))
{
require_taxonomy[taxonomy_name]['count']++;
}
}
if (require_taxonomy[taxonomy_name]['count'] < 2 && require_terms === true && include_terms === false)
{
$( "#d03" ).dialog({
resizable: false,
height:192,
modal: true,
buttons: {
"Ok": function()
{
$( this ).dialog( "close" );
}
}
});
return true;
}
else if (require_taxonomy[taxonomy_name]['count'] < 2 && require_taxonomy[taxonomy_name]['require'] == true && include_terms == false)
{
$( "#d04" ).dialog({
resizable: false,
height:224,
modal: true,
buttons: {
"Ok": function()
{
$( this ).dialog( "close" );
}
}
});
return true;
}
}
for(var taxonomy01 in require_taxonomy)
{
if (require_taxonomy[taxonomy01]['require'] == true)
{
var other_taxonomy_used = false;
for(var taxonomy02 in require_taxonomy)
{
if (require_taxonomy[taxonomy02]['count'] > 0 && taxonomy01 != taxonomy02)
{
other_taxonomy_used = true;
}
}
if (other_taxonomy_used == false)
{
$( "#d05" ).dialog(
{
resizable: false,
height:224,
modal: true,
buttons:
{
"Ok": function()
{
$( this ).dialog( "close" );
}
}
});
return true;
}
}
}
}
return false;
}
function check_preset_name()
{
var preset_name = $("#txtPresetName").val();
if(presetObj[preset_name])
{
$( "#d01" ).dialog({
resizable: false,
height:192,
modal: true,
buttons: {
"Save Preset": function()
{
$( this ).dialog( "close" );
save_preset();
},
"Cancel": function()
{
$( this ).dialog( "close" );
}
}
});
return true;
}
else if(preset_name == "")
{
$( "#d02" ).dialog({
resizable: false,
height:192,
modal: true,
buttons: {
"Ok": function()
{
$( this ).dialog( "close" );
}
}
});
return true;
}
return false;
}
function save_preset()
{
var data = {
action: 'APL_handler_save_preset',
_ajax_nonce : savePresetNonce
};
//css style bug fix
var btn_height = $('#btnSavePreset').height();
var btn_width = $('#btnSavePreset').width();
$('#btnSavePreset').html("Saving...");
$('#btnSavePreset').height(btn_height);
$('#btnSavePreset').width(btn_width);
data.presetName = $("#txtPresetName").val();
data.postParents = JSON.stringify(get_parent());
data.postTax = JSON.stringify(get_postTax());
data.count = $("#txtDisplayAmount").val();
data.orderBy = $("#slctOrderBy").val();
data.order = $("#slctOrder").val();
data.postVisibility = $('#cboPostVisibility').val();//array
data.postVisibility = JSON.stringify(data.postVisibility);
data.postStatus = $("#cboPostStatus").val();//MODIFIED //array
if (data.postStatus === null)
{
data.postStatus = new Array('any');
}
data.postStatus = JSON.stringify(data.postStatus);
data.userPerm = $("#slctUserPerm").val();//ADDED //string
data.ignoreSticky = $("#chkIgnoreSticky").is(':checked');//ADDED //boolean
data.excludeCurrent = $("#chkExcldCurrent").is(':checked'); //boolean
data.excludeDuplicates = $("#chkExcldDuplicates").is(':checked');//ADDED //boolean
data.excludePosts = $("#txtExcldPosts").val();//ADDED //string - needs to be changed to an array and json string
if (data.excludePosts === "")
{
data.excludePosts = new Array();
}
else
{
data.excludePosts = data.excludePosts.split(",");
}
data.excludePosts = JSON.stringify(data.excludePosts);
data.authorOperator = $("#slctAuthorOperator").val();//ADDED //string
data.authorIDs = $("#cboAuthorIDs").val();//ADDED //array
if (data.authorIDs === null)
{
data.authorIDs = new Array();
}
data.authorIDs = JSON.stringify(data.authorIDs);
data.exit = $("#txtExitMsg").val();
data.before = $("#txtBeforeList").val();
data.content = $("#txtContent").val();
data.after = $("#txtAfterList").val();
setPHPOutput(data.presetName);
//since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response)
{
//alert(response);
var startPosition = response.indexOf("{");
if (startPosition > 10)
{
apl_alert(response, 'Error');
}
var responseObjString = response.substr(startPosition, response.lastIndexOf("}") - startPosition + 1);
//alert(responseObjString);
var newFileData = JSON.parse(responseObjString);
presetObj = newFileData.preset_arr;
buildPresetTable();
$('#btnSavePreset').html("Save Preset");
if($("#chkShowPreview").is(':checked'))
{
$('#divPreview').html(newFileData.previewOutput);
}
else
{
$('#divPreview').html("");
}
});
}
function get_postTax()
{
var rtnObject = new Object();
var tmp_post_types = new Object();
for (var post_type_name in postTax)
{
var tmp_taxonomies = new Object();
var post_type_used = false;
for (var taxonomy_name in postTax[post_type_name].taxonomies)
{
var tmp_terms = new Array();
var i = 0;
var terms = taxTerms[taxonomy_name].terms;
if ($("#chkTerm-" + post_type_name + "-" + taxonomy_name + '-' + 0).is(':checked'))
{
tmp_terms[i] = 0;
i++;
}
else
{
for (var term in terms)
{
if ($("#chkTerm-" + post_type_name + "-" + taxonomy_name + '-' + terms[term]).is(':checked'))
{
tmp_terms[i] = terms[term];
i++;
}
}
}
if (i > 0 || $("#chkIncldTerms-" + post_type_name + "-" + taxonomy_name).is(':checked'))
{
tmp_taxonomies[taxonomy_name] = new Object();
tmp_taxonomies[taxonomy_name].require_taxonomy = $("#chkReqTaxonomy-" + post_type_name + "-" + taxonomy_name).is(':checked');
tmp_taxonomies[taxonomy_name].require_terms = $("#chkReqTerms-" + post_type_name + "-" + taxonomy_name).is(':checked');
tmp_taxonomies[taxonomy_name].include_terms = $("#chkIncldTerms-" + post_type_name + "-" + taxonomy_name).is(':checked');
tmp_taxonomies[taxonomy_name].terms = tmp_terms;
post_type_used = true;
}
}
if (post_type_used)
{
tmp_post_types[post_type_name] = new Object();
tmp_post_types[post_type_name].taxonomies = tmp_taxonomies;
}
}
rtnObject = tmp_post_types;
return rtnObject;
}
function get_parent()
{
//Custom unique array function to remove any duplicates, especially
// the current page setting.
var unique = function(origArr)
{
var newArr = [],
origLen = origArr.length,
found,
x, y;
for ( x = 0; x < origLen; x++ )
{
found = undefined;
for ( y = 0; y < newArr.length; y++ )
{
if ( origArr[x] === newArr[y] )
{
found = true;
break;
}
}
if ( !found) newArr.push( origArr[x] );
}
return newArr;
};
var parentIDs = new Array();
var rtnArray = new Array();
var i = 0;
for (var post_type_name in postTax)
{
parentIDs = $("#slctParentSelector-" + post_type_name).val();
if (parentIDs !== null)
{
for (var j = 0; j < parentIDs.length; j++, i++)
{
rtnArray[i] = parentIDs[j];
}
}
}
rtnArray = unique(rtnArray);
return rtnArray;
}
function optionsHeader(output)
{
$('#optionsHeader').html('' + output + ' ');
$('#optionsHeader').fadeOut(5000, function(){
$('#optionsHeader').show();
$('#optionsHeader').html('General Settings ');
});
}
$('#btnSaveSettings').click(function(){
save_settings();
});
function save_settings()
{
var data = {
action : 'APL_handler_save_settings',
_ajax_nonce : saveSettingsNonce
}
var deleteDb = false;
if ($("#rdoDeleteDbTRUE").is(':checked'))
{
deleteDb = true;
}
else if ($("#rdoDeleteDbFALSE").is(':checked'))
{
deleteDb = false;
}
data.deleteDb = deleteDb;
data.theme = $('#slctUITheme').val();
var defaultExit = false;
if ($("#rdoDefaultExitMsgTRUE").is(':checked'))
{
defaultExit = true;
}
else if ($("#rdoDefaultExitMsgFALSE").is(':checked'))
{
defaultExit = false;
}
data.defaultExit = defaultExit;
data.defaultExitMsg = $("#txtDefaultExitMsg").val();
jQuery.post(ajaxurl, data, function(response)
{
var startPosition = response.indexOf("{");
var responseObjString = response.substr(startPosition, response.lastIndexOf("}") - startPosition + 1);
var newFileData = JSON.parse(responseObjString);
optionsHeader('Options Saved');
loadjscssfile('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/' + newFileData.theme + '/jquery-ui.css', 'css');
});
}
function loadjscssfile(filename, filetype)
{
var fileref;
//if filename is a external JavaScript file
if (filetype === "js")
{
fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
}
//if filename is an external CSS file
else if (filetype === "css")
{
fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
}
if (typeof fileref !== "undefined")
{
document.getElementsByTagName("head")[0].appendChild(fileref);
}
}
function check_string_for_errors(input_string)
{
var iChars = "<>:\"/\\|,?*";
for (var i = 0; i < input_string.value.length; i++)
{
if (iChars.indexOf(input_string.value.charAt(i)) != -1)
{
apl_alert(" Cannot use (< > : \" / \\ | , ? *). Please rename your filename.
", "Illegal Characters");
return true;
}
}
return false;
}
$('#txtExportFileName').change(function()
{
check_string_for_errors(document.frmExport.txtExportFileName);
});
function apl_alert(output_msg, title_msg)
{
if (!title_msg)
title_msg = 'Alert';
if (!output_msg)
output_msg = 'No Message to Display.';
$("
").html(output_msg).dialog({
title: title_msg,
resizable: true,
modal: true,
buttons: {
"Ok": function()
{
$( this ).dialog( "close" );
}
}
});
}
function convert_JSON_data(json_string)
{
//CONVERT RETURN/RESPONSE DATA (dataRtn)
//SYNTAX .substr(start, length)
//SYNTAX .substring(start, end)
var tmpData = $.trim(json_string);
//CHECKS DATA FOR ADDITIONAL CONTENT, FOR EX. PHP ERRORS
//TODO ADD SUPPORT OF MULTI LANGUAGES WITH MULTILINGUAL
var cData = tmpData.split("{\"_msg\"");
if (cData[0].indexOf(" \n") != -1 && cData[0].indexOf(" ") != -1 && cData.length != 1)
{
cData[0] = $.trim(cData[0]);
var eData = cData[0].split(" \n");
//DISPLAY EACH PHP ERROR INDIVIDUALLY
//STARTED INDEX AT 1 SINCE eData[0] IS AN EMPTY STRING CREATED BY .split()
for (i = 1; i < eData.length; i++)
{
$("
").html("" + eData[i]).dialog({
title: 'PHP Error',
resizable: true,
minWidth: 576,
modal: true,
buttons: {
"Ok": function()
{
$( this ).dialog( "close" );
}
}
});
}
return false;
}
var rtnData = JSON.parse(tmpData.substring(tmpData.indexOf("{\"_msg\""), tmpData.lastIndexOf("}") + 1));
return rtnData;
}
////////////////////////////////////////////////////////////////////////////
//// EXPORT ////////////////////////////////////////////////////////////////
$('#frmExport').submit(function(){
//CHECK USER SIDE
if (apl_export_errors())
{
return false;
}
apl_db_export();
return false;
});
function apl_export_errors()
{
var var_filename = document.frmExport.txtExportFileName.value;
if (check_string_for_errors(document.frmExport.txtExportFileName))
{
return true;
}
if (document.frmExport.txtExportFileName.value == "")
{
apl_alert("A filename doesn't exist.\nPlease enter a filename before exporting.", "Filename Required");
return true;
}
return false;
}
function apl_db_export()
{
var formData = new FormData();
formData.append('action', 'APL_handler_export');
formData.append('_ajax_nonce', exportNonce);
formData.append('export_type', 'database');
formData.append('filename', $.trim($('#txtExportFileName').val()));
//TESTING MODE SWITCH
//formData.append('alpha_mode', 'true');
jQuery.ajax({
url: ajaxurl,
type: 'POST',
cache: false,
contentType: false,
processData: false,
data: formData,
beforeSend: function(jqXHR, settings){
var a1 = jqXHR;
var a2 = settings;
var element = document.getElementById("APL_exportIF");
if (element != null)
{
element.parentNode.removeChild(element);
}
},
dataFilter: function(data, type){
var dataRtn = convert_JSON_data(data);
return dataRtn;
},
success: function(data, textStatus, jqXHR){
if (data._status != 'success')
{
apl_alert(data._error, (data._status.charAt(0).toUpperCase() + data._status.slice(1)));
}
else
{
var paramStr = '';
paramStr += '?_ajax_nonce=' + data._ajax_nonce;
paramStr += '&action=' + data.action;
paramStr += '&filename=' + data.filename;
var elemIF = document.createElement("iframe");
elemIF.id = 'APL_exportIF'
elemIF.style.display = "none";
elemIF.src = ajaxurl + paramStr;
document.body.appendChild(elemIF);
optionsHeader('Exporting Data Successful');
}
},
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown.stack);
},
complete: function(jqXHR, textStatus){
var a1 = jqXHR;
var a2 = textStatus;
//
}
});
}
////////////////////////////////////////////////////////////////////////////
//// IMPORT ////////////////////////////////////////////////////////////////
$('#frmImport').submit(function(e)
{
e.preventDefault();
//CHECK USER SIDE
if (apl_import_errors())
{
return false;
}
apl_import_db();
return false;
});
function apl_import_errors()
{
for (var i = 0; i < document.frmImport.importType.length; i++)
{
if (document.frmImport.importType[i].checked)
{
var importType = document.frmImport.importType[i].value;
}
}
if ($('#fileImportData').val() == '' && importType == 'file')
{
alert('No file(s) selected. Please choose a JSON file to upload.');
return true;
}
if ($('#fileImportData').val() != '')
{
var ext = $('#fileImportData').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['json']) == -1)
{
alert('Invalid file type. Please choose a JSON file to upload.');
return true;
}
}
return false;
}
function apl_import_db()
{
var formData = new FormData();
jQuery.each($('#fileImportData')[0].files, function(i, file) {
formData.append('uploadFile-'+i, file);
});
formData.append('action', 'APL_handler_import');
formData.append('_ajax_nonce', importNonce);
var rdoImport = document.frmImport.importType;
for (var i = 0; i < rdoImport.length; i++)
{
if (rdoImport[i].checked)
{
formData.append('import_type', rdoImport[i].value);
}
}
//TESTING MODE SWITCH
//formData.append('alpha_mode', 'true');
jQuery.ajax({
url: ajaxurl,
type: 'POST',
cache: false,
contentType: false,
processData: false,
data: formData,
beforeSend: function(jqXHR, settings){
var a1 = jqXHR;
var a2 = settings;
var element = document.getElementById("APL_exportIF");
if (element != null)
{
element.parentNode.removeChild(element);
}
},
dataFilter: function(data, type){
var dataRtn = convert_JSON_data(data);
return dataRtn;
},
success: function(data, textStatus, jqXHR){
if (data._msg != 'success')
{
apl_alert(data._error, (data._msg.charAt(0).toUpperCase() + data._msg.slice(1)));
}
if ($.isEmptyObject( data.overwrite_preset_db ))
{
presetObj = data._preset_db;
buildPresetTable();
var paramStr = '';
paramStr += '?_ajax_nonce=' + data._ajax_nonce;
paramStr += '&action=' + data.action;
paramStr += '&overwrite=' + '';
var elemIF = document.createElement("iframe");
elemIF.id = 'APL_importIF'
elemIF.style.display = "none";
elemIF.src = ajaxurl + paramStr;
document.body.appendChild(elemIF);
optionsHeader('Importing Data Successful');
}
else
{
var overwrite_output = '';
overwrite_output += '';
overwrite_output += '';
for (var preset_key in data.overwrite_preset_db)
{
overwrite_output += ' ';
overwrite_output += '' + preset_key + ' ';
overwrite_output += ' ';
}
overwrite_output += '
';
$('
').html(overwrite_output).dialog({
stack: false,
title: 'Overwrite Presets',
resizable: true,
height: 256,
minWidth: 352,
maxWidth: 512,
maxHeight: 448,
modal: true,
buttons: {
Next: function()
{
presetObj = data._preset_db;
apl_import_overwrite(data.overwrite_preset_db, data._ajax_nonce, data.action);
buildPresetTable();
optionsHeader('Importing Data Successful');
$( this ).dialog( "close" );
var element = document.getElementById("apl_confirm_overwrite");
element.parentNode.removeChild(element);
},
Cancel: function()
{
$( this ).dialog( "close" );
var element = document.getElementById("apl_confirm_overwrite");
element.parentNode.removeChild(element);
}
},
open: function(){
$('#overwrite_select_group_all').click(function(e){
for (var preset_key in data.overwrite_preset_db)
{
$('#chkGroup_overwrite_preset_' + preset_key).attr('checked', true);
}
});
$('#overwrite_select_group_none').click(function(e){
for (var preset_key in data.overwrite_preset_db)
{
$('#chkGroup_overwrite_preset_' + preset_key).attr('checked', false);
}
});
}
});
}
},
error: function(jqXHR, textStatus, errorThrown){
alert(errorThrown.stack);
},
complete: function(jqXHR, textStatus){
var a1 = jqXHR;
var a2 = textStatus;
}
});
}
function apl_import_overwrite(overwrite_preset_db, ajax_nonce, action)
{
var overwrite_list = '';//array of preset names parsed by comma
for (var preset_key in overwrite_preset_db)
{
if ($('#chkGroup_overwrite_preset_' + preset_key).is(':checked'))
{
overwrite_list += preset_key + ',';
presetObj[preset_key] = overwrite_preset_db[preset_key];
}
}
overwrite_list = overwrite_list.substring(0, overwrite_list.length - 1);
var paramStr = '';
paramStr += '?_ajax_nonce=' + ajax_nonce;
paramStr += '&action=' + action;
paramStr += '&overwrite=' + overwrite_list;
var elemIF = document.createElement("iframe");
elemIF.id = 'APL_importIF'
elemIF.style.display = "none";
elemIF.src = ajaxurl + paramStr;
document.body.appendChild(elemIF);
elemIF.parentNode.removeChild(elemIF);
}
////////////////////////////////////////////////////////////////////////////
//// RESTORE ///////////////////////////////////////////////////////////////
$('#btnRestorePreset').click(function()
{
//alert(data.post_type);
var data = {
action: 'APL_handler_restore_preset',
_ajax_nonce : restorePresetNonce
}
if(confirm("Are you sure you want to restore all default presets? This will remove any changes you've made to the default presets, but will not delete your custom presets."))
{
//$('#createStatus').html("Restoring presets...");
$('#divPreview').html("");
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.post(ajaxurl, data, function(response)
{
var startPosition = response.indexOf("{");
var responseObjString = response.substr(startPosition, response.lastIndexOf("}") - startPosition + 1);
//alert(responseObjString);
var newFileData = JSON.parse(responseObjString);
presetObj = newFileData;//.preset_arr;
buildPresetTable();
//$('#createStatus').html("Preset successfully added.");
optionsHeader('Restoring Default Presets Successful');
});
}
});
$('#postTypeHeader01').click(function(){
$('#postTypeContent01').slideToggle('slow')
});
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
$('#cboPost_type').change(function()
{
setNoneHide();
});
function setNoneHide(){
var postTypeVal = $("#cboPost_type").val() ;
if(postTypeVal == "none")
{
$('.noneHide').hide();
$('.noneShow').show();
$('#createStatus').html("In 'None' mode, the content field will be displayed only once and all shortcodes will refer to the current page.");
}
else
{
$('.noneHide').show();
$('.noneShow').hide();
$('#createStatus').html(" ");
}
if(postTypeVal != "none" && postTypeVal != "post" && postTypeVal != "attachment")
{//if it's a page or custom type, show parent selector
$('#parentSelector').show();
}
else
{
$('#parentSelector').hide();
}
}
buildPresetTable();
//$('#outputSpan').hide();
$('#parentSelector').hide();
});