Merge pull request #1 from magicbug/master

merge with origin
这个提交包含在:
Kim - DG9VH 2019-06-14 09:07:32 +02:00 提交者 GitHub
当前提交 fad58f6bff
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23
共有 13 个文件被更改,包括 299 次插入114 次删除

查看文件

@ -70,7 +70,7 @@ class Logbook extends CI_Controller {
"workedBefore" => false
];
$return['dxcc'] = $this->find_dxcc($callsign);
$return['dxcc'] = $this->dxcheck($callsign);
$return['partial'] = $this->partial($callsign);
// Do we have local data for the Callsign?
@ -82,6 +82,11 @@ class Logbook extends CI_Controller {
$return['callsign_iota'] = $this->logbook_model->call_iota($callsign);
$return['bearing'] = $this->bearing($return['callsign_qra']);
$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra']);
if ($return['callsign_qra'] != "") {
$return['latlng'] = $this->qralatlng($return['callsign_qra']);
}
echo json_encode($return, JSON_PRETTY_PRINT);
return;
}
@ -118,6 +123,9 @@ class Logbook extends CI_Controller {
$return['callsign_qra'] = $callbook['gridsquare'];
$return['callsign_qth'] = $callbook['city'];
$return['callsign_iota'] = $callbook['iota'];
if ($return['callsign_qra'] != "") {
$return['latlng'] = $this->qralatlng($return['callsign_qra']);
}
$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra']);
}
$return['bearing'] = $this->bearing($return['callsign_qra']);
@ -343,6 +351,15 @@ class Logbook extends CI_Controller {
print json_encode($ans);
}
function dxcheck($call = "", $date = "") {
$this->load->model("logbook_model");
if ($date == ''){
$date = date("Y-m-d");
}
$ans = $this->logbook_model->dxcc_lookup($call, $date);
return $ans;
}
/* return station bearing */
function searchbearing($locator) {
@ -385,4 +402,16 @@ class Logbook extends CI_Controller {
}
return "";
}
function qralatlng($qra) {
$this->load->library('Qra');
$latlng = $this->qra->qra2latlong($qra);
return $latlng;
}
function qralatlngjson($qra) {
$this->load->library('Qra');
$latlng = $this->qra->qra2latlong($qra);
print json_encode($latlng);
}
}

查看文件

