Skip to content

Commit

Permalink
show all tracks
Browse files Browse the repository at this point in the history
  • Loading branch information
jasper committed Dec 6, 2023
1 parent 5c6ce8f commit 40d05af
Show file tree
Hide file tree
Showing 8 changed files with 8,329 additions and 7,780 deletions.
2 changes: 1 addition & 1 deletion Application/AIS-catcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
#define VERSION_NUMBER 54
#define VERSION "v0.54"
#define COPYRIGHT "jvde-github and other contributors"
#define VERSION_DESCRIBE "v0.54-158-g6617eea9"
#define VERSION_DESCRIBE "v0.54-158-g6617eea9"
5 changes: 5 additions & 0 deletions Application/Receiver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,11 @@ void WebClient::Request(TCP::ServerConnection& c, const std::string& response, b
content += "}";
Response(c, "application/json", content, use_zlib & gzip);
}
else if (r == "/allpath.json") {

std::string content = ships.getAllPathJSON();
Response(c, "application/json", content, use_zlib & gzip);
}
else if (r == "/message") {
int mmsi = -1;
std::stringstream ss(a);
Expand Down
8,250 changes: 4,363 additions & 3,887 deletions HTML/HTML.cpp

Large diffs are not rendered by default.

7,766 changes: 3,883 additions & 3,883 deletions HTML/HTML_local.cpp

Large diffs are not rendered by default.

59 changes: 51 additions & 8 deletions HTML/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2455,14 +2455,15 @@
<li class="table-menu" onclick="downloadCSV()"><i class="cloud_download_icon"></i>Download CSV</li>
<li class="divider table-menu"></li>
<li class="ctx-map" onclick="unpinCenter()" id="ctx_menu_unpin"><i class="undo_icon"></i><span id="ctx_unpin">Release map center</span></li>
<li class="ctx-map" onclick="deleteAllTracks()"><i class="remove_circle_outline_icon"></i>Remove all tracks</li>
<li class="ctx-map ctx-noalltracks" onclick="showAllTracks(); updateShipcardTrackOption();"><i class="timeline_icon"></i>Show all tracks</li>
<li class="ctx-map ctx-removealltracks" onclick="deleteAllTracks(); show_all_tracks=false; updateShipcardTrackOption();"><i class="remove_circle_outline_icon"></i>Remove all tracks</li>
<li class="ctx-map" onclick="ToggleFireworks()"><i class="explosion_icon"></i><span id="ctx_fireworks"></span></li>
<li class="ctx-map" onclick="toggleLabel()"><i class="label_icon"></i><span id="ctx_labelswitch"></span></li>
<li class="divider ctx-map"></li>
<li class="ctx-map" onclick="toggleFading()"><i class="directions_boat_icon"></i><span id="ctx_fading"></span></li>
<li class="ctx-map" onclick="toggleRange()"><i class="signal_cellular_alt_icon"></i><span id="ctx_range"></span></li>
<li class="divider ctx-map"></li>
<li class="mmsi-map" onclick="toggleTrack(context_mmsi)"><i class="timeline_icon"></i><span id="ctx_track"></span></li>
<li class="mmsi-map ctx-noalltracks" onclick="toggleTrack(context_mmsi)"><i class="timeline_icon"></i><span id="ctx_track"></span></li>
<li class="mmsi-map" onclick="pinVessel(context_mmsi)"><i class="push_pin_icon"></i>Center map on vessel</li>
<li class="mmsi-map" onclick="mapResetViewZoom(13,context_mmsi)"><i class="zoom_in_icon"></i>Zoom in on vessel</li>
<li class="mmsi-map" onclick="showShipcard(context_mmsi)"><i class="directions_boat_icon"></i>Show Shipcard</li>
Expand Down Expand Up @@ -2847,7 +2848,7 @@
</div>
<footer id="shipcard_footer" class="shipcard-footer shipcard-max-only">
<div title="Center map on current vessel" onclick="mapResetViewZoom(13)"><i class="zoom_in_icon"></i><span>Zoom</span></div>
<div title="Track of current vessel" onclick="toggleTrackCard()"><i class="timeline_icon"></i><span id="shipcard_track">Track</span></div>
<div id="shipcard_track_option" title="Track of current vessel" onclick="toggleTrackCard()"><i class="timeline_icon"></i><span id="shipcard_track">Track</span></div>
</footer>
</aside>

Expand All @@ -2872,8 +2873,9 @@
overlapmaps = {},
station = {},
shipsDB = {},
singleClickTimeout = null;
server_message = "";
singleClickTimeout = null,
server_message = "",
show_all_tracks = false;
var iconLabelSpan = null,
iconStationSpan = null,
evtSource = null,
Expand Down Expand Up @@ -3223,6 +3225,27 @@

// we might have made non-android items visible in the context menu, so hide non-android items if needed
updateAndroid();
if(show_all_tracks) {
document.querySelectorAll('.ctx-noalltracks').forEach(function(element) {
element.style.display = 'none';
});
}
else {
document.querySelectorAll('.ctx-noalltracks').forEach(function(element) {
element.style.display = 'flex';
});
}

if(show_all_tracks || Object.keys(marker_tracks).length > 0) {
document.querySelectorAll('.ctx-removealltracks').forEach(function(element) {
element.style.display = 'flex';
});
}
else {
document.querySelectorAll('.ctx-removealltracks').forEach(function(element) {
element.style.display = 'none';
});
}

document.getElementById("ctx_menu_unpin").style.display = settings.fix_center && context.includes("ctx-map") ? "flex" : "none";
document.getElementById("ctx_track").innerText = context_mmsi in marker_tracks && context.includes("mmsi-map") ? "Hide Track" : "Show Track";
Expand Down Expand Up @@ -5914,6 +5937,7 @@

async function toggleTrackCard() {
toggleTrack(card_mmsi);

document.getElementById("shipcard_track").innerText = card_mmsi in marker_tracks ? "Hide Track" : "Show Track";
}

Expand Down Expand Up @@ -5952,6 +5976,12 @@
}
}

