// Method called to add a spot to the server function addSpot() { try { // Save settings (this will save "your call" for future use) saveSettings(); // Unpack the user's entered values var dx = $("#dx-call").val().toUpperCase(); var freqStr = $("#freq").val(); var mode = $("#mode").val().toUpperCase(); var dxGrid = $("#dx-grid").val(); var comment = $("#comment").val(); var de = $("#de-call").val().toUpperCase(); var spot = {} if (dx != "") { spot["dx_call"] = dx; } else { showAddSpotError("A DX callsign is required in order to spot."); return; } if (freqStr != "") { spot["freq"] = parseFloat(freqStr) * 1000; } else { showAddSpotError("A frequency is required in order to spot."); return; } if (mode != "") { spot["mode"] = mode; } if (dxGrid != "") { spot["dx_grid"] = dxGrid; } if (comment != "") { spot["comment"] = comment; } if (de != "") { spot["de_call"] = de; } else { showAddSpotError("A spotter callsign is required in order to spot."); return; } spot["time"] = moment.utc().valueOf() / 1000.0; $.ajax("/api/v1/spot", { data : JSON.stringify(spot), contentType : 'application/json', type : 'POST', timeout: 10000, success: async function (result) { $("#result-good").html(""); $("#result-bad").html(""); setTimeout(() => { $("#result-good").hide(); window.location.replace("/"); }, 1000); }, error: function (result) { showAddSpotError(result.responseText.slice(1,-1)); } }); } catch (error) { showAddSpotError(error); } return false; } // Show an "add spot" error. function showAddSpotError(text) { $("#result-bad").html(""); } // Force callsign and mode capitalisation $("#dx-call").change(function () { $(this).val($(this).val().trim().toUpperCase()); }); $("#de-call").change(function () { $(this).val($(this).val().trim().toUpperCase()); }); $("#mode").change(function () { $(this).val($(this).val().trim().toUpperCase()); }); // Display the intro box, unless the user has already dismissed it once. function displayIntroBox() { if (localStorage.getItem("add-spot-intro-box-dismissed") == null) { $("#add-spot-intro-box").show(); } $("#add-spot-intro-box-dismiss").click(function() { localStorage.setItem("add-spot-intro-box-dismissed", true); }); } // Startup $(document).ready(function() { // Load settings from settings storage loadSettings(); // Display intro box displayIntroBox(); });