Merge pull request #515 from HB9HIL/qso_callbook_update

QSO Edit - Callbook update for a single QSO
This commit is contained in:
HB9HIL
2024-07-09 11:36:23 +02:00
committed by GitHub
2 changed files with 69 additions and 4 deletions

View File

@@ -60,7 +60,7 @@
<div class="row">
<div class="mb-3 col-sm-6">
<label for="callsign"><?= __("Callsign"); ?></label>
<input type="text" class="form-control" id="callsign" name="callsign" value="<?php echo $qso->COL_CALL; ?>">
<input type="text" class="form-control" id="edit_callsign" name="callsign" value="<?php echo $qso->COL_CALL; ?>">
</div>
<div class="mb-3 col-sm-6">
@@ -81,7 +81,7 @@
<div class="row">
<div class="mb-3 col-sm-6">
<label for="freq"><?= __("Band"); ?></label>
<select id="band" class="form-select form-select-sm" name="band">
<select id="edit_band" class="form-select form-select-sm" name="band">
<?php foreach($bands as $key=>$bandgroup) {
echo '<optgroup label="' . strtoupper($key) . '">';
foreach($bandgroup as $band) {
@@ -117,7 +117,7 @@
<div class="row">
<div class="mb-3 col-sm-6">
<label for="freq"><?= __("Mode"); ?></label>
<select id="mode" class="form-select mode form-select-sm" name="mode">
<select id="edit_mode" class="form-select mode form-select-sm" name="mode">
<?php
foreach($modes->result() as $mode){
var_dump($mode);
@@ -588,7 +588,10 @@
<div class="actions">
<a class="btn btn-danger" href="javascript:qso_delete(<?php echo $qso->COL_PRIMARY_KEY; ?>, '<?php echo $qso->COL_CALL; ?>')"><i class="fas fa-trash-alt"></i> <?= __("Delete QSO"); ?></a>
<button id="show" type="button" name="download" class="btn btn-primary float-end" onclick="qso_save();"><i class="fas fa-save"></i> <?= __("Save changes"); ?></button>
<div class="float-end">
<button id="update_from_callbook" type="button" class="btn btn-warning ld-ext-right" onclick="single_callbook_update();"><i class="fas fa-book"></i> <?= __("Update from Callbook"); ?><div class="ld ld-ring ld-spin"></div></button>
<button id="show" type="button" name="download" class="btn btn-primary" onclick="qso_save();"><i class="fas fa-save"></i> <?= __("Save changes"); ?></button>
</div>
</div>
</div>
</div>

View File

@@ -152,6 +152,68 @@ function displayQso(id) {
});
}
// used in edit_ajax.php to update the currently editing QSO
function single_callbook_update() {
var callsign = $('#edit_callsign').val();
var band = $('#edit_band').val();
var mode = $('#edit_mode').val();
$('#update_from_callbook').prop("disabled", true).addClass("running");
$.ajax({
url: site_url + '/logbook/json/' + callsign + '/' + band + '/' + mode,
dataType: 'json',
success: function (data) {
// console.log(data);
fill_if_empty('#qth', data.callsign_qth);
fill_if_empty('#dxcc_id', data.dxcc.adif);
fill_if_empty('#continent', data.dxcc.cont);
fill_if_empty('#cqz', data.dxcc.cqz);
fill_if_empty('#distance', data.callsign_distance);
fill_if_empty('#locator', data.callsign_qra);
// fill_if_empty('#image', data.image); Not in use yet, but may in future
fill_if_empty('#iota_ref', data.callsign_iota);
fill_if_empty('#name', data.callsign_name);
fill_if_empty('#qsl-via', data.qsl_manager);
fill_if_empty('#stateDropdown', data.callsign_state);
fill_if_empty('#stationCntyInputEdit', data.callsign_us_county);
$('#update_from_callbook').prop("disabled", false).removeClass("running");
},
error: function () {
console.error("Sorry, something went wrong to get the callbook data.");
$('#update_from_callbook').prop("disabled", false).removeClass("running");
},
});
}
// used with single_callbook_update() to only fill fields which are empty
async function fill_if_empty(field, data) {
var border_color = '2px solid green';
// catch special case for dxcc
if (field == "#dxcc_id" && $(field).val() == 0) {
$(field).val(data).css('border', border_color);
}
// catch special case for state
if (field == '#stateDropdown') {
await updateStateDropdown('#dxcc_id', '#stateInputLabel', '#location_us_county', '#stationCntyInputEdit');
$(field).val(data).css('border', border_color);
}
// catch special case for distance
if (field == "#distance" && $(field).val() == 0) {
$(field).val(data).css('border', border_color);
// $('#locator_info').html(data);
}
if ($(field).val() == '' && data != '') {
$(field).val(data).css('border', border_color);
}
}
function qso_delete(id, call) {
BootstrapDialog.confirm({
title: lang_general_word_danger,