mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 18:27:16 +00:00
Merge pull request #515 from HB9HIL/qso_callbook_update
QSO Edit - Callbook update for a single QSO
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user