kopia lustrzana https://github.com/magicbug/Cloudlog
Porównaj commity
23 Commity
d0057cc343
...
79fb3f4599
Autor | SHA1 | Data |
---|---|---|
DJ3CE | 79fb3f4599 | |
Peter Goodhall | 5b70a1b61b | |
Peter Goodhall | d7c6dbd29f | |
Peter Goodhall | 04ba3e733b | |
Peter Goodhall | f297618cb0 | |
Peter Goodhall | f46b550917 | |
Peter Goodhall | dc5dd22766 | |
Peter Goodhall | c7718d675c | |
Peter Goodhall | 0bc7f44e26 | |
Peter Goodhall | 3fe5159489 | |
Ciemon | b551ba3a30 | |
Peter Goodhall | 99e958d48c | |
Peter Goodhall | d77bb118ea | |
Peter Goodhall | e44ea531cc | |
Peter Goodhall | 18e46ad7a1 | |
Patrick Burns | 5dcebe82a6 | |
Peter Goodhall | 96fdf31588 | |
Patrick Burns | 365671322b | |
DJ3CE | f03ad1d0b0 | |
DJ3CE | 181dcbe53c | |
DJ3CE | aaf7f994aa | |
DJ3CE | 07ba06d104 | |
DJ3CE | 15e2e10528 |
|
@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE;
|
|||
|
|
||||
*/
|
||||
|
||||
$config['migration_version'] = 176;
|
||||
$config['migration_version'] = 177;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
@ -55,7 +55,7 @@ class Lookup extends CI_Controller {
|
|||
|
||||
public function scp() {
|
||||
if($_POST['callsign']) {
|
||||
$uppercase_callsign = strtoupper($_POST['callsign']);
|
||||
$uppercase_callsign = str_replace('Ø', '0', strtoupper($_POST['callsign']));
|
||||
}
|
||||
|
||||
// SCP results from logbook
|
||||
|
@ -106,7 +106,7 @@ class Lookup extends CI_Controller {
|
|||
|
||||
foreach ($arCalls as $strCall)
|
||||
{
|
||||
echo " " . $strCall . " ";
|
||||
echo $strCall . " ";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -59,6 +59,61 @@ class User extends CI_Controller {
|
|||
$data['timezones'] = $this->user_model->timezones();
|
||||
$data['language'] = 'english';
|
||||
|
||||
// Set defaults
|
||||
$data['dashboard_upcoming_dx_card'] = false;
|
||||
$data['dashboard_qslcard_card'] = false;
|
||||
$data['dashboard_eqslcard_card'] = false;
|
||||
$data['dashboard_lotw_card'] = false;
|
||||
$data['dashboard_vuccgrids_card'] = false;
|
||||
|
||||
$dashboard_options = $this->user_options_model->get_options('dashboard')->result();
|
||||
|
||||
foreach ($dashboard_options as $item) {
|
||||
$option_name = $item->option_name;
|
||||
$option_key = $item->option_key;
|
||||
$option_value = $item->option_value;
|
||||
|
||||
if ($option_name == 'dashboard_upcoming_dx_card' && $option_key == 'enabled') {
|
||||
if($item->option_value == 'true') {
|
||||
$data['dashboard_upcoming_dx_card'] = true;
|
||||
} else {
|
||||
$data['dashboard_upcoming_dx_card'] = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($option_name == 'dashboard_qslcards_card' && $option_key == 'enabled') {
|
||||
if($item->option_value == 'true') {
|
||||
$data['dashboard_qslcard_card'] = true;
|
||||
} else {
|
||||
$data['dashboard_qslcard_card'] = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($option_name == 'dashboard_eqslcards_card' && $option_key == 'enabled') {
|
||||
if($item->option_value == 'true') {
|
||||
$data['dashboard_eqslcard_card'] = true;
|
||||
} else {
|
||||
$data['dashboard_eqslcard_card'] = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($option_name == 'dashboard_lotw_card' && $option_key == 'enabled') {
|
||||
if($item->option_value == 'true') {
|
||||
$data['dashboard_lotw_card'] = true;
|
||||
} else {
|
||||
$data['dashboard_lotw_card'] = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($option_name == 'dashboard_vuccgrids_card' && $option_key == 'enabled') {
|
||||
if($item->option_value == 'true') {
|
||||
$data['dashboard_vuccgrids_card'] = true;
|
||||
} else {
|
||||
$data['dashboard_vuccgrids_card'] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->form_validation->run() == FALSE) {
|
||||
$data['page_title'] = "Add User";
|
||||
$data['measurement_base'] = $this->config->item('measurement_base');
|
||||
|
@ -757,6 +812,37 @@ class User extends CI_Controller {
|
|||
$this->load->view('interface_assets/footer');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Deletes a user by their ID.
|
||||
*
|
||||
* This function first loads the 'user_model'. It then checks if the current user has the authorization level of 99.
|
||||
* If not, it sets a flash message and redirects the user to the dashboard.
|
||||
*
|
||||
* If the user is authorized, it gets the user to be deleted by their ID from the URI segment 3.
|
||||
* It then calls the 'delete' function from the 'user_model' with the user ID as a parameter.
|
||||
*
|
||||
* If the 'delete' function executes successfully, it sets the HTTP status code to 200.
|
||||
* If the 'delete' function fails, it sets the HTTP status code to 500.
|
||||
*
|
||||
* @param int $id The ID of the user to delete.
|
||||
*/
|
||||
function delete_new($id) {
|
||||
$this->load->model('user_model');
|
||||
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
||||
$query = $this->user_model->get_by_id($this->uri->segment(3));
|
||||
|
||||
// call $this->user_model->delete and if no errors return true
|
||||
if ($this->user_model->delete($id)) {
|
||||
// request responds with a 200 status code and empty content
|
||||
$this->output->set_status_header(200);
|
||||
} else {
|
||||
// request responds with a 500 status code and empty content
|
||||
$this->output->set_status_header(500);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function delete() {
|
||||
$this->load->model('user_model');
|
||||
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
||||
|
|
|
@ -82,7 +82,7 @@ class Visitor extends CI_Controller {
|
|||
$config['base_url'] = base_url().'index.php/visitor/'. $public_slug . '/index';
|
||||
$config['total_rows'] = $this->logbook_model->total_qsos($logbooks_locations_array);
|
||||
$config['per_page'] = '25';
|
||||
$config['num_links'] = $this->logbook_model->total_qsos($logbooks_locations_array) / 25;
|
||||
$config['num_links'] = 6;
|
||||
$config['full_tag_open'] = '<ul class="pagination">';
|
||||
$config['full_tag_close'] = '</ul>';
|
||||
$config['attributes'] = ['class' => 'page-link'];
|
||||
|
|
|
@ -30,7 +30,7 @@ class Workabledxcc extends CI_Controller
|
|||
public function dxcclist()
|
||||
{
|
||||
|
||||
$json = file_get_contents('https://cdn.cloudlog.org/read_ng3k_dxped_list.php');
|
||||
$json = file_get_contents($this->optionslib->get_option('dxped_url'));
|
||||
|
||||
// Decode the JSON data into a PHP array
|
||||
$dataResult = json_decode($json, true);
|
||||
|
|
|
@ -2,22 +2,26 @@
|
|||
|
||||
if (!function_exists('folderSize')) {
|
||||
function folderSize($dir){
|
||||
$count_size = 0;
|
||||
$count = 0;
|
||||
$dir_array = scandir($dir);
|
||||
foreach($dir_array as $key=>$filename){
|
||||
if($filename!=".." && $filename!="."){
|
||||
if(is_dir($dir."/".$filename)){
|
||||
$new_foldersize = folderSize($dir."/".$filename);
|
||||
$count_size = $count_size+ $new_foldersize;
|
||||
}else if(is_file($dir."/".$filename)){
|
||||
$count_size = $count_size + filesize($dir."/".$filename);
|
||||
$count++;
|
||||
if (is_dir($dir)) {
|
||||
$count_size = 0;
|
||||
$count = 0;
|
||||
$dir_array = scandir($dir);
|
||||
foreach($dir_array as $key=>$filename){
|
||||
if($filename!=".." && $filename!="."){
|
||||
if(is_dir($dir."/".$filename)){
|
||||
$new_foldersize = folderSize($dir."/".$filename);
|
||||
$count_size = $count_size+ $new_foldersize;
|
||||
}else if(is_file($dir."/".$filename)){
|
||||
$count_size = $count_size + filesize($dir."/".$filename);
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $count_size;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
return $count_size;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('sizeFormat')) {
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
* This migration adds a dxped_url-key to the options table, to configure
|
||||
* the endpoint, from where the dxpedition-data is being loaded.
|
||||
*/
|
||||
|
||||
class Migration_add_dxped_url_option extends CI_Migration {
|
||||
|
||||
public function up()
|
||||
{
|
||||
$data = array(
|
||||
array('option_name' => "dxped_url", 'option_value' => "https://cdn.cloudlog.org/read_ng3k_dxped_list.php", 'autoload' => "yes"),
|
||||
);
|
||||
|
||||
$this->db->insert_batch('options', $data);
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
// No option to down
|
||||
}
|
||||
}
|
|
@ -185,7 +185,8 @@ class User_Model extends CI_Model {
|
|||
'user_qso_end_times' => xss_clean($user_qso_end_times),
|
||||
'user_quicklog' => xss_clean($user_quicklog),
|
||||
'user_quicklog_enter' => xss_clean($user_quicklog_enter),
|
||||
'language' => xss_clean($language)
|
||||
'language' => xss_clean($language),
|
||||
'user_eqsl_qth_nickname' => "",
|
||||
);
|
||||
|
||||
// Check the password is valid
|
||||
|
|
|
@ -5,7 +5,7 @@ class Workabledxcc_model extends CI_Model
|
|||
|
||||
public function GetThisWeek()
|
||||
{
|
||||
$json = file_get_contents('https://cdn.cloudlog.org/read_ng3k_dxped_list.php');
|
||||
$json = file_get_contents($this->optionslib->get_option('dxped_url'));
|
||||
|
||||
// Step 2: Convert the JSON data to an array.
|
||||
$data = json_decode($json, true);
|
||||
|
|
|
@ -1,35 +1,85 @@
|
|||
<?php
|
||||
function echo_table_header_col($name) {
|
||||
switch($name) {
|
||||
case 'Mode': echo lang('gen_hamradio_mode'); break;
|
||||
case 'RSTS': echo lang('gen_hamradio_rsts'); break;
|
||||
case 'RSTR': echo lang('gen_hamradio_rstr'); break;
|
||||
case 'Country': echo lang('general_word_country'); break;
|
||||
case 'IOTA': echo lang('gen_hamradio_iota'); break;
|
||||
case 'SOTA': echo lang('gen_hamradio_sota'); break;
|
||||
case 'WWFF': echo lang('gen_hamradio_wwff'); break;
|
||||
case 'POTA': echo lang('gen_hamradio_pota'); break;
|
||||
case 'State': echo lang('gen_hamradio_state'); break;
|
||||
case 'Grid': echo lang('gen_hamradio_gridsquare'); break;
|
||||
case 'Distance': echo lang('gen_hamradio_distance'); break;
|
||||
case 'Band': echo lang('gen_hamradio_band'); break;
|
||||
case 'Frequency': echo lang('gen_hamradio_frequency'); break;
|
||||
case 'Operator': echo lang('gen_hamradio_operator'); break;
|
||||
case 'Location': echo lang('cloudlog_station_profile'); break;
|
||||
case 'Name': echo lang('general_word_name'); break;
|
||||
}
|
||||
}
|
||||
|
||||
function echo_table_col($row, $name) {
|
||||
switch($name) {
|
||||
function echo_table_header_col($name)
|
||||
{
|
||||
switch ($name) {
|
||||
case 'Mode':
|
||||
echo $row->COL_SUBMODE==null?$row->COL_MODE:$row->COL_SUBMODE;
|
||||
echo lang('gen_hamradio_mode');
|
||||
break;
|
||||
case 'RSTS':
|
||||
echo $row->COL_RST_SENT; if ($row->COL_STX) { echo ' <span data-bs-toggle="tooltip" title="'.($row->COL_CONTEST_ID!=""?$row->COL_CONTEST_ID:"n/a").'" class="badge text-bg-light">'; printf("%03d", $row->COL_STX); echo '</span>';} if ($row->COL_STX_STRING) { echo ' <span data-bs-toggle="tooltip" title="'.($row->COL_CONTEST_ID!=""?$row->COL_CONTEST_ID:"n/a").'" class="badge text-bg-light">' . $row->COL_STX_STRING . '</span>';};
|
||||
echo lang('gen_hamradio_rsts');
|
||||
break;
|
||||
case 'RSTR':
|
||||
echo $row->COL_RST_RCVD; if ($row->COL_SRX) { echo ' <span data-bs-toggle="tooltip" title="'.($row->COL_CONTEST_ID!=""?$row->COL_CONTEST_ID:"n/a").'" class="badge text-bg-light">'; printf("%03d", $row->COL_SRX); echo '</span>';} if ($row->COL_SRX_STRING) { echo ' <span data-bs-toggle="tooltip" title="'.($row->COL_CONTEST_ID!=""?$row->COL_CONTEST_ID:"n/a").'" class="badge text-bg-light">' . $row->COL_SRX_STRING . '</span>';};
|
||||
echo lang('gen_hamradio_rstr');
|
||||
break;
|
||||
case 'Country':
|
||||
echo lang('general_word_country');
|
||||
break;
|
||||
case 'IOTA':
|
||||
echo lang('gen_hamradio_iota');
|
||||
break;
|
||||
case 'SOTA':
|
||||
echo lang('gen_hamradio_sota');
|
||||
break;
|
||||
case 'WWFF':
|
||||
echo lang('gen_hamradio_wwff');
|
||||
break;
|
||||
case 'POTA':
|
||||
echo lang('gen_hamradio_pota');
|
||||
break;
|
||||
case 'State':
|
||||
echo lang('gen_hamradio_state');
|
||||
break;
|
||||
case 'Grid':
|
||||
echo lang('gen_hamradio_gridsquare');
|
||||
break;
|
||||
case 'Distance':
|
||||
echo lang('gen_hamradio_distance');
|
||||
break;
|
||||
case 'Band':
|
||||
echo lang('gen_hamradio_band');
|
||||
break;
|
||||
case 'Frequency':
|
||||
echo lang('gen_hamradio_frequency');
|
||||
break;
|
||||
case 'Operator':
|
||||
echo lang('gen_hamradio_operator');
|
||||
break;
|
||||
case 'Location':
|
||||
echo lang('cloudlog_station_profile');
|
||||
break;
|
||||
case 'Name':
|
||||
echo lang('general_word_name');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function echo_table_col($row, $name)
|
||||
{
|
||||
switch ($name) {
|
||||
case 'Mode':
|
||||
echo $row->COL_SUBMODE == null ? $row->COL_MODE : $row->COL_SUBMODE;
|
||||
break;
|
||||
case 'RSTS':
|
||||
echo $row->COL_RST_SENT;
|
||||
if ($row->COL_STX) {
|
||||
echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">';
|
||||
printf("%03d", $row->COL_STX);
|
||||
echo '</span>';
|
||||
}
|
||||
if ($row->COL_STX_STRING) {
|
||||
echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">' . $row->COL_STX_STRING . '</span>';
|
||||
};
|
||||
break;
|
||||
case 'RSTR':
|
||||
echo $row->COL_RST_RCVD;
|
||||
if ($row->COL_SRX) {
|
||||
echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">';
|
||||
printf("%03d", $row->COL_SRX);
|
||||
echo '</span>';
|
||||
}
|
||||
if ($row->COL_SRX_STRING) {
|
||||
echo ' <span data-bs-toggle="tooltip" title="' . ($row->COL_CONTEST_ID != "" ? $row->COL_CONTEST_ID : "n/a") . '" class="badge text-bg-light">' . $row->COL_SRX_STRING . '</span>';
|
||||
};
|
||||
break;
|
||||
case 'Country':
|
||||
echo ucwords(strtolower(($row->COL_COUNTRY)));
|
||||
|
@ -47,13 +97,17 @@ function echo_table_col($row, $name) {
|
|||
echo ($row->COL_POTA_REF);
|
||||
break;
|
||||
case 'Grid':
|
||||
echo strlen($row->COL_GRIDSQUARE)==0?$row->COL_VUCC_GRIDS:$row->COL_GRIDSQUARE;
|
||||
echo strlen($row->COL_GRIDSQUARE) == 0 ? $row->COL_VUCC_GRIDS : $row->COL_GRIDSQUARE;
|
||||
break;
|
||||
case 'Distance':
|
||||
echo ($row->COL_DISTANCE ? $row->COL_DISTANCE . ' km' : '');
|
||||
break;
|
||||
case 'Band':
|
||||
if($row->COL_SAT_NAME != null) { echo $row->COL_SAT_NAME; } else { echo strtolower($row->COL_BAND); };
|
||||
if ($row->COL_SAT_NAME != null) {
|
||||
echo $row->COL_SAT_NAME;
|
||||
} else {
|
||||
echo strtolower($row->COL_BAND);
|
||||
};
|
||||
break;
|
||||
case 'State':
|
||||
echo ($row->COL_STATE);
|
||||
|
@ -62,7 +116,26 @@ function echo_table_col($row, $name) {
|
|||
echo ($row->COL_OPERATOR);
|
||||
break;
|
||||
case 'Frequency':
|
||||
if($row->COL_SAT_NAME != null) { echo '<a href="https://db.satnogs.org/search/?q='.$row->COL_SAT_NAME.'" target="_blank">'; if ($row->COL_FREQ != null) { echo ' <span data-bs-toggle="tooltip" title="'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'">'.$row->COL_SAT_NAME.'</span>'; } else { echo $row->COL_SAT_NAME; } echo '</a></td>'; } else { if ($row->COL_FREQ != null) { echo ' <span data-bs-toggle="tooltip" title="'.$row->COL_BAND.'">'.$ci->frequency->hz_to_mhz($row->COL_FREQ).'</span>'; } else { echo strtolower($row->COL_BAND); } };
|
||||
$CI =& get_instance();
|
||||
$CI->load->library('frequency');
|
||||
|
||||
if ($row->COL_SAT_NAME != null) {
|
||||
echo '<a href="https://db.satnogs.org/search/?q=' . $row->COL_SAT_NAME . '" target="_blank">';
|
||||
|
||||
if ($row->COL_FREQ != null && $CI->frequency->hz_to_mhz($row->COL_FREQ) != null) {
|
||||
echo ' <span data-bs-toggle="tooltip" title="' . $CI->frequency->hz_to_mhz($row->COL_FREQ) . '">' . $row->COL_SAT_NAME . '</span>';
|
||||
} else {
|
||||
echo $row->COL_SAT_NAME;
|
||||
}
|
||||
|
||||
echo '</a></td>';
|
||||
} else {
|
||||
if ($row->COL_FREQ != null && $CI->frequency->hz_to_mhz($row->COL_FREQ) != null) {
|
||||
echo ' <span data-bs-toggle="tooltip" title="' . $row->COL_BAND . '">' . $CI->frequency->hz_to_mhz($row->COL_FREQ) . '</span>';
|
||||
} else {
|
||||
echo strtolower($row->COL_BAND);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'State':
|
||||
echo ($row->COL_STATE);
|
||||
|
@ -74,7 +147,7 @@ function echo_table_col($row, $name) {
|
|||
echo ($row->station_profile_name);
|
||||
break;
|
||||
case 'Name':
|
||||
echo ($row->COL_NAME);
|
||||
echo ($row->COL_NAME);
|
||||
break;
|
||||
default:
|
||||
echo '(unknown col)';
|
||||
|
@ -82,323 +155,331 @@ function echo_table_col($row, $name) {
|
|||
}
|
||||
?>
|
||||
<div class="table-responsive">
|
||||
<table style="width:100%" class="table table-sm tablewas table-bordered table-hover table-striped table-condensed text-center">
|
||||
<thead>
|
||||
<tr class="titles">
|
||||
<th><?php echo lang('general_word_date'); ?></th>
|
||||
<?php if(($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
|
||||
<th><?php echo lang('general_word_time'); ?></th>
|
||||
<?php } ?>
|
||||
<th><?php echo lang('gen_hamradio_call'); ?></th>
|
||||
<?php
|
||||
$ci =& get_instance();
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column1')==""?'Mode':$this->session->userdata('user_column1'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column2')==""?'RSTS':$this->session->userdata('user_column2'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column3')==""?'RSTR':$this->session->userdata('user_column3'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column4')==""?'Band':$this->session->userdata('user_column4'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column5')==""?'Country':$this->session->userdata('user_column5'));
|
||||
echo '</th>';
|
||||
<table style="width:100%" class="table table-sm tablewas table-bordered table-hover table-striped table-condensed text-center">
|
||||
<thead>
|
||||
<tr class="titles">
|
||||
<th><?php echo lang('general_word_date'); ?></th>
|
||||
<?php if (($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
|
||||
<th><?php echo lang('general_word_time'); ?></th>
|
||||
<?php } ?>
|
||||
<th><?php echo lang('gen_hamradio_call'); ?></th>
|
||||
<?php
|
||||
$ci = &get_instance();
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column1') == "" ? 'Mode' : $this->session->userdata('user_column1'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column2') == "" ? 'RSTS' : $this->session->userdata('user_column2'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column3') == "" ? 'RSTR' : $this->session->userdata('user_column3'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column4') == "" ? 'Band' : $this->session->userdata('user_column4'));
|
||||
echo '</th>';
|
||||
echo '<th>';
|
||||
echo_table_header_col($this->session->userdata('user_column5') == "" ? 'Country' : $this->session->userdata('user_column5'));
|
||||
echo '</th>';
|
||||
|
||||
if(($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<th>QSL</th>
|
||||
<?php if($this->session->userdata('user_eqsl_name') != "") { ?>
|
||||
<th>eQSL</th>
|
||||
if (($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<th>QSL</th>
|
||||
<?php if ($this->session->userdata('user_eqsl_name') != "") { ?>
|
||||
<th>eQSL</th>
|
||||
<?php } ?>
|
||||
<?php if ($this->session->userdata('user_lotw_name') != "") { ?>
|
||||
<th>LoTW</th>
|
||||
<?php } ?>
|
||||
<?php if ($this->session->userdata('hasQrzKey') != "") { ?>
|
||||
<th>QRZ</th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php if($this->session->userdata('user_lotw_name') != "") { ?>
|
||||
<th>LoTW</th>
|
||||
<?php } ?>
|
||||
<?php if($this->session->userdata('hasQrzKey') != "") { ?>
|
||||
<th>QRZ</th>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<th><?php echo lang('gen_hamradio_station'); ?></th>
|
||||
<?php if(($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<th></th>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $i = 0; foreach ($results->result() as $row) { ?>
|
||||
<?php if (($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<th></th>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $i = 0;
|
||||
foreach ($results->result() as $row) { ?>
|
||||
|
||||
<?php
|
||||
<?php
|
||||
// Get Date format
|
||||
if($this->session->userdata('user_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/cloudlog.php
|
||||
$custom_date_format = $this->config->item('qso_date_format');
|
||||
}
|
||||
?>
|
||||
<?php echo '<tr class="tr'.($i & 1).'" id="qso_'. $row->COL_PRIMARY_KEY .'">'; ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date($custom_date_format, $timestamp); ?></td>
|
||||
<?php if(($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date('H:i', $timestamp); ?></td>
|
||||
<?php } ?>
|
||||
<td>
|
||||
<a id="edit_qso" href="javascript:displayQso(<?php echo $row->COL_PRIMARY_KEY; ?>)"><?php echo str_replace("0","Ø",strtoupper($row->COL_CALL)); ?></a>
|
||||
</td>
|
||||
<?php
|
||||
|
||||
echo '<td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column1')==""?'Mode':$this->session->userdata('user_column1'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column2')==""?'RSTS':$this->session->userdata('user_column2'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column3')==""?'RSTR':$this->session->userdata('user_column3'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column4')==""?'Band':$this->session->userdata('user_column4'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column5')==""?'Country':$this->session->userdata('user_column5'));
|
||||
echo '</td>';
|
||||
if(($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
|
||||
<?php
|
||||
echo '<td id="qsl_'.$row->COL_PRIMARY_KEY.'" style=\'text-align: center\' class="qsl">';
|
||||
echo '<span ';
|
||||
if ($row->COL_QSL_SENT != "N") {
|
||||
if ($row->COL_QSLSDATE != null) {
|
||||
$timestamp = ' '.date($custom_date_format, strtotime($row->COL_QSLSDATE));
|
||||
} else {
|
||||
$timestamp = '';
|
||||
}
|
||||
switch ($row->COL_QSL_SENT) {
|
||||
case "Y":
|
||||
echo "class=\"qsl-green\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_sent').$timestamp;
|
||||
break;
|
||||
case "Q":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_queued').$timestamp;
|
||||
break;
|
||||
case "R":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_requested').$timestamp;
|
||||
break;
|
||||
case "I":
|
||||
echo "class=\"qsl-grey\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_invalid_ignore').$timestamp;
|
||||
break;
|
||||
default:
|
||||
echo "class=\"qsl-red";
|
||||
break;
|
||||
}
|
||||
} else { echo "class=\"qsl-red"; }
|
||||
if ($row->COL_QSL_SENT_VIA != "") {
|
||||
switch ($row->COL_QSL_SENT_VIA) {
|
||||
case "B":
|
||||
echo " (".lang('general_word_qslcard_bureau').")";
|
||||
break;
|
||||
case "D":
|
||||
echo " (".lang('general_word_qslcard_direct').")";
|
||||
break;
|
||||
case "M":
|
||||
echo " (".lang('general_word_qslcard_via').": ".($row->COL_QSL_VIA!="" ? $row->COL_QSL_VIA:"n/a").")";
|
||||
break;
|
||||
case "E":
|
||||
echo " (".lang('general_word_qslcard_electronic').")";
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '">▲</span>';
|
||||
echo '<span ';
|
||||
if ($row->COL_QSL_RCVD != "N") {
|
||||
if ($row->COL_QSLRDATE != null) {
|
||||
$timestamp = ' '.date($custom_date_format, strtotime($row->COL_QSLRDATE));
|
||||
} else {
|
||||
$timestamp = '';
|
||||
}
|
||||
switch ($row->COL_QSL_RCVD) {
|
||||
case "Y":
|
||||
echo "class=\"qsl-green\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_received').$timestamp;
|
||||
break;
|
||||
case "Q":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_queued').$timestamp;
|
||||
break;
|
||||
case "R":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_requested').$timestamp;
|
||||
break;
|
||||
case "I":
|
||||
echo "class=\"qsl-grey\" data-bs-toggle=\"tooltip\" title=\"".lang('general_word_invalid_ignore').$timestamp;
|
||||
break;
|
||||
default:
|
||||
echo "class=\"qsl-red";
|
||||
break;
|
||||
}
|
||||
} else { echo "class=\"qsl-red"; }
|
||||
if ($row->COL_QSL_RCVD_VIA != "") {
|
||||
switch ($row->COL_QSL_RCVD_VIA) {
|
||||
case "B":
|
||||
echo " (".lang('general_word_qslcard_bureau').")";
|
||||
break;
|
||||
case "D":
|
||||
echo " (".lang('general_word_qslcard_direct').")";
|
||||
break;
|
||||
case "M":
|
||||
echo " (Manager)";
|
||||
break;
|
||||
case "E":
|
||||
echo " (".lang('general_word_qslcard_electronic').")";
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '">▼</span>';
|
||||
?>
|
||||
<?php if ($this->session->userdata('user_eqsl_name') != ""){
|
||||
echo '<td style=\'text-align: center\' class="eqsl">';
|
||||
echo '<span ';
|
||||
if ($row->COL_EQSL_QSL_SENT == "Y") {
|
||||
echo "title=\"".lang('eqsl_short')." ".lang('general_word_sent');
|
||||
if ($row->COL_EQSL_QSLSDATE != null) {
|
||||
$timestamp = strtotime($row->COL_EQSL_QSLSDATE);
|
||||
echo " ".($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="eqsl-';
|
||||
echo ($row->COL_EQSL_QSL_SENT=='Y')?'green':'red';
|
||||
echo '">▲</span>';
|
||||
|
||||
echo '<span ';
|
||||
if ($row->COL_EQSL_QSL_RCVD == "Y") {
|
||||
echo "title=\"".lang('eqsl_short')." ".lang('general_word_received');
|
||||
if ($row->COL_EQSL_QSLRDATE != null) {
|
||||
$timestamp = strtotime($row->COL_EQSL_QSLRDATE);
|
||||
echo " ".($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="eqsl-';
|
||||
echo ($row->COL_EQSL_QSL_RCVD=='Y')?'green':'red';
|
||||
echo '">';
|
||||
if($row->COL_EQSL_QSL_RCVD =='Y') {
|
||||
echo '<a style="color: green" href="';
|
||||
echo site_url("eqsl/image/".$row->COL_PRIMARY_KEY);
|
||||
echo '" data-fancybox="images" data-width="528" data-height="336">▼</a>';
|
||||
} else {
|
||||
echo '▼';
|
||||
}
|
||||
echo '</span>';
|
||||
echo '</td>';
|
||||
} ?>
|
||||
|
||||
<?php if($this->session->userdata('user_lotw_name') != "") {
|
||||
echo '<td style=\'text-align: center\' class="lotw">';
|
||||
echo '<span ';
|
||||
if ($row->COL_LOTW_QSL_SENT == "Y") {
|
||||
echo "title=\"".lang('lotw_short')." ".lang('general_word_sent');
|
||||
if ($row->COL_LOTW_QSLSDATE != null) {
|
||||
$timestamp = strtotime($row->COL_LOTW_QSLSDATE);
|
||||
echo " ".($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="lotw-';
|
||||
echo ($row->COL_LOTW_QSL_SENT=='Y')?'green':'red';
|
||||
echo '">▲</span>';
|
||||
|
||||
echo '<span ';
|
||||
if ($row->COL_LOTW_QSL_RCVD == "Y") {
|
||||
echo "title=\"".lang('lotw_short')." ".lang('general_word_received');
|
||||
if ($row->COL_LOTW_QSLRDATE != null) {
|
||||
$timestamp = strtotime($row->COL_LOTW_QSLRDATE);
|
||||
echo " ".($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="lotw-';
|
||||
echo ($row->COL_LOTW_QSL_RCVD=='Y')?'green':'red';
|
||||
echo '">▼</span>';
|
||||
echo '</td>';
|
||||
} ?>
|
||||
|
||||
<?php if($this->session->userdata('hasQrzKey') != "") {
|
||||
echo '<td style=\'text-align: center\' class="qrz">';
|
||||
echo '<span ';
|
||||
if ($row->COL_QRZCOM_QSO_UPLOAD_STATUS == "Y") {
|
||||
echo "title=\"QRZ ".lang('general_word_sent');
|
||||
if ($row->COL_QRZCOM_QSO_UPLOAD_DATE != null) {
|
||||
$timestamp = strtotime($row->COL_QRZCOM_QSO_UPLOAD_DATE);
|
||||
echo " ".($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="qrz-';
|
||||
echo ($row->COL_QRZCOM_QSO_UPLOAD_STATUS=='Y')?'green':'red';
|
||||
echo '">▲</span>';
|
||||
|
||||
echo '<span ';
|
||||
if ($row->COL_QRZCOM_QSO_DOWNLOAD_STATUS == "Y") {
|
||||
echo "title=\"QRZ ".lang('general_word_received');
|
||||
if ($row->COL_QRZCOM_QSO_DOWNLOAD_DATE != null) {
|
||||
$timestamp = strtotime($row->COL_QRZCOM_QSO_DOWNLOAD_DATE);
|
||||
echo " ".($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="qrz-';
|
||||
echo ($row->COL_QRZCOM_QSO_DOWNLOAD_STATUS=='Y')?'green':'red';
|
||||
echo '">▼</span>';
|
||||
echo '</td>';
|
||||
} ?>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<?php if(isset($row->station_callsign)) { ?>
|
||||
<td>
|
||||
<span class="badge text-bg-light"><?php echo $row->station_callsign; ?></span>
|
||||
</td>
|
||||
<?php } ?>
|
||||
|
||||
<?php if(($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<?php echo '<tr class="tr' . ($i & 1) . '" id="qso_' . $row->COL_PRIMARY_KEY . '">'; ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON);
|
||||
echo date($custom_date_format, $timestamp); ?></td>
|
||||
<?php if (($this->config->item('use_auth') && ($this->session->userdata('user_type') >= 2)) || $this->config->item('use_auth') === FALSE || ($this->config->item('show_time'))) { ?>
|
||||
<td><?php $timestamp = strtotime($row->COL_TIME_ON);
|
||||
echo date('H:i', $timestamp); ?></td>
|
||||
<?php } ?>
|
||||
<td>
|
||||
<div class="dropdown">
|
||||
<a class="btn btn-sm btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-cog"></i>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu menuOnResultTab" aria-labelledby="dropdownMenuLink" data-qsoid="qso_<?php echo $row->COL_PRIMARY_KEY; ?>">
|
||||
<a class="dropdown-item" id="edit_qso" href="javascript:qso_edit(<?php echo $row->COL_PRIMARY_KEY; ?>)"><i class="fas fa-edit"></i> <?php echo lang('general_edit_qso'); ?></a>
|
||||
|
||||
<?php if($row->COL_QSL_SENT !='Y') { ?>
|
||||
<div class="qsl_sent_<?php echo $row->COL_PRIMARY_KEY; ?>">
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="javascript:qsl_sent(<?php echo $row->COL_PRIMARY_KEY; ?>, 'B')" ><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_tx_bureau'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_sent(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')" ><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_tx_direct'); ?></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if($row->COL_QSL_RCVD !='Y') { ?>
|
||||
<div class="qsl_rcvd_<?php echo $row->COL_PRIMARY_KEY; ?>">
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="javascript:qsl_rcvd(<?php echo $row->COL_PRIMARY_KEY; ?>, 'B')" ><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_rx_bureau'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_rcvd(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')" ><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_rx_direct'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_requested(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')" ><i class="fas fa-envelope"></i><?php echo lang('general_mark_qsl_requested'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_ignore(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')" ><i class="fas fa-envelope"></i><?php echo lang('general_mark_qsl_not_required'); ?></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a class="dropdown-item" href="https://www.qrz.com/db/<?php echo $row->COL_CALL; ?>" target="_blank"><i class="fas fa-question"></i><?php echo lang('general_lookup_qrz'); ?></a>
|
||||
|
||||
<a class="dropdown-item" href="https://www.hamqth.com/<?php echo $row->COL_CALL; ?>" target="_blank"><i class="fas fa-question"></i><?php echo lang('general_lookup_hamqth'); ?></a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a class="dropdown-item" href="javascript:qso_delete(<?php echo $row->COL_PRIMARY_KEY; ?>, '<?php echo $row->COL_CALL; ?>')"><i class="fas fa-trash-alt"></i> <?php echo lang('general_delete_qso'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
<a id="edit_qso" href="javascript:displayQso(<?php echo $row->COL_PRIMARY_KEY; ?>)"><?php echo str_replace("0", "Ø", strtoupper($row->COL_CALL)); ?></a>
|
||||
</td>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
<?php $i++; } ?>
|
||||
</tbody>
|
||||
<?php
|
||||
|
||||
echo '<td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column1') == "" ? 'Mode' : $this->session->userdata('user_column1'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column2') == "" ? 'RSTS' : $this->session->userdata('user_column2'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column3') == "" ? 'RSTR' : $this->session->userdata('user_column3'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column4') == "" ? 'Band' : $this->session->userdata('user_column4'));
|
||||
echo '</td><td>';
|
||||
echo_table_col($row, $this->session->userdata('user_column5') == "" ? 'Country' : $this->session->userdata('user_column5'));
|
||||
echo '</td>';
|
||||
if (($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
|
||||
<?php
|
||||
echo '<td id="qsl_' . $row->COL_PRIMARY_KEY . '" style=\'text-align: center\' class="qsl">';
|
||||
echo '<span ';
|
||||
if ($row->COL_QSL_SENT != "N") {
|
||||
if ($row->COL_QSLSDATE != null) {
|
||||
$timestamp = ' ' . date($custom_date_format, strtotime($row->COL_QSLSDATE));
|
||||
} else {
|
||||
$timestamp = '';
|
||||
}
|
||||
switch ($row->COL_QSL_SENT) {
|
||||
case "Y":
|
||||
echo "class=\"qsl-green\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_sent') . $timestamp;
|
||||
break;
|
||||
case "Q":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_queued') . $timestamp;
|
||||
break;
|
||||
case "R":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_requested') . $timestamp;
|
||||
break;
|
||||
case "I":
|
||||
echo "class=\"qsl-grey\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_invalid_ignore') . $timestamp;
|
||||
break;
|
||||
default:
|
||||
echo "class=\"qsl-red";
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
echo "class=\"qsl-red";
|
||||
}
|
||||
if ($row->COL_QSL_SENT_VIA != "") {
|
||||
switch ($row->COL_QSL_SENT_VIA) {
|
||||
case "B":
|
||||
echo " (" . lang('general_word_qslcard_bureau') . ")";
|
||||
break;
|
||||
case "D":
|
||||
echo " (" . lang('general_word_qslcard_direct') . ")";
|
||||
break;
|
||||
case "M":
|
||||
echo " (" . lang('general_word_qslcard_via') . ": " . ($row->COL_QSL_VIA != "" ? $row->COL_QSL_VIA : "n/a") . ")";
|
||||
break;
|
||||
case "E":
|
||||
echo " (" . lang('general_word_qslcard_electronic') . ")";
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '">▲</span>';
|
||||
echo '<span ';
|
||||
if ($row->COL_QSL_RCVD != "N") {
|
||||
if ($row->COL_QSLRDATE != null) {
|
||||
$timestamp = ' ' . date($custom_date_format, strtotime($row->COL_QSLRDATE));
|
||||
} else {
|
||||
$timestamp = '';
|
||||
}
|
||||
switch ($row->COL_QSL_RCVD) {
|
||||
case "Y":
|
||||
echo "class=\"qsl-green\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_received') . $timestamp;
|
||||
break;
|
||||
case "Q":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_queued') . $timestamp;
|
||||
break;
|
||||
case "R":
|
||||
echo "class=\"qsl-yellow\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_requested') . $timestamp;
|
||||
break;
|
||||
case "I":
|
||||
echo "class=\"qsl-grey\" data-bs-toggle=\"tooltip\" title=\"" . lang('general_word_invalid_ignore') . $timestamp;
|
||||
break;
|
||||
default:
|
||||
echo "class=\"qsl-red";
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
echo "class=\"qsl-red";
|
||||
}
|
||||
if ($row->COL_QSL_RCVD_VIA != "") {
|
||||
switch ($row->COL_QSL_RCVD_VIA) {
|
||||
case "B":
|
||||
echo " (" . lang('general_word_qslcard_bureau') . ")";
|
||||
break;
|
||||
case "D":
|
||||
echo " (" . lang('general_word_qslcard_direct') . ")";
|
||||
break;
|
||||
case "M":
|
||||
echo " (Manager)";
|
||||
break;
|
||||
case "E":
|
||||
echo " (" . lang('general_word_qslcard_electronic') . ")";
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '">▼</span>';
|
||||
?>
|
||||
<?php if ($this->session->userdata('user_eqsl_name') != "") {
|
||||
echo '<td style=\'text-align: center\' class="eqsl">';
|
||||
echo '<span ';
|
||||
if ($row->COL_EQSL_QSL_SENT == "Y") {
|
||||
echo "title=\"" . lang('eqsl_short') . " " . lang('general_word_sent');
|
||||
if ($row->COL_EQSL_QSLSDATE != null) {
|
||||
$timestamp = strtotime($row->COL_EQSL_QSLSDATE);
|
||||
echo " " . ($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="eqsl-';
|
||||
echo ($row->COL_EQSL_QSL_SENT == 'Y') ? 'green' : 'red';
|
||||
echo '">▲</span>';
|
||||
|
||||
echo '<span ';
|
||||
if ($row->COL_EQSL_QSL_RCVD == "Y") {
|
||||
echo "title=\"" . lang('eqsl_short') . " " . lang('general_word_received');
|
||||
if ($row->COL_EQSL_QSLRDATE != null) {
|
||||
$timestamp = strtotime($row->COL_EQSL_QSLRDATE);
|
||||
echo " " . ($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="eqsl-';
|
||||
echo ($row->COL_EQSL_QSL_RCVD == 'Y') ? 'green' : 'red';
|
||||
echo '">';
|
||||
if ($row->COL_EQSL_QSL_RCVD == 'Y') {
|
||||
echo '<a style="color: green" href="';
|
||||
echo site_url("eqsl/image/" . $row->COL_PRIMARY_KEY);
|
||||
echo '" data-fancybox="images" data-width="528" data-height="336">▼</a>';
|
||||
} else {
|
||||
echo '▼';
|
||||
}
|
||||
echo '</span>';
|
||||
echo '</td>';
|
||||
} ?>
|
||||
|
||||
<?php if ($this->session->userdata('user_lotw_name') != "") {
|
||||
echo '<td style=\'text-align: center\' class="lotw">';
|
||||
echo '<span ';
|
||||
if ($row->COL_LOTW_QSL_SENT == "Y") {
|
||||
echo "title=\"" . lang('lotw_short') . " " . lang('general_word_sent');
|
||||
if ($row->COL_LOTW_QSLSDATE != null) {
|
||||
$timestamp = strtotime($row->COL_LOTW_QSLSDATE);
|
||||
echo " " . ($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="lotw-';
|
||||
echo ($row->COL_LOTW_QSL_SENT == 'Y') ? 'green' : 'red';
|
||||
echo '">▲</span>';
|
||||
|
||||
echo '<span ';
|
||||
if ($row->COL_LOTW_QSL_RCVD == "Y") {
|
||||
echo "title=\"" . lang('lotw_short') . " " . lang('general_word_received');
|
||||
if ($row->COL_LOTW_QSLRDATE != null) {
|
||||
$timestamp = strtotime($row->COL_LOTW_QSLRDATE);
|
||||
echo " " . ($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="lotw-';
|
||||
echo ($row->COL_LOTW_QSL_RCVD == 'Y') ? 'green' : 'red';
|
||||
echo '">▼</span>';
|
||||
echo '</td>';
|
||||
} ?>
|
||||
|
||||
<?php if ($this->session->userdata('hasQrzKey') != "") {
|
||||
echo '<td style=\'text-align: center\' class="qrz">';
|
||||
echo '<span ';
|
||||
if ($row->COL_QRZCOM_QSO_UPLOAD_STATUS == "Y") {
|
||||
echo "title=\"QRZ " . lang('general_word_sent');
|
||||
if ($row->COL_QRZCOM_QSO_UPLOAD_DATE != null) {
|
||||
$timestamp = strtotime($row->COL_QRZCOM_QSO_UPLOAD_DATE);
|
||||
echo " " . ($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="qrz-';
|
||||
echo ($row->COL_QRZCOM_QSO_UPLOAD_STATUS == 'Y') ? 'green' : 'red';
|
||||
echo '">▲</span>';
|
||||
|
||||
echo '<span ';
|
||||
if ($row->COL_QRZCOM_QSO_DOWNLOAD_STATUS == "Y") {
|
||||
echo "title=\"QRZ " . lang('general_word_received');
|
||||
if ($row->COL_QRZCOM_QSO_DOWNLOAD_DATE != null) {
|
||||
$timestamp = strtotime($row->COL_QRZCOM_QSO_DOWNLOAD_DATE);
|
||||
echo " " . ($timestamp != '' ? date($custom_date_format, $timestamp) : '');
|
||||
}
|
||||
echo "\" data-bs-toggle=\"tooltip\"";
|
||||
}
|
||||
echo ' class="qrz-';
|
||||
echo ($row->COL_QRZCOM_QSO_DOWNLOAD_STATUS == 'Y') ? 'green' : 'red';
|
||||
echo '">▼</span>';
|
||||
echo '</td>';
|
||||
} ?>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
<?php if (isset($row->station_callsign)) { ?>
|
||||
<td>
|
||||
<span class="badge text-bg-light"><?php echo $row->station_callsign; ?></span>
|
||||
</td>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (($this->config->item('use_auth')) && ($this->session->userdata('user_type') >= 2)) { ?>
|
||||
<td>
|
||||
<div class="dropdown">
|
||||
<a class="btn btn-sm btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fas fa-cog"></i>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu menuOnResultTab" aria-labelledby="dropdownMenuLink" data-qsoid="qso_<?php echo $row->COL_PRIMARY_KEY; ?>">
|
||||
<a class="dropdown-item" id="edit_qso" href="javascript:qso_edit(<?php echo $row->COL_PRIMARY_KEY; ?>)"><i class="fas fa-edit"></i> <?php echo lang('general_edit_qso'); ?></a>
|
||||
|
||||
<?php if ($row->COL_QSL_SENT != 'Y') { ?>
|
||||
<div class="qsl_sent_<?php echo $row->COL_PRIMARY_KEY; ?>">
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="javascript:qsl_sent(<?php echo $row->COL_PRIMARY_KEY; ?>, 'B')"><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_tx_bureau'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_sent(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')"><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_tx_direct'); ?></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($row->COL_QSL_RCVD != 'Y') { ?>
|
||||
<div class="qsl_rcvd_<?php echo $row->COL_PRIMARY_KEY; ?>">
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="javascript:qsl_rcvd(<?php echo $row->COL_PRIMARY_KEY; ?>, 'B')"><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_rx_bureau'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_rcvd(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')"><i class="fas fa-envelope"></i> <?php echo lang('general_mark_qsl_rx_direct'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_requested(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')"><i class="fas fa-envelope"></i><?php echo lang('general_mark_qsl_requested'); ?></a>
|
||||
<a class="dropdown-item" href="javascript:qsl_ignore(<?php echo $row->COL_PRIMARY_KEY; ?>, 'D')"><i class="fas fa-envelope"></i><?php echo lang('general_mark_qsl_not_required'); ?></a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a class="dropdown-item" href="https://www.qrz.com/db/<?php echo $row->COL_CALL; ?>" target="_blank"><i class="fas fa-question"></i><?php echo lang('general_lookup_qrz'); ?></a>
|
||||
|
||||
<a class="dropdown-item" href="https://www.hamqth.com/<?php echo $row->COL_CALL; ?>" target="_blank"><i class="fas fa-question"></i><?php echo lang('general_lookup_hamqth'); ?></a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a class="dropdown-item" href="javascript:qso_delete(<?php echo $row->COL_PRIMARY_KEY; ?>, '<?php echo $row->COL_CALL; ?>')"><i class="fas fa-trash-alt"></i> <?php echo lang('general_delete_qso'); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
<?php $i++;
|
||||
} ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
|
@ -36,8 +36,22 @@
|
|||
|
||||
<div class="mb-3">
|
||||
<label for="stationCallsignInput"><?php echo lang("station_location_callsign"); ?></label>
|
||||
<input type="text" class="form-control" name="station_callsign" id="stationCallsignInput" aria-describedby="stationCallsignInputHelp" placeholder="2M0SQL" required>
|
||||
<small id="stationCallsignInputHelp" class="form-text text-muted"><?php echo lang("station_location_callsign_hint"); ?></small>
|
||||
<input type="text" class="form-control" name="station_callsign" id="stationCallsignInput" aria-describedby="stationCallsignInputHelp" placeholder="2M0SQL" pattern="[a-zA-Z0-9\/]*" required oninput="validateInput(this);">
|
||||
<div id="stationCallsignInputError" style="display: none; color: red;">Only letters, numbers, and forward slashes are allowed.</div>
|
||||
|
||||
<script>
|
||||
function validateInput(input) {
|
||||
var errorDiv = document.getElementById('stationCallsignInputError');
|
||||
if (input.checkValidity()) {
|
||||
input.classList.remove('error-red-border');
|
||||
errorDiv.style.display = 'none';
|
||||
} else {
|
||||
input.classList.add('error-red-border');
|
||||
errorDiv.style.display = 'block';
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<small id="stationCallsignInputHelp" class="form-text text-muted"><?php echo lang("station_location_callsign_hint"); ?></small>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<th style="text-align: center; vertical-align: middle;" scope="col"><?php echo lang('admin_delete'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tbody hx-confirm="Are you sure you want to delete the user?" hx-target="closest tr" hx-swap="outerHTML swap:1s">
|
||||
|
||||
<?php
|
||||
|
||||
|
@ -80,11 +80,10 @@
|
|||
}
|
||||
?></td>
|
||||
<td style="text-align: center; vertical-align: middle;">
|
||||
<?php
|
||||
if ($_SESSION['user_id'] != $row->user_id) {
|
||||
echo "<a href=" . site_url('user/delete') . "/" . $row->user_id . " class=\"btn btn-danger btn-sm\"><i class=\"fas fa-user-minus\"></i></a>";
|
||||
}
|
||||
?></td>
|
||||
<?php if ($_SESSION['user_id'] != $row->user_id) { ?>
|
||||
<button class="btn btn-danger btn-sm" hx-delete="<?php echo site_url('user/delete_new/'.$row->user_id);?>"><i class="fas fa-user-minus"></i></button>
|
||||
<?php } ?>
|
||||
</td>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $i++;
|
||||
|
|
|
@ -796,4 +796,13 @@ label {
|
|||
}
|
||||
|
||||
.table-responsive>table .dropdown{position:static;}
|
||||
.table-responsive>table .dropdown>.dropdown-menu{left:auto !important;top:auto !important;}
|
||||
.table-responsive>table .dropdown>.dropdown-menu{left:auto !important;top:auto !important;}
|
||||
|
||||
tr.htmx-swapping td {
|
||||
opacity: 0;
|
||||
transition: opacity 1s ease-out;
|
||||
}
|
||||
|
||||
.error-red-border {
|
||||
border-color: red;
|
||||
}
|
|
@ -207,31 +207,23 @@ $('#start_date').change(function () {
|
|||
});
|
||||
|
||||
// On Key up check and suggest callsigns
|
||||
$("#callsign").keyup(function () {
|
||||
var call = $(this).val();
|
||||
if (call.length >= 3) {
|
||||
$("#callsign").keyup(scp_keyup({
|
||||
selector: $("#callsign"),
|
||||
showSuggestions: function (call, text) {
|
||||
$('.callsign-suggestions').text(text);
|
||||
highlight(call);
|
||||
}
|
||||
}));
|
||||
|
||||
$.ajax({
|
||||
url: 'lookup/scp',
|
||||
method: 'POST',
|
||||
data: {
|
||||
callsign: $(this).val().toUpperCase()
|
||||
},
|
||||
success: function (result) {
|
||||
$('.callsign-suggestions').text(result);
|
||||
highlight(call.toUpperCase());
|
||||
}
|
||||
});
|
||||
// moved to blur
|
||||
// checkIfWorkedBefore();
|
||||
var qTable = $('.qsotable').DataTable();
|
||||
qTable.search(call).draw();
|
||||
}
|
||||
else if (call.length <= 2) {
|
||||
$('.callsign-suggestions').text("");
|
||||
}
|
||||
$("#callsign").keyup(function() {
|
||||
const call = $(this).val().toUpperCase();
|
||||
if (call.length >= 3) {
|
||||
var qTable = $('.qsotable').DataTable();
|
||||
qTable.search(call).draw();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function checkIfWorkedBefore() {
|
||||
var call = $("#callsign").val();
|
||||
if (call.length >= 3) {
|
||||
|
@ -670,3 +662,62 @@ function getUTCDateStamp(el) {
|
|||
var utc = localTime + (now.getTimezoneOffset() * 60000);
|
||||
$(el).attr('value', ("0" + now.getUTCDate()).slice(-2) + '-' + ("0" + (now.getUTCMonth() + 1)).slice(-2) + '-' + now.getUTCFullYear());
|
||||
}
|
||||
|
||||
function scp_keyup(options) {
|
||||
// options must have two keys:
|
||||
// * selector - element, with .val() which gives the entered callsign
|
||||
// * showSuggestions - function(call, text), where the text is
|
||||
// the list of callsign-suggestions
|
||||
const scp = {
|
||||
request: "",
|
||||
data: []
|
||||
};
|
||||
const callFromInput = (el) => el.val().toUpperCase().replace('0','Ø');
|
||||
const checkCacheValid = (call) => (scp.request != "" && call.includes(scp.request));
|
||||
const filterCallsignList = function (call) {
|
||||
return scp.data?.filter((el) => (el.includes(call) == true)).join(' ') || '';
|
||||
};
|
||||
const updateSuggestions = function (call) {
|
||||
const suggestions = filterCallsignList(call);
|
||||
options.showSuggestions(call, suggestions);
|
||||
}
|
||||
|
||||
const keyup = function(){
|
||||
const call = callFromInput(options.selector);
|
||||
|
||||
if (call.length < 3) {
|
||||
options.showSuggestions("", "");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( checkCacheValid(call) ) {
|
||||
updateSuggestions(call);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cache invalid, so update it and reset suggestions
|
||||
options.showSuggestions("");
|
||||
|
||||
scp.request = call;
|
||||
scp.data = [];
|
||||
$.ajax({
|
||||
url: 'lookup/scp',
|
||||
method: 'POST',
|
||||
data: {
|
||||
callsign: call
|
||||
},
|
||||
success: function (result) {
|
||||
const call_now = callFromInput(options.selector);
|
||||
if (checkCacheValid(call_now)) {
|
||||
scp.data = result.split(" ");
|
||||
|
||||
updateSuggestions(call_now);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return keyup;
|
||||
}
|
||||
|
||||
|
|
|
@ -1017,22 +1017,13 @@ $("#callsign").on("keypress", function(e) {
|
|||
});
|
||||
|
||||
// On Key up check and suggest callsigns
|
||||
$("#callsign").keyup(function() {
|
||||
if ($(this).val().length >= 3) {
|
||||
$('.callsign-suggest').show();
|
||||
$callsign = $(this).val().replace('Ø', '0');
|
||||
$.ajax({
|
||||
url: 'lookup/scp',
|
||||
method: 'POST',
|
||||
data: {
|
||||
callsign: $callsign.toUpperCase()
|
||||
},
|
||||
success: function(result) {
|
||||
$('.callsign-suggestions').text(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$("#callsign").keyup( scp_keyup({
|
||||
selector: $(this),
|
||||
showSuggestions: function (call, text) {
|
||||
$('.callsign-suggestions').text(text);
|
||||
$('.callsign-suggest').show();
|
||||
}
|
||||
}));
|
||||
|
||||
//Reset QSO form Fields function
|
||||
function resetDefaultQSOFields() {
|
||||
|
@ -1094,3 +1085,62 @@ function testTimeOffConsistency() {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function scp_keyup(options) {
|
||||
// options must have two keys:
|
||||
// * selector - element, with .val() which gives the entered callsign
|
||||
// * showSuggestions - function(call, text), where the text is
|
||||
// the list of callsign-suggestions
|
||||
const scp = {
|
||||
request: "",
|
||||
data: []
|
||||
};
|
||||
const callFromInput = (el) => el.val().toUpperCase().replace('0','Ø');
|
||||
const checkCacheValid = (call) => (scp.request != "" && call.includes(scp.request));
|
||||
const filterCallsignList = function (call) {
|
||||
return scp.data?.filter((el) => (el.includes(call) == true)).join(' ') || '';
|
||||
};
|
||||
const updateSuggestions = function (call) {
|
||||
const suggestions = filterCallsignList(call);
|
||||
options.showSuggestions(call, suggestions);
|
||||
}
|
||||
|
||||
const keyup = function(){
|
||||
const call = callFromInput(options.selector);
|
||||
|
||||
if (call.length < 3) {
|
||||
options.showSuggestions("", "");
|
||||
return;
|
||||
}
|
||||
|
||||
if ( checkCacheValid(call) ) {
|
||||
updateSuggestions(call);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cache invalid, so update it and reset suggestions
|
||||
options.showSuggestions("");
|
||||
|
||||
scp.request = call;
|
||||
scp.data = [];
|
||||
$.ajax({
|
||||
url: 'lookup/scp',
|
||||
method: 'POST',
|
||||
data: {
|
||||
callsign: call
|
||||
},
|
||||
success: function (result) {
|
||||
const call_now = callFromInput(options.selector);
|
||||
if (checkCacheValid(call_now)) {
|
||||
scp.data = result.split(" ");
|
||||
|
||||
updateSuggestions(call_now);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
return keyup;
|
||||
}
|
||||
|
||||
|
|
94161
assets/json/pota.txt
94161
assets/json/pota.txt
Plik diff jest za duży
Load Diff
|
@ -0,0 +1,8 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Directory access is forbidden.</p>
|
||||
</body>
|
||||
</html>
|
Ładowanie…
Reference in New Issue