add modal confirmation window
This commit is contained in:
parent
e725a0185b
commit
57bfc364ae
|
@ -175,7 +175,7 @@ if (!$config['disabled_newsletter']) {
|
|||
|
||||
$welcome = !$registration && !$show_newsletter && !$initial;
|
||||
$welcome_window = WelcomeWindow::initialize($welcome);
|
||||
if ($welcome_window && $config['welcome_started'] === 1) {
|
||||
if ($welcome_window) {
|
||||
$welcome_window->run();
|
||||
}
|
||||
|
||||
|
|
|
@ -2266,7 +2266,7 @@ if ($updateGIS) {
|
|||
// -----------------------------------
|
||||
// Load page depending on tab selected
|
||||
// -----------------------------------
|
||||
if (!$_SESSION['create_module']) {
|
||||
if ($_SESSION['create_module'] && $config['welcome_started'] == 1) {
|
||||
$edit_module = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -321,7 +321,7 @@ if ($id_agent_module) {
|
|||
} else {
|
||||
if (!isset($moduletype)) {
|
||||
$moduletype = (string) get_parameter('moduletype');
|
||||
if (!$_SESSION['create_module']) {
|
||||
if ($_SESSION['create_module'] && $config['welcome_started'] == 1) {
|
||||
$moduletype = 'networkserver';
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,10 @@ class WelcomeWindow extends Wizard
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
public $AJAXMethods = ['loadWelcomeWindow'];
|
||||
public $AJAXMethods = [
|
||||
'loadWelcomeWindow',
|
||||
'cancelWelcome',
|
||||
];
|
||||
|
||||
/**
|
||||
* Url of controller.
|
||||
|
@ -65,6 +68,21 @@ class WelcomeWindow extends Wizard
|
|||
public $step;
|
||||
|
||||
|
||||
/**
|
||||
* Generates a JSON error.
|
||||
*
|
||||
* @param string $msg Error message.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function error($msg)
|
||||
{
|
||||
echo json_encode(
|
||||
['error' => $msg]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if target method is available to be called using AJAX.
|
||||
*
|
||||
|
@ -137,9 +155,30 @@ class WelcomeWindow extends Wizard
|
|||
},
|
||||
onshow: {
|
||||
page: '<?php echo $this->ajaxController; ?>',
|
||||
method: 'loadWelcomeWindow'
|
||||
method: 'loadWelcomeWindow',
|
||||
},
|
||||
oncancel: {
|
||||
page: '<?php echo $this->ajaxController; ?>',
|
||||
title: "<?php echo __('Cancel Configuration Window'); ?>",
|
||||
method: 'cancelWelcome',
|
||||
confirm: function (fn) {
|
||||
confirmDialog({
|
||||
title: '<?php echo __('Are you sure?'); ?>',
|
||||
message: '<?php echo __('Are you sure you want to cancel this tutorial?'); ?>',
|
||||
ok: '<?php echo __('OK'); ?>',
|
||||
cancel: '<?php echo __('Cancel'); ?>',
|
||||
onAccept: function() {
|
||||
// Continue execution.
|
||||
fn();
|
||||
}
|
||||
})
|
||||
},
|
||||
callback: function(data) {
|
||||
console.log(data);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<?php
|
||||
|
@ -147,6 +186,16 @@ class WelcomeWindow extends Wizard
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* cancelWelcome is method to cancel welcome modal window
|
||||
*/
|
||||
public function cancelWelcome()
|
||||
{
|
||||
// config update value.
|
||||
config_update_value('welcome_started', WELCOME_FINISHED);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loads a welcome window form
|
||||
*
|
||||
|
@ -162,10 +211,9 @@ class WelcomeWindow extends Wizard
|
|||
$btn_create_module_class = '';
|
||||
$btn_create_alert_class = '';
|
||||
$btn_create_discovery_class = '';
|
||||
$action = '';
|
||||
|
||||
if (($_SESSION['step'] === 'create_mail') || $_SESSION['step'] === null) {
|
||||
// Pending mail.
|
||||
if (($_SESSION['step'] === null )) {
|
||||
// Nothing done yet
|
||||
$btn_configure_mail_class = ' pending';
|
||||
} else if ($_SESSION['step'] === 'create_agent') {
|
||||
$this->step = 'create_agent';
|
||||
|
@ -406,18 +454,16 @@ class WelcomeWindow extends Wizard
|
|||
|
||||
|
||||
/**
|
||||
* Esto es un constructor realmente...
|
||||
* se llama desde la navegación normal , no ajax
|
||||
* This function acts as a constructor.
|
||||
* Receive the condition to check with the global config (welcome_started) if continues
|
||||
*/
|
||||
public static function initialize($must_run)
|
||||
{
|
||||
global $config;
|
||||
|
||||
if ($must_run === false) {
|
||||
if ($must_run === false || $config['welcome_started'] != WELCOME_STARTED) {
|
||||
// Do not start unless already started.
|
||||
if ($config['welcome_started'] != WELCOME_STARTED) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Calculate steps.
|
||||
|
@ -515,25 +561,22 @@ class WelcomeWindow extends Wizard
|
|||
|
||||
|
||||
/**
|
||||
* DOCUMENTA!!!
|
||||
* function that enables the functions to the buttons when its action is completed.
|
||||
* * Assign the url of each button
|
||||
*/
|
||||
public function loadJS()
|
||||
{
|
||||
ob_start();
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
console.log('vale');
|
||||
if('.<?php echo $_SESSION['step'] == 'create_mail'; ?>.'){
|
||||
document.getElementById("button-btn_email_conf").setAttribute('onclick', 'configureEmail()');
|
||||
console.log('mail');
|
||||
}
|
||||
if( '.<?php echo $_SESSION['step'] == 'create_agent'; ?>.') {
|
||||
document.getElementById("button-btn_create_agent").setAttribute('onclick', 'createNewAgent()');
|
||||
console.log('agente true');
|
||||
}
|
||||
if( '.<?php echo $_SESSION['step'] == 'create_module'; ?>.') {
|
||||
document.getElementById("button-btn_create_module").setAttribute('onclick', 'checkAgentOnline()');
|
||||
console.log('modulo entra true');
|
||||
}
|
||||
if( '.<?php echo $_SESSION['step'] == 'create_alert'; ?>.') {
|
||||
|
||||
|
@ -572,7 +615,9 @@ class WelcomeWindow extends Wizard
|
|||
function reportIsNotWorking() {
|
||||
}
|
||||
|
||||
|
||||
function cierre_dialog(){
|
||||
this.dialog("close");
|
||||
}
|
||||
</script>
|
||||
<?php
|
||||
return ob_get_clean();
|
||||
|
|
|
@ -1899,17 +1899,48 @@ function load_modal(settings) {
|
|||
buttons: []
|
||||
})
|
||||
.show();
|
||||
|
||||
var required_buttons = [];
|
||||
if (settings.modal.cancel != undefined) {
|
||||
//The variable contains a function
|
||||
// that is responsible for executing the method it receives from settings
|
||||
// which confirms the closure of a modal
|
||||
var cancelModal = function() {
|
||||
if (AJAX_RUNNING) return;
|
||||
AJAX_RUNNING = 1;
|
||||
var formdata = new FormData();
|
||||
|
||||
formdata.append("page", settings.oncancel.page);
|
||||
formdata.append("method", settings.oncancel.method);
|
||||
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: settings.url,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
data: formdata,
|
||||
success: function(data) {
|
||||
if (typeof settings.oncancel.callback == "function") {
|
||||
settings.oncancel.callback(data);
|
||||
}
|
||||
AJAX_RUNNING = 0;
|
||||
},
|
||||
error: function(data) {
|
||||
console.log(data);
|
||||
AJAX_RUNNING = 0;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
required_buttons.push({
|
||||
class:
|
||||
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub upd submit-cancel",
|
||||
text: settings.modal.cancel,
|
||||
click: function() {
|
||||
$(this).dialog("close");
|
||||
if (typeof settings.cleanup == "function") {
|
||||
settings.cleanup();
|
||||
if (typeof settings.oncancel.confirm == "function") {
|
||||
//receive function
|
||||
settings.oncancel.confirm(cancelModal);
|
||||
} else if (settings.oncancel != undefined) {
|
||||
cancelModal();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -1958,10 +1989,14 @@ function load_modal(settings) {
|
|||
contentType: false,
|
||||
data: formdata,
|
||||
success: function(data) {
|
||||
if (settings.ajax_callback != undefined) {
|
||||
if (typeof settings.ajax_callback == "function") {
|
||||
settings.ajax_callback(data);
|
||||
}
|
||||
AJAX_RUNNING = 0;
|
||||
},
|
||||
error: function(data) {
|
||||
console.log(data);
|
||||
AJAX_RUNNING = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1995,6 +2030,53 @@ function load_modal(settings) {
|
|||
$(".ui-dialog-titlebar-close").hide();
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function(data) {
|
||||
console.log(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//Function that shows a dialog box to confirm closures of generic manners. The modal id is random
|
||||
function confirmDialog(settings) {
|
||||
var randomStr =
|
||||
Math.random()
|
||||
.toString(36)
|
||||
.substring(2, 15) +
|
||||
Math.random()
|
||||
.toString(36)
|
||||
.substring(2, 15);
|
||||
|
||||
$("body").append(
|
||||
'<div id="confirm_' + randomStr + '">' + settings.message + "</div>"
|
||||
);
|
||||
$("#confirm_" + randomStr);
|
||||
$("#confirm_" + randomStr)
|
||||
.dialog({
|
||||
title: settings.title,
|
||||
close: false,
|
||||
width: 350,
|
||||
modal: true,
|
||||
buttons: [
|
||||
{
|
||||
text: "Cancel",
|
||||
class:
|
||||
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub upd submit-cancel",
|
||||
click: function() {
|
||||
$(this).dialog("close");
|
||||
if (typeof settings.onDeny == "function") settings.onDeny();
|
||||
}
|
||||
},
|
||||
{
|
||||
text: "Ok",
|
||||
class:
|
||||
"ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
|
||||
click: function() {
|
||||
$(this).dialog("close");
|
||||
if (typeof settings.onAccept == "function") settings.onAccept();
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue