Merge pull request #3 from magicbug/master

Merge with master
这个提交包含在:
Kim - DG9VH 2019-06-16 17:35:25 +02:00 提交者 GitHub
当前提交 729f5ae896
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23
共有 10 个文件被更改,包括 144 次插入22 次删除

查看文件

@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE;
| 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

查看文件

@ -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('user_model');
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();
if ($this->form_validation->run() == FALSE)
{
$this->load->view('qso/qsl_rcvd', $data);
}
else
{
$this->logbook_model->qsl_rcvd();
$this->session->set_flashdata('notice', 'QSL registered');
$this->load->view('qso/qsl_rcvd_done');
}
// Update Logbook to Mark Paper Card Received
$this->logbook_model->paperqsl_update($id, $method);
$this->session->set_flashdata('notice', 'QSL Card: Marked as Received');
redirect('logbook');
}
/* 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) {
$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");

查看文件

@ -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">
<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 -->
<div id="map" style="width: 100%; height: 300px"></div>

查看文件

@ -18,7 +18,6 @@
<td>LoTW</td>
<?php } ?>
<td></td>
<td></td>
<?php } ?>
</tr>
@ -58,8 +57,23 @@
</td>
<?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><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>
<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($row->COL_STATION_CALLSIGN != null) { ?>
<td><span class="label notice"><?php echo $row->COL_STATION_CALLSIGN; ?></span></td>

查看文件

@ -84,6 +84,7 @@
TD.eqsl{
width: 33px;
}
.eqsl-green{
color: #00A000;
font-size: 1.1em;

查看文件

@ -55,7 +55,7 @@
*/
#define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
# define('ENVIRONMENT', 'development');
define('ENVIRONMENT', 'production');
define('ENVIRONMENT', 'development');
/*
*---------------------------------------------------------------