Merge pull request #2770 from int2001/lba_op

Added Operator to Table/Quicksearch/Search
这个提交包含在:
Peter Goodhall 2023-12-04 18:02:15 +00:00 提交者 GitHub
当前提交 27f7086a65
找不到此签名对应的密钥
GPG 密钥 ID: 4AEE18F83AFDEB23
共有 20 个文件被更改,包括 74 次插入1 次删除

查看文件

@ -124,6 +124,7 @@ class Logbookadvanced extends CI_Controller {
'wwff' => xss_clean($this->input->post('wwff')),
'qslimages' => xss_clean($this->input->post('qslimages')),
'dupes' => xss_clean($this->input->post('dupes')),
'operator' => xss_clean($this->input->post('operator')),
);
$qsos = [];
@ -286,6 +287,7 @@ class Logbookadvanced extends CI_Controller {
'pota' => '',
'wwff' => '',
'qslimages' => '',
'operator' => '',
'ids' => xss_clean($this->input->post('ids'))
);
@ -324,6 +326,7 @@ class Logbookadvanced extends CI_Controller {
'sota' => xss_clean($this->input->post('sota')),
'pota' => xss_clean($this->input->post('pota')),
'wwff' => xss_clean($this->input->post('wwff')),
'operator' => xss_clean($this->input->post('operator')),
'qslimages' => xss_clean($this->input->post('qslimages')),
);
@ -460,6 +463,8 @@ class Logbookadvanced extends CI_Controller {
$json_string['state']['show'] = $this->input->post('state');
$json_string['cqzone']['show'] = $this->input->post('cqzone');
$json_string['iota']['show'] = $this->input->post('iota');
$json_string['pota']['show'] = $this->input->post('pota');
$json_string['operator']['show'] = $this->input->post('operator');
$obj['column_settings']= json_encode($json_string);

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = '显示';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = '关闭';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = "Afficher";
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = "Fermer";

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Anzeigen';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Schliessen';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -156,4 +156,5 @@ $lang['filter_options_show'] = 'Show';
// $lang['gen_hamradio_wwff'] --> application/language/english/general_words_lang.php
// $lang['gen_hamradio_pota'] --> application/language/english/general_words_lang.php
// $lang['options_save'] --> application/language/english/options_lang.php
$lang['filter_search_operator']='Search Operator';
$lang['filter_options_close'] = 'Close';

查看文件

@ -168,6 +168,11 @@ class Logbookadvanced_model extends CI_Model {
$binding[] = $searchCriteria['wwff'].'%';
}
if ($searchCriteria['operator'] !== '') {
$conditions[] = "COL_OPERATOR like ?";
$binding[] = $searchCriteria['operator'].'%';
}
if ($searchCriteria['gridsquare'] !== '') {
$conditions[] = "(COL_GRIDSQUARE like ? or COL_VUCC_GRIDS like ?)";
$binding[] = '%' . $searchCriteria['gridsquare'] . '%';

查看文件

@ -7,9 +7,13 @@
var custom_date_format = "<?php echo $custom_date_format ?>";
<?php
if (!isset($options)) {
$options = "{\"datetime\":{\"show\":\"true\"},\"de\":{\"show\":\"true\"},\"dx\":{\"show\":\"true\"},\"mode\":{\"show\":\"true\"},\"rstr\":{\"show\":\"true\"},\"rsts\":{\"show\":\"true\"},\"band\":{\"show\":\"true\"},\"myrefs\":{\"show\":\"true\"},\"refs\":{\"show\":\"true\"},\"name\":{\"show\":\"true\"},\"qslvia\":{\"show\":\"true\"},\"qsl\":{\"show\":\"true\"},\"lotw\":{\"show\":\"true\"},\"eqsl\":{\"show\":\"true\"},\"qslmsg\":{\"show\":\"true\"},\"dxcc\":{\"show\":\"true\"},\"state\":{\"show\":\"true\"},\"cqzone\":{\"show\":\"true\"},\"iota\":{\"show\":\"true\"}}";
$options = "{\"datetime\":{\"show\":\"true\"},\"de\":{\"show\":\"true\"},\"dx\":{\"show\":\"true\"},\"mode\":{\"show\":\"true\"},\"rstr\":{\"show\":\"true\"},\"rsts\":{\"show\":\"true\"},\"band\":{\"show\":\"true\"},\"myrefs\":{\"show\":\"true\"},\"refs\":{\"show\":\"true\"},\"name\":{\"show\":\"true\"},\"qslvia\":{\"show\":\"true\"},\"qsl\":{\"show\":\"true\"},\"lotw\":{\"show\":\"true\"},\"eqsl\":{\"show\":\"true\"},\"qslmsg\":{\"show\":\"true\"},\"dxcc\":{\"show\":\"true\"},\"state\":{\"show\":\"true\"},\"cqzone\":{\"show\":\"true\"},\"iota\":{\"show\":\"true\"},\"pota\":{\"show\":\"true\"},\"operator\":{\"show\":\"true\"}}";
}
echo "var user_options = $options;";
if (!isset($options->operator)) {
echo "\nvar o_template = { operator: {show: 'true'}};";
echo "\nuser_options={...user_options, ...o_template}";
}
?>
</script>
<style>
@ -200,6 +204,10 @@ $options = json_decode($options);
<label class="form-label" for="pota"><?php echo lang('gen_hamradio_pota'); ?></label>
<input type="text" name="pota" id="pota" class="form-control form-control-sm" value="">
</div>
<div class="mb-3 col-lg-2 col-md-2 col-sm-3 col-xl">
<label class="form-label" for="operator"><?php echo lang('gen_hamradio_operator'); ?></label>
<input type="text" name="operator" id="operator" class="form-control form-control-sm" value="">
</div>
</div>
</div>
</div>
@ -366,6 +374,9 @@ $options = json_decode($options);
<?php if (($options->refs->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchWwff"><?php echo lang('filter_search_wwff'); ?></button><?php
} ?>
<?php if (($options->operator->show ?? "true") == "true") { ?>
<button type="button" class="btn btn-sm btn-primary me-1" id="searchOperator"><?php echo lang('filter_search_operator'); ?></button><?php
} ?>
</div>
</div>
<div class="row pt-2">
@ -457,6 +468,9 @@ $options = json_decode($options);
<?php if (($options->iota->show ?? "true") == "true") {
echo '<th>' . lang('gen_hamradio_iota') . '</th>';
} ?>
<?php if (($options->operator->show ?? "true") == "true") {
echo '<th>' . lang('gen_hamradio_operator') . '</th>';
} ?>
</tr>
</thead>
<tbody>

查看文件

@ -90,5 +90,9 @@
<td><?php echo lang('gen_hamradio_pota'); ?></td>
<td><div class="form-check"><input class="form-check-input" name="pota" type="checkbox" <?php if (($options->pota->show ?? "true") == "true") { echo 'checked'; } ?>></div></td>
</tr>
<tr>
<td><?php echo lang('gen_hamradio_operator'); ?></td>
<td><div class="form-check"><input class="form-check-input" name="operator" type="checkbox" <?php if (($options->operator->show ?? "true") == "true") { echo 'checked'; } ?>></div></td>
</tr>
</tbody>
</table>

查看文件

@ -81,6 +81,12 @@ function updateRow(qso) {
if (user_options.iota.show == "true"){
cells.eq(c++).html(qso.iota);
}
if (user_options.pota.show == "true"){
cells.eq(c++).html(qso.pota);
}
if ( (user_options.operator) && (user_options.operator.show == "true")){
cells.eq(c++).html(qso.operator);
}
$('[data-bs-toggle="tooltip"]').tooltip();
return row;
@ -174,6 +180,12 @@ function loadQSOTable(rows) {
if (user_options.iota.show == "true"){
data.push(qso.iota);
}
if (user_options.pota.show == "true"){
data.push(qso.pota);
}
if (user_options.operator.show == "true"){
data.push(qso.operator);
}
let createdRow = table.row.add(data).index();
table.rows(createdRow).nodes().to$().data('qsoID', qso.qsoID);
@ -261,6 +273,7 @@ $(document).ready(function () {
qslSentMethod: this.qslSentMethod.value,
qslReceivedMethod: this.qslReceivedMethod.value,
iota: this.iota.value,
operator: this.operator.value,
dxcc: this.dxcc.value,
propmode: this.selectPropagation.value,
gridsquare: this.gridsquare.value,
@ -497,6 +510,10 @@ $(document).ready(function () {
quickSearch('pota');
});
$('#searchOperator').click(function (event) {
quickSearch('operator');
});
$('#dupeButton').click(function (event) {
dupeSearch();
});
@ -623,6 +640,7 @@ $(document).ready(function () {
case 'sota': col1 = $(currentRow).find('#dxsota').text(); break;
case 'wwff': col1 = $(currentRow).find('#dxwwff').text(); break;
case 'pota': col1 = $(currentRow).find('#dxpota').text(); break;
case 'operator': col1 = $(currentRow).find('#operator').text(); break;
case 'mode': col1 = currentRow.find("td:eq(4)").text(); break;
case 'band': col1 = currentRow.find("td:eq(7)").text(); col1 = col1.match(/\S\w*/); break;
}
@ -872,6 +890,7 @@ function mapQsos(form) {
qslvia: $('[name="qslviainput"]').val(),
sota: form.sota.value,
pota: form.pota.value,
operator: form.operator.value,
wwff: form.wwff.value,
qslimages: form.qslimages.value,
},
@ -1069,6 +1088,8 @@ function loadMap(data) {
state: $('input[name="state"]').is(':checked') ? true : false,
cqzone: $('input[name="cqzone"]').is(':checked') ? true : false,
iota: $('input[name="iota"]').is(':checked') ? true : false,
pota: $('input[name="pota"]').is(':checked') ? true : false,
operator: $('input[name="operator"]').is(':checked') ? true : false,
},
success: function(data) {
$('#saveButton').prop("disabled", false);

查看文件

@ -65,6 +65,7 @@ class QSO
private string $callsign;
private string $lastupload;
private string $lotw_hint;
private string $operator;
/**
* @param array $data Does no validation, it's assumed to be a row from the database in array format
@ -116,6 +117,7 @@ class QSO
'COL_STATE',
'COL_COUNTRY',
'COL_IOTA',
'COL_OPERATOR',
];
@ -202,6 +204,7 @@ class QSO
$this->callsign = (($data['callsign'] ?? null) === null) ? '' : $data['callsign'];
$this->lastupload = (($data['lastupload'] ?? null) === null) ? '' : date($custom_date_format . " H:i", strtotime($data['lastupload'] ?? null));
$this->lotw_hint = $this->getLotwHint($data['lastupload'] ?? null);
$this->operator = ($data['COL_OPERATOR'] === null) ? '' :$data['COL_OPERATOR'];
}
/**
@ -771,6 +774,11 @@ class QSO
return '<span id="iota">' . $this->iota . '</span>';
}
public function getOperator(): string
{
return '<span id="operator">' . $this->operator . '</span>';
}
public function toArray(): array
{
return [
@ -792,6 +800,8 @@ class QSO
'name' => $this->getName(),
'dxcc' => $this->getDXCC(),
'state' => $this->getState(),
'pota' => $this->dxPOTAReference,
'operator' => $this->getOperator(),
'cqzone' => $this->getCqzone(),
'iota' => $this->getIOTA(),
'end' => $this->end === null ? null : $this->end->format("Y-m-d"),