| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 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
 | 
					
						
							| 
									
										
										
										
											2021-09-11 00:53:24 +08:00
										 |  |  | 	var color = ifDarkModeThemeReturn('white', 'grey'); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	var award = form.awardradio.value; | 
					
						
							|  |  |  | 	var mode = form.mode.value; | 
					
						
							|  |  |  | 	var period = form.periodradio.value; | 
					
						
							|  |  |  | 	$.ajax({ | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 		url: base_url + 'index.php/accumulated/get_accumulated_data', | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 		type: 'post', | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 		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); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 			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; | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				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>"); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				// 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 = []; | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				var $myTable = $('.accutable'); | 
					
						
							|  |  |  | 				var i = 1; | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				// building the rows in the table
 | 
					
						
							|  |  |  | 				var rowElements = data.map(function (row) { | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 					var $row = $('<tr></tr>'); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 					var $iterator = $('<td></td>').html(i++); | 
					
						
							|  |  |  | 					var $type = $('<td></td>').html(row.year); | 
					
						
							|  |  |  | 					var $content = $('<td></td>').html(row.total); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 					$row.append($iterator, $type, $content); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 					return $row; | 
					
						
							|  |  |  | 				}); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				// finally inserting the rows
 | 
					
						
							|  |  |  | 				$myTable.append(rowElements); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				$.each(data, function () { | 
					
						
							|  |  |  | 					labels.push(this.year); | 
					
						
							|  |  |  | 					dataDxcc.push(this.total); | 
					
						
							|  |  |  | 				}); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				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, | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 							color: color | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 						}] | 
					
						
							|  |  |  | 					}, | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 					options: { | 
					
						
							|  |  |  | 						scales: { | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 							y: { | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 								ticks: { | 
					
						
							|  |  |  | 									beginAtZero: true, | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 									color: color | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 								} | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 							}, | 
					
						
							|  |  |  | 							x: { | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 								ticks: { | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 									color: color | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 								} | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 							} | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 						}, | 
					
						
							| 
									
										
										
										
											2022-09-18 22:51:55 +08:00
										 |  |  | 						plugins: { | 
					
						
							|  |  |  | 							legend: { | 
					
						
							|  |  |  | 								labels: { | 
					
						
							|  |  |  | 									color: color | 
					
						
							|  |  |  | 								} | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 							} | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 						} | 
					
						
							| 
									
										
										
										
											2021-09-11 00:53:24 +08:00
										 |  |  | 					} | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				}); | 
					
						
							|  |  |  | 				$(".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' | 
					
						
							|  |  |  | 					] | 
					
						
							|  |  |  | 				}); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				// using this to change color of csv-button if dark mode is chosen
 | 
					
						
							|  |  |  | 				var background = $('body').css("background-color"); | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 00:33:24 +08:00
										 |  |  | 				if (background != ('rgb(255, 255, 255)')) { | 
					
						
							|  |  |  | 					$(".buttons-csv").css("color", "white"); | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2021-03-10 01:24:22 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } |