[Advanced Logbook] Added filter for QSL images, and slideshow button
这个提交包含在:
父节点
369e93308c
当前提交
80b4e8f70f
共有 4 个文件被更改,包括 89 次插入 和 0 次删除
|
|
@ -115,6 +115,7 @@ class Logbookadvanced extends CI_Controller {
|
||||||
'sota' => xss_clean($this->input->post('sota')),
|
'sota' => xss_clean($this->input->post('sota')),
|
||||||
'pota' => xss_clean($this->input->post('pota')),
|
'pota' => xss_clean($this->input->post('pota')),
|
||||||
'wwff' => xss_clean($this->input->post('wwff')),
|
'wwff' => xss_clean($this->input->post('wwff')),
|
||||||
|
'qslimages' => xss_clean($this->input->post('qslimages')),
|
||||||
);
|
);
|
||||||
|
|
||||||
$qsos = [];
|
$qsos = [];
|
||||||
|
|
@ -225,4 +226,11 @@ class Logbookadvanced extends CI_Controller {
|
||||||
public function startAtLabel() {
|
public function startAtLabel() {
|
||||||
$this->load->view('logbookadvanced/startatform');
|
$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'];
|
$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 = "
|
$sql = "
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM " . $this->config->item('table_name') . " qsos
|
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
|
) x on qsos.COL_PRIMARY_KEY = x.qsoid
|
||||||
WHERE station_profile.user_id = ?
|
WHERE station_profile.user_id = ?
|
||||||
$where
|
$where
|
||||||
|
$where2
|
||||||
ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc
|
ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc
|
||||||
LIMIT $limit
|
LIMIT $limit
|
||||||
";
|
";
|
||||||
|
|
@ -391,4 +404,19 @@ class Logbookadvanced_model extends CI_Model {
|
||||||
|
|
||||||
return $modes;
|
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>
|
</datalist>
|
||||||
<input type="search" list="qslvia" name="qslviainput" class="custom-select custom-select-sm">
|
<input type="search" list="qslvia" name="qslviainput" class="custom-select custom-select-sm">
|
||||||
</div>
|
</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>
|
||||||
</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-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="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="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>
|
<button type="button" class="btn btn-sm btn-danger mr-1" id="deleteQsos">Delete</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -197,6 +197,7 @@ $(document).ready(function () {
|
||||||
sota: this.sota.value,
|
sota: this.sota.value,
|
||||||
pota: this.pota.value,
|
pota: this.pota.value,
|
||||||
wwff: this.wwff.value,
|
wwff: this.wwff.value,
|
||||||
|
qslimages: this.qslimages.value,
|
||||||
},
|
},
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
|
|
@ -411,6 +412,49 @@ $(document).ready(function () {
|
||||||
quickSearch('pota');
|
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) {
|
function quickSearch(type) {
|
||||||
var elements = $('#qsoList tbody input:checked');
|
var elements = $('#qsoList tbody input:checked');
|
||||||
var nElements = elements.length;
|
var nElements = elements.length;
|
||||||
|
|
|
||||||
正在加载…
在新工单中引用