function showAllTracks() {
show_all_tracks = true;
updateTrack();

}

function deleteAllTracks() {
removeAllTracks();
paths = {};
Expand Down Expand Up @@ -5997,11 +6027,15 @@
}

async function updateTrack() {
if (Object.keys(marker_tracks).length == 0) return true;
if (Object.keys(marker_tracks).length == 0 && show_all_tracks == false) return true;

try {
var mmsi_str = Object.keys(marker_tracks).join(",");
a = await fetch("path.json?" + mmsi_str);
if(show_all_tracks)
a = await fetch("allpath.json");
else {
var mmsi_str = Object.keys(marker_tracks).join(",");
a = await fetch("path.json?" + mmsi_str);
}
paths = await a.json();
} catch (error) {
console.log("Error loading path: " + error);
Expand All @@ -6022,6 +6056,15 @@
return true;
}

function updateShipcardTrackOption() {
if(show_all_tracks) {
document.getElementById("shipcard_track_option").style.display = "none";
}
else {
document.getElementById("shipcard_track_option").style.display = "flex";
}
}

function isShipcardMax() {
var e = document.getElementById("shipcard").classList;
return e.contains("shipcard-ismax");
Expand Down
2 changes: 1 addition & 1 deletion Library/Utilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ namespace Util {
}
}
}

if (revision == "900021") return "Raspberry Pi A+ 1.1";
if (revision == "900032") return "Raspberry Pi B+ 1.2";
if (revision == "900092") return "Raspberry Pi Zero 1.2";
Expand Down
24 changes: 24 additions & 0 deletions Ships/DB.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,7 @@ std::string DB::getJSON(bool full) {
content += "],\"error\":false}\n\n";
return content;
}

std::string DB::getShipJSON(int mmsi) {
int ptr = findShip(mmsi);

Expand All @@ -277,6 +278,29 @@ std::string DB::getShipJSON(int mmsi) {
return content;
}

std::string DB::getAllPathJSON() {
std::string content = "{";

std::time_t tm = time(nullptr);
int ptr = first;

delim = "";
while (ptr != -1) {
const VesselDetail ship = ships[ptr].ship;
if (ship.mmsi != 0) {
long int delta_time = (long int)tm - (long int)ship.last_signal;
if (delta_time > TIME_HISTORY) break;

content += delim + "\"" + std::to_string(ship.mmsi) + "\":" + getPathJSON(ship.mmsi);
delim = ",";
}
ptr = ships[ptr].next;
}
content += "}\n\n";
return content;
}


std::string DB::getPathJSON(uint32_t mmsi) {
const std::string null_str = "null";
std::string str;
Expand Down
1 change: 1 addition & 0 deletions Ships/DB.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ class DB : public StreamIn<JSON::JSON>, public StreamIn<AIS::GPS>, public Stream
std::string getJSON(bool full = false);
std::string getJSONcompact(bool full = false);
std::string getPathJSON(uint32_t);
std::string getAllPathJSON();
std::string getMessage(uint32_t);

int getCount() { return count; }
Expand Down

0 comments on commit 40d05af

Please sign in to comment.