Merge pull request #236 from g0wfv/SingleFileLogging

Combines the Live/Manual QSO Interfaces into a single file which is easier for maintenance.
这个提交包含在:
Peter Goodhall 2018-12-18 18:00:52 +00:00 提交者 GitHub
当前提交 0d988a1b45
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23
共有 7 个文件被更改,包括 475 次插入439 次删除

查看文件

@ -2,10 +2,9 @@
class Frequency { class Frequency {
const modes = array('SSB','FM','AM','CW','DSTAR','F4M','DMR','DIGITALVOICE', const modes = array('SSB','FM','AM','CW','DSTAR','F4M','DMR','DIGITALVOICE',
'PSK31','PSK63','RTTY', 'PSK31','PSK63','RTTY','JT65','JT65B','JT6C','JT9-1',
'JT65','JT65B','JT6C','JT9-1','JT9','FT8', 'JT9','FT8','FSK441','JTMS','ISCAT','MSK144','JTMSK',
'FSK441','JTMS','ISCAT','MSK144','JTMSK', 'QRA64','PKT','SSTV','HELL','HELL80');
'QRA64','PKT','SSTV','HELL','HELL80');
public $defaultFrequencies = array( public $defaultFrequencies = array(
'160m'=>array( '160m'=>array(
@ -55,7 +54,7 @@ class Frequency {
'2m'=>array( '2m'=>array(
'SSB'=>"144300000", 'SSB'=>"144300000",
'DATA'=>"144370000", 'DATA'=>"144370000",
'CW'=>"144.050000"), 'CW'=>"144050000"),
'70cm'=>array( '70cm'=>array(
'SSB'=>"432200000", 'SSB'=>"432200000",
'DATA'=>"432088000", 'DATA'=>"432088000",
@ -80,35 +79,34 @@ class Frequency {
'SSB'=>"1022500000", 'SSB'=>"1022500000",
'DATA'=>"1022500000", 'DATA'=>"1022500000",
'CW'=>"1022500000") 'CW'=>"1022500000")
); );
/* Class to convert band and mode into a frequnecy in a format based on the specifications of the database table */ /* Class to convert band and mode into a frequnecy in a format based on the specifications of the database table */
public function convent_band($band, $mode='SSB') public function convent_band($band, $mode='SSB')
{ {
// Modes for which we've set a frequency // Modes for which we've set a frequency
$known_modes = array('SSB', 'DATA', 'CW'); $known_modes = array('SSB', 'DATA', 'CW');
// Data modes that are being treated as 'DATA' for frequency lookup // Data modes that are being treated as 'DATA' for frequency lookup
$data_modes = array('PSK31','PSK63','RTTY', $data_modes = array('PSK31','PSK63','RTTY',
'JT65','JT65B','JT6C','JT9-1','JT9','FT8', 'JT65','JT65B','JT6C','JT9-1','JT9','FT8',
'FSK441','JTMS','ISCAT','MSK144','JTMSK', 'FSK441','JTMS','ISCAT','MSK144','JTMSK',
'QRA64','PKT','SSTV','HELL','HELL80'); 'QRA64','PKT','SSTV','HELL','HELL80');
// Use 'DATA' for any of the data modes // Use 'DATA' for any of the data modes
if(in_array($mode, $data_modes)){ if(in_array($mode, $data_modes)){
$mode= "DATA"; $mode= "DATA";
} }
// If the mode isn't listed, default to SSB frequency // If the mode isn't listed, default to SSB frequency
if (!in_array($mode, $known_modes)){ if (!in_array($mode, $known_modes)){
$mode = 'SSB'; $mode = 'SSB';
} }
return $this->defaultFrequencies[$band][$mode]; return $this->defaultFrequencies[$band][$mode];
}
} public function GetBand($Frequency) {
public function GetBand($Frequency) {
$Band = NULL; $Band = NULL;
if ($Frequency > 1000000 && $Frequency < 2000000) { if ($Frequency > 1000000 && $Frequency < 2000000) {
$Band = "160m"; $Band = "160m";

查看文件

@ -49,9 +49,9 @@
<li class="dropdown" data-dropdown="dropdown" > <li class="dropdown" data-dropdown="dropdown" >
<a href="#" class="dropdown-toggle">QSOs</a> <a href="#" class="dropdown-toggle">QSOs</a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="<?php echo site_url('qso');?>" title="qso">Live QSOs</a></li> <li><a href="<?php echo site_url('qso?manual=0');?>" title="Live QSOs">Live QSOs</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="<?php echo site_url('qso/manual');?>" title="Notes">Post QSOs</a></li> <li><a href="<?php echo site_url('qso?manual=1');?>" title="Post QSOs">Post QSOs</a></li>
</ul> </ul>
<?php } ?> <?php } ?>

查看文件

@ -1,33 +1,38 @@
<!-- JS --> <!-- JS -->
<script type="text/javascript" src="<?php echo base_url() ;?>/fancybox/jquery.mousewheel-3.0.4.pack.js"></script> <script type="text/javascript" src="<?php echo base_url() ;?>/fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
<script type="text/javascript" src="<?php echo base_url() ;?>/fancybox/jquery.fancybox-1.3.4.pack.js"></script> <script type="text/javascript" src="<?php echo base_url() ;?>/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="<?php echo base_url() ;?>/js/jquery.jclock.js"></script> <script type="text/javascript" src="<?php echo base_url() ;?>/js/jquery.jclock.js"></script>
<script type="text/javascript" src="<?php echo base_url() ;?>/js/radiohelpers.js"></script> <script type="text/javascript" src="<?php echo base_url() ;?>/js/radiohelpers.js"></script>
<link rel="stylesheet" type="text/css" href="<?php echo base_url() ;?>/fancybox/jquery.fancybox-1.3.4.css" media="screen" /> <link rel="stylesheet" type="text/css" href="<?php echo base_url() ;?>/fancybox/jquery.fancybox-1.3.4.css" media="screen" />
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { var manual = <?php echo $_GET['manual']; ?>;
$(".qsobox").fancybox({
'autoDimensions' : false,
'width' : 700,
'height' : 300,
'transitionIn' : 'fade',
'transitionOut' : 'fade',
'type' : 'iframe'
});
$(function($) { $(document).ready(function() {
var options = { $(".qsobox").fancybox({
utc: true 'autoDimensions' : false,
} 'width' : 700,
$('.input_time').jclock(options); 'height' : 300,
}); 'transitionIn' : 'fade',
}); 'transitionOut' : 'fade',
'type' : 'iframe'
});
</script> if ( ! manual ) {
$(function($) {
var options = {
utc: true,
format: '%H:%M'
}
$('.input_time').jclock(options);
});
}
});
</script>
<div id="container"> <div id="container">
@ -45,435 +50,469 @@
</div> </div>
<?php } ?> <?php } ?>
<div class="row show-grid"> <div class="row show-grid">
<div class="span6"> <div class="span6">
<h2>Add QSO</h2> <h2>Add QSO <?php echo ($_GET['manual'] == 1 ? "(post entry)" : "") ?></h2>
<form id="qso_input" method="post" action="<?php echo site_url('qso'); ?>" name="qsos"> <form id="qso_input" method="post" action="<?php echo site_url('qso') . "?manual=" . $_GET['manual']; ?>" name="qsos">
<input type="hidden" id="dxcc_id" name="dxcc_id" value=""/> <input type="hidden" id="dxcc_id" name="dxcc_id" value=""/>
<input type="hidden" id="cqz" name="cqz" value="" /> <input type="hidden" id="cqz" name="cqz" value=""/>
<table style="margin-bottom: 0px;"> <table style="margin-bottom: 0px;">
<tr> <tr>
<td class="title">Date</td> <td class="title">Date</td>
<td><input class="input_date" type="text" name="start_date" value="<?php echo date('d-m-Y'); ?>" size="10" /> <input class="input_time" type="text" name="start_time" value="" size="7" /></td> <td>
</tr> <input class="input_date" type="text" name="start_date" value="<?php echo date('d-m-Y'); ?>" size="10" <?php echo ($_GET['manual'] == 0 ? "disabled" : ""); ?> />
<input class="input_time" type="text" id="start_date" name="start_time" value="<?php echo date('H:i'); ?>" size="7" <?php echo ($_GET['manual'] == 0 ? "disabled" : ""); ?> />
<tr> <?php if ( $_GET['manual'] == 0 ) { ?>
<td class="title">Callsign</td> <input class="input_time" type="hidden" id="start_time" name="start_time"value="<?php echo date('H:i'); ?>" />
<td><input size="10" id="callsign" type="text" name="callsign" value="" /></td> <input class="input_date" type="hidden" id="start_date" name="start_date" value="<?php echo date('d-m-Y'); ?>" />
</tr> <?php } ?>
<tr> </td>
<td class="title">Mode</td> </tr>
<td><select name="mode" class="mode">
<tr>
<td class="title">Callsign</td>
<td><input size="10" id="callsign" type="text" name="callsign" value="" /></td>
</tr>
<tr>
<td class="title">Mode</td>
<td><select name="mode" class="mode">
<?php <?php
$this->load->library('frequency'); $this->load->library('frequency');
foreach(Frequency::modes as $mode){ foreach(Frequency::modes as $mode){
printf("<option value=\"%s\" %s>%s</option>", printf("<option value=\"%s\" %s>%s</option>",
$mode, $mode,
$this->session->userdata('mode')==$mode?"selected=\"selected\"":"", $this->session->userdata('mode')==$mode?"selected=\"selected\"":"",
$mode); $mode);
} }
?> ?>
</select> </select>
<span class="title">Band</span> <span class="title">Band</span>
<select name="band" class="band"> <select name="band" class="band">
<option value="160m" <?php if($this->session->userdata('band') == "160m") { echo "selected=\"selected\""; } ?>>160m</option> <option value="160m" <?php if($this->session->userdata('band') == "160m") { echo "selected=\"selected\""; } ?>>160m</option>
<option value="80m" <?php if($this->session->userdata('band') == "80m") { echo "selected=\"selected\""; } ?>>80m</option> <option value="80m" <?php if($this->session->userdata('band') == "80m") { echo "selected=\"selected\""; } ?>>80m</option>
<option value="60m" <?php if($this->session->userdata('band') == "60m") { echo "selected=\"selected\""; } ?>>60m</option> <option value="60m" <?php if($this->session->userdata('band') == "60m") { echo "selected=\"selected\""; } ?>>60m</option>
<option value="40m" <?php if($this->session->userdata('band') == "40m") { echo "selected=\"selected\""; } ?>>40m</option> <option value="40m" <?php if($this->session->userdata('band') == "40m") { echo "selected=\"selected\""; } ?>>40m</option>
<option value="30m" <?php if($this->session->userdata('band') == "30m") { echo "selected=\"selected\""; } ?>>30m</option> <option value="30m" <?php if($this->session->userdata('band') == "30m") { echo "selected=\"selected\""; } ?>>30m</option>
<option value="20m" <?php if($this->session->userdata('band') == "20m") { echo "selected=\"selected\""; } ?>>20m</option> <option value="20m" <?php if($this->session->userdata('band') == "20m") { echo "selected=\"selected\""; } ?>>20m</option>
<option value="17m" <?php if($this->session->userdata('band') == "17m") { echo "selected=\"selected\""; } ?>>17m</option> <option value="17m" <?php if($this->session->userdata('band') == "17m") { echo "selected=\"selected\""; } ?>>17m</option>
<option value="15m" <?php if($this->session->userdata('band') == "15m") { echo "selected=\"selected\""; } ?>>15m</option> <option value="15m" <?php if($this->session->userdata('band') == "15m") { echo "selected=\"selected\""; } ?>>15m</option>
<option value="12m" <?php if($this->session->userdata('band') == "12m") { echo "selected=\"selected\""; } ?>>12m</option> <option value="12m" <?php if($this->session->userdata('band') == "12m") { echo "selected=\"selected\""; } ?>>12m</option>
<option value="10m" <?php if($this->session->userdata('band') == "10m") { echo "selected=\"selected\""; } ?>>10m</option> <option value="10m" <?php if($this->session->userdata('band') == "10m") { echo "selected=\"selected\""; } ?>>10m</option>
<option value="6m" <?php if($this->session->userdata('band') == "6m") { echo "selected=\"selected\""; } ?>>6m</option> <option value="6m" <?php if($this->session->userdata('band') == "6m") { echo "selected=\"selected\""; } ?>>6m</option>
<option value="4m" <?php if($this->session->userdata('band') == "4m") { echo "selected=\"selected\""; } ?>>4m</option> <option value="4m" <?php if($this->session->userdata('band') == "4m") { echo "selected=\"selected\""; } ?>>4m</option>
<option value="2m" <?php if($this->session->userdata('band') == "2m") { echo "selected=\"selected\""; } ?>>2m</option> <option value="2m" <?php if($this->session->userdata('band') == "2m") { echo "selected=\"selected\""; } ?>>2m</option>
<option value="70cm" <?php if($this->session->userdata('band') == "70cm") { echo "selected=\"selected\""; } ?>>70cm</option> <option value="70cm" <?php if($this->session->userdata('band') == "70cm") { echo "selected=\"selected\""; } ?>>70cm</option>
<option value="23cm" <?php if($this->session->userdata('band') == "23cm") { echo "selected=\"selected\""; } ?>>23cm</option> <option value="23cm" <?php if($this->session->userdata('band') == "23cm") { echo "selected=\"selected\""; } ?>>23cm</option>
<option value="13cm" <?php if($this->session->userdata('band') == "14cm") { echo "selected=\"selected\""; } ?>>13cm</option> <option value="13cm" <?php if($this->session->userdata('band') == "14cm") { echo "selected=\"selected\""; } ?>>13cm</option>
<option value="9cm" <?php if($this->session->userdata('band') == "9cm") { echo "selected=\"selected\""; } ?>>9cm</option> <option value="9cm" <?php if($this->session->userdata('band') == "9cm") { echo "selected=\"selected\""; } ?>>9cm</option>
<option value="3cm" <?php if($this->session->userdata('band') == "3cm") { echo "selected=\"selected\""; } ?>>3cm</option> <option value="3cm" <?php if($this->session->userdata('band') == "3cm") { echo "selected=\"selected\""; } ?>>3cm</option>
</select></td> </select></td>
</tr> </tr>
<tr> <tr>
<td class="title">RST (S)</td> <td class="title">RST (S)</td>
<td><input id="rst_sent" class="rst" name="rst_sent" type="text" size="3" value="59"> <span class="title">RST (R)</span> <input id="rst_recv" class="rst" name="rst_recv" type="text" size="3" value="59"></td> <td><input id="rst_sent" class="rst" name="rst_sent" type="text" size="3" value="59"> <span class="title">RST (R)</span> <input id="rst_recv" class="rst" name="rst_recv" type="text" size="3" value="59"></td>
</tr> </tr>
<tr> <tr>
<td class="title">Name</td> <td class="title">Name</td>
<td><input id="name" type="text" name="name" value="" /></td> <td><input id="name" type="text" name="name" value="" /></td>
</tr> </tr>
<tr> <tr>
<td class="title">Location</td> <td class="title">Location</td>
<td><input id="qth" type="text" name="qth" value="" /></td> <td><input id="qth" type="text" name="qth" value="" /></td>
</tr> </tr>
<tr> <tr>
<td class="title">Locator</td> <td class="title">Locator</td>
<td><input id="locator" type="text" name="locator" value="" size="7" /></td> <td><input id="locator" type="text" name="locator" value="" size="7" /></td>
</tr> </tr>
<tr> <tr>
<td class="title">Comment</td> <td class="title">Comment</td>
<td><input id="comment" type="text" name="comment" value="" /></td> <td><input id="comment" type="text" name="comment" value="" /></td>
</tr> </tr>
</table> </table>
<div class="info"> <div class="info">
<input style="border: none; -webkit-box-shadow: none;" size="20" id="country" type="text" name="country" value="" /> <span id="locator_info"></span> <input style="border: none; -webkit-box-shadow: none;" size="20" id="country" type="text" name="country" value="" /> <span id="locator_info"></span>
</div> </div>
<ul class="tabs"> <ul class="tabs">
<li class="active"><a href="#home">Home</a></li> <li class="active"><a href="#home">Home</a></li>
<li><a href="#station">Station</a></li> <li><a href="#station">Station</a></li>
<li><a href="#satellite">Satellite</a></li> <li><a href="#satellite">Satellite</a></li>
<li><a href="#qsl">QSL</a></li> <li><a href="#qsl">QSL</a></li>
</ul> </ul>
<div class="pill-content"> <div class="pill-content">
<div class="active" id="home"> <div class="active" id="home">
<table> <table>
<tr> <tr>
<td>Propagation Mode</td> <td>Propagation Mode</td>
<td> <td>
<select name="prop_mode"> <select name="prop_mode">
<option value="" selected="selected"></option> <option value="" selected="selected"></option>
<option value="AUR">Aurora</option> <option value="AUR">Aurora</option>
<option value="AUE">Aurora-E</option> <option value="AUE">Aurora-E</option>
<option value="BS">Back scatter</option> <option value="BS">Back scatter</option>
<option value="ECH">EchoLink</option> <option value="ECH">EchoLink</option>
<option value="EME">Earth-Moon-Earth</option> <option value="EME">Earth-Moon-Earth</option>
<option value="ES">Sporadic E</option> <option value="ES">Sporadic E</option>
<option value="FAI">Field Aligned Irregularities</option> <option value="FAI">Field Aligned Irregularities</option>
<option value="F2">F2 Reflection</option> <option value="F2">F2 Reflection</option>
<option value="INTERNET">Internet-assisted</option> <option value="INTERNET">Internet-assisted</option>
<option value="ION">Ionoscatter</option> <option value="ION">Ionoscatter</option>
<option value="IRL">IRLP</option> <option value="IRL">IRLP</option>
<option value="MS">Meteor scatter</option> <option value="MS">Meteor scatter</option>
<option value="RPT">Terrestrial or atmospheric repeater or transponder</option> <option value="RPT">Terrestrial or atmospheric repeater or transponder</option>
<option value="RS">Rain scatter</option> <option value="RS">Rain scatter</option>
<option value="SAT">Satellite</option> <option value="SAT">Satellite</option>
<option value="TEP">Trans-equatorial</option> <option value="TEP">Trans-equatorial</option>
<option value="TR">Tropospheric ducting</option> <option value="TR">Tropospheric ducting</option>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>IOTA</td> <td>IOTA</td>
<td><input id="iota_ref" type="text" name="iota_ref" value="" /> e.g: EU-005</td> <td><input id="iota_ref" type="text" name="iota_ref" value="" /> e.g: EU-005</td>
</tr> </tr>
</table> </table>
</div> </div>
<div id="station"> <div id="station">
<table> <table>
<tr> <tr>
<td>Radio</td> <td>Radio</td>
<td> <td>
<select class="radios" name="radio"> <select class="radios" name="radio">
<option value="0" selected="selected">None</option> <option value="0" selected="selected">None</option>
<?php foreach ($radios->result() as $row) { ?> <?php foreach ($radios->result() as $row) { ?>
<option value="<?php echo $row->id; ?>" <?php if($this->session->userdata('radio') == $row->id) { echo "selected=\"selected\""; } ?>><?php echo $row->radio; ?></option> <option value="<?php echo $row->id; ?>" <?php if($this->session->userdata('radio') == $row->id) { echo "selected=\"selected\""; } ?>><?php echo $row->radio; ?></option>
<?php } ?> <?php } ?>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Frequency</td> <td>Frequency</td>
<td><input type="text" id="frequency" name="freq_display" value="" /></td> <td><input type="text" id="frequency" name="freq_display" value="" /></td>
</tr> </tr>
</table> </table>
</div> </div>
<div id="satellite"> <div id="satellite">
<table> <table>
<tr> <tr>
<td>Sat Name</td> <td>Sat Name</td>
<td><input id="sat_name" type="text" name="sat_name" class="sat_name" value="<?php echo $this->session->userdata('sat_name'); ?>" /></td> <td><input id="sat_name" type="text" name="sat_name" class="sat_name" value="<?php echo $this->session->userdata('sat_name'); ?>" /></td>
</tr> </tr>
<tr> <tr>
<td>Sat Mode</td> <td>Sat Mode</td>
<td><input id="sat_mode" type="text" name="sat_mode" class="sat_mode" value="<?php echo $this->session->userdata('sat_mode'); ?>" /></td> <td><input id="sat_mode" type="text" name="sat_mode" class="sat_mode" value="<?php echo $this->session->userdata('sat_mode'); ?>" /></td>
</tr> </tr>
</table> </table>
</div> </div>
<div id="qsl"> <div id="qsl">
<table> <table>
<tr> <tr>
<td>Sent</td> <td>Sent</td>
<td><select name="qsl_sent"> <td><select name="qsl_sent">
<option value="N" selected="selected">No</option> <option value="N" selected="selected">No</option>
<option value="Y">Yes</option> <option value="Y">Yes</option>
<option value="R">Requested</option> <option value="R">Requested</option>
</select></td> </select></td>
<tr> <tr>
<td>Method</td> <td>Method</td>
<td><select name="qsl_sent_method"> <td><select name="qsl_sent_method">
<option value="" selected="selected">Method</option> <option value="" selected="selected">Method</option>
<option value="D">Direct</option> <option value="D">Direct</option>
<option value="B">Bureau</option> <option value="B">Bureau</option>
</select></td> </select></td>
</tr> </tr>
<tr> <tr>
<td>Via</td> <td>Via</td>
<td><input type="text" name="qsl_via" value="" /></td> <td><input type="text" name="qsl_via" value="" /></td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
<div class="actions"><input class="btn primary" type="submit" value="Add QSO" /> <input type="reset" value="Reset" class="btn" /></div> <div class="actions"><input class="btn primary" type="submit" value="Add QSO" /> <input type="reset" value="Reset" class="btn" /></div>
</form> </form>
</div> </div>
<div class="span9 offset1"> <div class="span9 offset1">
<div id="partial_view"> <div id="partial_view">
<h2>Last 16 QSOs</h2> <h2>Last 16 QSOs</h2>
<table class="zebra-striped" width="100%"> <table class="zebra-striped" width="100%">
<tr class="log_title titles"> <tr class="log_title titles">
<td>Date</td> <td>Date/Time</td>
<td>Time</td> <td>Call</td>
<td>Call</td> <td>Mode</td>
<td>Mode</td> <td>Sent</td>
<td>Sent</td> <td>Recv</td>
<td>Recv</td> <td>Band</td>
<td>Band</td> </tr>
</tr>
<?php $i = 0; <?php $i = 0;
foreach ($query->result() as $row) { ?> foreach ($query->result() as $row) { ?>
<?php echo '<tr class="tr'.($i & 1).'">'; ?> <?php echo '<tr class="tr'.($i & 1).'">'; ?>
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date('d/m/y', $timestamp); ?></td> <td><?php echo $row->COL_TIME_ON; ?></td>
<td><?php $timestamp = strtotime($row->COL_TIME_ON); echo date('H:i', $timestamp); ?></td> <td><a class="qsobox" href="<?php echo site_url('logbook/view')."/".$row->COL_PRIMARY_KEY; ?>"><?php echo strtoupper($row->COL_CALL); ?></a></td>
<td><a class="qsobox" href="<?php echo site_url('logbook/view')."/".$row->COL_PRIMARY_KEY; ?>"><?php echo strtoupper($row->COL_CALL); ?></a></td> <td><?php echo $row->COL_MODE; ?></td>
<td><?php echo $row->COL_MODE; ?></td> <td><?php echo $row->COL_RST_SENT; ?></td>
<td><?php echo $row->COL_RST_SENT; ?></td> <td><?php echo $row->COL_RST_RCVD; ?></td>
<td><?php echo $row->COL_RST_RCVD; ?></td> <?php if($row->COL_SAT_NAME != null) { ?>
<?php if($row->COL_SAT_NAME != null) { ?> <td><?php echo $row->COL_SAT_NAME; ?></td>
<td><?php echo $row->COL_SAT_NAME; ?></td> <?php } else { ?>
<?php } else { ?> <td><?php echo $row->COL_BAND; ?></td>
<td><?php echo $row->COL_BAND; ?></td> <?php } ?>
<?php } ?> </tr>
</tr> <?php $i++; } ?>
<?php $i++; } ?>
</table></div> </table></div>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
i=0;
$(document).ready(function(){
// Set the focus input to the callsign field function delay(callback, ms) {
$("#callsign").focus(); var timer = 0;
/* Javascript for controlling rig frequency. */ return function() {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
callback.apply(context, args);
}, ms || 0);
};
}
var updateFromCAT = function() { i=0;
if($('select.radios option:selected').val() != '0') { typeDelay=1000;
// Get frequency
$.get('radio/frequency/' + $('select.radios option:selected').val(), function(result) {
if(result == "0") { $(document).ready(function(){
} else {
$('#frequency').val(result);
$(".band").val(frequencyToBand(result));
}
});
// Get Mode
$.get('radio/mode/' + $('select.radios option:selected').val(), function(result) {
if (result == "LSB" || result == "USB" || result == "SSB") {
$(".mode").val('SSB');
} else {
$(".mode").val(result);
}
});
// Get SAT_Name // Set the focus input to the callsign field
$.get('radio/satname/' + $('select.radios option:selected').val(), function(result) { $("#callsign").focus();
$(".sat_name").val(result);
});
// Get SAT_Name /* Javascript for controlling rig frequency. */
$.get('radio/satmode/' + $('select.radios option:selected').val(), function(result) { <?php if ( $_GET['manual'] == 0 ) { ?>
$(".sat_mode").val(result); var updateFromCAT = function() {
}); if($('select.radios option:selected').val() != '0') {
// Get frequency
$.get('radio/frequency/' + $('select.radios option:selected').val(), function(result) {
} if(result == "0") {
}; } else {
$('#frequency').val(result);
$(".band").val(frequencyToBand(result));
}
});
// Get Mode
$.get('radio/mode/' + $('select.radios option:selected').val(), function(result) {
if (result == "LSB" || result == "USB" || result == "SSB") {
$(".mode").val('SSB');
} else {
$(".mode").val(result);
}
});
// Update frequency every second // Get SAT_Name
setInterval(updateFromCAT, 1000); $.get('radio/satname/' + $('select.radios option:selected').val(), function(result) {
$(".sat_name").val(result);
});
// If a radios selected from drop down select radio update. // Get SAT_Name
$('.radios').change(updateFromCAT); $.get('radio/satmode/' + $('select.radios option:selected').val(), function(result) {
$(".sat_mode").val(result);
});
// If radio isn't SatPC32 clear sat_name and sat_mode }
$( ".radios" ).change(function() { };
if ($("#yourdropdownid option:selected").text() != "SatPC32") {
$(".sat_name").val("");
$(".sat_mode").val("");
}
});
/* On Page Load */ // Update frequency every second
var catcher = function() { setInterval(updateFromCAT, 1000);
var changed = false;
$('form').each(function() {
if ($(this).data('initialForm') != $(this).serialize()) {
changed = true;
$(this).addClass('changed');
} else {
$(this).removeClass('changed');
}
});
if (changed) {
return 'Unsaved QSO!';
}
};
$(function() { // If a radios selected from drop down select radio update.
$('form').each(function() { $('.radios').change(updateFromCAT);
$(this).data('initialForm', $(this).serialize());
}).submit(function(e) {
var formEl = this;
var changed = false;
$('form').each(function() {
if (this != formEl && $(this).data('initialForm') != $(this).serialize()) {
changed = true;
$(this).addClass('changed');
} else {
$(this).removeClass('changed');
}
});
if (changed && !confirm('You have an unsaved QSO. Continue with QSO?')) {
e.preventDefault();
} else {
$(window).unbind('beforeunload', catcher);
}
});
$(window).bind('beforeunload', catcher);
});
$.get('qso/band_to_freq/' + $('.band').val() + '/' + $('.mode').val(), function(result) {
$('#frequency').val(result);
});
/* Calculate Frequency */
/* on band change */
$('.band').change(function() {
$.get('qso/band_to_freq/' + $(this).val() + '/' + $('.mode').val(), function(result) {
$('#frequency').val(result);
});
});
/* on mode change */
$('.mode').change(function() {
$.get('qso/band_to_freq/' + $('.band').val() + '/' + $('.mode').val(), function(result) {
$('#frequency').val(result);
});
});
/* On Key up Calculate Bearing and Distance */
$("#locator").keyup(function(){
if ($(this).val()) {
$('#locator_info').load("logbook/bearing/" + $(this).val()).fadeIn("slow");
}
});
/* On Callsign Change */
$("#callsign").focusout(function(){
if ($(this).val()) {
/* Find Callsign Matches */
$('#partial_view').load("logbook/partial/" + $(this).val()).fadeIn("slow");
/* Find and populate DXCC */
$.get('logbook/find_dxcc/' + $(this).val(), function(result) {
//$('#country').val(result);
obj = JSON.parse(result);
$('#country').val(convert_case(obj.Name));
$('#dxcc_id').val(obj.DXCC);
$('#cqz').val(obj.CQZ);
}); // If radio isn't SatPC32 clear sat_name and sat_mode
$( ".radios" ).change(function() {
/* Find Locator if the field is empty */ if ($("#yourdropdownid option:selected").text() != "SatPC32") {
if($('#locator').val() == "") { $(".sat_name").val("");
$.get('logbook/callsign_qra/' + $(this).val(), function(result) { $(".sat_mode").val("");
$('#locator').val(result); }
$('#locator_info').load("logbook/bearing/" + result).fadeIn("slow"); });
});
} <?php } ?>
/* Find Operators Name */
if($('#name').val() == "") {
$.get('logbook/callsign_name/' + $(this).val(), function(result) {
$('#name').val(result);
});
}
if($('#qth').val() == "") { /* On Page Load */
$.get('logbook/callsign_qth/' + $(this).val(), function(result) { var catcher = function() {
$('#qth').val(result); var changed = false;
}); $('form').each(function() {
} if ($(this).data('initialForm') != $(this).serialize()) {
changed = true;
if($('#qth').val() == "") { $(this).addClass('changed');
$.get('logbook/callsign_iota/' + $(this).val(), function(result) { } else {
$('#iota_ref').val(result); $(this).removeClass('changed');
}); }
} });
if (changed) {
return 'Unsaved QSO!';
}
};
} $(function() {
}); $('form').each(function() {
$(this).data('initialForm', $(this).serialize());
}).submit(function(e) {
// Change report based on mode var formEl = this;
$('.mode').change(function(){ var changed = false;
if($(this).val() == 'JT65' || $(this).val() == 'JT65B' || $(this).val() == 'JT6C' || $(this).val() == 'JTMS' || $(this).val() == 'ISCAT' || $(this).val() == 'MSK144' || $(this).val() == 'JTMSK' || $(this).val() == 'QRA64'){ $('form').each(function() {
$('#rst_sent').val('-5'); if (this != formEl && $(this).data('initialForm') != $(this).serialize()) {
$('#rst_recv').val('-5'); changed = true;
} else if ($(this).val() == 'FSK441' || $(this).val() == 'JT6M') { $(this).addClass('changed');
$('#rst_sent').val('26'); } else {
$('#rst_recv').val('26'); $(this).removeClass('changed');
} else if ($(this).val() == 'CW') { }
$('#rst_sent').val('599'); });
$('#rst_recv').val('599'); if (changed && !confirm('You have an unsaved QSO. Continue with QSO?')) {
} else { e.preventDefault();
$('#rst_sent').val('59'); } else {
$('#rst_recv').val('59'); $(window).unbind('beforeunload', catcher);
} }
}); });
}); $(window).bind('beforeunload', catcher);
});
$.get('qso/band_to_freq/' + $('.band').val() + '/' + $('.mode').val(), function(result) {
$('#frequency').val(result);
});
/* Calculate Frequency */
/* on band change */
$('.band').change(function() {
$.get('qso/band_to_freq/' + $(this).val() + '/' + $('.mode').val(), function(result) {
$('#frequency').val(result);
});
});
/* on mode change */
$('.mode').change(function() {
$.get('qso/band_to_freq/' + $('.band').val() + '/' + $('.mode').val(), function(result) {
$('#frequency').val(result);
});
});
/* On Key up Calculate Bearing and Distance */
$("#locator").keyup(function(){
if ($(this).val()) {
$('#locator_info').load("logbook/bearing/" + $(this).val()).fadeIn("slow");
}
});
/* On Callsign Change */
$("#callsign").keyup(delay(function(){
if ($(this).val()) {
/* Find and populate DXCC */
$.get('logbook/find_dxcc/' + $(this).val(), function(result) {
//$('#country').val(result);
obj = JSON.parse(result);
$('#country').val(convert_case(obj.Name));
$('#dxcc_id').val(obj.DXCC);
$('#cqz').val(obj.CQZ);
});
/* Find Locator if the field is empty */
if($('#locator').val() == "") {
$.get('logbook/callsign_qra/' + $(this).val(), function(result) {
$('#locator').val(result);
$('#locator_info').load("logbook/bearing/" + result).fadeIn("slow");
});
}
/* Find Operators Name */
if($('#name').val() == "") {
$.get('logbook/callsign_name/' + $(this).val(), function(result) {
$('#name').val(result);
});
}
if($('#qth').val() == "") {
$.get('logbook/callsign_qth/' + $(this).val(), function(result) {
$('#qth').val(result);
});
}
if($('#qth').val() == "") {
$.get('logbook/callsign_iota/' + $(this).val(), function(result) {
$('#iota_ref').val(result);
});
}
/* Find Callsign Matches */
$('#partial_view').load("logbook/partial/" + $(this).val()).fadeIn("slow");
} else {
/* Reset fields ... */
$('#country').val("");
$('#dxcc_id').val("");
$('#cqz').val("");
$('#name').val("");
$('#qth').val("");
$('#locator').val("");
$('#iota_ref').val("");
$('#partial_view').load("logbook/partial/");
}
}, typeDelay));
// Change report based on mode
$('.mode').change(function(){
if($(this).val() == 'JT65' || $(this).val() == 'JT65B' || $(this).val() == 'JT6C' || $(this).val() == 'JTMS' || $(this).val() == 'ISCAT' || $(this).val() == 'MSK144' || $(this).val() == 'JTMSK' || $(this).val() == 'QRA64'){
$('#rst_sent').val('-5');
$('#rst_recv').val('-5');
} else if ($(this).val() == 'FSK441' || $(this).val() == 'JT6M') {
$('#rst_sent').val('26');
$('#rst_recv').val('26');
} else if ($(this).val() == 'CW') {
$('#rst_sent').val('599');
$('#rst_recv').val('599');
} else {
$('#rst_sent').val('59');
$('#rst_recv').val('59');
}
});
});
function convert_case(str) { function convert_case(str) {
var lower = str.toLowerCase(); var lower = str.toLowerCase();
return lower.replace(/(^| )(\w)/g, function(x) { return lower.replace(/(^| )(\w)/g, function(x) {
return x.toUpperCase(); return x.toUpperCase();
}); });
} }
</script> </script>

查看文件

@ -1,4 +1,4 @@
<table width="100%"> <table class="zebra-striped" width="100%">
<tr class="titles"> <tr class="titles">
<td>Date</td> <td>Date</td>
<td>Time</td> <td>Time</td>

查看文件

@ -69,7 +69,7 @@ td.item { padding-bottom: 5px; }
.title { padding-top: 5px; padding-bottom: 5px; color: #0073EA; font-weight: bold; } .title { padding-top: 5px; padding-bottom: 5px; color: #0073EA; font-weight: bold; }
#qso_input { border: 1px solid #dddddd; margin: 5px; padding: 2px; } #qso_input { border: 1px solid #dddddd; margin: 5px; padding: 2px; }
.input_date { width: 70px; } .input_date { width: 70px; }
.input_time { width: 54px; } .input_time { width: 32px; }
#locator { width: 55px; text-transform: uppercase; } #locator { width: 55px; text-transform: uppercase; }
#country { border: none; } #country { border: none; }
#locator_info { font-size: 13px; } #locator_info { font-size: 13px; }
@ -103,4 +103,4 @@ ul#user li { float: left; margin: 2px 2px 0 3px; height:43px; border-bottom: non
.pager a:hover { background-color: azure; } .pager a:hover { background-color: azure; }
/* Footer */ /* Footer */
#footer { margin: 0 auto; width: 780px; text-align: center; padding-top: 5px; padding-bottom: 5px; font-size: 12px; } #footer { margin: 0 auto; width: 780px; text-align: center; padding-top: 5px; padding-bottom: 5px; font-size: 12px; }

查看文件

@ -22,7 +22,7 @@ table .title { font-weight: bold; color: #439BF6; }
/* Add QSO CSS */ /* Add QSO CSS */
.rst { width: 50px !important; } .rst { width: 50px !important; }
.input_date { width: 70px !important; } .input_date { width: 70px !important; }
.input_time { width: 55px !important; } .input_time { width: 32px !important; }
.band { width: 80px; } .band { width: 80px; }
.mode { width: 80px; } .mode { width: 80px; }
#callsign { text-transform: uppercase; } #callsign { text-transform: uppercase; }

文件差异因一行或多行过长而隐藏