<?php

// Pandora FMS - https://pandorafms.com
// ==================================================
// Copyright (c) 2005-2023 Pandora FMS
// Please see https://pandorafms.com/community/ for full contribution list
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
global $config;

// Login check.
check_login();

?>
<script type="text/javascript">

function get_last_contact(source, agent_id) {
    var params = {};
    params["get_last_contact"] = 1;
    params["page"] = "enterprise/include/ajax/log_viewer.ajax";
    params["source"] = source;
    params["agent_id"] = agent_id;

    jQuery.ajax ({
        data: params,
        dataType: "html",
        type: "POST",
        url: "ajax.php",
        success: function (data) {
            var td = $(`#img-${source}`).parent();
            td.empty();
            td.html(data);
            td.css('padding-left', '12px');
        }
    });
}

</script>

<?php
$agent_id = get_parameter_get('id_agente', 0);

$table = new stdClass();
$table->width = '100%';
$table->class = 'info_table';
$table->cellpadding = '0';
$table->cellspacing = '0';
$table->head = [];
$table->align = [];

$table->head[0] = "<span title='".__('Source')."'>".__('Source').'</span>';
$table->head[1] = "<span title='".__('Review')."'>".__('Review').'</span>';
$table->head[2] = "<span title='".__('Last contact')."'>".__('Last contact').'</span>';

$table->style = [];
$table->style['source'] = 'width: 80%;';

$table->data = [];

$row = [];


// Get most recent sources for active agent.
$sql = "select source, MAX(utimestamp) AS last_contact from tagent_module_log where id_agent=$agent_id GROUP BY source";

$logs = mysql_db_get_all_rows_sql($sql);

foreach ($logs as $log) {
    $row['source'] = $log['source'];
    $row['review'] = '<a href="javascript:void(0)">'.html_print_image('images/zoom.png', true, ['title' => __('Review in log viewer'), 'alt' => '', 'onclick' => "send_form('".$log['source'].'-'.$agent_id."')"]).'</a>';
    $row['last_contact'] = html_print_image(
        'images/spinner.gif',
        true,
        [
            'id'     => 'img-'.$log['source'],
            'border' => '0',
            'width'  => '20px',
            'heigth' => '20px',
            'onload' => "get_last_contact('".$log['source']."', '".$agent_id."')",
        ]
    );

    $table->data[$log['source']] = $row;
}

ob_start();

if (!empty($table->data)) {
    echo '<div id="log_sources_status" class="w100p">';
    html_print_table($table);
    echo '</div>';
    $html_content = ob_get_clean();
    // Create controlled toggle content.
    ui_toggle(
        $html_content,
        __('Log sources status'),
        'log_sources_status',
        !$log_sources_defined,
        false,
        '',
        'white_table_graph_content no-padding-imp',
        'white-box-content',
        'box-flat white_thable_graph mrgn_top_30px'
    );
}

// Hidden form to perform post request to Log Viewer page when clicking on the Review field icon.
echo '<form method="POST" action="index.php?sec=estado&sec2=enterprise/operation/log/log_viewer" name="review_log_form" id="review_log_form" class="invisible">';

html_print_input_hidden('agent_id', $agent_id, false);
html_print_input_hidden('source', null, false);
html_print_input_hidden('redirect_search', 1, false);


echo '</form>';


?>

<script type="text/javascript">

function send_form(source) {
    var review_form = document.getElementById("review_log_form");
    var source_input = document.getElementById('hidden-source');

    source_input.value = source;

    review_form.submit();
}

</script>