????
| Current Path : /home2/morganrand/www/wp-content/plugins/duplicator/assets/js/ |
| Current File : /home2/morganrand/www/wp-content/plugins/duplicator/assets/js/javascript.php |
<script>
/* DESCRIPTION: Methods and Objects in this file are global and common in
* nature use this file to place all shared methods and varibles */
//UNIQUE NAMESPACE
Duplicator = new Object();
Duplicator.UI = new Object();
Duplicator.Pack = new Object();
Duplicator.Settings = new Object();
Duplicator.Tools = new Object();
Duplicator.Debug = new Object();
//GLOBAL CONSTANTS
Duplicator.DEBUG_AJAX_RESPONSE = false;
Duplicator.AJAX_TIMER = null;
Duplicator.parseJSON = function(mixData) {
try {
var parsed = JSON.parse(mixData);
return parsed;
} catch (e) {
console.log("JSON parse failed - 1");
console.log(mixData);
}
if (mixData.indexOf('[') > -1 && mixData.indexOf('{') > -1) {
if (mixData.indexOf('{') < mixData.indexOf('[')) {
var startBracket = '{';
var endBracket = '}';
} else {
var startBracket = '[';
var endBracket = ']';
}
} else if (mixData.indexOf('[') > -1 && mixData.indexOf('{') === -1) {
var startBracket = '[';
var endBracket = ']';
} else {
var startBracket = '{';
var endBracket = '}';
}
var jsonStartPos = mixData.indexOf(startBracket);
var jsonLastPos = mixData.lastIndexOf(endBracket);
if (jsonStartPos > -1 && jsonLastPos > -1) {
var expectedJsonStr = mixData.slice(jsonStartPos, jsonLastPos + 1);
try {
var parsed = JSON.parse(expectedJsonStr);
return parsed;
} catch (e) {
console.log("JSON parse failed - 2");
console.log(mixData);
throw e;
return false;
}
}
throw "could not parse the JSON";
return false;
}
/* ============================================================================
* BASE NAMESPACE: All methods at the top of the Duplicator Namespace
* ============================================================================ */
/* Starts a timer for Ajax calls */
Duplicator.StartAjaxTimer = function()
{
Duplicator.AJAX_TIMER = new Date();
};
/* Ends a timer for Ajax calls */
Duplicator.EndAjaxTimer = function()
{
var endTime = new Date();
Duplicator.AJAX_TIMER = (endTime.getTime() - Duplicator.AJAX_TIMER) /1000;
};
/* Reloads the current window
* @param data An xhr object */
Duplicator.ReloadWindow = function(data)
{
if (Duplicator.DEBUG_AJAX_RESPONSE) {
Duplicator.Pack.ShowError('debug on', data);
} else {
window.location.reload(true);
}
};
//Basic Util Methods here:
Duplicator.OpenLogWindow = function(target)
{
var target = "log-win" || null;
if (target != null) {
window.open('?page=duplicator-tools&tab=diagnostics§ion=log', 'log-win');
} else {
window.open('<?php echo esc_js(DUPLICATOR_SSDIR_URL); ?>' + '/' + log)
}
};
/* ============================================================================
* UI NAMESPACE: All methods at the top of the Duplicator Namespace
* ============================================================================ */
/* Saves the state of a UI element */
Duplicator.UI.SaveViewState = function (key, value)
{
if (key != undefined && value != undefined ) {
jQuery.ajax({
type: "POST",
url: ajaxurl,
dataType: "text",
data: {
action : 'DUP_CTRL_UI_SaveViewState',
key: key,
value: value,
nonce: '<?php echo wp_create_nonce('DUP_CTRL_UI_SaveViewState'); ?>'
},
success: function(respData) {
try {
var data = Duplicator.parseJSON(respData);
} catch(err) {
console.error(err);
console.error('JSON parse failed for response data: ' + respData);
return false;
}
},
error: function(data) {}
});
}
}
/* Animates the progress bar */
Duplicator.UI.AnimateProgressBar = function(id)
{
//Create Progress Bar
var $mainbar = jQuery("#" + id);
$mainbar.progressbar({ value: 100 });
$mainbar.height(25);
runAnimation($mainbar);
function runAnimation($pb) {
$pb.css({ "padding-left": "0%", "padding-right": "90%" });
$pb.progressbar("option", "value", 100);
$pb.animate({ paddingLeft: "90%", paddingRight: "0%" }, 3000, "linear", function () { runAnimation($pb); });
}
}
/* Toggle MetaBoxes */
Duplicator.UI.ToggleMetaBox = function()
{
var $title = jQuery(this);
var $panel = $title.parent().find('.dup-box-panel');
var $arrow = $title.parent().find('.dup-box-arrow i');
var key = $panel.attr('id');
var value = $panel.is(":visible") ? 0 : 1;
$panel.toggle();
Duplicator.UI.SaveViewState(key, value);
(value)
? $arrow.removeClass().addClass('fa fa-caret-up')
: $arrow.removeClass().addClass('fa fa-caret-down');
}
Duplicator.UI.readonly = function(item)
{
jQuery(item).attr('readonly', 'true').css({color:'#999'});
}
Duplicator.UI.disable = function(item)
{
jQuery(item).attr('disabled', 'true').css({color:'#999'});
}
Duplicator.UI.enable = function(item)
{
jQuery(item).removeAttr('disabled').css({color:'#000'});
jQuery(item).removeAttr('readonly').css({color:'#000'});
}
//Init
jQuery(document).ready(function($)
{
//INIT: Tabs
$("div[data-dup-tabs='true']").each(function () {
//Load Tab Setup
var $root = $(this);
var $lblRoot = $root.find('ul:first-child')
var $lblKids = $lblRoot.children('li');
var $pnls = $root.children('div');
//Apply Styles
$root.addClass('categorydiv');
$lblRoot.addClass('category-tabs');
$pnls.addClass('tabs-panel').css('display', 'none');
$lblKids.eq(0).addClass('tabs').css('font-weight', 'bold');
$pnls.eq(0).show();
//Attach Events
$lblKids.click(function(evt)
{
var $lbls = $(evt.target).parent().children('li');
var $pnls = $(evt.target).parent().parent().children('div');
var index = ($(evt.target).index());
$lbls.removeClass('tabs').css('font-weight', 'normal');
$lbls.eq(index).addClass('tabs').css('font-weight', 'bold');
$pnls.hide();
$pnls.eq(index).show();
});
});
//Init: Toggle MetaBoxes
$('div.dup-box div.dup-box-title').each(function() {
var $title = $(this);
var $panel = $title.parent().find('.dup-box-panel');
var $arrow = $title.find('.dup-box-arrow');
$title.click(Duplicator.UI.ToggleMetaBox);
($panel.is(":visible"))
? $arrow.html('<i class="fa fa-caret-up"></i>')
: $arrow.html('<i class="fa fa-caret-down"></i>');
});
Duplicator.UI.loadQtip = function()
{
//Look for tooltip data
$('i[data-tooltip!=""]').qtip({
content: {
attr: 'data-tooltip',
title: {
text: function() { return $(this).attr('data-tooltip-title'); }
}
},
style: {
classes: 'qtip-light qtip-rounded qtip-shadow',
width: 500
},
position: {
my: 'top left',
at: 'bottom center'
}
});
}
Duplicator.UI.loadQtip();
//HANDLEBARS HELPERS
if (typeof(Handlebars) != "undefined"){
function _handleBarscheckCondition(v1, operator, v2) {
switch(operator) {
case '==':
return (v1 == v2);
case '===':
return (v1 === v2);
case '!==':
return (v1 !== v2);
case '<':
return (v1 < v2);
case '<=':
return (v1 <= v2);
case '>':
return (v1 > v2);
case '>=':
return (v1 >= v2);
case '&&':
return (v1 && v2);
case '||':
return (v1 || v2);
case 'obj||':
v1 = typeof(v1) == 'object' ? v1.length : v1;
v2 = typeof(v2) == 'object' ? v2.length : v2;
return (v1 !=0 || v2 != 0);
default:
return false;
}
}
Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
return _handleBarscheckCondition(v1, operator, v2)
? options.fn(this)
: options.inverse(this);
});
Handlebars.registerHelper('if_eq', function(a, b, opts) { return (a == b) ? opts.fn(this) : opts.inverse(this);});
Handlebars.registerHelper('if_neq', function(a, b, opts) { return (a != b) ? opts.fn(this) : opts.inverse(this);});
}
//Prevent notice boxes from flashing as its re-positioned in DOM
$('div.dup-wpnotice-box').show(300);
});
</script>