kopia lustrzana https://github.com/magicbug/Cloudlog
[Accumulated Statistics] Fixed when no QSOs found.
rodzic
e257ffa109
commit
9e4c97e45b
|
@ -8,6 +8,10 @@ class Accumulate_model extends CI_Model
|
|||
$CI->load->model('logbooks_model');
|
||||
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));
|
||||
|
||||
if (!$logbooks_locations_array) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$location_list = "'".implode("','",$logbooks_locations_array)."'";
|
||||
|
||||
switch ($award) {
|
||||
|
|
|
@ -9,117 +9,125 @@ function accumulatePlot(form) {
|
|||
var mode = form.mode.value;
|
||||
var period = form.periodradio.value;
|
||||
$.ajax({
|
||||
url: base_url+'index.php/accumulated/get_accumulated_data',
|
||||
url: base_url + 'index.php/accumulated/get_accumulated_data',
|
||||
type: 'post',
|
||||
data: {'Band': form.band.value, 'Award': award, 'Mode': mode, 'Period': period},
|
||||
success: function(data) {
|
||||
// used for switching award text in the table and the chart
|
||||
switch(award) {
|
||||
case 'dxcc': var awardtext = "DXCC\'s"; break;
|
||||
case 'was': var awardtext = "states";break;
|
||||
case 'iota': var awardtext = "IOTA\'s";break;
|
||||
case 'waz': var awardtext = "CQ zones"; break;
|
||||
data: { 'Band': form.band.value, 'Award': award, 'Mode': mode, 'Period': period },
|
||||
success: function (data) {
|
||||
if (!$.trim(data)) {
|
||||
$("#accumulateContainer").empty();
|
||||
$("#accumulateContainer").append('<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Nothing found!</div>');
|
||||
$(".ld-ext-right").removeClass('running');
|
||||
$(".ld-ext-right").prop('disabled', false);
|
||||
}
|
||||
else {
|
||||
// used for switching award text in the table and the chart
|
||||
switch (award) {
|
||||
case 'dxcc': var awardtext = "DXCC\'s"; break;
|
||||
case 'was': var awardtext = "states"; break;
|
||||
case 'iota': var awardtext = "IOTA\'s"; break;
|
||||
case 'waz': var awardtext = "CQ zones"; break;
|
||||
}
|
||||
|
||||
var periodtext = 'Year';
|
||||
if (period == 'month') {
|
||||
periodtext += ' + month';
|
||||
}
|
||||
// removing the old chart so that it will not interfere when loading chart again
|
||||
$("#accumulateContainer").empty();
|
||||
$("#accumulateContainer").append("<canvas id=\"myChartAccumulate\" width=\"400\" height=\"150\"></canvas><div id=\"accumulateTable\"></div>");
|
||||
var periodtext = 'Year';
|
||||
if (period == 'month') {
|
||||
periodtext += ' + month';
|
||||
}
|
||||
// removing the old chart so that it will not interfere when loading chart again
|
||||
$("#accumulateContainer").empty();
|
||||
$("#accumulateContainer").append("<canvas id=\"myChartAccumulate\" width=\"400\" height=\"150\"></canvas><div id=\"accumulateTable\"></div>");
|
||||
|
||||
// appending table to hold the data
|
||||
$("#accumulateTable").append('<table style="width:100%" class="accutable table table-sm table-bordered table-hover table-striped table-condensed text-center"><thead>' +
|
||||
'<tr>' +
|
||||
'<td>#</td>' +
|
||||
'<td>' + periodtext + '</td>' +
|
||||
'<td>Accumulated # of ' + awardtext + ' worked </td>'+
|
||||
'</tr>' +
|
||||
'</thead>' +
|
||||
'<tbody></tbody></table>');
|
||||
var labels = [];
|
||||
var dataDxcc = [];
|
||||
// appending table to hold the data
|
||||
$("#accumulateTable").append('<table style="width:100%" class="accutable table table-sm table-bordered table-hover table-striped table-condensed text-center"><thead>' +
|
||||
'<tr>' +
|
||||
'<td>#</td>' +
|
||||
'<td>' + periodtext + '</td>' +
|
||||
'<td>Accumulated # of ' + awardtext + ' worked </td>' +
|
||||
'</tr>' +
|
||||
'</thead>' +
|
||||
'<tbody></tbody></table>');
|
||||
var labels = [];
|
||||
var dataDxcc = [];
|
||||
|
||||
var $myTable = $('.accutable');
|
||||
var i = 1;
|
||||
var $myTable = $('.accutable');
|
||||
var i = 1;
|
||||
|
||||
// building the rows in the table
|
||||
var rowElements = data.map(function ( row ) {
|
||||
// building the rows in the table
|
||||
var rowElements = data.map(function (row) {
|
||||
|
||||
var $row = $('<tr></tr>');
|
||||
var $row = $('<tr></tr>');
|
||||
|
||||
var $iterator = $('<td></td>').html(i++);
|
||||
var $type = $('<td></td>').html(row.year);
|
||||
var $content = $('<td></td>').html(row.total);
|
||||
var $iterator = $('<td></td>').html(i++);
|
||||
var $type = $('<td></td>').html(row.year);
|
||||
var $content = $('<td></td>').html(row.total);
|
||||
|
||||
$row.append($iterator, $type, $content);
|
||||
$row.append($iterator, $type, $content);
|
||||
|
||||
return $row;
|
||||
});
|
||||
return $row;
|
||||
});
|
||||
|
||||
// finally inserting the rows
|
||||
$myTable.append(rowElements);
|
||||
// finally inserting the rows
|
||||
$myTable.append(rowElements);
|
||||
|
||||
$.each(data, function(){
|
||||
labels.push(this.year);
|
||||
dataDxcc.push(this.total);
|
||||
});
|
||||
$.each(data, function () {
|
||||
labels.push(this.year);
|
||||
dataDxcc.push(this.total);
|
||||
});
|
||||
|
||||
var ctx = document.getElementById("myChartAccumulate").getContext('2d');
|
||||
var myChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: labels,
|
||||
datasets: [{
|
||||
label: 'Accumulated number of ' + awardtext + ' worked each ' + period,
|
||||
data: dataDxcc,
|
||||
backgroundColor: 'rgba(54, 162, 235, 0.2)',
|
||||
borderColor: 'rgba(54, 162, 235, 1)',
|
||||
borderWidth: 2,
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
scales: {
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
beginAtZero:true,
|
||||
fontColor: color
|
||||
}
|
||||
}],
|
||||
xAxes: [{
|
||||
ticks: {
|
||||
fontColor: color
|
||||
}
|
||||
var ctx = document.getElementById("myChartAccumulate").getContext('2d');
|
||||
var myChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: labels,
|
||||
datasets: [{
|
||||
label: 'Accumulated number of ' + awardtext + ' worked each ' + period,
|
||||
data: dataDxcc,
|
||||
backgroundColor: 'rgba(54, 162, 235, 0.2)',
|
||||
borderColor: 'rgba(54, 162, 235, 1)',
|
||||
borderWidth: 2,
|
||||
}]
|
||||
},
|
||||
legend: {
|
||||
labels: {
|
||||
fontColor: color
|
||||
options: {
|
||||
scales: {
|
||||
yAxes: [{
|
||||
ticks: {
|
||||
beginAtZero: true,
|
||||
fontColor: color
|
||||
}
|
||||
}],
|
||||
xAxes: [{
|
||||
ticks: {
|
||||
fontColor: color
|
||||
}
|
||||
}]
|
||||
},
|
||||
legend: {
|
||||
labels: {
|
||||
fontColor: color
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".ld-ext-right").removeClass('running');
|
||||
$(".ld-ext-right").prop('disabled', false);
|
||||
$('.accutable').DataTable({
|
||||
responsive: false,
|
||||
ordering: false,
|
||||
"scrollY": "400px",
|
||||
"scrollCollapse": true,
|
||||
"paging": false,
|
||||
"scrollX": true,
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
'csv'
|
||||
]
|
||||
});
|
||||
|
||||
// using this to change color of csv-button if dark mode is chosen
|
||||
var background = $('body').css("background-color");
|
||||
|
||||
if (background != ('rgb(255, 255, 255)')) {
|
||||
$(".buttons-csv").css("color", "white");
|
||||
}
|
||||
});
|
||||
$(".ld-ext-right").removeClass('running');
|
||||
$(".ld-ext-right").prop('disabled', false);
|
||||
$('.accutable').DataTable({
|
||||
responsive: false,
|
||||
ordering: false,
|
||||
"scrollY": "400px",
|
||||
"scrollCollapse": true,
|
||||
"paging": false,
|
||||
"scrollX": true,
|
||||
dom: 'Bfrtip',
|
||||
buttons: [
|
||||
'csv'
|
||||
]
|
||||
});
|
||||
|
||||
// using this to change color of csv-button if dark mode is chosen
|
||||
var background = $('body').css( "background-color");
|
||||
|
||||
if (background != ('rgb(255, 255, 255)')) {
|
||||
$(".buttons-csv").css("color", "white");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Ładowanie…
Reference in New Issue