@ -99,9 +99,7 @@ class QSO extends CI_Controller {
if ($this->form_validation->run() == FALSE)
{
$this->load->view('layout/mini_header', $data);
$this->load->view('qso/edit');
$this->load->view('layout/mini_footer');
$this->load->view('qso/edit', $data);
}
else
{

查看文件

@ -50,7 +50,7 @@
}
$phpdate = strtotime($row->timestamp);
echo "<td>".date('H:i:s d-m-y', $phpdate)."</td>" ;
echo "<td><a href=\"".site_url('radio/delete')."/".$row->id."\" ><img src=\"".base_url()."/images/delete.png\" width=\"16\" height=\"16\" alt=\"Delete\" /></a></td>" ;
echo "<td><a href=\"".site_url('radio/delete')."/".$row->id."\" class=\"btn btn-danger\"> <i class=\"fas fa-trash-alt\"></i> Delete</a></td>" ;
echo "</tr>";
}
} else {

查看文件

@ -80,6 +80,7 @@ class Logbook_model extends CI_Model {
'COL_LON' => null,
'COL_DXCC' => $this->input->post('dxcc_id'),
'COL_CQZ' => $this->input->post('cqz'),
'COL_SOTA_REF' => trim($this->input->post('sota_ref')),
);
if (strpos(trim($this->input->post('locator')), ',') !== false) {
@ -161,6 +162,7 @@ class Logbook_model extends CI_Model {
'COL_LON' => null,
'COL_DXCC' => $this->input->post('dxcc_id'),
'COL_CQZ' => $this->input->post('cqz'),
'COL_SOTA_REF' => trim($this->input->post('sota_ref')),
);
// If station profile has been provided fill in the fields
@ -253,11 +255,13 @@ class Logbook_model extends CI_Model {
'COL_LOTW_QSL_SENT' => $this->input->post('lotw_sent'),
'COL_LOTW_QSL_RCVD' => $this->input->post('lotw_recv'),
'COL_IOTA' => $this->input->post('iota_ref'),
'COL_SOTA_REF' => $this->input->post('sota_ref'),
'COL_QTH' => $this->input->post('qth'),
'COL_PROP_MODE' => $this->input->post('prop_mode'),
'COL_FREQ_RX' => $this->parse_frequency($this->input->post('freq_display_rx')),
'COL_STX_STRING' => $this->input->post('stx_string'),
'COL_SRX_STRING' => $this->input->post('srx_string')
'COL_SRX_STRING' => $this->input->post('srx_string'),
'COL_QSL_VIA' => $this->input->post('qsl_via_callsign')
);
$this->db->where('COL_PRIMARY_KEY', $this->input->post('id'));
@ -1083,6 +1087,34 @@ class Logbook_model extends CI_Model {
return array("Not Found", "Not Found");
}
public function dxcc_lookup($call, $date){
$len = strlen($call);
// query the table, removing a character from the right until a match
for ($i = $len; $i > 0; $i--){
//printf("searching for %s\n", substr($call, 0, $i));
$dxcc_result = $this->db->select('*')
->where('call', substr($call, 0, $i))
->where('(start <= ', $date)
->or_where("start = '0000-00-00'", NULL, false)
->or_where("start is null)", NULL, false)
->where('(end >= ', $date)
->or_where("end = '0000-00-00'", NULL, false)
->or_where("end is null)", NULL, false)
->get('dxcc_prefixes');
//$dxcc_result = $this->db->query("select `call`, `entity`, `adif` from dxcc_prefixes where `call` = '".substr($call, 0, $i) ."'");
//print $this->db->last_query();
if ($dxcc_result->num_rows() > 0){
$row = $dxcc_result->row_array();
return $row;
}
}
return array("Not Found", "Not Found");
}
/*
* Same as check_dxcc_table, but the functionality is in
* a stored procedure which we call

查看文件

@ -8,8 +8,8 @@ class Sota extends CI_Model {
}
function get_all() {
$this->db->order_by("COL_COMMENT", "ASC");
$this->db->like('COL_COMMENT', 'SOTA:');
$this->db->order_by("COL_SOTA_REF", "ASC");
$this->db->where('COL_SOTA_REF !=', '');
return $this->db->get($this->config->item('table_name'));
}

查看文件

@ -43,7 +43,7 @@
?>
</td>
<td><span class="btn btn-outline-primary btn-sm"><?php echo ucfirst($row->status); ?></span> <a href="<?php echo site_url('/api/validate/?key='.$row->key); ?>" class="btn btn-success btn-sm">Test</td>
<td><span class="badge badge-pill badge-light"><?php echo ucfirst($row->status); ?></span> <a href="<?php echo site_url('api/auth/'.$row->key); ?>" target="_blank" class="btn btn-primary btn-sm">Test</td>
</tr>
<?php } ?>

查看文件

@ -36,7 +36,7 @@
if ($count == 0){
print("<td>&nbsp;</td>");
}else{
printf("<td><a href='dxcc_details?Country=\"%s\"&Band=\"%s\"'>%d</a></td>", $country, $band, $count);
printf("<td><a href='dxcc_details?Country=\"%s\"&Band=\"%s\"'>%d</a></td>", str_replace("&", "%26", $country), $band, $count);
}
}
print("</tr>");

查看文件

@ -24,15 +24,7 @@
<tr>
<td>
<?php
$pieces = explode(" ", $row->COL_COMMENT);
foreach($pieces as $val) {
if (strpos($val,'SOTA:') !== false) {
//echo $val;
echo $rest = substr($val, 5); // returns "cde"
}
}
?>
<?php echo $row->COL_SOTA_REF; ?>
</td>
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date('d/m/y', $timestamp); ?> - <?php $timestamp = strtotime($row->COL_TIME_ON); echo date('H:i', $timestamp); ?></td>
<td><?php echo $row->COL_CALL; ?></td>

查看文件

@ -110,12 +110,26 @@ $(document).ready(function(){
<?php } ?>
<?php if ($this->uri->segment(1) == "qso") { ?>
<script>
var markers = L.layerGroup();
var mymap = L.map('qsomap').setView([51.505, -0.09], 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Created by Cloudlog',
id: 'mapbox.streets'
}).addTo(mymap);
</script>
<script type="text/javascript">
var manual = <?php echo $_GET['manual']; ?>;
console.log(manual);
$(document).ready(function() {
/* On Page Load */
@ -197,6 +211,8 @@ $(document).ready(function(){
$('#iota_ref').val("");
$("#locator").removeClass("workedGrid");
$("#locator").removeClass("newGrid");
mymap.setView([51.505, -0.09], 13);
mymap.removeLayer(markers);
}
});
});
@ -208,10 +224,25 @@ $(document).ready(function(){
$.getJSON('logbook/json/' + $(this).val(), function(result)
{
//$('#country').val(result);
$('#country').val(convert_case(result.dxcc.Name));
$('#callsign_info').text(convert_case(result.dxcc.Name));
$('#dxcc_id').val(result.dxcc.DXCC);
$('#cqz').val(result.dxcc.CQZ);
$('#country').val(convert_case(result.dxcc.entity));
$('#callsign_info').text(convert_case(result.dxcc.entity));
$('#dxcc_id').val(result.dxcc.adif);
$('#cqz').val(result.dxcc.cqz);
// Set Map to Lat/Long
markers.clearLayers();
if (typeof result.latlng !== "undefined") {
console.log("defined!");
var marker = L.marker([result.latlng[0], result.latlng[1]]);
mymap.setView([result.latlng[0], result.latlng[1]], 8);
} else {
var marker = L.marker([result.dxcc.lat, result.dxcc.long]);
mymap.setView([result.dxcc.lat, result.dxcc.long], 8);
}
markers.addLayer(marker).addTo(mymap);
/* Find Locator if the field is empty */
if($('#locator').val() == "") {
@ -301,6 +332,22 @@ $(document).ready(function(){
/* On Key up Calculate Bearing and Distance */
$("#locator").keyup(function(){
if ($(this).val()) {
$.getJSON('logbook/qralatlngjson/' + $(this).val(), function(result)
{
console.log(result[0]);
// Set Map to Lat/Long
markers.clearLayers();
if (typeof result !== "undefined") {
console.log("defined!");
var marker = L.marker([result[0], result[1]]);
mymap.setView([result[0], result[1]], 8);
}
markers.addLayer(marker).addTo(mymap);
})
$('#locator_info').load("logbook/searchbearing/" + $(this).val()).fadeIn("slow");
}
});

查看文件

@ -1,28 +1,28 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<!-- JS -->
<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>js/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>js/bootstrap-dropdown.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>js/bootstrap-tabs.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script type="text/javascript">
$(function () {
$('.tabs').tabs()
})
</script>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/bootstrap.min.css">
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/fontawesome/css/all.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<link rel="stylesheet" href="<?php echo base_url(); ?>assets/css/general.css">
<script src="<?php echo base_url(); ?>assets/js/jquery-3.3.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/bootstrap.min.js"></script>
<!-- CSS Files -->
<link type="text/css" href="<?php echo base_url(); ?>css/flick/jquery-ui-1.8.12.custom.css" rel="stylesheet" />
<link rel="stylesheet" href="<?php echo base_url();?>css/bootcamp/bootstrap.css" type="text/css" />
</head>
<body>
<body class="qso-edit-box">
<!-- Option to Delete QSO -->
<div style="float: right; padding-right: 60px; padding-top: 30px;">
<p><a href="<?php echo site_url('qso/delete'); ?>/<?php echo $COL_PRIMARY_KEY; ?>" >Delete QSO <img src="<?php echo base_url(); ?>/images/delete.png" width="16" height="16" alt="Delete" /></a></p>
<p><a class="btn btn-danger" href="<?php echo site_url('qso/delete'); ?>/<?php echo $COL_PRIMARY_KEY; ?>" ><i class="fas fa-trash-alt"></i> Delete QSO</a></p>
</div>
<?php echo validation_errors(); ?>
@ -143,6 +143,11 @@
<td><input type="text" name="iota_ref" value="<?php echo $COL_IOTA; ?>" /></td>
</tr>
<tr>
<td>SOTA</td>
<td><input type="text" name="sota_ref" value="<?php echo $COL_SOTA_REF; ?>" /></td>
</tr>
<tr>
<td>Country</td>
<td><input type="text" name="country" value="<?php echo $COL_COUNTRY; ?>" /></td>
@ -152,102 +157,132 @@
<h3>QSLing</h3>
<ul class="tabs">
<li class="active"><a href="#paper">Paper</a></li>
<li><a href="#eqsl">eQSL</a></li>
<li><a href="#lotw">LoTW</a></li>
</ul>
<div class="pill-content">
<div class="active" id="paper">
<table>
<tr>
<td>Sent</td>
<td><select name="qsl_sent">
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">QSL Card</a>
</li>
<li class="nav-item">
<a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">eQSL</a>
</li>
<li class="nav-item">
<a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">LOTW</a>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
<div class="form-group row">
<label for="sent" class="col-sm-3 col-form-label">Sent</label>
<div class="col-sm-9">
<select class="custom-select" name="qsl_sent">
<option value="N" <?php if($COL_QSL_SENT == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_QSL_SENT == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_QSL_SENT == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="Q" <?php if($COL_QSL_SENT == "Q") { echo "selected=\"selected\""; } ?>>Queued</option>
<option value="I" <?php if($COL_QSL_SENT == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
</select></td>
<td>Recv</td>
<td><select name="qsl_recv">
<option value="N" <?php if($COL_QSL_RCVD == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_QSL_RCVD == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_QSL_RCVD == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="Q" <?php if($COL_QSL_RCVD == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
<option value="I" <?php if($COL_QSL_RCVD == "V") { echo "selected=\"selected\""; } ?>>Verified (Match)</option>
</select></td>
</tr>
<tr>
<td></td>
</select>
</div>
</div>
<!-- <?php if($COL_QSL_SENT_VIA == "") { echo "selected=\"selected\""; } ?> -->
<td><select name="qsl_sent_method">
<div class="form-group row">
<label for="sent-method" class="col-sm-3 col-form-label">Sent Method</label>
<div class="col-sm-9">
<select class="custom-select" name="qsl_sent_method">
<option value="" <?php if($COL_QSL_SENT_VIA == "") { echo "selected=\"selected\""; } ?>>Method</option>
<option value="D" <?php if($COL_QSL_SENT_VIA == "D") { echo "selected=\"selected\""; } ?>>Direct</option>
<option value="B" <?php if($COL_QSL_SENT_VIA == "B") { echo "selected=\"selected\""; } ?>>Bureau</option>
<option value="E" <?php if($COL_QSL_SENT_VIA == "E") { echo "selected=\"selected\""; } ?>>Electronic</option>
<option value="M" <?php if($COL_QSL_SENT_VIA == "M") { echo "selected=\"selected\""; } ?>>Manager</option>
</select></td>
<td></td>
<td><select name="qsl_recv_method">
</select>
</div>
</div>
<div class="form-group row">
<label for="qsl-via" class="col-sm-2 col-form-label">Sent Via</label>
<div class="col-sm-10">
<input type="text" id="qsl-via" class="form-control" name="qsl_via_callsign" value="<?php echo $COL_QSL_VIA; ?>" />
</div>
</div>
<div class="form-group row">
<label for="sent-method" class="col-sm-3 col-form-label">Received</label>
<div class="col-sm-9">
<select class="custom-select" name="qsl_recv">
<option value="N" <?php if($COL_QSL_RCVD == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_QSL_RCVD == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_QSL_RCVD == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="Q" <?php if($COL_QSL_RCVD == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
<option value="I" <?php if($COL_QSL_RCVD == "V") { echo "selected=\"selected\""; } ?>>Verified (Match)</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="sent-method" class="col-sm-3 col-form-label">Received Method</label>
<div class="col-sm-9">
<select class="custom-select" name="qsl_recv_method">
<option value="" <?php if($COL_QSL_RCVD_VIA == "") { echo "selected=\"selected\""; } ?>>Method</option>
<option value="D" <?php if($COL_QSL_RCVD_VIA == "D") { echo "selected=\"selected\""; } ?>>Direct</option>
<option value="B" <?php if($COL_QSL_RCVD_VIA == "B") { echo "selected=\"selected\""; } ?>>Bureau</option>
<option value="E" <?php if($COL_QSL_RCVD_VIA == "E") { echo "selected=\"selected\""; } ?>>Electronic</option>
<option value="M" <?php if($COL_QSL_RCVD_VIA == "M") { echo "selected=\"selected\""; } ?>>Manager</option>
</select></td>
</tr>
</table>
</select>
</div>
</div>
</div>
</div>
<div id="eqsl">
<table>
<tr>
<td>Sent</td>
<td><select name="eqsl_sent">
<div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
<div class="form-group row">
<label for="sent" class="col-sm-3 col-form-label">Sent</label>
<div class="col-sm-9">
<select class="custom-select" name="eqsl_sent">
<option value="N" <?php if($COL_EQSL_QSL_SENT == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_EQSL_QSL_SENT == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_EQSL_QSL_SENT == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="Q" <?php if($COL_EQSL_QSL_SENT == "Q") { echo "selected=\"selected\""; } ?>>Queued</option>
<option value="I" <?php if($COL_EQSL_QSL_SENT == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
</select></td>
<td>Recv</td>
<td><select name="eqsl_recv">
</select>
</div>
</div>
<div class="form-group row">
<label for="sent" class="col-sm-3 col-form-label">Received</label>
<div class="col-sm-9">
<select class="custom-select" name="eqsl_recv">
<option value="N" <?php if($COL_EQSL_QSL_RCVD == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_EQSL_QSL_RCVD == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_EQSL_QSL_RCVD == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="I" <?php if($COL_EQSL_QSL_RCVD == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
<option value="V" <?php if($COL_EQSL_QSL_RCVD == "V") { echo "selected=\"selected\""; } ?>>Verified (Match)</option>
</select></td>
</tr>
</table>
</div>
<div id="lotw">
<table>
<tr>
<td>Sent</td>
<td><select name="lotw_sent">
</select></div>
</div>
</div>
<div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">
<div class="form-group row">
<label for="sent" class="col-sm-3 col-form-label">Sent</label>
<div class="col-sm-9">
<select class="custom-select" name="lotw_sent">
<option value="N" <?php if($COL_LOTW_QSL_SENT == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_LOTW_QSL_SENT == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_LOTW_QSL_SENT == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="Q" <?php if($COL_LOTW_QSL_SENT == "Q") { echo "selected=\"selected\""; } ?>>Queued</option>
<option value="I" <?php if($COL_LOTW_QSL_SENT == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
</select></td>
<td>Recv</td>
<td><select name="lotw_recv">
</select></div>
</div>
<div class="form-group row">
<label for="sent" class="col-sm-3 col-form-label">Received</label>
<div class="col-sm-9">
<select class="custom-select" name="lotw_recv">
<option value="N" <?php if($COL_LOTW_QSL_RCVD == "N") { echo "selected=\"selected\""; } ?>>No</option>
<option value="Y" <?php if($COL_LOTW_QSL_RCVD == "Y") { echo "selected=\"selected\""; } ?>>Yes</option>
<option value="R" <?php if($COL_LOTW_QSL_RCVD == "R") { echo "selected=\"selected\""; } ?>>Requested</option>
<option value="I" <?php if($COL_LOTW_QSL_RCVD == "I") { echo "selected=\"selected\""; } ?>>Invalid (Ignore)</option>
<option value="V" <?php if($COL_LOTW_QSL_RCVD == "V") { echo "selected=\"selected\""; } ?>>Verified (Match)</option>
</select></td>
</tr>
</table>
</div>
</div>
</select></div>
</div>
</div>
</div>
<input type="hidden" name="id" value="<?php echo $this->uri->segment(3); ?>" />

查看文件

@ -1,17 +1,5 @@
<div class="container qso_panel">
<?php if($notice) { ?>
<div class="alert alert-info" role="alert">
<?php echo $notice; ?>
</div>
<?php } ?>
<?php if(validation_errors()) { ?>
<div class="alert alert-warning" role="alert">
<?php echo validation_errors(); ?>
</div>
<?php } ?>
<div class="row">
<div class="col-sm-5">
@ -72,7 +60,7 @@
<div class="form-group">
<label for="callsign">Callsign</label>
<input type="text" class="form-control" id="callsign" name="callsign" required>
<small id="callsign_info" class="form-text text-muted"></small>
<small id="callsign_info" class="badge badge-primary"></small>
</div>
@ -221,6 +209,11 @@
<label for="iota_ref">IOTA Reference</label>
<input class="form-control" id="iota_ref" type="text" name="iota_ref" value="" /> e.g: EU-005
</div>
<div class="form-group">
<label for="sota_ref">SOTA Reference</label>
<input class="form-control" id="sota_ref" type="text" name="sota_ref" value="" /> e.g: GM/NS-001
</div>
</div>
<!-- Satellite Panel -->
@ -287,10 +280,26 @@
<div class="col-sm-7">
<?php if($notice) { ?>
<div class="alert alert-info" role="alert">
<?php echo $notice; ?>
</div>
<?php } ?>
<?php if(validation_errors()) { ?>
<div class="alert alert-warning" role="alert">
<?php echo validation_errors(); ?>
</div>
<?php } ?>
<div class="card qso-map">
<div class="card-header"><h4 class="card-title">QSO Map</h4></div>
<div id="qsomap" style="width: 100%; height: 200px;"></div>
</div>
<div class="card previous-qsos">
<div class="card-header"><h2 class="card-title">Previous Contacts</h2></div>
<div class="card-header"><h4 class="card-title">Previous Contacts</h4></div>
<div class="card-body">
<div id="partial_view">
@ -326,6 +335,7 @@
</div>
</div>
</div>
</div>
</div>

查看文件

@ -98,6 +98,21 @@
<td><?php echo $row->COL_COUNTRY; ?></td>
</tr>
<?php } ?>
<?php if($row->COL_IOTA != null) { ?>
<tr>
<td>IOTA Ref:</td>
<td><?php echo $row->COL_IOTA; ?></td>
</tr>
<?php } ?>
<?php if($row->COL_SOTA_REF != null) { ?>
<tr>
<td>SOTA Ref:</td>
<td><?php echo $row->COL_SOTA_REF; ?></td>
</tr>
<?php } ?>
</table>
<?php if($row->COL_QSL_SENT == "Y" || $row->COL_QSL_RCVD == "Y") { ?>
<h3>QSL Info</h3>

查看文件

@ -59,6 +59,14 @@
text-transform: uppercase;
}
.qso_panel .iota_ref {
text-transform: uppercase;
}
.qso_panel .sota_ref {
text-transform: uppercase;
}
.workedGrid {
border-color: green;
}
@ -102,4 +110,23 @@ TD.lotw{
.lotw-red{
color: #F00;
font-size: 1.1em;
}
}
.qso-edit-box {
padding: 10px;
}
.previous-qsos .card-title {
margin-bottom: 0px;
}
.qso-map .card-title {
margin-bottom: 0px;
}
.qso-map {
margin-bottom: 10px;
}