kopia lustrzana https://github.com/magicbug/Cloudlog
[Advanced Logbook] Added QSL image popup and indicator
rodzic
cfbe4971d0
commit
38dee35937
|
@ -174,6 +174,13 @@ class Qsl extends CI_Controller {
|
|||
echo json_encode($result);
|
||||
}
|
||||
|
||||
function viewQsl() {
|
||||
$cleanid = $this->security->xss_clean($this->input->post('id'));
|
||||
$this->load->model('Qsl_model');
|
||||
$data['qslimages'] = $this->Qsl_model->getQslForQsoId($cleanid);
|
||||
$this->load->view('qslcard/qslcarousel', $data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Functions for storage, these need shifted to a libary to use across Cloudlog
|
||||
|
|
|
@ -119,6 +119,11 @@ class Logbookadvanced_model extends CI_Model {
|
|||
INNER JOIN station_profile ON qsos.station_id=station_profile.station_id
|
||||
LEFT OUTER JOIN dxcc_entities ON qsos.col_dxcc=dxcc_entities.adif
|
||||
LEFT OUTER JOIN lotw_users ON qsos.col_call=lotw_users.callsign
|
||||
LEFT OUTER JOIN (
|
||||
select count(*) as qslcount, qsoid
|
||||
from qsl_images
|
||||
group by qsoid
|
||||
) x on qsos.COL_PRIMARY_KEY = x.qsoid
|
||||
WHERE station_profile.user_id = ?
|
||||
$where
|
||||
ORDER BY qsos.COL_TIME_ON desc, qsos.COL_PRIMARY_KEY desc
|
||||
|
@ -150,12 +155,17 @@ class Logbookadvanced_model extends CI_Model {
|
|||
$order = $this->getSortorder($sortorder);
|
||||
|
||||
$sql = "
|
||||
SELECT qsos.*, d2.*, lotw_users.*, station_profile.*, dxcc_entities.name AS station_country
|
||||
SELECT qsos.*, d2.*, lotw_users.*, station_profile.*, x.qslcount, dxcc_entities.name AS station_country
|
||||
FROM " . $this->config->item('table_name') . " qsos
|
||||
INNER JOIN station_profile ON qsos.station_id = station_profile.station_id
|
||||
LEFT OUTER JOIN dxcc_entities ON qsos.COL_MY_DXCC = dxcc_entities.adif
|
||||
LEFT OUTER JOIN dxcc_entities d2 ON qsos.COL_DXCC = d2.adif
|
||||
LEFT OUTER JOIN lotw_users ON qsos.col_call=lotw_users.callsign
|
||||
LEFT OUTER JOIN (
|
||||
select count(*) as qslcount, qsoid
|
||||
from qsl_images
|
||||
group by qsoid
|
||||
) x on qsos.COL_PRIMARY_KEY = x.qsoid
|
||||
WHERE station_profile.user_id = ?
|
||||
$where
|
||||
$order
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
|
||||
<ol class="carousel-indicators">
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($qslimages as $image) {
|
||||
echo '<li data-target="#carouselExampleIndicators" data-slide-to="' . $i . '"';
|
||||
if ($i == 0) {
|
||||
echo 'class="active"';
|
||||
}
|
||||
$i++;
|
||||
echo '></li>';
|
||||
}
|
||||
?>
|
||||
</ol>
|
||||
<div class="carousel-inner">
|
||||
|
||||
<?php
|
||||
$i = 1;
|
||||
foreach ($qslimages as $image) {
|
||||
echo '<div class="text-center carousel-item carouselimageid_' . $image->id;
|
||||
if ($i == 1) {
|
||||
echo ' active';
|
||||
}
|
||||
echo '">';
|
||||
echo '<img class="img-fluid w-qsl" src="' . base_url() . '/assets/qslcard/' . $image->filename .'" alt="QSL picture #'. $i++.'">';
|
||||
echo '</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
</div>
|
|
@ -487,3 +487,31 @@ function getDxccResult(dxcc, name) {
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
function displayQsl(id) {
|
||||
$.ajax({
|
||||
url: base_url + 'index.php/qsl/viewQsl',
|
||||
type: 'post',
|
||||
data: {
|
||||
id: id,
|
||||
},
|
||||
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) {
|
||||
dialogItself.close();
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -43,9 +43,9 @@ function updateRow(qso) {
|
|||
cells.eq(c++).html(qso.lotw);
|
||||
}
|
||||
cells.eq(c++).text(qso.qslMessage);
|
||||
cells.eq(c++).text(qso.dxcc);
|
||||
cells.eq(c++).html(qso.dxcc);
|
||||
cells.eq(c++).text(qso.state);
|
||||
cells.eq(c++).text(qso.cqzone);
|
||||
cells.eq(c++).html(qso.cqzone);
|
||||
cells.eq(c++).html(qso.iota);
|
||||
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
|
|
|
@ -317,6 +317,9 @@ class QSO
|
|||
}
|
||||
}
|
||||
$qslstring .= '">▼</span>';
|
||||
if ($data['qslcount'] != null) {
|
||||
$qslstring .= ' <a href="javascript:displayQsl('.$data['COL_PRIMARY_KEY'].');"><i class="fa fa-id-card"></i></a>';
|
||||
}
|
||||
return $qslstring;
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue