| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | var callBookProcessingDialog = null; | 
					
						
							|  |  |  | var inCallbookProcessing = false; | 
					
						
							|  |  |  | var inCallbookItemProcessing = false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-01 14:58:13 +08:00
										 |  |  | $('#band').change(function () { | 
					
						
							|  |  |  | 	var band = $("#band option:selected").text(); | 
					
						
							|  |  |  | 	if (band != "SAT") { | 
					
						
							|  |  |  | 		$(".sats_dropdown").attr("hidden", true); | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		$(".sats_dropdown").removeAttr("hidden"); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | function updateRow(qso) { | 
					
						
							|  |  |  | 	let row = $('#qsoID-' + qso.qsoID); | 
					
						
							|  |  |  | 	let cells = row.find('td'); | 
					
						
							|  |  |  | 	let c = 1; | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.qsoDateTime); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.de); | 
					
						
							| 
									
										
										
										
											2022-12-21 14:54:05 +08:00
										 |  |  | 	cells.eq(c++).html('<a id="edit_qso" href="javascript:displayQso('+qso.qsoID+')">'+qso.dx+'</a>'); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 	cells.eq(c++).text(qso.mode); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.rstS); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.rstR); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.band); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.deRefs); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.dxRefs); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.name); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.qslVia); | 
					
						
							| 
									
										
										
										
											2023-05-03 00:20:08 +08:00
										 |  |  | 	cells.eq(c++).html(qso.qsl); | 
					
						
							| 
									
										
										
										
											2023-05-03 01:04:12 +08:00
										 |  |  | 	if ($(".lotwconfirmation")[0]){ | 
					
						
							|  |  |  | 		cells.eq(c++).html(qso.lotw); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	if ($(".eqslconfirmation")[0]){ | 
					
						
							|  |  |  | 		cells.eq(c++).html(qso.eqsl); | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 	cells.eq(c++).text(qso.qslMessage); | 
					
						
							| 
									
										
										
										
											2022-12-19 02:50:54 +08:00
										 |  |  | 	cells.eq(c++).text(qso.dxcc); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.state); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.cqzone); | 
					
						
							|  |  |  | 	cells.eq(c++).text(qso.iota); | 
					
						
							| 
									
										
										
										
											2023-05-03 00:24:07 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	$('[data-toggle="tooltip"]').tooltip(); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 	return row; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function loadQSOTable(rows) { | 
					
						
							|  |  |  | 	var uninitialized = $('#qsoList').filter(function() { | 
					
						
							|  |  |  | 		return !$.fn.DataTable.fnIsDataTable(this); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	uninitialized.each(function() { | 
					
						
							|  |  |  | 		$(this).DataTable({ | 
					
						
							|  |  |  | 			searching: false, | 
					
						
							|  |  |  | 			responsive: false, | 
					
						
							|  |  |  | 			ordering: true, | 
					
						
							| 
									
										
										
										
											2022-12-20 03:33:48 +08:00
										 |  |  | 			"scrollY": window.innerHeight - $('#searchForm').innerHeight() - 250, | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 			"scrollCollapse": true, | 
					
						
							|  |  |  | 			"paging":         false, | 
					
						
							|  |  |  | 			"scrollX": true, | 
					
						
							| 
									
										
										
										
											2023-05-01 18:35:24 +08:00
										 |  |  | 			"order": [ 1, 'desc' ], | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var table = $('#qsoList').DataTable(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	table.clear(); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	for (i = 0; i < rows.length; i++) { | 
					
						
							|  |  |  | 		let qso = rows[i]; | 
					
						
							| 
									
										
										
										
											2023-05-03 01:04:12 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		var data = []; | 
					
						
							|  |  |  | 		data.push('<div class="form-check"><input class="form-check-input" type="checkbox" /></div>'); | 
					
						
							|  |  |  | 		data.push(qso.qsoDateTime); | 
					
						
							|  |  |  | 		data.push(qso.de); | 
					
						
							|  |  |  | 		data.push('<a id="edit_qso" href="javascript:displayQso('+qso.qsoID+')">'+qso.dx+'</a>'); | 
					
						
							|  |  |  | 		data.push(qso.mode); | 
					
						
							|  |  |  | 		data.push(qso.rstS); | 
					
						
							|  |  |  | 		data.push(qso.rstR); | 
					
						
							|  |  |  | 		data.push(qso.band); | 
					
						
							|  |  |  | 		data.push(qso.deRefs); | 
					
						
							|  |  |  | 		data.push(qso.dxRefs); | 
					
						
							|  |  |  | 		data.push(qso.name); | 
					
						
							|  |  |  | 		data.push(qso.qslVia); | 
					
						
							|  |  |  | 		data.push(qso.qsl); | 
					
						
							|  |  |  | 		if ($(".lotwconfirmation")[0]){ | 
					
						
							|  |  |  | 			data.push(qso.lotw); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		if ($(".eqslconfirmation")[0]){ | 
					
						
							|  |  |  | 			data.push(qso.eqsl); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		data.push(qso.qslMessage); | 
					
						
							|  |  |  | 		data.push(qso.dxcc+(qso.end == null ? '' : ' <span class="badge badge-danger">Deleted DXCC</span>')); | 
					
						
							|  |  |  | 		data.push(qso.state); | 
					
						
							|  |  |  | 		data.push(qso.cqzone); | 
					
						
							|  |  |  | 		data.push(qso.iota); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 		 | 
					
						
							|  |  |  | 		let createdRow = table.row.add(data).index(); | 
					
						
							|  |  |  | 		table.rows(createdRow).nodes().to$().data('qsoID', qso.qsoID); | 
					
						
							|  |  |  | 		table.row(createdRow).node().id = 'qsoID-' + qso.qsoID; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	table.draw(); | 
					
						
							| 
									
										
										
										
											2023-05-02 20:48:46 +08:00
										 |  |  | 	$('[data-toggle="tooltip"]').tooltip(); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function processNextCallbookItem() { | 
					
						
							|  |  |  | 	if (!inCallbookProcessing) return; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	var elements = $('#qsoList tbody input:checked'); | 
					
						
							|  |  |  | 	var nElements = elements.length; | 
					
						
							|  |  |  | 	if (nElements == 0) { | 
					
						
							|  |  |  | 		inCallbookProcessing = false; | 
					
						
							|  |  |  | 		callBookProcessingDialog.close(); | 
					
						
							|  |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	callBookProcessingDialog.setMessage("Retrieving callbook data : " + nElements + " remaining"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	unselectQsoID(elements.first().closest('tr').data('qsoID')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$.ajax({ | 
					
						
							|  |  |  | 		url: site_url + '/logbookadvanced/updateFromCallbook', | 
					
						
							|  |  |  | 		type: 'post', | 
					
						
							|  |  |  | 		data: { | 
					
						
							|  |  |  | 			qsoID: elements.first().closest('tr').data('qsoID') | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		dataType: 'json', | 
					
						
							|  |  |  | 		success: function (data) { | 
					
						
							|  |  |  | 			if (data !== []) { | 
					
						
							|  |  |  | 				updateRow(data); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			setTimeout("processNextCallbookItem()", 50); | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		error: function (data) { | 
					
						
							|  |  |  | 			setTimeout("processNextCallbookItem()", 50); | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function selectQsoID(qsoID) { | 
					
						
							|  |  |  | 	var element = $("#qsoID-" + qsoID); | 
					
						
							|  |  |  | 	element.find("input[type=checkbox]").prop("checked", true); | 
					
						
							| 
									
										
										
										
											2023-04-30 18:22:20 +08:00
										 |  |  | 	element.addClass('activeRow'); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function unselectQsoID(qsoID) { | 
					
						
							|  |  |  | 	var element = $("#qsoID-" + qsoID); | 
					
						
							|  |  |  | 	element.find("input[type=checkbox]").prop("checked", false); | 
					
						
							| 
									
										
										
										
											2023-04-30 18:22:20 +08:00
										 |  |  | 	element.removeClass('activeRow'); | 
					
						
							| 
									
										
										
										
											2022-12-21 05:33:43 +08:00
										 |  |  | 	$('#checkBoxAll').prop("checked", false); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(document).ready(function () { | 
					
						
							|  |  |  | 	$('#dateFrom').datetimepicker({ | 
					
						
							|  |  |  | 		format: 'DD/MM/YYYY', | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 	$('#dateTo').datetimepicker({ | 
					
						
							|  |  |  | 		format: 'DD/MM/YYYY', | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#searchForm').submit(function (e) { | 
					
						
							|  |  |  | 		$('#searchButton').prop("disabled", true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$.ajax({ | 
					
						
							|  |  |  | 			url: this.action, | 
					
						
							|  |  |  | 			type: 'post', | 
					
						
							|  |  |  | 			data: { | 
					
						
							|  |  |  | 				dateFrom: this.dateFrom.value, | 
					
						
							|  |  |  | 				dateTo: this.dateTo.value, | 
					
						
							|  |  |  | 				de: this.de.value, | 
					
						
							|  |  |  | 				dx: this.dx.value, | 
					
						
							|  |  |  | 				mode: this.mode.value, | 
					
						
							|  |  |  | 				band: this.band.value, | 
					
						
							|  |  |  | 				qslSent: this.qslSent.value, | 
					
						
							|  |  |  | 				qslReceived: this.qslReceived.value, | 
					
						
							|  |  |  | 				iota: this.iota.value, | 
					
						
							|  |  |  | 				dxcc: this.dxcc.value, | 
					
						
							|  |  |  | 				propmode: this.selectPropagation.value, | 
					
						
							|  |  |  | 				gridsquare: this.gridsquare.value, | 
					
						
							|  |  |  | 				state: this.state.value, | 
					
						
							| 
									
										
										
										
											2023-05-01 14:58:13 +08:00
										 |  |  | 				qsoresults: this.qsoResults.value, | 
					
						
							|  |  |  | 				sats: this.sats.value | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 			}, | 
					
						
							|  |  |  | 			dataType: 'json', | 
					
						
							|  |  |  | 			success: function (data) { | 
					
						
							|  |  |  | 				$('#searchButton').prop("disabled", false); | 
					
						
							|  |  |  | 				loadQSOTable(data); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			error: function (data) { | 
					
						
							|  |  |  | 				$('#searchButton').prop("disabled", false); | 
					
						
							|  |  |  | 				BootstrapDialog.alert({ | 
					
						
							|  |  |  | 					title: 'ERROR', | 
					
						
							|  |  |  | 					message: 'An error ocurred while making the request', | 
					
						
							|  |  |  | 					type: BootstrapDialog.TYPE_DANGER, | 
					
						
							|  |  |  | 					closable: false, | 
					
						
							|  |  |  | 					draggable: false, | 
					
						
							|  |  |  | 					callback: function (result) { | 
					
						
							|  |  |  | 					} | 
					
						
							|  |  |  | 				}); | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 		return false; | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#qsoList').on('click', 'input[type="checkbox"]', function() { | 
					
						
							|  |  |  | 		if ($(this).is(":checked")) { | 
					
						
							| 
									
										
										
										
											2023-04-30 18:22:20 +08:00
										 |  |  | 			$(this).closest('tr').addClass('activeRow'); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2023-04-30 18:22:20 +08:00
										 |  |  | 			$(this).closest('tr').removeClass('activeRow'); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#btnUpdateFromCallbook').click(function (event) { | 
					
						
							|  |  |  | 		var elements = $('#qsoList tbody input:checked'); | 
					
						
							|  |  |  | 		var nElements = elements.length; | 
					
						
							|  |  |  | 		if (nElements == 0) { | 
					
						
							|  |  |  | 			return; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		inCallbookProcessing = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		callBookProcessingDialog = BootstrapDialog.show({ | 
					
						
							|  |  |  | 			title: "Retrieving callbook data for " + nElements + " QSOs", | 
					
						
							|  |  |  | 			message: "Retrieving callbook data for " + nElements + " QSOs", | 
					
						
							|  |  |  | 			type: BootstrapDialog.TYPE_DANGER, | 
					
						
							|  |  |  | 			closable: false, | 
					
						
							|  |  |  | 			draggable: false, | 
					
						
							|  |  |  | 			buttons: [{ | 
					
						
							|  |  |  | 				label: 'Cancel', | 
					
						
							|  |  |  | 				action: function(dialog) { | 
					
						
							|  |  |  | 					inCallbookProcessing = false; | 
					
						
							|  |  |  | 					dialog.close(); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			}] | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 		processNextCallbookItem(); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#deleteQsos').click(function (event) { | 
					
						
							|  |  |  | 		var elements = $('#qsoList tbody input:checked'); | 
					
						
							|  |  |  | 		var nElements = elements.length; | 
					
						
							|  |  |  | 		if (nElements == 0) { | 
					
						
							|  |  |  | 			return; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$('#deleteQsos').prop("disabled", true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var table = $('#qsoList').DataTable(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		BootstrapDialog.confirm({ | 
					
						
							|  |  |  | 			title: 'DANGER', | 
					
						
							|  |  |  | 			message: 'Warning! Are you sure you want to delete the marked QSO(s)?' , | 
					
						
							|  |  |  | 			type: BootstrapDialog.TYPE_DANGER, | 
					
						
							|  |  |  | 			closable: true, | 
					
						
							|  |  |  | 			draggable: true, | 
					
						
							|  |  |  | 			btnOKClass: 'btn-danger', | 
					
						
							|  |  |  | 			callback: function(result) { | 
					
						
							|  |  |  | 				if(result) { | 
					
						
							|  |  |  | 					elements.each(function() { | 
					
						
							|  |  |  | 						let id = $(this).first().closest('tr').data('qsoID') | 
					
						
							|  |  |  | 						$.ajax({ | 
					
						
							|  |  |  | 							url: base_url + 'index.php/qso/delete_ajax', | 
					
						
							|  |  |  | 							type: 'post', | 
					
						
							|  |  |  | 							data: {'id': id | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 							success: function(data) { | 
					
						
							|  |  |  | 								var row = $("#qsoID-" + id); | 
					
						
							|  |  |  | 								table.row(row).remove().draw(false); | 
					
						
							|  |  |  | 							} | 
					
						
							|  |  |  | 						}); | 
					
						
							|  |  |  | 						$('#deleteQsos').prop("disabled", false); | 
					
						
							|  |  |  | 					}) | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#exportAdif').click(function (event) { | 
					
						
							|  |  |  | 		$('#exportAdif').prop("disabled", true); | 
					
						
							|  |  |  | 		var elements = $('#qsoList tbody input:checked'); | 
					
						
							|  |  |  | 		var nElements = elements.length; | 
					
						
							|  |  |  | 		if (nElements == 0) { | 
					
						
							|  |  |  | 			return; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		var id_list=[]; | 
					
						
							|  |  |  | 		elements.each(function() { | 
					
						
							|  |  |  | 			let id = $(this).first().closest('tr').data('qsoID') | 
					
						
							|  |  |  | 			id_list.push(id); | 
					
						
							|  |  |  | 			unselectQsoID(id); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 		xhttp = new XMLHttpRequest(); | 
					
						
							|  |  |  | 		xhttp.onreadystatechange = function() { | 
					
						
							|  |  |  | 			var a; | 
					
						
							|  |  |  | 			if (xhttp.readyState === 4 && xhttp.status === 200) { | 
					
						
							|  |  |  | 				// Trick for making downloadable link
 | 
					
						
							|  |  |  | 				a = document.createElement('a'); | 
					
						
							|  |  |  | 				a.href = window.URL.createObjectURL(xhttp.response); | 
					
						
							|  |  |  | 				// Give filename you wish to download
 | 
					
						
							|  |  |  | 				a.download = "logbook_export.adi"; | 
					
						
							|  |  |  | 				a.style.display = 'none'; | 
					
						
							|  |  |  | 				document.body.appendChild(a); | 
					
						
							|  |  |  | 				a.click(); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 		// Post data to URL which handles post request
 | 
					
						
							|  |  |  | 		xhttp.open("POST", site_url+'/logbookadvanced/export_to_adif', true); | 
					
						
							|  |  |  | 		xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | 
					
						
							|  |  |  | 		// You should set responseType as blob for binary responses
 | 
					
						
							|  |  |  | 		xhttp.responseType = 'blob'; | 
					
						
							| 
									
										
										
										
											2023-05-01 18:35:24 +08:00
										 |  |  | 		xhttp.send("id=" + JSON.stringify(id_list, null, 2)+"&sortorder=" +$('.table').DataTable().order()); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 		$('#exportAdif').prop("disabled", false); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#queueBureau').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('Q','B', 'queueBureau'); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#queueDirect').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('Q','D', 'queueDirect'); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-23 15:24:48 +08:00
										 |  |  |     $('#queueElectronic').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('Q','E', 'queueElectronic'); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 	$('#sentBureau').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('Y','B', 'sentBureau'); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#sentDirect').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('Y','D', 'sentDirect'); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-23 15:24:48 +08:00
										 |  |  |     $('#sentElectronic').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('Y','E', 'sentElectronic'); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 	$('#dontSend').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('N','', 'dontSend'); | 
					
						
							|  |  |  | 	}); | 
					
						
							| 
									
										
										
										
											2023-05-03 19:00:01 +08:00
										 |  |  | 	$('#notRequired').click(function (event) { | 
					
						
							|  |  |  | 		handleQsl('I','', 'notRequired'); | 
					
						
							|  |  |  | 	}); | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-19 02:55:23 +08:00
										 |  |  | 	$('#searchForm').on('reset', function(e) { | 
					
						
							|  |  |  | 		setTimeout(function() { | 
					
						
							|  |  |  | 			$('#searchForm').submit(); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 	function handleQsl(sent, method, tag) { | 
					
						
							|  |  |  | 		var elements = $('#qsoList tbody input:checked'); | 
					
						
							|  |  |  | 		var nElements = elements.length; | 
					
						
							|  |  |  | 		if (nElements == 0) { | 
					
						
							|  |  |  | 			return; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		$('#'+tag).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/update_qsl', | 
					
						
							|  |  |  | 			type: 'post', | 
					
						
							|  |  |  | 			data: {'id': JSON.stringify(id_list, null, 2), | 
					
						
							|  |  |  | 				'sent' : sent, | 
					
						
							|  |  |  | 				'method' : method | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			success: function(data) { | 
					
						
							|  |  |  | 				if (data !== []) { | 
					
						
							|  |  |  | 					$.each(data, function(k, v) { | 
					
						
							|  |  |  | 						updateRow(this); | 
					
						
							|  |  |  | 						unselectQsoID(this.qsoID); | 
					
						
							|  |  |  | 					}); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 				$('#'+tag).prop("disabled", false); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#checkBoxAll').change(function (event) { | 
					
						
							|  |  |  | 		if (this.checked) { | 
					
						
							|  |  |  | 			$('#qsoList tbody tr').each(function (i) { | 
					
						
							|  |  |  | 				selectQsoID($(this).data('qsoID')) | 
					
						
							|  |  |  | 			}); | 
					
						
							| 
									
										
										
										
											2022-12-21 05:33:43 +08:00
										 |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2022-12-18 23:49:54 +08:00
										 |  |  | 			$('#qsoList tbody tr').each(function (i) { | 
					
						
							|  |  |  | 				unselectQsoID($(this).data('qsoID')) | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$('#searchForm').submit(); | 
					
						
							| 
									
										
										
										
											2023-04-27 22:00:02 +08:00
										 |  |  | }); |