[Advanced Logbook] Added filter for QSL images, and slideshow button

这个提交包含在:
Andreas 2023-08-11 19:13:13 +02:00
父节点 369e93308c
当前提交 80b4e8f70f
共有 4 个文件被更改,包括 89 次插入0 次删除

查看文件

@ -115,6 +115,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')),
'qslimages' => xss_clean($this->input->post('qslimages')),
);
$qsos = [];
@ -225,4 +226,11 @@ class Logbookadvanced extends CI_Controller {
public function startAtLabel() {
$this->load->view('logbookadvanced/startatform');
}
public function qslSlideshow() {
$cleanids = $this->security->xss_clean($this->input->post('ids'));
$this->load->model('logbookadvanced_model');
$data['qslimages'] = $this->logbookadvanced_model->getQslsForQsoIds($cleanids);
$this->load->view('qslcard/qslcarousel', $data);
}
}

查看文件

@ -168,6 +168,18 @@ class Logbookadvanced_model extends CI_Model {
$limit = $searchCriteria['qsoresults'];
$where2 = '';
if ($searchCriteria['qslimages'] !== '') {
if ($searchCriteria['qslimages'] == 'Y') {
$where2 .= ' and x.qslcount > "0"';
}
if ($searchCriteria['qslimages'] == 'N') {
$where2 .= ' and x.qslcount is null';
}
}
$sql = "
SELECT *
FROM " . $this->config->item('table_name') . " qsos
@ -181,6 +193,7 @@ class Logbookadvanced_model extends CI_Model {
) x on qsos.COL_PRIMARY_KEY = x.qsoid
WHERE station_profile.user_id = ?
$where
$where2
ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc
LIMIT $limit
";
@ -391,4 +404,19 @@ class Logbookadvanced_model extends CI_Model {
return $modes;
}
function getQslsForQsoIds($ids) {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
$this->db->select('*');
$this->db->from($this->config->item('table_name'));
$this->db->join('qsl_images', 'qsl_images.qsoid = ' . $this->config->item('table_name') . '.col_primary_key');
$this->db->where_in('qsoid', $ids);
$this->db->where_in('station_id', $logbooks_locations_array);
$this->db->order_by("id", "desc");
return $this->db->get()->result();
}
}

查看文件

@ -247,6 +247,14 @@
</datalist>
<input type="search" list="qslvia" name="qslviainput" class="custom-select custom-select-sm">
</div>
<div class="form-group col-lg-2 col-md-2 col-sm-3 col-xl">
<label for="qslimages">QSL Images</label>
<select class="form-control form-control-sm" id="qslimages" name="qslimages">
<option value="">-</option>
<option value="Y">Yes</option>
<option value="N">No</option>
</select>
</div>
</div>
</div>
@ -266,6 +274,7 @@
<button type="button" class="btn btn-sm btn-warning mr-1" id="receivedDirect">Received (direct)</button>
<button type="button" class="btn btn-sm btn-info mr-1" id="exportAdif">Create ADIF</button>
<button type="button" class="btn btn-sm btn-info mr-1" id="printLabel">Print Label</button>
<button type="button" class="btn btn-sm btn-info mr-1" id="qslSlideshow">QSL Slideshow</button>
<button type="button" class="btn btn-sm btn-danger mr-1" id="deleteQsos">Delete</button>
</div>
</div>

查看文件

@ -197,6 +197,7 @@ $(document).ready(function () {
sota: this.sota.value,
pota: this.pota.value,
wwff: this.wwff.value,
qslimages: this.qslimages.value,
},
dataType: 'json',
success: function (data) {
@ -411,6 +412,49 @@ $(document).ready(function () {
quickSearch('pota');
});
$('#qslSlideshow').click(function (event) {
var elements = $('#qsoList tbody input:checked');
var nElements = elements.length;
if (nElements == 0) {
return;
}
$('#qslSlideshow').prop("disabled", true);
var id_list=[];
elements.each(function() {
let id = $(this).first().closest('tr').data('qsoID')
id_list.push(id);
});
$.ajax({
url: base_url + 'index.php/logbookadvanced/qslSlideshow',
type: 'post',
data: {
ids: id_list,
},
success: function (html) {
BootstrapDialog.show({
title: 'QSL Card',
size: BootstrapDialog.SIZE_WIDE,
cssClass: 'lookup-dialog',
nl2br: false,
message: html,
onshown: function(dialog) {
},
buttons: [{
label: 'Close',
action: function (dialogItself) {
$('#qslSlideshow').prop("disabled", false);
dialogItself.close();
}
}],
onhide: function(dialogRef){
$('#qslSlideshow').prop("disabled", false);
},
});
}
});
});
function quickSearch(type) {
var elements = $('#qsoList tbody input:checked');
var nElements = elements.length;