Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3de757b
number of improvements
indig0fox Oct 5, 2021
b349edd
visual improvements, cloud tiling
indig0fox Oct 9, 2021
0092ceb
enough for now
indig0fox Oct 11, 2021
31f0ed4
more
indig0fox Jan 3, 2022
e993e99
adds generalEvent for custom event announcements in timeline
indig0fox Mar 28, 2022
7fd1d89
fix markers
indig0fox Mar 28, 2022
1ee3b30
fix for sideLogic units
indig0fox Mar 30, 2022
ae09630
small ui changes
indig0fox Mar 30, 2022
e80afaa
changes to new topo modes
indig0fox Apr 8, 2022
0c15566
fixes cloud tiling CORS issues
indig0fox Apr 13, 2022
4f540e7
Merge remote-tracking branch 'origin/main' into ind/leaflet-functiona…
indig0fox Apr 14, 2022
2e7dbd2
now uses https map.json fetch
indig0fox Apr 14, 2022
9897139
crisper entity popup text
indig0fox Apr 14, 2022
e8d662a
hide AI names by default, more work needed
indig0fox Apr 15, 2022
b3cce90
hotfix leaflet.pattern failure
indig0fox Apr 19, 2022
a10d227
minor index cleanup
indig0fox Apr 21, 2022
77d3092
Update static/scripts/localizable.js
indig0fox May 5, 2022
ae41485
Update static/scripts/localizable.js
indig0fox May 5, 2022
35528a4
use cloud tiles as fallback (#44)
a-sync May 7, 2022
4195095
fix vehicle crew display, dont carry d/c deaths to rejoined players
indig0fox Sep 27, 2022
2e0c70c
ignore data and maps files in git
indig0fox Oct 6, 2022
d844668
ensure that groups in left pane are ordered alphabetically
indig0fox Oct 12, 2022
072b1b4
update missing tiles URL
indig0fox Oct 15, 2022
f4f3659
Merge remote-tracking branch 'origin/main' into ind/leaflet-functiona…
indig0fox Oct 18, 2022
15f5b6d
update data and maps ignores
indig0fox Nov 4, 2022
09697e4
fix basemaps control file reference
indig0fox Nov 4, 2022
5752bbf
georeference game data and maplibre basemap for vector data
indig0fox Dec 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# IDE
.idea
.vscode

# builds
ocap-webserver.exe
Expand All @@ -8,6 +9,9 @@ ocap-webserver.exe
data.db
static/data
static/images/maps
/data/*.json.gz
/data/*.json
/maps/*/

# logs
ocap.log
2 changes: 0 additions & 2 deletions data/.gitignore

This file was deleted.

Empty file added data/.gitkeep
Empty file.
2 changes: 0 additions & 2 deletions maps/.gitignore

This file was deleted.

1 change: 1 addition & 0 deletions maps/.gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{\rtf1}
286 changes: 164 additions & 122 deletions static/index.html
Original file line number Diff line number Diff line change
@@ -1,129 +1,171 @@
<!DOCTYPE html>
<html>
<head>
<title>OCAP</title>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<link rel="stylesheet" href="leaflet/leaflet.css" />
<link rel="stylesheet" href="style/common.css" />
<link rel="stylesheet" href="style/index.css" />
<link rel="icon" type="img/png" href="images/favicon.png" />
<script src="leaflet/leaflet-src.js"></script>
<script src="leaflet/leaflet.rotatedMarker.js"></script>
<script src="leaflet/leaflet.svgIcon.js"></script>
<script src="leaflet/leaflet.pattern.js"></script>
<script src="leaflet/L.Icon.Pulse.js"></script>
<link rel="stylesheet" href="leaflet/L.Icon.Pulse.css" />
<script src="scripts/ocap.marker.js"></script>
<script src="scripts/ocap.entity.js"></script>
<script src="scripts/ocap.event.js"></script>
<script src="scripts/ocap.group.js"></script>
<script src="scripts/ocap.groups.js"></script>
<script src="scripts/ocap.vehicle.js"></script>
<script src="scripts/ocap.unit.js"></script>
<script src="scripts/ocap.ui.js"></script>
<script src="scripts/ocap.js"></script>
</head>
<body>
<div id="container">
<div id="map"></div>
<div id="topPanel">
<div id="shareButton" class="bold button"></div>
<div id="aboutButton" class="bold button">i</div>
<div id="statsButton" class="bold button hiddenExperimental">S</div>
<span id="missionName" class="medium"></span>
</div>
<div id="leftPanel">
<div class="title bold" data-lb="players"></div>
<div class="panelContent">
<ul id="listWest"></ul>
<ul id="listEast"></ul>
<ul id="listGuer"></ul>
<ul id="listCiv"></ul>
</div>
<div id="controlSide">
<div id="sideWest" class="blufor sideTitle">BLUFOR</div>
<div id="sideEast" class="opfor sideTitle">OPFOR</div>
<div id="sideGuer" class="ind sideTitle">IND</div>
<div id="sideCiv" class="civ sideTitle">CIV</div>
</div>
</div>
<div id="rightPanel">
<div class="title bold" data-lb="events"></div>
<div class="filterBox">
<div id="filterHitEventsButton" class="filterHit"></div>
<div id="filterConnectEventsButton" class="filterConnect"></div>
<input type="text" id="filterEventsInput" placeholder="" data-lb="filter"/>
</div>
<div class="panelContent">
<ul id="eventList"></ul>
</div>
</div>
<div class="extraInfoBox">
<div class="extraInfoBoxContent">
<span class="bold">Cursor target: </span><span id="cursorTargetBox">None</span>
</div>
</div>
<div id="bottomPanel">
<div id="frameSliderContainer">
<div id="eventTimeline"></div>
<div class="frameSliderContainer2">
<input type="range" id="frameSlider" min="0" value="0">
</div>
</div>
<div class="panelContent">
<div id="playPauseButton" onclick="playPause()">
</div>
<div id="timecodeContainer" class="medium">
<span id="missionCurTime">0:00:00</span>
<span>/</span>
<span id="missionEndTime">0:00:00</span>
</div>
<div class="fullscreenButton" onclick="goFullscreen()"></div>
<div id="playbackSpeedSliderContainer">
<span id="playbackSpeedVal">10x</span>
<input type="range" id="playbackSpeedSlider" />
</div>
<span id="toggleFirelines"></span>
<span id="toggleNickname"></span>
<span id="toggleMapMarker"></span>
<span class="a3-theme select toggleTime">
<select id="toggleTime"></select>
</span>
</div>
</div>
</div>
<head>
<title>OCAP</title>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<link rel="stylesheet" href="leaflet/leaflet.css" />
<link rel="stylesheet" href="style/common.css" />
<link rel="stylesheet" href="style/index.css" />
<link rel="icon" type="img/png" href="images/favicon.png" />
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="leaflet/leaflet.js"></script>
<!-- <script src="https://unpkg.com/leaflet@0.7.0/dist/leaflet.js"></script> -->
<script src="leaflet/leaflet.rotatedMarker.js"></script>
<script src="leaflet/leaflet.svgIcon.js"></script>
<script src="leaflet/leaflet.pattern.js"></script>
<link rel="stylesheet" href="leaflet/L.Icon.Pulse.css" />
<script src="leaflet/L.Icon.Pulse.js"></script>
<link rel="stylesheet" href="leaflet/L.Control.Zoominfo.css" />
<script src="leaflet/L.Control.Zoominfo.js"></script>
<link rel="stylesheet" href="leaflet/L.Control.Basemaps.css" />
<script src="leaflet/L.Control.Basemaps.js"></script>

<div id="modal" class="modal">
<div class="modalContent">
<div id="modalHeader" class="modalHeader medium">Header</div>
<div id="modalFilter" class="modalFilter">
<span class="a3-theme select filterTagGameInput">
<select id="filterTagGameInput"></select>
</span>
<input type="text" id="filterGameInput" class="a3-theme input" placeholder="" data-lb="name_missions" />
<input type="date" id="calendar1" class="a3-theme input" value="2017-06-01">
<input type="date" id="calendar2" class="a3-theme input" value="2099-12-12">
<div id="filterSubmit"></div>
</div>
<div id="modalBody" class="modalBody">Body</div>
<div id="modalButtons" class="modalButtons"></div>
</div>
</div>
<script src="leaflet/leaflet-hash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.8.0/proj4.js"></script>

<div id="stats" class="modalDialog closed">
<div class="dialogBase">
<div id="statsHeader" class="dialogHeader">Statistics</div>
<div id="statsBody" class="dialogBody">Body</div>
<div id="statsFooter" class="dialogFooter"></div>
</div>
</div>
<!-- Maplibre GL -->
<link
href="https://unpkg.com/maplibre-gl@2.2.1/dist/maplibre-gl.css"
rel="stylesheet"
/>
<script src="https://unpkg.com/maplibre-gl@2.2.1/dist/maplibre-gl.js"></script>

<div id="hint" class="hint">Test popup</div>
<script src="https://unpkg.com/@maplibre/maplibre-gl-leaflet@0.0.17/leaflet-maplibre-gl.js"></script>

<script src="scripts/localizable.js"></script>
<script>
initOCAP();
</script>
</body>
<script src="https://unpkg.com/suncalc@1.9.0/suncalc.js"></script>

<script src="scripts/ocap.marker.js"></script>
<script src="scripts/ocap.entity.js"></script>
<script src="scripts/ocap.event.js"></script>
<script src="scripts/ocap.group.js"></script>
<script src="scripts/ocap.groups.js"></script>
<script src="scripts/ocap.vehicle.js"></script>
<script src="scripts/ocap.unit.js"></script>
<script src="scripts/ocap.ui.js"></script>
<script src="scripts/ocap.js"></script>
</head>
<body>
<div id="container">
<div id="map"></div>
<div id="topPanel">
<div id="shareButton" class="bold button"></div>
<div id="aboutButton" class="bold button">i</div>
<div id="statsButton" class="bold button hiddenExperimental">S</div>
<span id="missionName" class="medium"></span>
</div>
<div id="leftPanel">
<div class="title bold" data-lb="players"></div>
<div class="panelContent">
<ul id="listWest"></ul>
<ul id="listEast"></ul>
<ul id="listGuer"></ul>
<ul id="listCiv"></ul>
</div>
<div id="controlSide">
<div id="sideWest" class="blufor sideTitle">BLUFOR</div>
<div id="sideEast" class="opfor sideTitle">OPFOR</div>
<div id="sideGuer" class="ind sideTitle">IND</div>
<div id="sideCiv" class="civ sideTitle">CIV</div>
</div>
</div>
<div id="rightPanel">
<div class="title bold" data-lb="events"></div>
<div class="filterBox">
<div id="filterHitEventsButton" class="filterHit"></div>
<div id="filterConnectEventsButton" class="filterConnect"></div>
<input
type="text"
id="filterEventsInput"
placeholder=""
data-lb="filter"
/>
</div>
<div class="panelContent">
<ul id="eventList"></ul>
</div>
</div>
<div class="extraInfoBox">
<div class="extraInfoBoxContent">
<span class="bold">Cursor target: </span
><span id="cursorTargetBox">None</span>
</div>
</div>
<div id="bottomPanel">
<div id="frameSliderContainer">
<div id="eventTimeline"></div>
<div class="frameSliderContainer2">
<input type="range" id="frameSlider" min="0" value="0" />
</div>
</div>
<div class="panelContent">
<div id="playPauseButton" onclick="playPause()"></div>
<div id="timecodeContainer" class="medium">
<span id="missionCurTime">0:00:00</span>
<span>/</span>
<span id="missionEndTime">0:00:00</span>
</div>
<div class="fullscreenButton" onclick="goFullscreen()"></div>
<div id="playbackSpeedSliderContainer">
<span id="playbackSpeedVal">10x</span>
<input type="range" id="playbackSpeedSlider" />
</div>
<span id="toggleFirelines"></span>
<span id="toggleNickname"></span>
<span id="toggleMapMarker"></span>
<span class="a3-theme select toggleTime">
<select id="toggleTime"></select>
</span>
</div>
</div>
</div>

<div id="modal" class="modal">
<div class="modalContent">
<div id="modalHeader" class="modalHeader medium">Header</div>
<div id="modalFilter" class="modalFilter">
<span class="a3-theme select filterTagGameInput">
<select id="filterTagGameInput"></select>
</span>
<input
type="text"
id="filterGameInput"
class="a3-theme input"
placeholder=""
data-lb="name_missions"
/>
<input
type="date"
id="calendar1"
class="a3-theme input"
value="2017-06-01"
/>
<input
type="date"
id="calendar2"
class="a3-theme input"
value="2099-12-12"
/>
<div id="filterSubmit"></div>
</div>
<div id="modalBody" class="modalBody">Body</div>
<div id="modalButtons" class="modalButtons"></div>
</div>
</div>

<div id="stats" class="modalDialog closed">
<div class="dialogBase">
<div id="statsHeader" class="dialogHeader">Statistics</div>
<div id="statsBody" class="dialogBody">Body</div>
<div id="statsFooter" class="dialogFooter"></div>
</div>
</div>

<div id="hint" class="hint">Test popup</div>

<script src="scripts/localizable.js"></script>
<script>
initOCAP();
</script>
</body>
</html>
28 changes: 28 additions & 0 deletions static/leaflet/L.Control.Basemaps.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.basemaps {
padding: 4px;
}
.basemaps.closed .basemap {
display: none;
}
.basemaps.closed .basemap.alt {
display: inline-block;
}
.basemaps.closed .basemap.alt h4 {
display: none;
}

.basemap {
display: inline-block; /* todo: flexbox? */
cursor: pointer;
}
.basemap.active img {
border-color: orange;
box-shadow: 2px 2px 4px #000;
}
.basemap img {
width: 64px;
border: 2px solid #FFF;
margin: 0 2px;
border-radius: 40px;
box-shadow: 0 1px 5px rgba(0,0,0,0.65)
}
1 change: 1 addition & 0 deletions static/leaflet/L.Control.Basemaps.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading