forked from LiveCarta/LiveCartaWP
Changed source root directory
This commit is contained in:
@@ -0,0 +1,220 @@
|
||||
<?php
|
||||
|
||||
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
|
||||
/**
|
||||
* Used to generate a thick-box inline dialog such as an alert or confirm pop-up
|
||||
*
|
||||
* Standard: PSR-2
|
||||
*
|
||||
* @link http://www.php-fig.org/psr/psr-2
|
||||
*
|
||||
* @package Duplicator
|
||||
* @subpackage classes/ui
|
||||
* @copyright (c) 2017, Snapcreek LLC
|
||||
*/
|
||||
|
||||
// Exit if accessed directly
|
||||
if (! defined('DUPLICATOR_VERSION')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
class DUP_UI_Dialog
|
||||
{
|
||||
/**
|
||||
* The title that shows up in the dialog
|
||||
*/
|
||||
public $title;
|
||||
/**
|
||||
* The message displayed in the body of the dialog
|
||||
*/
|
||||
public $message;
|
||||
/**
|
||||
* The width of the dialog the default is used if not set
|
||||
* Alert = 475px (default) | Confirm = 500px (default)
|
||||
*/
|
||||
public $width;
|
||||
/**
|
||||
* The height of the dialog the default is used if not set
|
||||
* Alert = 125px (default) | Confirm = 150px (default)
|
||||
*/
|
||||
public $height;
|
||||
/**
|
||||
* When the progress meter is running show this text
|
||||
* Available only on confirm dialogs
|
||||
*/
|
||||
public $progressText;
|
||||
/**
|
||||
* When true a progress meter will run until page is reloaded
|
||||
* Available only on confirm dialogs
|
||||
*/
|
||||
public $progressOn = true;
|
||||
/**
|
||||
* The javascript call back method to call when the 'Yes' button is clicked
|
||||
* Available only on confirm dialogs
|
||||
*/
|
||||
public $jscallback;
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $okText;
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $cancelText;
|
||||
/**
|
||||
* If true close dialog on confirm
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
public $closeOnConfirm = false;
|
||||
/**
|
||||
* The id given to the full dialog
|
||||
*/
|
||||
private $id;
|
||||
/**
|
||||
* A unique id that is added to all id elements
|
||||
*/
|
||||
private $uniqid;
|
||||
/**
|
||||
* Init this object when created
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
add_thickbox();
|
||||
$this->progressText = __('Processing please wait...', 'duplicator');
|
||||
$this->uniqid = substr(uniqid('', true), 0, 14) . rand();
|
||||
$this->id = 'dup-dlg-' . $this->uniqid;
|
||||
$this->okText = __('OK', 'duplicator');
|
||||
$this->cancelText = __('Cancel', 'duplicator');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the unique id that is assigned to each instance of a dialog
|
||||
*
|
||||
* @return int The unique ID of this dialog
|
||||
*/
|
||||
public function getID()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the unique id that is assigned to each instance of a dialogs message text
|
||||
*
|
||||
* @return int The unique ID of the message
|
||||
*/
|
||||
public function getMessageID()
|
||||
{
|
||||
return "{$this->id}_message";
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the alert base html code used to display when needed
|
||||
*
|
||||
* @return string The html content used for the alert dialog
|
||||
*/
|
||||
public function initAlert()
|
||||
{
|
||||
$onClickClose = '';
|
||||
if (!is_null($this->jscallback)) {
|
||||
$onClickClose .= $this->jscallback . ';';
|
||||
}
|
||||
$onClickClose .= 'tb_remove();';
|
||||
$hideButton = "";
|
||||
if (strlen($this->okText) == 0) {
|
||||
$hideButton = "style='display:none'";
|
||||
}
|
||||
|
||||
$html = '
|
||||
<div id="' . esc_attr($this->id) . '" style="display:none">
|
||||
<div class="dup-dlg-alert-txt">
|
||||
' . $this->message . '
|
||||
<br/><br/>
|
||||
</div>
|
||||
<div class="dup-dlg-alert-btns">
|
||||
<input type="button" class="button button-large" value="' . esc_attr($this->okText) . '" onclick="' . $onClickClose . '" ' . $hideButton . '/>
|
||||
</div>
|
||||
</div>';
|
||||
echo $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the alert base JS code used to display when needed
|
||||
*
|
||||
* @return string The javascript content used for the alert dialog
|
||||
*/
|
||||
public function showAlert()
|
||||
{
|
||||
$this->width = is_numeric($this->width) ? $this->width : 500;
|
||||
$this->height = is_numeric($this->height) ? $this->height : 175;
|
||||
$html = "tb_show('" . esc_js($this->title) . "', '#TB_inline?width=" . esc_js($this->width) . "&height=" . esc_js($this->height) . "&inlineId=" . esc_js($this->id) . "');\n" .
|
||||
"var styleData = jQuery('#TB_window').attr('style') + 'height: " . esc_js($this->height) . "px !important';\n" .
|
||||
"jQuery('#TB_window').attr('style', styleData);";
|
||||
echo $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the confirm base JS code used to display when needed
|
||||
*
|
||||
* @return string The javascript content used for the confirm dialog
|
||||
*/
|
||||
public function initConfirm()
|
||||
{
|
||||
$progress_data = '';
|
||||
$progress_func2 = '';
|
||||
$onClickConfirm = '';
|
||||
if (!is_null($this->jscallback)) {
|
||||
$onClickConfirm .= $this->jscallback . ';';
|
||||
}
|
||||
|
||||
//Enable the progress spinner
|
||||
if ($this->progressOn) {
|
||||
$progress_func1 = "__DUP_UI_Dialog_" . $this->uniqid;
|
||||
$progress_func2 = ";{$progress_func1}(this)";
|
||||
$progress_data = "<div class='dup-dlg-confirm-progress'><i class='fas fa-circle-notch fa-spin fa-lg fa-fw'></i> " . esc_js($this->progressText) . "</div>
|
||||
<script>
|
||||
function {$progress_func1}(obj)
|
||||
{
|
||||
jQuery(obj).parent().parent().find('.dup-dlg-confirm-progress').show();
|
||||
jQuery(obj).closest('.dup-dlg-confirm-btns').find('input').attr('disabled', 'true');
|
||||
}
|
||||
</script>";
|
||||
$onClickConfirm .= $progress_func2 . ';';
|
||||
}
|
||||
|
||||
if ($this->closeOnConfirm) {
|
||||
$onClickConfirm .= 'tb_remove();';
|
||||
}
|
||||
|
||||
$html =
|
||||
'<div id="' . esc_attr($this->id) . '" style="display:none">
|
||||
<div class="dup-dlg-confirm-txt">
|
||||
<span id="' . esc_attr($this->id) . '_message">' . esc_html($this->message) . '</span>
|
||||
<br/><br/>
|
||||
' . $progress_data . '
|
||||
</div>
|
||||
<div class="dup-dlg-confirm-btns">
|
||||
<input type="button" class="button button-large" value="' . esc_attr($this->okText) . '" onclick="' . $onClickConfirm . '" />
|
||||
<input type="button" class="button button-large" value="' . esc_attr($this->cancelText) . '" onclick="tb_remove()" />
|
||||
</div>
|
||||
</div>';
|
||||
echo $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the confirm base JS code used to display when needed
|
||||
*
|
||||
* @return string The javascript content used for the confirm dialog
|
||||
*/
|
||||
public function showConfirm()
|
||||
{
|
||||
$this->width = is_numeric($this->width) ? $this->width : 500;
|
||||
$this->height = is_numeric($this->height) ? $this->height : 225;
|
||||
$html = "tb_show('" . esc_js($this->title) . "', '#TB_inline?width=" . esc_js($this->width) . "&height=" . esc_js($this->height) . "&inlineId=" . esc_js($this->id) . "');\n" .
|
||||
"var styleData = jQuery('#TB_window').attr('style') + 'height: " . esc_js($this->height) . "px !important';\n" .
|
||||
"jQuery('#TB_window').attr('style', styleData);";
|
||||
echo $html;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user