forked from LiveCarta/LiveCartaWP
Changed source root directory
This commit is contained in:
495
html/wp-content/plugins/duplicator/assets/js/javascript.php
Normal file
495
html/wp-content/plugins/duplicator/assets/js/javascript.php
Normal file
@@ -0,0 +1,495 @@
|
||||
<?php
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
?>
|
||||
<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.Util = new Object();
|
||||
Duplicator.UI = new Object();
|
||||
Duplicator.Pack = new Object();
|
||||
Duplicator.Settings = new Object();
|
||||
Duplicator.Tools = new Object();
|
||||
Duplicator.Debug = new Object();
|
||||
Duplicator.Help = 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(DUP_Settings::getSsdirUrl()); ?>' + '/' + 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) {}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/* Saves multiple states of a UI element */
|
||||
Duplicator.UI.SaveMulViewStates = function (states)
|
||||
{
|
||||
jQuery.ajax({
|
||||
type: "POST",
|
||||
url: ajaxurl,
|
||||
dataType: "text",
|
||||
data: {
|
||||
action : 'DUP_CTRL_UI_SaveViewState',
|
||||
states: states,
|
||||
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); });
|
||||
}
|
||||
}
|
||||
|
||||
Duplicator.UI.IsSaveViewState = true;
|
||||
/* 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();
|
||||
if (Duplicator.UI.IsSaveViewState)
|
||||
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($)
|
||||
{
|
||||
|
||||
Duplicator.UI.loadQtip = function()
|
||||
{
|
||||
//Look for tooltip data
|
||||
$('[data-tooltip!=""]').qtip({
|
||||
content: {
|
||||
attr: 'data-tooltip',
|
||||
title: function() {
|
||||
if ($(this)[0].hasAttribute("data-tooltip-title")) {
|
||||
return $(this).data('tooltip-title');
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
style: {
|
||||
classes: 'qtip-light qtip-rounded qtip-shadow',
|
||||
width: 500
|
||||
},
|
||||
position: {
|
||||
my: 'top left',
|
||||
at: 'bottom center'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Duplicator.UI.loadSimpeQtip = function()
|
||||
{
|
||||
//Look for tooltip data
|
||||
$('[data-simpletip!=""]').qtip({
|
||||
content: {
|
||||
attr: 'data-simpletip'
|
||||
},
|
||||
style: {
|
||||
classes: 'qtip-light qtip-rounded qtip-shadow'
|
||||
},
|
||||
position: {
|
||||
my: 'top left',
|
||||
at: 'bottom center'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Duplicator.UI.Copytext = function () {
|
||||
$('[data-dup-copy-text]').each(function () {
|
||||
$(this).click(function () {
|
||||
var elem = $(this);
|
||||
var message = '';
|
||||
var textToCopy = elem.data('dup-copy-text');
|
||||
var tmpArea = jQuery("<textarea></textarea>").css({
|
||||
position: 'absolute',
|
||||
top: '-10000px'
|
||||
}).text(textToCopy).appendTo( "body" );
|
||||
tmpArea.select();
|
||||
try {
|
||||
var successful = document.execCommand('copy');
|
||||
message = successful ? '<?php echo esc_html_e('Copied: ', 'duplicator'); ?>' + textToCopy : '<?php echo esc_html_e('unable to copy'); ?>';
|
||||
} catch (err) {
|
||||
message = '<?php echo esc_html_e('unable to copy', 'duplicator'); ?>';
|
||||
}
|
||||
elem.qtip('option', 'content.text', message).qtip('show');
|
||||
setTimeout(function(){
|
||||
elem.qtip('option', 'content.text', '<?php esc_html_e('Copy to Clipboard!', 'duplicator'); ?>');
|
||||
}, 2000);
|
||||
}).qtip({
|
||||
content: {
|
||||
text: '<?php esc_html_e('Copy to Clipboard!', 'duplicator'); ?>'
|
||||
},
|
||||
style: {
|
||||
classes: 'qtip-light qtip-rounded qtip-shadow'
|
||||
},
|
||||
position: {
|
||||
my: 'top left',
|
||||
at: 'bottom center'
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
//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();
|
||||
Duplicator.UI.loadSimpeQtip();
|
||||
Duplicator.UI.Copytext();
|
||||
|
||||
//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);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string message // html message conent
|
||||
* @param string errLevel // notice warning error
|
||||
* @param function updateCallback // called after message content is updated
|
||||
*
|
||||
* @returns void
|
||||
*/
|
||||
Duplicator.addAdminMessage = function (message, errLevel, options) {
|
||||
let settings = $.extend({}, {
|
||||
'isDismissible': true,
|
||||
'hideDelay': 0, // 0 no hide or millisec
|
||||
'updateCallback': false
|
||||
}, options);
|
||||
|
||||
var classErrLevel = 'notice';
|
||||
switch (errLevel) {
|
||||
case 'error':
|
||||
classErrLevel = 'notice-error';
|
||||
break;
|
||||
case 'warning':
|
||||
classErrLevel = 'update-nag';
|
||||
break;
|
||||
case 'notice':
|
||||
default:
|
||||
classErrLevel = 'updated notice-success';
|
||||
break;
|
||||
}
|
||||
|
||||
var noticeCLasses = 'duplicator-admin-notice notice ' + classErrLevel + ' no_display';
|
||||
if (settings.isDismissible) {
|
||||
noticeCLasses += ' is-dismissible';
|
||||
}
|
||||
|
||||
var msgNode = $('<div class="' + noticeCLasses + '">' +
|
||||
'<div class="margin-top-1 margin-bottom-1 msg-content">' + message + '</div>' +
|
||||
'</div>');
|
||||
var dismissButton = $('<button type="button" class="notice-dismiss">' +
|
||||
'<span class="screen-reader-text">Dismiss this notice.</span>' +
|
||||
'</button>');
|
||||
|
||||
var anchor = $("#wpcontent");
|
||||
if (anchor.find('.wrap').length) {
|
||||
anchor = anchor.find('.wrap').first();
|
||||
}
|
||||
|
||||
if (anchor.find('h1').length) {
|
||||
anchor = anchor.find('h1').first();
|
||||
msgNode.insertAfter(anchor);
|
||||
} else {
|
||||
msgNode.prependTo(anchor);
|
||||
}
|
||||
|
||||
if (settings.isDismissible) {
|
||||
dismissButton.appendTo(msgNode).click(function () {
|
||||
dismissButton.closest('.is-dismissible').fadeOut("slow", function () {
|
||||
$(this).remove();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (typeof settings.updateCallback === "function") {
|
||||
settings.updateCallback(msgNode);
|
||||
}
|
||||
|
||||
$("body, html").animate({scrollTop: 0}, 500);
|
||||
$(msgNode).css('display', 'none').removeClass("no_display").fadeIn("slow", function () {
|
||||
if (settings.hideDelay > 0) {
|
||||
setTimeout(function () {
|
||||
dismissButton.closest('.is-dismissible').fadeOut("slow", function () {
|
||||
$(this).remove();
|
||||
});
|
||||
}, settings.hideDelay);
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
|
||||
jQuery(document).ready(function($) {
|
||||
$('.duplicator-message .notice-dismiss, .duplicator-message .duplicator-notice-dismiss, .duplicator-message .duplicator-notice-rate-now')
|
||||
.on('click', function (event) {
|
||||
if ('button button-primary duplicator-notice-rate-now' !== $(event.target).attr('class')) {
|
||||
event.preventDefault();
|
||||
}
|
||||
$.post(ajaxurl, {
|
||||
action: 'duplicator_set_admin_notice_viewed',
|
||||
notice_id: $(this).closest('.duplicator-message-dismissed').data('notice_id'),
|
||||
nonce: '<?php echo wp_create_nonce('duplicator_set_admin_notice_viewed'); ?>'
|
||||
});
|
||||
var $wrapperElm = $(this).closest('.duplicator-message-dismissed');
|
||||
$wrapperElm.fadeTo(100, 0, function () {
|
||||
$wrapperElm.slideUp(100, function () {
|
||||
$wrapperElm.remove();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$('#screen-meta-links, #screen-meta').prependTo('#dup-meta-screen');
|
||||
$('#screen-meta-links').show();
|
||||
});
|
||||
|
||||
</script>
|
||||
<?php
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/assets/js/duplicator/dup.util.php');
|
||||
?>
|
||||
<script>
|
||||
<?php
|
||||
require_once(DUPLICATOR_PLUGIN_PATH . '/assets/js/modal-box.js');
|
||||
?>
|
||||
</script>
|
||||
Reference in New Issue
Block a user