<div class="container debug_main mb-4">
    <br>
    <?php if ($this->session->flashdata('success')) { ?>
        <!-- Display Message -->
        <div class="alert alert-success">
            <p><?php echo $this->session->flashdata('success'); ?></p>
        </div>
    <?php } ?>

    <?php if ($this->session->flashdata('error')) { ?>
        <!-- Display Message -->
        <div class="alert alert-danger">
            <p><?php echo $this->session->flashdata('error'); ?></p>
        </div>
    <?php } ?>

    <h2><?php echo $page_title; ?></h2>

    <div class="row">
        <div class="col">

            <div class="card">
                <div class="card-header">Wavelog Information</div>
                <div class="card-body">
                    <table width="100%">
                        <tr>
                            <td>Version</td>
                            <td><?php echo $this->optionslib->get_option('version') . "\n"; ?></td>
                        </tr>
                        <tr>
                            <td>Language</td>
                            <td><?php echo ucfirst($this->config->item('language')) . "\n"; ?></td>
                        </tr>
                        <tr>
                            <td>Base URL</td>
                            <td><span id="baseUrl"><a href="<?php echo $this->config->item('base_url') ?>" target="_blank"><?php echo $this->config->item('base_url'); ?></a></span> <span data-bs-toggle="tooltip" title="<?php echo lang('copy_to_clipboard'); ?>" onclick='copyURL("<?php echo $this->config->item('base_url'); ?>")'><i class="copy-icon fas fa-copy"></span></td>
                        </tr>
                        <tr>
                            <td>Migration</td>
                            <td><?php echo (isset($migration_version) ? $migration_version : "<span class='badge text-bg-danger'>There is something wrong with your Migration in Database!</span>"); ?></td>
                        </tr>
                        <tr>
                            <td>Environment</td>
                            <td><?php echo ENVIRONMENT; ?></td>
                        </tr>
                        <tr class="blank-row">
                            <td> </td>
                            <td> </td>
                        </tr>
                        <tr>
                            <td>Total QSO on this instance</td>
                            <td><?php echo $qso_total . ' QSOs'; ?></td>
                        </tr>
                    </table>
                </div>
            </div>

            <div class="card">
                <div class="card-header">Server Information</div>
                <div class="card-body">
                    <table width="100%">
                        <tr>
                            <td>Server Software</td>
                            <td><?php echo $_SERVER['SERVER_SOFTWARE']; ?></td>
                        </tr>

                        <tr>
                            <td>PHP Version</td>
                            <td>
                              <?php
                                 if (version_compare(PHP_VERSION, '8.0.0') >= 0) {
                                    echo phpversion()." <span class=\"badge text-bg-success\">OK</span>";
                                 } else {
                                    echo phpversion()." <span data-bs-toggle=\"tooltip\" title=\"Please update!\" class=\"badge text-bg-warning\">Deprecated</span>";
                                 }
                              ?>
                           </td>
                        </tr>

                        <tr>
                            <td>MySQL Version</td>
                            <td><?php echo $this->db->version(); ?></td>
                        </tr>
                        <tr>
                            <td>Codeigniter Version</td>
                            <td><?php echo CI_VERSION; ?></td>
                        </tr>
                    </table>
                </div>
            </div>

            <div class="card">
                <div class="card-header">Folder Permissions</div>
                <div class="card-body">
                    <p>This checks the folders Wavelog uses are read and writeable by PHP.</p>
                    <table width="100%">
                        <tr>
                            <td>/backup</td>
                            <td>
                                <?php if ($backup_folder == true) { ?>
                                    <span class="badge text-bg-success">Success</span>
                                <?php } else { ?>
                                    <span class="badge text-bg-danger">Failed</span>
                                <?php } ?>
                            </td>
                        </tr>

                        <tr>
                            <td>/updates</td>
                            <td>
                                <?php if ($updates_folder == true) { ?>
                                    <span class="badge text-bg-success">Success</span>
                                <?php } else { ?>
                                    <span class="badge text-bg-danger">Failed</span>
                                <?php } ?>
                            </td>
                        </tr>

                        <tr>
                            <td>/uploads</td>
                            <td>
                                <?php if ($uploads_folder == true) { ?>
                                    <span class="badge text-bg-success">Success</span>
                                <?php } else { ?>
                                    <span class="badge text-bg-danger">Failed</span>
                                <?php } ?>
                            </td>
                        </tr>

                        <?php if (isset($userdata_enabled)) { ?>
                            <tr>
                                <td>/userdata</td>
                                <td>
                                    <?php if ($userdata_folder == true) { ?>
                                        <span class="badge text-bg-success">Success</span>
                                    <?php } else { ?>
                                        <span class="badge text-bg-danger">Failed</span>
                                    <?php } ?>
                                </td>
                            </tr>
                        <?php } ?>
                    </table>
                </div>
            </div>
            <div class="card">
                <div class="card-header">
                    Config Maintenance
                </div>
                <div class="card-body">
                    <?php if ($this->config->item('auth_mode') != '3') { ?>
                        <div class="alert alert-primary">
                            <div class="alert alert-danger" role="alert">
                                <span class="badge rounded-pill text-bg-warning">Warning</span> Your authentication mode is outdated and possibly unsafe
                            </div>
                            <p>Please edit your ./application/config/config.php File:</br>
                                Go to your application/config Folder and compare config.sample.php with your config.php</br></br>
                                Change <span class="badge rounded-pill text-bg-secondary">$config['auth_mode']</span> to the value <span class="badge rounded-pill text-bg-secondary">3</span> (Strongly recommended)
                            </p>
                        </div>
                    <?php
                    } else { ?>
                        <div class="mb-2">
                            <span class="badge rounded-pill text-bg-success">Ok</span> Authentication Mode is set correctly
                        </div>
                    <?php } ?>

                    <?php if (!$this->config->item('cl_multilanguage')) { ?>
                        <div class="alert alert-primary">
                            <div class="alert alert-danger" role="alert" style="margin-bottom: 0px !important;">
                                <span class="badge rounded-pill text-bg-warning">Warning</span> You didn't enabled Multilanguage support in your config.php
                            </div>
                            <p>Please edit your ./application/config/config.php File and add some rows to it:</br></br>
                                Go to your application/config Folder and compare config.sample.php with your config.php</br>
                                You'll probably find a block with language-settings. Please include this block into your current config.php
                            </p>
                        </div>

                    <?php
                    } else { ?>
                        <div class="mb-2">
                            <span class="badge rounded-pill text-bg-success">Ok</span> Multiuser-Language Support is enabled
                        </div>
                    <?php } ?>
                </div>
            </div>
            <?php if (isset($userdata_enabled)) { ?>
                <div class="card">
                    <div class="card-header">Migrate Userdata</div>
                    <div class="card-body">
                        <p>Here you can migrate existing QSL cards and eQSL cards to the new userdata folder.</p>
                        <a href="<?php echo site_url('debug/migrate_userdata'); ?>" class="btn btn-primary <?php echo $userdata_status['btn_class']; ?>"><?php echo $userdata_status['btn_text']; ?></a>
                    </div>
                </div>
            <?php } ?>
        </div>

        <div class="col">
            <div class="card">
                <div class="card-header">PHP</div>
                <div class="card-body">
                    <div class="row">
                        <div class="col border-end">
                            <p><u>Modules</u></p>
                            <table width="100%">
                                <tr>
                                    <td>php-curl</td>
                                    <td>
                                        <?php if (in_array('curl', get_loaded_extensions())) { ?>
                                            <span class="badge text-bg-success">Installed</span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">Not Installed</span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>php-mysql</td>
                                    <td>
                                        <?php if (in_array('mysqli', get_loaded_extensions())) { ?>
                                            <span class="badge text-bg-success">Installed</span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">Not Installed</span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>php-mbstring</td>
                                    <td>
                                        <?php if (in_array('mbstring', get_loaded_extensions())) { ?>
                                            <span class="badge text-bg-success">Installed</span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">Not Installed</span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>php-xml</td>
                                    <td>
                                        <?php if (in_array('xml', get_loaded_extensions())) { ?>
                                            <span class="badge text-bg-success">Installed</span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">Not Installed</span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>php-zip</td>
                                    <td>
                                        <?php if (in_array('zip', get_loaded_extensions())) { ?>
                                            <span class="badge text-bg-success">Installed</span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">Not Installed</span>
                                        <?php } ?>
                                    </td>
                                </tr>
                            </table>
                        </div>
                        <div class="col">
                            <p><u>Settings</u></p>
                            <?php
                            $max_execution_time = 600;        // Seconds
                            $max_upload_file_size = 8;      // Megabyte
                            $post_max_size = 8;                // Megabyte
                            $memory_limit = 256;            // Megabyte
                            $req_allow_url_fopen = '1';        // 1 = on
                            ?>
                            <table width="100%">
                                <tr>
                                    <td>max_execution_time</td>
                                    <td><?php echo '> ' . $max_execution_time . ' s'; ?></td>
                                    <td>
                                        <?php
                                        $maxExecutionTime = ini_get('max_execution_time');
                                        if ($maxExecutionTime >= $max_execution_time) { ?>
                                            <span class="badge text-bg-success"><?php echo $maxExecutionTime . ' s'; ?></span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-warning"><?php echo $maxExecutionTime; ?></span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>max_upload_file_size</td>
                                    <td><?php echo '> ' . $max_upload_file_size . 'M'; ?></td>
                                    <td>
                                        <?php
                                        $maxUploadFileSize = ini_get('upload_max_filesize');
                                        $maxUploadFileSizeBytes = (int)($maxUploadFileSize) * (1024 * 1024); // convert to bytes
                                        if ($maxUploadFileSizeBytes >= ($max_upload_file_size * 1024 * 1024)) { // compare with given value in bytes
                                        ?>
                                            <span class="badge text-bg-success"><?php echo $maxUploadFileSize; ?></span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-warning"><?php echo $maxUploadFileSize; ?></span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>post_max_size</td>
                                    <td><?php echo '> ' . $post_max_size . 'M'; ?></td>
                                    <td>
                                        <?php
                                        $postMaxSize = ini_get('post_max_size');
                                        $postMaxSizeBytes = (int)($postMaxSize) * (1024 * 1024); // convert to bytes
                                        if ($postMaxSizeBytes >= ($post_max_size * 1024 * 1024)) { // compare with given value in bytes
                                        ?>
                                            <span class="badge text-bg-success"><?php echo $postMaxSize; ?></span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-warning"><?php echo $postMaxSize; ?></span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>memory_limit</td>
                                    <td><?php echo '> ' . $memory_limit . 'M'; ?></td>
                                    <td>
                                        <?php
                                        $memoryLimit = ini_get('memory_limit');
                                        $memoryLimitBytes = (int)($memoryLimit) * (1024 * 1024); // convert to bytes
                                        if ($memoryLimitBytes >= ($memory_limit * 1024 * 1024)) { // compare with given value in bytes
                                        ?>
                                            <span class="badge text-bg-success"><?php echo $memoryLimit; ?></span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-warning"><?php echo $memoryLimit; ?></span>
                                        <?php } ?>
                                    </td>
                                </tr>

                                <tr>
                                    <td>allow_url_fopen</td>
                                    <td>On</td>
                                    <td>
                                        <?php
                                        $get_allow_url_fopen = ini_get('allow_url_fopen');
                                        if ($get_allow_url_fopen == $req_allow_url_fopen) {
                                        ?>
                                            <span class="badge text-bg-success">On</span>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">Off</span>
                                        <?php } ?>
                                    </td>
                                </tr>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
            <?php if (file_exists(realpath(APPPATH . '../') . '/.git')) { ?>
                <?php
                //Below is a failsafe where git commands fail
                try {
                    $commitHash = trim(exec('git log --pretty="%H" -n1 HEAD'));    // Get last LOCAL commit of HEAD
                    $branch = '';
                    $remote = '';
                    $owner = '';
                    // only proceed here if git can actually be executed
                    if ($commitHash != "") {
                        $commitDate = trim(exec('git log --pretty="%ci" -n1 HEAD'));
                        $line = trim(exec('git log -n 1 --pretty=%D HEAD'));
                        $pieces = explode(', ', $line);
                        $lastFetch = trim(exec('stat -c %Y ' . realpath(APPPATH . '../') . '/.git/FETCH_HEAD'));
                        //Below is a failsafe for systems without the stat command
                        try {
                            $dt = new DateTime("@$lastFetch");
                        } catch (Exception $e) {
                            $dt = new DateTime(date("Y-m-d H:i:s"));
                        }
                        if (isset($pieces[1])) {
                            $remote = substr($pieces[1], 0, strpos($pieces[1], '/'));
                            $branch = trim(exec('git rev-parse --abbrev-ref HEAD')); // Get ONLY Name of the Branch we're on
                            $url = trim(exec('git remote get-url ' . $remote));
                            if (strpos($url, 'https://github.com') !== false) {
                                $owner = preg_replace('/https:\/\/github\.com\/(\w+)\/[w|W]avelog\.git/', '$1', $url);
                            } else if (strpos($url, 'git@github.com') !== false) {
                                $owner = preg_replace('/git@github\.com:(\w+)\/[w|W]avelog\.git/', '$1', $url);
                            }
                        }
                        $tag = trim(exec('git describe --tags ' . $commitHash));
                    }
                } catch (\Throwable $th) {
                    $commitHash = "";
                }
                ?>

                <?php if ($commitHash != "") { ?>
                    <div class="card">
                        <div class="card-header">Git Information</div>
                        <div class="card-body">
                            <table width="100%">
                                <tr>
                                    <td>Branch</td>
                                    <td>
                                        <?php if ($branch != "") { ?>
                                            <?php if ($owner != "") { ?>
                                                <a target="_blank" href="https://github.com/<?php echo $owner; ?>/Wavelog/tree/<?php echo $branch ?>">
                                                <?php } ?>
                                                <span class="badge text-bg-success"><?php echo $branch; ?></span>
                                                <?php if ($owner != "") { ?>
                                                </a>
                                            <?php } ?>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">n/a</span>
                                        <?php } ?>
                                    </td>
                                </tr>
                                <tr>
                                <tr>
                                    <td>Commit</td>
                                    <td>
                                        <?php if ($commitHash != "") { ?>
                                            <a target="_blank" href="https://github.com/<?php echo $owner; ?>/Wavelog/commit/<?php echo $commitHash ?>"><span class="badge text-bg-success"><?php echo substr($commitHash, 0, 8); ?></span></a>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">n/a</span>
                                        <?php } ?>
                                    </td>
                                </tr>
                                <tr>
                                    <td>Tag</td>
                                    <td>
                                        <?php if ($commitHash != "") { ?>
                                            <a target="_blank" href="https://github.com/wavelog/wavelog/releases/tag/<?php echo substr($tag, 0, strpos($tag, '-')); ?>"><span class="badge text-bg-success"><?php echo $tag; ?></span></a>
                                        <?php } else { ?>
                                            <span class="badge text-bg-danger">n/a</span>
                                        <?php } ?>
                                    </td>
                                </tr>
                                <tr>
                                    <td>Last Fetch</td>
                                    <td>
                                        <?php echo ($dt == null ? '' : $dt->format(\DateTime::RFC850)); ?>
                                    </td>
                                </tr>
                            </table>
                            <div class="border-bottom border-top pt-2 pb-2 mt-2 mb-2" id="version_check">
                                <p id="version_check_result"></p>
                                <small id="last_version_check"></small>
                            </div>
                            <div class="row">
                                <div class="col">
                                    <button class="btn btn-primary me-3 ld-ext-right" onClick="update_version_check('<?php echo $branch; ?>');" id="version_check_button">Check for new version<div class="ld ld-ring ld-spin"></div></button>
                                    <a class="btn btn-primary" style="display: none;" id="version_update_button" href="debug/selfupdate" onClick='this.classList.add("disabled");'>Update now</a>
                                </div>
                            </div>
                        </div>
                    </div>
            <?php }
            }

            // Get Date format
            if ($this->session->userdata('user_date_format')) {
                // If Logged in and session exists
                $custom_date_format = $this->session->userdata('user_date_format');
            } else {
                // Get Default date format from /config/wavelog.php
                $custom_date_format = $this->config->item('qso_date_format');
            }
            ?>
            <div class="card">
                <div class="card-header">File download date</div>
                <div class="card-body">
                    <table width="100%" class="table-sm table table-hover table-striped">
                        <thead>
                            <th>File</th>
                            <th>Last update</th>
                            <th></th>
                        </thead>
                        <tr>
                            <td>DXCC update from Club Log</td>
                            <td><?php echo $dxcc_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update'); ?>">Update</a></td>

                        </tr>
                        <tr>
                            <td>DOK file download</td>
                            <td><?php echo $dok_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update/update_dok'); ?>">Update</a></td>
                        </tr>
                        <tr>
                            <td>LoTW users download</td>
                            <td><?php echo $lotw_user_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update/lotw_users'); ?>">Update</a></td>
                        </tr>
                        <tr>
                            <td>POTA file download</td>
                            <td><?php echo $pota_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update/update_pota'); ?>">Update</a></td>
                        </tr>
                        <tr>
                            <td>SCP file download</td>
                            <td><?php echo $scp_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update/update_clublog_scp'); ?>">Update</a></td>
                        </tr>
                        <tr>
                            <td>SOTA file download</td>
                            <td><?php echo $sota_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update/update_sota'); ?>">Update</a></td>
                        </tr>
                        <tr>
                            <td>WWFF file download</td>
                            <td><?php echo $wwff_update->last_run ?? 'never'; ?></td>
                            <td><a class="btn btn-sm btn-primary" href="<?php echo site_url('update/update_wwff'); ?>">Update</a></td>
                        </tr>
                    </table>
                </div>
            </div>
            <div class="card" style="margin-bottom: 15px;">
                <div class="card-header">
                    QSO-DB Maintenance
                </div>
                <?php if (!empty($qsos_with_no_station_id)) { ?>
                    <div class="alert alert-danger" role="alert" style="margin-bottom: 0px !important;">
                        <span class="badge rounded-pill text-bg-warning">Warning</span> The Database contains <?php echo count($qsos_with_no_station_id); ?> QSO<?php echo count($qsos_with_no_station_id) > 1 ? 's' : '' ?> without a station-profile (location)<br />
                    </div>
                    <div class="card-body">
                        <div class?"table-responsive">
                            <table id="unasigned_qsos_table" class="table table-sm table-striped">
                                <thead>
                                    <tr>
                                        <th scope="col"><input type="checkbox" onClick="toggleAll(this)"></th>
                                        <th scope="col">Date</th>
                                        <th scope="col">Time</th>
                                        <th scope="col">Call</th>
                                        <th scope="col">Mode</th>
                                        <th scope="col">Band</th>
                                        <th scope="col">Station Callsign</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php if ($this->session->userdata('user_date_format')) {
                                        $custom_date_format = $this->session->userdata('user_date_format');
                                    } else {
                                        $custom_date_format = 'd.m.Y';
                                    }
                                    foreach ($qsos_with_no_station_id as $qso) {
                                        echo '<tr>';
                                        echo '<td><input type="checkbox" id="' . $qso->COL_PRIMARY_KEY . '" name="cBox[]" value="' . $qso->COL_PRIMARY_KEY . '"></td>';
                                        $timestamp = strtotime($qso->COL_TIME_ON);
                                        echo '<td>' . date($custom_date_format, $timestamp) . '</td>';
                                        $timestamp = strtotime($qso->COL_TIME_ON);
                                        echo '<td>' . date('H:i', $timestamp) . '</td>';
                                        echo '<td>' . $qso->COL_CALL . '</td>';
                                        echo '<td>' . $qso->COL_MODE . '</td>';
                                        echo '<td>' . $qso->COL_BAND . '</td>';
                                        echo '<td>' . $qso->COL_STATION_CALLSIGN . '</td>';
                                        echo '</tr>';
                                    } ?>
                                </tbody>
                            </table>
                        </div>
                        <p class="card-text">Please mark QSOs and reassign them to an existing station location:</p>


                        <div class="table-responsive">
                            <table id="station_locations_table" class="table table-sm table-striped">
                                <thead>
                                    <tr>
                                        <th scope="col">Call</th>
                                        <th scope="col">Target Location</th>
                                        <th scope="col">Reassign</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php
                                    foreach ($calls_wo_sid as $call) {
                                        echo '<tr><td><div id="station_call">' . $call['COL_STATION_CALLSIGN'] . '</div></td><td><select name="station_profile" id="station_profile" onChange="updateCallsign(this)">';
                                        $options = '';
                                        foreach ($stations->result() as $station) {
                                            $options .= '<option value=' . $station->station_id . '>' . $station->station_profile_name . ' (' . $station->station_callsign . ')</option>';
                                        }
                                        echo $options . '</select></td><td><button class="btn btn-warning" onClick="reassign(\'' . $call['COL_STATION_CALLSIGN'] . '\',$(\'#station_profile option:selected\').val());"><i class="fas fa-sync"></i> Reassign</a></button></td></tr>';
                                    } ?>
                                </tbody>
                            </table>
                        </div>
                    </div>
                <?php
                } else { ?>
                    <div class="alert alert-secondary" role="alert" style="margin-bottom: 0px !important;">
                        <span class="badge rounded-pill text-bg-success">Everything ok</span> Every QSO in your Database is assigned to a station-profile (location)
                    </div>
                <?php } ?>
            </div>
        </div>
    </div>

</div>

<script>
    <?php if (file_exists(realpath(APPPATH . '../') . '/.git')) { ?>
        var local_branch = '<?php echo $branch; ?>';
    <?php } else { ?>
        var local_branch = 'n/a';
    <?php } ?>
</script>
