Merge branch 'ent-12541-fallos-en-graph-analytics' into 'develop'

Ent 12541 Fallos en graph analytics

See merge request artica/pandorafms!6714
This commit is contained in:
Diego Muñoz-Reja 2024-01-18 16:00:08 +00:00
commit 5ade3a9e82
2 changed files with 271 additions and 67 deletions

View File

@ -1,3 +1,4 @@
/* global $ */
// Droppable options. // Droppable options.
var droppableOptions = { var droppableOptions = {
accept: ".draggable", accept: ".draggable",
@ -422,12 +423,38 @@ $("[data-button=new]").click(function(e) {
}); });
}); });
function updateSelect(element, fields, selected) {
if (typeof fields === "object") {
$(element)
.find("select option[value!=0]")
.remove();
$(element)
.find(".select2-container .select2-selection__rendered")
.empty();
Object.keys(fields).forEach(function(key) {
if (key === selected) {
$(element)
.find(".select2-container .select2-selection__rendered")
.append(`${fields[key]}`);
$(element)
.find("select")
.append(`<option value="${key}" selected>${fields[key]}</option>`);
} else {
$(element)
.find("select")
.append(`<option value="${key}">${fields[key]}</option>`);
}
});
}
}
// Save graps modal. // Save graps modal.
$("[data-button=save]").click(function(e) { $("[data-button=save]").click(function(e) {
// Filter save mode selector // Filter save mode selector
$("#save_filter_row1").show(); $("#save_filter_row1").show();
$("#save_filter_row2").show(); $("#save_filter_row2").show();
$("#update_filter_row1").hide(); $("#update_filter_row1").hide();
$("#delete_filter_row2").hide();
$("#radiobtn0002").prop("checked", false); $("#radiobtn0002").prop("checked", false);
$("#radiobtn0001").prop("checked", true); $("#radiobtn0001").prop("checked", true);
$("#text-id_name").val(""); $("#text-id_name").val("");
@ -438,20 +465,43 @@ $("[data-button=save]").click(function(e) {
$("#save_filter_row2").show(); $("#save_filter_row2").show();
$("#submit-save_filter").show(); $("#submit-save_filter").show();
$("#update_filter_row1").hide(); $("#update_filter_row1").hide();
} else { $("#delete_filter_row2").hide();
} else if ($(this).val() == "update") {
$("#save_filter_row1").hide(); $("#save_filter_row1").hide();
$("#save_filter_row2").hide(); $("#save_filter_row2").hide();
$("#update_filter_row1").show(); $("#update_filter_row1").show();
$("#submit-save_filter").hide(); $("#submit-save_filter").hide();
$("#delete_filter_row2").hide();
} else {
$("#save_filter_row1").hide();
$("#save_filter_row2").hide();
$("#update_filter_row1").hide();
$("#submit-save_filter").hide();
$("#delete_filter_row2").show();
} }
}); });
$("#save-filter-select").dialog({ $.ajax({
resizable: true, method: "POST",
draggable: true, url: "ajax.php",
modal: false, dataType: "json",
closeOnEscape: true, data: {
width: 350 page: "operation/reporting/graph_analytics",
load_list_filters: 1
},
success: function(data) {
if (data) {
updateSelect("#save_filter_form", data, 0);
$("#save-filter-select").dialog({
resizable: true,
draggable: true,
modal: false,
closeOnEscape: true,
width: 350,
title: titleModalActions
});
}
}
}); });
}); });
@ -535,14 +585,67 @@ function save_update_filter() {
}); });
} }
// Delete filter.
function delete_filter() {
confirmDialog({
title: titleDelete,
message: messageDelete,
onAccept: function() {
$.ajax({
method: "POST",
url: "ajax.php",
dataType: "html",
data: {
page: "operation/reporting/graph_analytics",
delete_filter: $("#delete_filter").val()
},
success: function(data) {
if (data == "deleted") {
confirmDialog({
title: titleDeleteConfirm,
message: messageDeleteConfirm,
hideCancelButton: true,
onAccept: function() {
$(
"button.ui-button.ui-corner-all.ui-widget.ui-button-icon-only.ui-dialog-titlebar-close"
).click();
}
});
} else {
confirmDialog({
title: titleDeleteError,
message: messageDeleteError,
hideCancelButton: true
});
}
}
});
}
});
}
// Load graps modal. // Load graps modal.
$("[data-button=load]").click(function(e) { $("[data-button=load]").click(function(e) {
$("#load-filter-select").dialog({ $.ajax({
resizable: true, method: "POST",
draggable: true, url: "ajax.php",
modal: false, dataType: "json",
closeOnEscape: true, data: {
width: "auto" page: "operation/reporting/graph_analytics",
load_list_filters: 1
},
success: function(data) {
if (data) {
updateSelect("#load_filter_form", data, 0);
$("#load-filter-select").dialog({
resizable: true,
draggable: true,
modal: false,
closeOnEscape: true,
width: "auto"
});
}
}
}); });
}); });
@ -618,12 +721,26 @@ function loadFilter(url, filterId, homeurl, id) {
// Share button. // Share button.
$("[data-button=share]").click(function(e) { $("[data-button=share]").click(function(e) {
$("#share-select").dialog({ $.ajax({
resizable: true, method: "POST",
draggable: true, url: "ajax.php",
modal: false, dataType: "json",
closeOnEscape: true, data: {
width: "auto" page: "operation/reporting/graph_analytics",
load_list_filters: 1
},
success: function(data) {
if (data) {
updateSelect("#share_form-0-0", data, 0);
$("#share-select").dialog({
resizable: true,
draggable: true,
modal: false,
closeOnEscape: true,
width: "auto"
});
}
}
}); });
}); });
@ -643,13 +760,27 @@ $("#button-share-modal").click(function(e) {
// Export button. // Export button.
$("[data-button=export]").click(function(e) { $("[data-button=export]").click(function(e) {
$("#export-select").dialog({ $.ajax({
resizable: true, method: "POST",
draggable: true, url: "ajax.php",
modal: false, dataType: "json",
closeOnEscape: true, data: {
width: "auto", page: "operation/reporting/graph_analytics",
title: titleExport load_list_filters: 1
},
success: function(data) {
if (data) {
updateSelect("#export_form-0-0", data, 0);
$("#export-select").dialog({
resizable: true,
draggable: true,
modal: false,
closeOnEscape: true,
width: "auto",
title: titleExport
});
}
}
}); });
}); });
@ -669,10 +800,10 @@ function exportCustomGraph() {
group group
}, },
success: function(data) { success: function(data) {
if (data) { if (data === "created") {
confirmDialog({ confirmDialog({
title: titleExportConfirm, title: titleExportConfirm,
message: data + " " + messageExportConfirm, message: messageExportConfirm,
hideCancelButton: true, hideCancelButton: true,
onAccept: function() { onAccept: function() {
$( $(

View File

@ -45,8 +45,10 @@ if (is_ajax()) {
$save_filter = get_parameter('save_filter'); $save_filter = get_parameter('save_filter');
$load_filter = get_parameter('load_filter'); $load_filter = get_parameter('load_filter');
$update_filter = get_parameter('update_filter'); $update_filter = get_parameter('update_filter');
$delete_filter = get_parameter('delete_filter');
$get_new_values = get_parameter('get_new_values'); $get_new_values = get_parameter('get_new_values');
$export_filter = get_parameter('export_filter'); $export_filter = get_parameter('export_filter');
$load_list_filters = get_parameter('load_list_filters');
if (empty($search_left) === false) { if (empty($search_left) === false) {
$output = []; $output = [];
@ -289,6 +291,11 @@ if (is_ajax()) {
return; return;
} }
if (empty($delete_filter) === false) {
$result = db_process_sql_delete('tgraph_analytics_filter', ['id' => $delete_filter]);
echo ((bool) $result === true) ? 'deleted' : '';
}
// Get new values. // Get new values.
if (empty($get_new_values) === false) { if (empty($get_new_values) === false) {
$data = []; $data = [];
@ -322,19 +329,19 @@ if (is_ajax()) {
$graphs = json_decode(db_get_value('graph_modules', 'tgraph_analytics_filter', 'id', $filter)); $graphs = json_decode(db_get_value('graph_modules', 'tgraph_analytics_filter', 'id', $filter));
$interval = db_get_value('tgraph_analytics_filter.interval', 'tgraph_analytics_filter', 'id', $filter); $interval = db_get_value('tgraph_analytics_filter.interval', 'tgraph_analytics_filter', 'id', $filter);
foreach ($graphs as $graph) { $id_graph = db_process_sql_insert(
$id_graph = db_process_sql_insert( 'tgraph',
'tgraph', [
[ 'id_user' => $config['id_user'],
'id_user' => $config['id_user'], 'id_group' => $group,
'id_group' => $group, 'name' => $filter_name.' ('.__('Graph').') ',
'name' => $filter_name.' ('.__('Graph').' '.($counter + 1).')', 'description' => __('Created from Graph analytics. Filter:').' '.$filter_name.'. '.__('Graph'),
'description' => __('Created from Graph analytics. Filter:').' '.$filter_name.'. '.__('Graph').' '.($counter + 1), 'period' => $interval,
'period' => $interval, 'stacked' => 2,
'stacked' => 2, ]
] );
);
foreach ($graphs as $graph) {
if ($id_graph > 0) { if ($id_graph > 0) {
$counter++; $counter++;
$field_order = 1; $field_order = 1;
@ -357,7 +364,16 @@ if (is_ajax()) {
} }
} }
echo $counter; if ($id_graph > 0) {
echo 'created';
} else {
echo '';
}
}
if (empty($load_list_filters) === false) {
$filters = graph_analytics_filter_select();
echo json_encode($filters);
} }
return; return;
@ -384,7 +400,7 @@ if (check_acl($config['id_user'], 0, 'RW') === 1 || check_acl($config['id_user']
'content' => html_print_radio_button( 'content' => html_print_radio_button(
'filter_mode', 'filter_mode',
'new', 'new',
__('New filter'), __('Create'),
true, true,
true true
), ),
@ -398,7 +414,21 @@ if (check_acl($config['id_user'], 0, 'RW') === 1 || check_acl($config['id_user']
'content' => html_print_radio_button( 'content' => html_print_radio_button(
'filter_mode', 'filter_mode',
'update', 'update',
__('Update filter'), __('Update'),
false,
true
),
],
true
);
$data[2] = html_print_div(
[
'style' => 'display: flex;',
'content' => html_print_radio_button(
'filter_mode',
'delete',
__('Delete'),
false, false,
true true
), ),
@ -466,7 +496,37 @@ if (check_acl($config['id_user'], 0, 'RW') === 1 || check_acl($config['id_user']
); );
$table->data[] = $data; $table->data[] = $data;
$table->rowclass[] = ''; $table->rowclass[] = 'display-grid';
$data = [];
$table->rowid[4] = 'delete_filter_row2';
$data[0] = __('Delete filter');
$select_filters_delete = graph_analytics_filter_select();
$data[0] .= html_print_select(
$select_filters_delete,
'delete_filter',
'',
'',
'',
0,
true
);
$data[1] = html_print_submit_button(
__('Delete filter'),
'delete_filter',
false,
[
'class' => 'mini ',
'icon' => 'delete',
'style' => 'margin-left: 155px; width: 145px;',
'onclick' => 'delete_filter();',
],
true
);
$table->data[] = $data;
html_print_table($table); html_print_table($table);
} else { } else {
@ -583,7 +643,7 @@ echo '</div>';
echo '<div id="export-select" class="load-filter-modal invisible">'; echo '<div id="export-select" class="load-filter-modal invisible">';
$table = new StdClass; $table = new StdClass;
$table->id = 'share_form'; $table->id = 'export_form';
$table->width = '100%'; $table->width = '100%';
$table->cellspacing = 4; $table->cellspacing = 4;
$table->cellpadding = 4; $table->cellpadding = 4;
@ -771,30 +831,31 @@ $left_content .= '
</div> </div>
<div class="filters-div-submain"> <div class="filters-div-submain">
<div class="filter-div filters-left-div"> <div class="filter-div filters-left-div">
<span><b>'.__('Agents').'</b></span>
<input id="search-left" name="search-left" placeholder="Enter keywords to search" type="search" class="search-graph-analytics"> <input id="search-left" name="search-left" placeholder="Enter keywords to search" type="search" class="search-graph-analytics">
<br> <br>
'.ui_toggle( '.ui_toggle(
'', '',
__('Agents'), __('Agents'),
'agents-toggle', 'agents-toggle',
'agents-toggle', 'agents-toggle',
true, true,
true, true,
'', '',
'white-box-content', 'white-box-content',
'box-flat white_table_graph', 'box-flat white_table_graph',
'images/arrow@svg.svg', 'images/arrow@svg.svg',
'images/arrow@svg.svg', 'images/arrow@svg.svg',
false, false,
false, false,
false, false,
'', '',
'', '',
null, null,
null, null,
false, false,
false, false,
'static' 'static'
).ui_toggle( ).ui_toggle(
'', '',
__('Groups'), __('Groups'),
@ -842,6 +903,7 @@ $left_content .= '
).' ).'
</div> </div>
<div class="filter-div filters-right-div "> <div class="filter-div filters-right-div ">
<span><b>'.__('Modules').'</b></span>
<input id="search-right" placeholder="Enter keywords to search" type="search" class="search-graph-analytics"> <input id="search-right" placeholder="Enter keywords to search" type="search" class="search-graph-analytics">
<input id="search-agent" type="hidden" value=""> <input id="search-agent" type="hidden" value="">
<input id="search-group" type="hidden" value=""> <input id="search-group" type="hidden" value="">
@ -920,6 +982,15 @@ const titleError = "<?php echo __('Error'); ?>";
const titleUpdate = "<?php echo __('Override filter?'); ?>"; const titleUpdate = "<?php echo __('Override filter?'); ?>";
const messageUpdate = "<?php echo __('Do you want to overwrite the filter?'); ?>"; const messageUpdate = "<?php echo __('Do you want to overwrite the filter?'); ?>";
const titleDelete = "<?php echo __('Delete filter?'); ?>";
const messageDelete = "<?php echo __('Do you want to delete the filter?'); ?>";
const titleDeleteConfirm = "<?php echo __('Deleted successfully'); ?>";
const messageDeleteConfirm = "<?php echo __('The filter has been deleted successfully'); ?>";
const titleDeleteError = "<?php echo __('Error'); ?>";
const messageDeleteError = "<?php echo __('It is not possible delete the filter'); ?>";
const titleUpdateConfirm = "<?php echo __('Updated successfully'); ?>"; const titleUpdateConfirm = "<?php echo __('Updated successfully'); ?>";
const messageUpdateConfirm = "<?php echo __('The filter has been updated successfully'); ?>"; const messageUpdateConfirm = "<?php echo __('The filter has been updated successfully'); ?>";
@ -935,7 +1006,7 @@ const messageLoadConfirm = "<?php echo __('Error loading filter'); ?>";
const titleExport = "<?php echo __('Export to custom graph'); ?>"; const titleExport = "<?php echo __('Export to custom graph'); ?>";
const titleExportConfirm = "<?php echo __('Exported successfully'); ?>"; const titleExportConfirm = "<?php echo __('Exported successfully'); ?>";
const messageExportConfirm = "<?php echo __('graphs have been created in Custom graphs'); ?>"; const messageExportConfirm = "<?php echo __('Graph have been created in Custom graphs'); ?>";
const titleExportError = "<?php echo __('Error to export'); ?>"; const titleExportError = "<?php echo __('Error to export'); ?>";
const messageExportError = "<?php echo __('Filter cannot be None'); ?>"; const messageExportError = "<?php echo __('Filter cannot be None'); ?>";
@ -943,4 +1014,6 @@ const messageExportError = "<?php echo __('Filter cannot be None'); ?>";
const titleRemoveConfirm = "<?php echo __('Delete graph'); ?>"; const titleRemoveConfirm = "<?php echo __('Delete graph'); ?>";
const messageRemoveConfirm = "<?php echo __('Do you want to delete the graph? Remember to save the changes.'); ?>"; const messageRemoveConfirm = "<?php echo __('Do you want to delete the graph? Remember to save the changes.'); ?>";
const titleModalActions = "<?php echo __('Filter actions'); ?>"
</script> </script>