fix
This commit is contained in:
parent
de22fb70e3
commit
3dee6888d6
|
@ -68,8 +68,10 @@ class Diagnostics extends Wizard
|
||||||
// Check access.
|
// Check access.
|
||||||
check_login();
|
check_login();
|
||||||
|
|
||||||
// Check Acl.
|
// TODO:XXX
|
||||||
if (!check_acl($config['id_user'], 0, 'PM')) {
|
/*
|
||||||
|
// Check Acl.
|
||||||
|
if (!check_acl($config['id_user'], 0, 'PM')) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
'Trying to access diagnostic info'
|
'Trying to access diagnostic info'
|
||||||
|
@ -81,7 +83,8 @@ class Diagnostics extends Wizard
|
||||||
|
|
||||||
include 'general/noaccess.php';
|
include 'general/noaccess.php';
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
$this->ajaxController = $page;
|
$this->ajaxController = $page;
|
||||||
$this->pdf = $pdf;
|
$this->pdf = $pdf;
|
||||||
|
@ -1755,18 +1758,14 @@ class Diagnostics extends Wizard
|
||||||
|
|
||||||
// FIX for customer key.
|
// FIX for customer key.
|
||||||
if ($key === 'customerKey') {
|
if ($key === 'customerKey') {
|
||||||
$spanValue = '<span>'.$items[$key]['value'].'</span>';
|
$customerKey = ui_print_truncate_text(
|
||||||
if ($this->pdf === true) {
|
$items[$key]['value'],
|
||||||
$spanValue = '<span>';
|
30,
|
||||||
$spanValue .= wordwrap(
|
false,
|
||||||
$items[$key]['value'],
|
true,
|
||||||
10,
|
false
|
||||||
"\n",
|
);
|
||||||
true
|
$spanValue = '<span>'.$customerKey.'</span>';
|
||||||
);
|
|
||||||
$spanValue .= '</span>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$items[$key]['value'] = $spanValue;
|
$items[$key]['value'] = $spanValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1805,10 +1804,100 @@ class Diagnostics extends Wizard
|
||||||
public function createdScheduleFeedbackTask():void
|
public function createdScheduleFeedbackTask():void
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
|
// TODO: feedback@artica.es
|
||||||
|
$mail_feedback = 'feedback@artica.es';
|
||||||
$email = 'daniel.barbero@artica.es';
|
$email = 'daniel.barbero@artica.es';
|
||||||
$subject = 'PandoraFMS Report '.$config['pandora_uid'];
|
$subject = 'PandoraFMS Report '.$config['pandora_uid'];
|
||||||
$text = get_parameter('what-happened', '');
|
$text = get_parameter('what-happened', '');
|
||||||
$attachment = get_parameter_switch('include_installation_data', 0);
|
$attachment = get_parameter_switch('include_installation_data', 0);
|
||||||
|
$email_from = get_parameter_switch('email', '');
|
||||||
|
|
||||||
|
if (!check_acl($config['id_user'], 0, 'PM')) {
|
||||||
|
// TODO: MAIL TO ADMIN.
|
||||||
|
$email = get_mail_admin();
|
||||||
|
$email = 'daniel.barbero@artica.es';
|
||||||
|
$product_name = io_safe_output(get_product_name());
|
||||||
|
$name_admin = get_name_admin();
|
||||||
|
|
||||||
|
$subject = __('Feedback').' '.$product_name.' '.$config['pandora_uid'];
|
||||||
|
|
||||||
|
$title = __('Hello').' '.$name_admin;
|
||||||
|
$p1 = __(
|
||||||
|
'User %s is reporting an issue in its %s experience',
|
||||||
|
$email_from,
|
||||||
|
$product_name
|
||||||
|
);
|
||||||
|
$p1 .= ':';
|
||||||
|
|
||||||
|
$p2 = $text;
|
||||||
|
|
||||||
|
if ($attachment === 1) {
|
||||||
|
$msg_attch = __('Find some files attached to this mail');
|
||||||
|
$msg_attch .= '. ';
|
||||||
|
$msg_attch .= __(
|
||||||
|
'PDF is the diagnostic information retrieved at report time'
|
||||||
|
);
|
||||||
|
$msg_attch .= '. ';
|
||||||
|
$msg_attch .= __('CSV contains the statuses of every product file');
|
||||||
|
$msg_attch .= '. ';
|
||||||
|
}
|
||||||
|
|
||||||
|
$p3 = __(
|
||||||
|
'If you think this report must be escalated, feel free to forward this mail to "%s"',
|
||||||
|
$mail_feedback
|
||||||
|
);
|
||||||
|
|
||||||
|
$legal = __('LEGAL WARNING');
|
||||||
|
$legal1 = __(
|
||||||
|
'The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above'
|
||||||
|
);
|
||||||
|
$legal1 .= '. ';
|
||||||
|
$legal2 = __(
|
||||||
|
'If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited'
|
||||||
|
);
|
||||||
|
$legal2 .= '. ';
|
||||||
|
$legal3 = __(
|
||||||
|
'If you have received this transmission in error, do not read it'
|
||||||
|
);
|
||||||
|
$legal3 .= '. ';
|
||||||
|
$legal4 = __(
|
||||||
|
'Please immediately reply to the sender that you have received this communication in error and then delete it'
|
||||||
|
);
|
||||||
|
$legal4 .= '.';
|
||||||
|
|
||||||
|
$patterns = [
|
||||||
|
'/__title__/',
|
||||||
|
'/__p1__/',
|
||||||
|
'/__p2__/',
|
||||||
|
'/__attachment__/',
|
||||||
|
'/__p3__/',
|
||||||
|
'/__legal__/',
|
||||||
|
'/__legal1__/',
|
||||||
|
'/__legal2__/',
|
||||||
|
'/__legal3__/',
|
||||||
|
'/__legal4__/',
|
||||||
|
];
|
||||||
|
|
||||||
|
$substitutions = [
|
||||||
|
$title,
|
||||||
|
$p1,
|
||||||
|
$p2,
|
||||||
|
$msg_attch,
|
||||||
|
$p3,
|
||||||
|
$legal,
|
||||||
|
$legal1,
|
||||||
|
$legal2,
|
||||||
|
$legal3,
|
||||||
|
$legal4,
|
||||||
|
];
|
||||||
|
|
||||||
|
$html_template = file_get_contents(
|
||||||
|
$config['homedir'].'/include/templates/feedback_send_mail.html'
|
||||||
|
);
|
||||||
|
|
||||||
|
$text = preg_replace($patterns, $substitutions, $html_template);
|
||||||
|
}
|
||||||
|
|
||||||
$idUserTask = db_get_value(
|
$idUserTask = db_get_value(
|
||||||
'id',
|
'id',
|
||||||
|
@ -1948,11 +2037,11 @@ class Diagnostics extends Wizard
|
||||||
'label' => __('Your email'),
|
'label' => __('Your email'),
|
||||||
'class' => 'flex-row-baseline',
|
'class' => 'flex-row-baseline',
|
||||||
'arguments' => [
|
'arguments' => [
|
||||||
'name' => 'email',
|
'name' => 'email',
|
||||||
'id' => 'email',
|
'id' => 'email',
|
||||||
'type' => 'text',
|
'type' => 'email',
|
||||||
'return' => true,
|
'size' => 40,
|
||||||
'size' => 40,
|
'required' => 'required',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1535,6 +1535,89 @@ function html_print_input_text($name, $value, $alt='', $size=50, $maxlength=255,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render an input email element.
|
||||||
|
*
|
||||||
|
* @param array $settings Array with attributes input.
|
||||||
|
* only name is necessary.
|
||||||
|
*
|
||||||
|
* @return string Html input.
|
||||||
|
*/
|
||||||
|
function html_print_input_email(array $settings):string
|
||||||
|
{
|
||||||
|
// TODO: const.
|
||||||
|
$valid_attrs = [
|
||||||
|
'accept',
|
||||||
|
'disabled',
|
||||||
|
'maxlength',
|
||||||
|
'name',
|
||||||
|
'readonly',
|
||||||
|
'placeholder',
|
||||||
|
'size',
|
||||||
|
'value',
|
||||||
|
'accesskey',
|
||||||
|
'class',
|
||||||
|
'dir',
|
||||||
|
'id',
|
||||||
|
'lang',
|
||||||
|
'style',
|
||||||
|
'tabindex',
|
||||||
|
'title',
|
||||||
|
'xml:lang',
|
||||||
|
'onfocus',
|
||||||
|
'onblur',
|
||||||
|
'onselect',
|
||||||
|
'onchange',
|
||||||
|
'onclick',
|
||||||
|
'ondblclick',
|
||||||
|
'onmousedown',
|
||||||
|
'onmouseup',
|
||||||
|
'onmouseover',
|
||||||
|
'onmousemove',
|
||||||
|
'onmouseout',
|
||||||
|
'onkeypress',
|
||||||
|
'onkeydown',
|
||||||
|
'onkeyup',
|
||||||
|
'required',
|
||||||
|
'pattern',
|
||||||
|
'autocomplete',
|
||||||
|
];
|
||||||
|
|
||||||
|
$output = '';
|
||||||
|
if (isset($settings) === true && is_array($settings) === true) {
|
||||||
|
// Check Name is necessary.
|
||||||
|
if (isset($settings['name']) === true) {
|
||||||
|
$output = '<input type="email" ';
|
||||||
|
|
||||||
|
// Check Max length.
|
||||||
|
if (isset($settings['maxlength']) === false) {
|
||||||
|
$settings['maxlength'] = 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check Size.
|
||||||
|
if (isset($settings['size']) === false
|
||||||
|
|| $settings['size'] === 0
|
||||||
|
) {
|
||||||
|
$settings['size'] = 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($settings as $attribute => $attr_value) {
|
||||||
|
// Check valid attribute.
|
||||||
|
if (in_array($attribute, $valid_attrs) === false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= $attribute.'="'.$attr_value.'" ';
|
||||||
|
}
|
||||||
|
|
||||||
|
$output .= $function.'/>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render an input image element.
|
* Render an input image element.
|
||||||
*
|
*
|
||||||
|
@ -3208,6 +3291,10 @@ function html_print_input($data, $wrapper='div', $input_only=false)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'email':
|
||||||
|
$output .= html_print_input_email($data);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'hidden':
|
case 'hidden':
|
||||||
$output .= html_print_input_hidden(
|
$output .= html_print_input_hidden(
|
||||||
$data['name'],
|
$data['name'],
|
||||||
|
|
|
@ -1236,3 +1236,29 @@ function users_get_explode_tags(&$group)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get mail admin.
|
||||||
|
*
|
||||||
|
* @return string Return mail admin.
|
||||||
|
*/
|
||||||
|
function get_mail_admin():string
|
||||||
|
{
|
||||||
|
$mail = db_get_value('email', 'tusuario', 'is_admin', 1);
|
||||||
|
|
||||||
|
return $mail;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get name admin.
|
||||||
|
*
|
||||||
|
* @return string Return name admin.
|
||||||
|
*/
|
||||||
|
function get_name_admin():string
|
||||||
|
{
|
||||||
|
$mail = db_get_value('fullname', 'tusuario', 'is_admin', 1);
|
||||||
|
|
||||||
|
return $mail;
|
||||||
|
}
|
||||||
|
|
|
@ -1958,7 +1958,14 @@ function load_modal(settings) {
|
||||||
formdata.append("page", settings.onsubmit.page);
|
formdata.append("page", settings.onsubmit.page);
|
||||||
formdata.append("method", settings.onsubmit.method);
|
formdata.append("method", settings.onsubmit.method);
|
||||||
|
|
||||||
|
var flagError = false;
|
||||||
$("#" + settings.form + " :input").each(function() {
|
$("#" + settings.form + " :input").each(function() {
|
||||||
|
if (this.checkValidity() === false) {
|
||||||
|
// TODO: Tooltip msg.
|
||||||
|
console.log(this.validationMessage);
|
||||||
|
flagError = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.type == "file") {
|
if (this.type == "file") {
|
||||||
if ($(this).prop("files")[0]) {
|
if ($(this).prop("files")[0]) {
|
||||||
formdata.append(this.name, $(this).prop("files")[0]);
|
formdata.append(this.name, $(this).prop("files")[0]);
|
||||||
|
@ -1974,24 +1981,28 @@ function load_modal(settings) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
if (flagError === false) {
|
||||||
method: "post",
|
$.ajax({
|
||||||
url: settings.url,
|
method: "post",
|
||||||
processData: false,
|
url: settings.url,
|
||||||
contentType: false,
|
processData: false,
|
||||||
data: formdata,
|
contentType: false,
|
||||||
dataType: settings.onsubmit.dataType,
|
data: formdata,
|
||||||
success: function(data) {
|
dataType: settings.onsubmit.dataType,
|
||||||
if (settings.ajax_callback != undefined) {
|
success: function(data) {
|
||||||
if (settings.idMsgCallback != undefined) {
|
if (settings.ajax_callback != undefined) {
|
||||||
settings.ajax_callback(data, settings.idMsgCallback);
|
if (settings.idMsgCallback != undefined) {
|
||||||
} else {
|
settings.ajax_callback(data, settings.idMsgCallback);
|
||||||
settings.ajax_callback(data);
|
} else {
|
||||||
|
settings.ajax_callback(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
AJAX_RUNNING = 0;
|
||||||
}
|
}
|
||||||
AJAX_RUNNING = 0;
|
});
|
||||||
}
|
} else {
|
||||||
});
|
AJAX_RUNNING = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -5910,3 +5910,7 @@ table.table_modal_alternate tr td:first-child {
|
||||||
.flot-text {
|
.flot-text {
|
||||||
width: 101%;
|
width: 101%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input:invalid {
|
||||||
|
border-color: #c00;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue