当前提交
729f5ae896
共有 10 个文件被更改,包括 144 次插入 和 22 次删除
|
|
@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE;
|
||||||
| be upgraded / downgraded to.
|
| be upgraded / downgraded to.
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
$config['migration_version'] = 15;
|
$config['migration_version'] = 16;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -294,4 +294,38 @@ class Lotw extends CI_Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Load the ARRL LOTW User Activity CSV into LOTW User Table for cross checking when logging
|
||||||
|
*/
|
||||||
|
function load_users() {
|
||||||
|
set_time_limit(0);
|
||||||
|
$this->load->model('lotw_user');
|
||||||
|
|
||||||
|
$row = 1;
|
||||||
|
if (($handle = fopen("https://lotw.arrl.org/lotw-user-activity.csv", "r")) !== FALSE) {
|
||||||
|
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
|
||||||
|
$num = count($data);
|
||||||
|
$row++;
|
||||||
|
|
||||||
|
if(isset($data[2])) {
|
||||||
|
$callsign = $data[0];
|
||||||
|
$upload_date = $data[1]." ".$data[2];
|
||||||
|
$this->lotw_user->add_lotwuser($callsign, $upload_date);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
fclose($handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Check if callsign is an active LOTW user and return whether its true or not
|
||||||
|
*/
|
||||||
|
function lotw_usercheck($callsign) {
|
||||||
|
$this->load->model('lotw_user');
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
} // end class
|
} // end class
|
||||||
|
|
|
||||||
|
|
@ -109,27 +109,18 @@ class QSO extends CI_Controller {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function qsl_rcvd() {
|
function qsl_rcvd($id, $method) {
|
||||||
|
|
||||||
$this->load->model('logbook_model');
|
$this->load->model('logbook_model');
|
||||||
$this->load->model('user_model');
|
$this->load->model('user_model');
|
||||||
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
|
||||||
$query = $this->logbook_model->qso_info($this->uri->segment(3));
|
|
||||||
|
|
||||||
$this->load->library('form_validation');
|
|
||||||
$this->form_validation->set_rules('id', 'ID', 'required');
|
|
||||||
|
|
||||||
$data = $query->row();
|
// Update Logbook to Mark Paper Card Received
|
||||||
if ($this->form_validation->run() == FALSE)
|
|
||||||
{
|
$this->logbook_model->paperqsl_update($id, $method);
|
||||||
$this->load->view('qso/qsl_rcvd', $data);
|
|
||||||
}
|
$this->session->set_flashdata('notice', 'QSL Card: Marked as Received');
|
||||||
else
|
|
||||||
{
|
redirect('logbook');
|
||||||
$this->logbook_model->qsl_rcvd();
|
|
||||||
$this->session->set_flashdata('notice', 'QSL registered');
|
|
||||||
$this->load->view('qso/qsl_rcvd_done');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Delete QSO */
|
/* Delete QSO */
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||||
|
|
||||||
|
class Migration_lotwusers extends CI_Migration {
|
||||||
|
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$this->dbforge->add_field(array(
|
||||||
|
'id' => array(
|
||||||
|
'type' => 'INT',
|
||||||
|
'constraint' => 5,
|
||||||
|
'unsigned' => TRUE,
|
||||||
|
'auto_increment' => TRUE
|
||||||
|
),
|
||||||
|
'callsign' => array(
|
||||||
|
'type' => 'VARCHAR',
|
||||||
|
'constraint' => '100',
|
||||||
|
),
|
||||||
|
'upload_date' => array(
|
||||||
|
'type' => 'datetime',
|
||||||
|
'null' => TRUE,
|
||||||
|
),
|
||||||
|
));
|
||||||
|
$this->dbforge->add_key('id', TRUE);
|
||||||
|
$this->dbforge->create_table('lotw_userlist');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
$this->dbforge->drop_table('lotw_userlist');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -399,6 +399,20 @@ class Logbook_model extends CI_Model {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Set Paper to recived
|
||||||
|
function paperqsl_update($qso_id, $method) {
|
||||||
|
$data = array(
|
||||||
|
'COL_QSLRDATE' => date('Y-m-d'),
|
||||||
|
'COL_QSL_RCVD' => 'Y',
|
||||||
|
'COL_QSL_RCVD_VIA' => $method
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->db->where('COL_PRIMARY_KEY', $qso_id);
|
||||||
|
|
||||||
|
$this->db->update($this->config->item('table_name'), $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function get_qsos($num, $offset) {
|
function get_qsos($num, $offset) {
|
||||||
$this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE, COL_QSL_RCVD, COL_EQSL_QSL_RCVD, COL_EQSL_QSL_SENT, COL_QSL_SENT, COL_STX_STRING, COL_SRX_STRING, COL_OPERATOR, COL_STATION_CALLSIGN, COL_LOTW_QSL_SENT, COL_LOTW_QSL_RCVD');
|
$this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE, COL_QSL_RCVD, COL_EQSL_QSL_RCVD, COL_EQSL_QSL_SENT, COL_QSL_SENT, COL_STX_STRING, COL_SRX_STRING, COL_OPERATOR, COL_STATION_CALLSIGN, COL_LOTW_QSL_SENT, COL_LOTW_QSL_RCVD');
|
||||||
$this->db->order_by("COL_TIME_ON", "desc");
|
$this->db->order_by("COL_TIME_ON", "desc");
|
||||||
|
|
|
||||||
28
application/models/Lotw_user.php
普通文件
28
application/models/Lotw_user.php
普通文件
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Lotw_user extends CI_Model {
|
||||||
|
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
// Call the Model constructor
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function empty_table($table) {
|
||||||
|
$this->db->empty_table($table);
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_lotwuser($callsign, $date) {
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'callsign' => $callsign,
|
||||||
|
'upload_date' => $date
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$this->db->insert('lotw_userlist', $data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
@ -3,6 +3,13 @@
|
||||||
<div class="container logbook">
|
<div class="container logbook">
|
||||||
|
|
||||||
<h2>Logbook</h2>
|
<h2>Logbook</h2>
|
||||||
|
|
||||||
|
<?php if($this->session->flashdata('notice')) { ?>
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
<?php echo $this->session->flashdata('notice'); ?>
|
||||||
|
</div>
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
|
|
||||||
<!-- Map -->
|
<!-- Map -->
|
||||||
<div id="map" style="width: 100%; height: 300px"></div>
|
<div id="map" style="width: 100%; height: 300px"></div>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@
|
||||||
<td>LoTW</td>
|
<td>LoTW</td>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
@ -58,8 +57,23 @@
|
||||||
</td>
|
</td>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
||||||
<td><a class="btn btn-primary" role="button" data-fancybox data-type="iframe" data-src="<?php echo site_url('qso/edit'); ?>/<?php echo $row->COL_PRIMARY_KEY; ?>" href="javascript:;"><i class="fas fa-edit"></i> Edit</a></td>
|
<td>
|
||||||
<td><a class="btn btn-primary" role="button" data-fancybox data-type="iframe" data-src="<?php echo site_url('qso/qsl_rcvd'); ?>/<?php echo $row->COL_PRIMARY_KEY; ?>" href="javascript:;"><i class="fas fa-edit"></i> QSL RCVD</a></td>
|
<div class="dropdown">
|
||||||
|
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
|
<i class="fas fa-cog"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
||||||
|
<a class="dropdown-item" data-fancybox data-type="iframe" data-src="<?php echo site_url('qso/edit'); ?>/<?php echo $row->COL_PRIMARY_KEY; ?>" href="javascript:;"><i class="fas fa-edit"></i> Edit QSO</a>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
|
||||||
|
<?php if($row->COL_QSL_RCVD !='Y') { ?>
|
||||||
|
<a class="dropdown-item" href="<?php echo site_url('qso/qsl_rcvd'); ?>/<?php echo $row->COL_PRIMARY_KEY; ?>/B" ><i class="fas fa-envelope"></i> Mark QSL Received (Bureau)</a>
|
||||||
|
<a class="dropdown-item" href="<?php echo site_url('qso/qsl_rcvd'); ?>/<?php echo $row->COL_PRIMARY_KEY; ?>/D" ><i class="fas fa-envelope"></i> Mark QSL Received (Direct)</a>
|
||||||
|
<?php } ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
<?php if($this->config->item('callsign_tags') == true) { ?>
|
<?php if($this->config->item('callsign_tags') == true) { ?>
|
||||||
<?php if($row->COL_STATION_CALLSIGN != null) { ?>
|
<?php if($row->COL_STATION_CALLSIGN != null) { ?>
|
||||||
<td><span class="label notice"><?php echo $row->COL_STATION_CALLSIGN; ?></span></td>
|
<td><span class="label notice"><?php echo $row->COL_STATION_CALLSIGN; ?></span></td>
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@
|
||||||
TD.eqsl{
|
TD.eqsl{
|
||||||
width: 33px;
|
width: 33px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.eqsl-green{
|
.eqsl-green{
|
||||||
color: #00A000;
|
color: #00A000;
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
*/
|
*/
|
||||||
#define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
|
#define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
|
||||||
# define('ENVIRONMENT', 'development');
|
# define('ENVIRONMENT', 'development');
|
||||||
define('ENVIRONMENT', 'production');
|
define('ENVIRONMENT', 'development');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*---------------------------------------------------------------
|
*---------------------------------------------------------------
|
||||||
|
|
|
||||||
正在加载…
在新工单中引用