Files
wavelog/assets/js/sections/accumulatedstatistics.js
HB9HIL 2df091f891 Release v1.1 (#120)
* config file for directory userdata

* userdir for eqsl

* change name to userdata

* userdata for qsl

* fix name on comment

* add generic function file

* remove model class on view, use generic function

* Re-added forum link

* add stations_id to eqsl functions

* remove 'v' in Version Dialog

* Update README.md

added Link to demo instance

* Update index.php

* We should be MIT Conform

* [Debug] Added information about when files were last updated, and links to update

* Added custom data format

* Remove leftover-index

* Migration

* Check if index is there

* [LBA] Can disable maidenhead overlay

* paths libary

* Dev (#2)

* Added Windows, MariaDB and PHP-Versions

* Release 1.0

* Re-added forum link

* add stations_id to eqsl functions

* remove 'v' in Version Dialog

* Update README.md

added Link to demo instance

* Update index.php

* We should be MIT Conform

* [Debug] Added information about when files were last updated, and links to update

* Added custom data format

* Remove leftover-index

* Migration

* Check if index is there

* [LBA] Can disable maidenhead overlay

---------

Co-authored-by: int2001 <joerg@dj7nt.de>
Co-authored-by: Joerg (DJ7NT) <int2001@users.noreply.github.com>
Co-authored-by: Andreas <6977712+AndreasK79@users.noreply.github.com>
Co-authored-by: Christoph Kottke <dg0tm@darc.de>
Co-authored-by: Florian (DF2ET) <github@florian-wolters.de>

* [eQSL] only locations with a eQSL nickname should be displayed (#74)

* only locations with a eQSL nickname should be displayed in the dropdown under eQSL Import

* add proper error message

* improve usability

---------

Co-authored-by: Christoph Kottke <dg0tm@darc.de>

* html fixes

* show flashdata if no station has eqsl nick

* removed openssl check, not required

* accumulate stats language

* multilanguage support

* prettier

* Prevent leaking data out of other station_location

* moved qrg to first tab

* Fix a PHP 8.1 deprecated bug.

* [Contesting] Fix for table qso count

* Fixed error when data was empty. Also clear table before inserting again.

* Refactor to get the table to load

* Need to clear datatable when session is deleted

* Prevent Racecondition

* Fixed a few null-checks which will fail on fresh accounts

* Allow for longer gridsquare in station profile

* Show IOTA/SOTA ref on station location tab

* [LBA] Fixed mapping of selected QSOs

* Trying to convert the QSO-Post to an ajax call PHP/Part

* JS Part

* Dev (#3)

* Added Windows, MariaDB and PHP-Versions

* Release 1.0

* Re-added forum link

* add stations_id to eqsl functions

* remove 'v' in Version Dialog

* Update README.md

added Link to demo instance

* Update index.php

* We should be MIT Conform

* [Debug] Added information about when files were last updated, and links to update

* Added custom data format

* Remove leftover-index

* Migration

* Check if index is there

* [LBA] Can disable maidenhead overlay

* [eQSL] only locations with a eQSL nickname should be displayed (#74)

* only locations with a eQSL nickname should be displayed in the dropdown under eQSL Import

* add proper error message

* improve usability

---------

Co-authored-by: Christoph Kottke <dg0tm@darc.de>

* html fixes

* show flashdata if no station has eqsl nick

* removed openssl check, not required

* accumulate stats language

* multilanguage support

* prettier

* Prevent leaking data out of other station_location

* moved qrg to first tab

* Fix a PHP 8.1 deprecated bug.

* [Contesting] Fix for table qso count

* Fixed error when data was empty. Also clear table before inserting again.

* Refactor to get the table to load

* Need to clear datatable when session is deleted

* Prevent Racecondition

* Fixed a few null-checks which will fail on fresh accounts

* Allow for longer gridsquare in station profile

* Show IOTA/SOTA ref on station location tab

* [LBA] Fixed mapping of selected QSOs

---------

Co-authored-by: int2001 <joerg@dj7nt.de>
Co-authored-by: Joerg (DJ7NT) <int2001@users.noreply.github.com>
Co-authored-by: Andreas <6977712+AndreasK79@users.noreply.github.com>
Co-authored-by: Christoph Kottke <dg0tm@darc.de>
Co-authored-by: Florian (DF2ET) <github@florian-wolters.de>
Co-authored-by: dg0tm <schieberjunge@gmx.net>

* First POC

* Handling of AJAX result (started)

* Change qso-save to ajax-return

* Added notification and reloading of QSO-Table

* JS-Part

* Set Focus to qso after (successful) log

* Resetting timers (successful)

* Info is now shown / faded

* Small adjustments

* More Beauty

* Make consequent use of SIG-References from station_profile

* Delete application/views/welcome directory

Leftovers. Security Flaw!

* Update Dashboard.php

Remove redir to welcome

* Delete application/controllers/Welcome.php

security flaw

* Hint for 8.3. friendly Usertest

* Update config.sample.php

default should be commented out

* [LBA] Checkbox to turn on/off path lines in map

* Styling for pathlines-checkbox

* [LBA] Checkbox tweaks

* updated comment in config.php (sample and installer)

* Removed popup regarding unsaved changes (wasn't functional at all)

* Added locking for sending a qso twice

* added spinner to save button

* Also include SIG and SIG_INFO

* [Logbook] Removed profiler

* [LBA] Added fitbounds to map

* [LBA] Added CQ Zone overlay

* Make clearer that overview filters on logbook rather than locations

* baesURL has a trailing slash already

* active logbook hint

* Update .gitignore

added userdata

* [LBA] ITU zone overlay

* Minor wording

* [LBA] Added custom mapping icons

* [LBA] Path line follows icon color

* [LBA] Added icon anchoring

* [LBA] Added easyprint for easy map saving

* [LBA] Added default colors when icon settings does not exist in db

* Check refs before trimming them

* [LBA] Fixed another default issue with markers and colors

* Removed dangerous functions where User can accidently shift profiles

* Rmoeve more unused leftovers from 1.0 to 2.0.

* Header refactoring (#110)

* splitted up header

* resorted header menu

* main rebuild

* header behaviour hover

* dropdown toggle rotate

* fix case where landscape is small menu and portrait normal view

* submenu thirdparty services

* removed custom maps from the header

* matching search bar

* border

* matched border to themes

* [Custom Map] Removed code

* [Gridmap] Broke map by accident. Thanks @phl0 for poke.

* Optical support for SAT directions and elevation

* [LBA] Added coordinates at the bottom of the map

* Align numbers and arrows

* Reset RST after saving via AJAX

* Cfd export (#117)

* Added CFD Export for toplist.darc.de to Wavelog

---------

Co-authored-by: phl0 <github@florian-wolters.de>

* special thx to contributors

* tag 1.1

* typo

---------

Co-authored-by: abarrau <hesky378@gmail.com>
Co-authored-by: Andreas <6977712+AndreasK79@users.noreply.github.com>
Co-authored-by: Christoph Kottke <dg0tm@darc.de>
Co-authored-by: Joerg (DJ7NT) <int2001@users.noreply.github.com>
Co-authored-by: int2001 <joerg@dj7nt.de>
Co-authored-by: Florian (DF2ET) <github@florian-wolters.de>
Co-authored-by: dg0tm <schieberjunge@gmx.net>
2024-02-09 18:12:28 +01:00

177 lines
4.4 KiB
JavaScript

function accumulatePlot(form) {
$(".ld-ext-right").addClass("running");
$(".ld-ext-right").prop("disabled", true);
// using this to change color of legend and label according to background color
var color = ifDarkModeThemeReturn("white", "grey");
var award = form.awardradio.value;
var mode = form.mode.value;
var period = form.periodradio.value;
$.ajax({
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) {
if (!$.trim(data)) {
$("#accumulateContainer").empty();
$("#accumulateContainer").append(
'<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</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 = lang_statistics_accumulated_worked_dxcc;
break;
case "was":
var awardtext =
lang_statistics_accumulated_worked_states;
break;
case "iota":
var awardtext = lang_statistics_accumulated_worked_iota;
break;
case "waz":
var awardtext =
lang_statistics_accumulated_worked_cqzone;
break;
}
var periodtext = lang_general_word_year;
if (period == "month") {
periodtext =
lang_general_word_year +
" + " +
lang_general_word_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>" +
awardtext +
"</td>" +
"</tr>" +
"</thead>" +
"<tbody></tbody></table>"
);
var labels = [];
var dataDxcc = [];
var $myTable = $(".accutable");
var i = 1;
// building the rows in the table
var rowElements = data.map(function (row) {
var $row = $("<tr></tr>");
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);
return $row;
});
// finally inserting the rows
$myTable.append(rowElements);
$.each(data, function () {
labels.push(this.year);
dataDxcc.push(this.total);
});
var ctx = document
.getElementById("myChartAccumulate")
.getContext("2d");
var headerperiod;
if (period == "year") {
headerperiod = lang_general_word_yearly;
} else if (period == "month") {
headerperiod = lang_general_word_monthly;
} else {
headerperiod = "n/a";
}
var myChart = new Chart(ctx, {
type: "bar",
data: {
labels: labels,
datasets: [
{
label: awardtext + " (" + headerperiod + ")",
data: dataDxcc,
backgroundColor: "rgba(54, 162, 235, 0.2)",
borderColor: "rgba(54, 162, 235, 1)",
borderWidth: 2,
color: color,
},
],
},
options: {
scales: {
y: {
ticks: {
beginAtZero: true,
color: color,
},
},
x: {
ticks: {
color: color,
},
},
},
plugins: {
legend: {
labels: {
color: 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,
language: {
url: getDataTablesLanguageUrl(),
},
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");
}
}
},
});
}