Compare commits
17
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ca97dccb9 | ||
|
|
2ef67d53f4 | ||
|
|
06a0722899 | ||
|
|
4a9cf8a217 | ||
|
|
b3caf1fb38 | ||
|
|
08d4aec48e | ||
|
|
9c380076fa | ||
|
|
95508ad284 | ||
|
|
7690714b26 | ||
|
|
f732dad1b1 | ||
|
|
49b6f28a9d | ||
|
|
33ec9d3a9c | ||
|
|
6fb122e842 | ||
|
|
90ccdf6de7 | ||
|
|
a869a55b7e | ||
|
|
420ed400a6 | ||
|
|
d6f34b916e |
No files matched your search
@@ -7,3 +7,4 @@ GOOGLE_MAPS_SERVER_API_KEY=your_google_maps_server_api_key
|
|||||||
GOOGLE_MAPS_JS_API_KEY=your_google_maps_js_api_key
|
GOOGLE_MAPS_JS_API_KEY=your_google_maps_js_api_key
|
||||||
LEAFLET_TILESERVER_URL=a_leaflet_compatible_tileserver_url
|
LEAFLET_TILESERVER_URL=a_leaflet_compatible_tileserver_url
|
||||||
LEAFLET_TILESERVER_ATTRIBUTION=attribution_to_be_shown_for_tiles
|
LEAFLET_TILESERVER_ATTRIBUTION=attribution_to_be_shown_for_tiles
|
||||||
|
STATIC_ROOT=/static
|
||||||
@@ -3,6 +3,9 @@
|
|||||||
require 'vendor/autoload.php';
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
const ROOT = __DIR__;
|
const ROOT = __DIR__;
|
||||||
|
const VERSION = '';
|
||||||
|
const REVISION = '';
|
||||||
|
const REVISION_DATE = '';
|
||||||
|
|
||||||
$dotenv = Dotenv\Dotenv::createImmutable(ROOT);
|
$dotenv = Dotenv\Dotenv::createImmutable(ROOT);
|
||||||
$dotenv->load();
|
$dotenv->load();
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ div.buttonContainer>button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#loading {
|
#loading {
|
||||||
position: absolute;
|
position: fixed;
|
||||||
width: 64px;
|
width: 64px;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
|
|||||||
@@ -229,7 +229,7 @@
|
|||||||
clickable: true,
|
clickable: true,
|
||||||
draggable: false,
|
draggable: false,
|
||||||
icon: {
|
icon: {
|
||||||
url: '/static/img/markers/marker-green.svg',
|
url: STATIC_ROOT + '/img/markers/marker-green.svg?rev=' + REVISION,
|
||||||
size: new google.maps.Size(24, 32),
|
size: new google.maps.Size(24, 32),
|
||||||
scaledSize: new google.maps.Size(24, 32),
|
scaledSize: new google.maps.Size(24, 32),
|
||||||
anchor: new google.maps.Point(12, 32)
|
anchor: new google.maps.Point(12, 32)
|
||||||
@@ -248,7 +248,7 @@
|
|||||||
clickable: false,
|
clickable: false,
|
||||||
draggable: false,
|
draggable: false,
|
||||||
icon: {
|
icon: {
|
||||||
url: '/static/img/markers/marker-gray-empty.svg',
|
url: STATIC_ROOT + '/img/markers/marker-gray-empty.svg?rev=' + REVISION,
|
||||||
size: new google.maps.Size(24, 32),
|
size: new google.maps.Size(24, 32),
|
||||||
scaledSize: new google.maps.Size(24, 32),
|
scaledSize: new google.maps.Size(24, 32),
|
||||||
anchor: new google.maps.Point(12, 32),
|
anchor: new google.maps.Point(12, 32),
|
||||||
@@ -319,7 +319,7 @@
|
|||||||
var round = Game.rounds[i];
|
var round = Game.rounds[i];
|
||||||
|
|
||||||
round.realMarker.setIcon({
|
round.realMarker.setIcon({
|
||||||
url: '/static/img/markers/marker-green-empty.svg',
|
url: STATIC_ROOT + '/img/markers/marker-green-empty.svg?rev=' + REVISION,
|
||||||
size: new google.maps.Size(24, 32),
|
size: new google.maps.Size(24, 32),
|
||||||
scaledSize: new google.maps.Size(24, 32),
|
scaledSize: new google.maps.Size(24, 32),
|
||||||
anchor: new google.maps.Point(12, 32),
|
anchor: new google.maps.Point(12, 32),
|
||||||
@@ -411,7 +411,7 @@
|
|||||||
clickable: false,
|
clickable: false,
|
||||||
draggable: true,
|
draggable: true,
|
||||||
icon: {
|
icon: {
|
||||||
url: '/static/img/markers/marker-gray-empty.svg',
|
url: STATIC_ROOT + '/img/markers/marker-gray-empty.svg?rev=' + REVISION,
|
||||||
size: new google.maps.Size(24, 32),
|
size: new google.maps.Size(24, 32),
|
||||||
scaledSize: new google.maps.Size(24, 32),
|
scaledSize: new google.maps.Size(24, 32),
|
||||||
anchor: new google.maps.Point(12, 32),
|
anchor: new google.maps.Point(12, 32),
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
description: null
|
description: null
|
||||||
},
|
},
|
||||||
map: null,
|
map: null,
|
||||||
|
markers: null,
|
||||||
panorama: null,
|
panorama: null,
|
||||||
selectedMarker: null,
|
selectedMarker: null,
|
||||||
added: {},
|
added: {},
|
||||||
@@ -129,6 +130,8 @@
|
|||||||
MapEditor.panorama.setVisible(false);
|
MapEditor.panorama.setVisible(false);
|
||||||
|
|
||||||
if (marker.placeId) {
|
if (marker.placeId) {
|
||||||
|
MapEditor.markers.removeLayer(MapEditor.selectedMarker);
|
||||||
|
MapEditor.map.addLayer(MapEditor.selectedMarker);
|
||||||
marker.setIcon(IconCollection.iconBlue);
|
marker.setIcon(IconCollection.iconBlue);
|
||||||
marker.setZIndexOffset(2000);
|
marker.setZIndexOffset(2000);
|
||||||
|
|
||||||
@@ -168,6 +171,8 @@
|
|||||||
var placeId = MapEditor.selectedMarker.placeId
|
var placeId = MapEditor.selectedMarker.placeId
|
||||||
|
|
||||||
if (places[placeId].id && !del) {
|
if (places[placeId].id && !del) {
|
||||||
|
MapEditor.map.removeLayer(MapEditor.selectedMarker);
|
||||||
|
MapEditor.markers.addLayer(MapEditor.selectedMarker);
|
||||||
MapEditor.selectedMarker.setIcon(places[placeId].noPano ? IconCollection.iconRed : IconCollection.iconGreen);
|
MapEditor.selectedMarker.setIcon(places[placeId].noPano ? IconCollection.iconRed : IconCollection.iconGreen);
|
||||||
MapEditor.selectedMarker.setZIndexOffset(1000);
|
MapEditor.selectedMarker.setZIndexOffset(1000);
|
||||||
} else {
|
} else {
|
||||||
@@ -322,17 +327,17 @@
|
|||||||
|
|
||||||
var IconCollection = {
|
var IconCollection = {
|
||||||
iconGreen: L.icon({
|
iconGreen: L.icon({
|
||||||
iconUrl: '/static/img/markers/marker-green.svg',
|
iconUrl: STATIC_ROOT + '/img/markers/marker-green.svg?rev' + REVISION,
|
||||||
iconSize: [24, 32],
|
iconSize: [24, 32],
|
||||||
iconAnchor: [12, 32]
|
iconAnchor: [12, 32]
|
||||||
}),
|
}),
|
||||||
iconRed: L.icon({
|
iconRed: L.icon({
|
||||||
iconUrl: '/static/img/markers/marker-red.svg',
|
iconUrl: STATIC_ROOT + '/img/markers/marker-red.svg?rev=' + REVISION,
|
||||||
iconSize: [24, 32],
|
iconSize: [24, 32],
|
||||||
iconAnchor: [12, 32]
|
iconAnchor: [12, 32]
|
||||||
}),
|
}),
|
||||||
iconBlue: L.icon({
|
iconBlue: L.icon({
|
||||||
iconUrl: '/static/img/markers/marker-blue.svg',
|
iconUrl: STATIC_ROOT + '/img/markers/marker-blue.svg?rev=' + REVISION,
|
||||||
iconSize: [24, 32],
|
iconSize: [24, 32],
|
||||||
iconAnchor: [12, 32]
|
iconAnchor: [12, 32]
|
||||||
}),
|
}),
|
||||||
@@ -381,6 +386,10 @@
|
|||||||
|
|
||||||
MapEditor.map.fitBounds(L.latLngBounds({ lat: mapBounds.south, lng: mapBounds.west }, { lat: mapBounds.north, lng: mapBounds.east }));
|
MapEditor.map.fitBounds(L.latLngBounds({ lat: mapBounds.south, lng: mapBounds.west }, { lat: mapBounds.north, lng: mapBounds.east }));
|
||||||
|
|
||||||
|
MapEditor.markers = L.markerClusterGroup({
|
||||||
|
maxClusterRadius: 50
|
||||||
|
});
|
||||||
|
|
||||||
for (var placeId in places) {
|
for (var placeId in places) {
|
||||||
if (!places.hasOwnProperty(placeId)) {
|
if (!places.hasOwnProperty(placeId)) {
|
||||||
continue;
|
continue;
|
||||||
@@ -392,7 +401,7 @@
|
|||||||
icon: place.noPano ? IconCollection.iconRed : IconCollection.iconGreen,
|
icon: place.noPano ? IconCollection.iconRed : IconCollection.iconGreen,
|
||||||
zIndexOffset: 1000
|
zIndexOffset: 1000
|
||||||
})
|
})
|
||||||
.addTo(MapEditor.map)
|
.addTo(MapEditor.markers)
|
||||||
.on('click', function () {
|
.on('click', function () {
|
||||||
MapEditor.select(this);
|
MapEditor.select(this);
|
||||||
});
|
});
|
||||||
@@ -400,6 +409,8 @@
|
|||||||
marker.placeId = place.id;
|
marker.placeId = place.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MapEditor.map.addLayer(MapEditor.markers);
|
||||||
|
|
||||||
MapEditor.panorama = new google.maps.StreetViewPanorama(document.getElementById('panorama'), {
|
MapEditor.panorama = new google.maps.StreetViewPanorama(document.getElementById('panorama'), {
|
||||||
// switch off fullscreenControl because positioning doesn't work
|
// switch off fullscreenControl because positioning doesn't work
|
||||||
fullscreenControl: false,
|
fullscreenControl: false,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"leaflet": "^1.6.0"
|
"leaflet": "^1.6.0",
|
||||||
|
"leaflet.markercluster": "^1.4.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,11 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
leaflet.markercluster@^1.4.1:
|
||||||
|
version "1.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz#b53f2c4f2ca7306ddab1dbb6f1861d5e8aa6c5e5"
|
||||||
|
integrity sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw==
|
||||||
|
|
||||||
leaflet@^1.6.0:
|
leaflet@^1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308"
|
resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308"
|
||||||
|
|||||||
@@ -74,8 +74,7 @@ def updateAppInWorktree(worktreePath):
|
|||||||
subprocess.call([worktreePath + "/scripts/update.sh"], cwd=worktreePath)
|
subprocess.call([worktreePath + "/scripts/update.sh"], cwd=worktreePath)
|
||||||
|
|
||||||
def updateAppVersionInWorktree(worktreePath):
|
def updateAppVersionInWorktree(worktreePath):
|
||||||
pass
|
subprocess.call([worktreePath + "/scripts/update-version.sh"], cwd=worktreePath)
|
||||||
#subprocess.call([worktreePath + "/scripts/update-version.sh"], cwd=worktreePath)
|
|
||||||
|
|
||||||
worktrees = getDataForWorktrees()
|
worktrees = getDataForWorktrees()
|
||||||
|
|
||||||
@@ -111,10 +110,6 @@ if developmentWorktree.revision != developmentWorktree.newRevision:
|
|||||||
elif developmentWorktree.version != developmentWorktree.newVersion:
|
elif developmentWorktree.version != developmentWorktree.newVersion:
|
||||||
print("-> DEVELOPMENT " + developmentWorktree.path + "'s version info will be UPDATED")
|
print("-> DEVELOPMENT " + developmentWorktree.path + "'s version info will be UPDATED")
|
||||||
|
|
||||||
checkoutWorktree(developmentWorktree.path, developmentWorktree.branch)
|
|
||||||
|
|
||||||
print(developmentWorktree.path + " is checked out to " + developmentWorktree.branch)
|
|
||||||
|
|
||||||
updateAppVersionInWorktree(developmentWorktree.path)
|
updateAppVersionInWorktree(developmentWorktree.path)
|
||||||
|
|
||||||
print("MapGuesser version is updated in " + developmentWorktree.path)
|
print("MapGuesser version is updated in " + developmentWorktree.path)
|
||||||
|
|||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
BRANCH_NAME=$(git symbolic-ref --short HEAD)
|
||||||
|
BRANCH_PATTERN="^(bugfix|feature|hotfix)\/([A-Z]+-[0-9]+).*"
|
||||||
|
|
||||||
|
if [[ "${BRANCH_NAME}" =~ $BRANCH_PATTERN ]]; then
|
||||||
|
TICKET_ID=$(echo $BRANCH_NAME | sed -E "s@$BRANCH_PATTERN@\\2@")
|
||||||
|
|
||||||
|
COMMIT_MESSAGE=$(head -n 1 $1)
|
||||||
|
COMMIT_MESSAGE_REGEX="^$TICKET_ID .*"
|
||||||
|
|
||||||
|
if [[ ! "${COMMIT_MESSAGE}" =~ $COMMIT_MESSAGE_REGEX ]]; then
|
||||||
|
sed -i.bak -e "1s/^/$TICKET_ID /" $1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
ROOT_DIR=$(dirname $(readlink -f "$0"))/..
|
||||||
|
|
||||||
|
. ${ROOT_DIR}/.env
|
||||||
|
|
||||||
|
cd ${ROOT_DIR}
|
||||||
|
|
||||||
|
echo "Updating version info..."
|
||||||
|
|
||||||
|
VERSION=$(git describe --tags --always --match "Release_*" HEAD)
|
||||||
|
REVISION=$(git rev-parse --short HEAD)
|
||||||
|
REVISION_DATE=$(git show -s --format=%aI HEAD)
|
||||||
|
|
||||||
|
sed -i -E "s/const VERSION = '(.*)';/const VERSION = '${VERSION}';/" main.php
|
||||||
|
sed -i -E "s/const REVISION = '(.*)';/const REVISION = '${REVISION}';/" main.php
|
||||||
|
sed -i -E "s/const REVISION_DATE = '(.*)';/const REVISION_DATE = '${REVISION_DATE}';/" main.php
|
||||||
@@ -1,10 +1,23 @@
|
|||||||
<?php $cssFiles = ['/static/node_modules/leaflet/dist/leaflet.css', '/static/css/map_editor.css']; ?>
|
<?php
|
||||||
|
$cssFiles = [
|
||||||
|
'node_modules/leaflet/dist/leaflet.css',
|
||||||
|
'css/map_editor.css',
|
||||||
|
'node_modules/leaflet.markercluster/dist/MarkerCluster.css',
|
||||||
|
'node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css'
|
||||||
|
];
|
||||||
|
$jsFiles = [
|
||||||
|
'node_modules/leaflet/dist/leaflet.js',
|
||||||
|
'node_modules/leaflet.markercluster/dist/leaflet.markercluster.js',
|
||||||
|
'https://maps.googleapis.com/maps/api/js?key=' . $_ENV['GOOGLE_MAPS_JS_API_KEY'],
|
||||||
|
'js/map_editor.js',
|
||||||
|
];
|
||||||
|
?>
|
||||||
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
||||||
<div class="header small">
|
<div class="header small">
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<h1>
|
<h1>
|
||||||
<a href="/maps" title="Back to playable maps">
|
<a href="/maps" title="Back to playable maps">
|
||||||
<img class="inline" src="/static/img/icon.svg">
|
<img class="inline" src="<?= $_ENV['STATIC_ROOT'] ?>/img/icon.svg?rev=<?= REVISION ?>">
|
||||||
<span>MapGuesser</span>
|
<span>MapGuesser</span>
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
@@ -67,7 +80,4 @@
|
|||||||
var mapBounds = <?= json_encode($bounds) ?>;
|
var mapBounds = <?= json_encode($bounds) ?>;
|
||||||
var places = <?= json_encode($places, JSON_FORCE_OBJECT) ?>;
|
var places = <?= json_encode($places, JSON_FORCE_OBJECT) ?>;
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/node_modules/leaflet/dist/leaflet.js"></script>
|
|
||||||
<script src="https://maps.googleapis.com/maps/api/js?key=<?= $_ENV['GOOGLE_MAPS_JS_API_KEY'] ?>"></script>
|
|
||||||
<script src="/static/js/map_editor.js"></script>
|
|
||||||
<?php require ROOT . '/views/templates/main_footer.php'; ?>
|
<?php require ROOT . '/views/templates/main_footer.php'; ?>
|
||||||
+10
-4
@@ -1,10 +1,18 @@
|
|||||||
<?php $cssFiles = ['/static/css/game.css']; ?>
|
<?php
|
||||||
|
$cssFiles = [
|
||||||
|
'css/game.css'
|
||||||
|
];
|
||||||
|
$jsFiles = [
|
||||||
|
'https://maps.googleapis.com/maps/api/js?key=' . $_ENV['GOOGLE_MAPS_JS_API_KEY'],
|
||||||
|
'js/game.js',
|
||||||
|
];
|
||||||
|
?>
|
||||||
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
||||||
<div class="header small">
|
<div class="header small">
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
<h1>
|
<h1>
|
||||||
<a href="/maps" title="Back to playable maps">
|
<a href="/maps" title="Back to playable maps">
|
||||||
<img class="inline" src="/static/img/icon.svg">
|
<img class="inline" src="<?= $_ENV['STATIC_ROOT'] ?>/img/icon.svg?rev=<?= REVISION ?>">
|
||||||
<span>MapGuesser</span>
|
<span>MapGuesser</span>
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
@@ -53,6 +61,4 @@
|
|||||||
var mapId = <?= $mapId ?>;
|
var mapId = <?= $mapId ?>;
|
||||||
var mapBounds = <?= json_encode($bounds) ?>;
|
var mapBounds = <?= json_encode($bounds) ?>;
|
||||||
</script>
|
</script>
|
||||||
<script src="https://maps.googleapis.com/maps/api/js?key=<?= $_ENV['GOOGLE_MAPS_JS_API_KEY'] ?>"></script>
|
|
||||||
<script src="/static/js/game.js"></script>
|
|
||||||
<?php require ROOT . '/views/templates/main_footer.php'; ?>
|
<?php require ROOT . '/views/templates/main_footer.php'; ?>
|
||||||
+5
-1
@@ -1,3 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
$jsFiles = [
|
||||||
|
'js/login.js',
|
||||||
|
];
|
||||||
|
?>
|
||||||
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
||||||
<?php require ROOT . '/views/templates/header.php'; ?>
|
<?php require ROOT . '/views/templates/header.php'; ?>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
@@ -13,5 +18,4 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="/static/js/login.js"></script>
|
|
||||||
<?php require ROOT . '/views/templates/main_footer.php'; ?>
|
<?php require ROOT . '/views/templates/main_footer.php'; ?>
|
||||||
+5
-1
@@ -1,4 +1,8 @@
|
|||||||
<?php $cssFiles = ['/static/css/maps.css']; ?>
|
<?php
|
||||||
|
$cssFiles = [
|
||||||
|
'css/maps.css'
|
||||||
|
];
|
||||||
|
?>
|
||||||
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
<?php require ROOT . '/views/templates/main_header.php'; ?>
|
||||||
<?php require ROOT . '/views/templates/header.php'; ?>
|
<?php require ROOT . '/views/templates/header.php'; ?>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<div class="header">
|
<div class="header">
|
||||||
<h1>
|
<h1>
|
||||||
<a href="/" title="MapGuesser">
|
<a href="/" title="MapGuesser">
|
||||||
<img class="inline" src="/static/img/icon.svg">
|
<img class="inline" src="<?= $_ENV['STATIC_ROOT'] ?>/img/icon.svg?rev=<?= REVISION ?>">
|
||||||
MapGuesser
|
MapGuesser
|
||||||
</a>
|
</a>
|
||||||
</h1>
|
</h1>
|
||||||
|
|||||||
@@ -1,3 +1,17 @@
|
|||||||
|
<script>
|
||||||
|
const STATIC_ROOT = '<?= $_ENV['STATIC_ROOT'] ?>';
|
||||||
|
const REVISION = '<?= REVISION ?>';
|
||||||
|
</script>
|
||||||
|
<?php if (isset($jsFiles)) : ?>
|
||||||
|
<?php foreach ($jsFiles as $jsFile) : ?>
|
||||||
|
<?php
|
||||||
|
if (!preg_match('/^http(s)?/', $jsFile)) {
|
||||||
|
$jsFile = $_ENV['STATIC_ROOT'] . '/' . $jsFile . '?rev=' . REVISION;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<script src="<?= $jsFile ?>"></script>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<?php endif; ?>
|
||||||
<script>
|
<script>
|
||||||
(function () {
|
(function () {
|
||||||
var anchors = document.getElementsByTagName('a');
|
var anchors = document.getElementsByTagName('a');
|
||||||
|
|||||||
@@ -4,19 +4,24 @@
|
|||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>MapGuesser</title>
|
<title>MapGuesser</title>
|
||||||
<link href="/static/css/mapguesser.css" rel="stylesheet">
|
<link href="<?= $_ENV['STATIC_ROOT'] ?>/css/mapguesser.css?rev=<?= REVISION ?>" rel="stylesheet">
|
||||||
<?php if (isset($cssFiles)) : ?>
|
<?php if (isset($cssFiles)) : ?>
|
||||||
<?php foreach ($cssFiles as $cssFile) : ?>
|
<?php foreach ($cssFiles as $cssFile) : ?>
|
||||||
|
<?php
|
||||||
|
if (!preg_match('/^http(s)?/', $cssFile)) {
|
||||||
|
$cssFile = $_ENV['STATIC_ROOT'] . '/' . $cssFile . '?rev=' . REVISION;
|
||||||
|
}
|
||||||
|
?>
|
||||||
<link href="<?= $cssFile ?>" rel="stylesheet">
|
<link href="<?= $cssFile ?>" rel="stylesheet">
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;500&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;500&display=swap" rel="stylesheet">
|
||||||
<link rel="icon" type="image/png" sizes="192x192" href="/static/img/favicon/192x192.png">
|
<link rel="icon" type="image/png" sizes="192x192" href="<?= $_ENV['STATIC_ROOT'] ?>/img/favicon/192x192.png?rev=<?= REVISION ?>">
|
||||||
<link rel="icon" type="image/png" sizes="96x96" href="/static/img/favicon/96x96.png">
|
<link rel="icon" type="image/png" sizes="96x96" href="<?= $_ENV['STATIC_ROOT'] ?>/img/favicon/96x96.png?rev=<?= REVISION ?>">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/static/img/favicon/32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="<?= $_ENV['STATIC_ROOT'] ?>/img/favicon/32x32.png?rev=<?= REVISION ?>">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="/static/img/favicon/16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="<?= $_ENV['STATIC_ROOT'] ?>/img/favicon/16x16.png?rev=<?= REVISION ?>">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="loading">
|
<div id="loading">
|
||||||
<img src="/static/img/loading.svg">
|
<img src="<?= $_ENV['STATIC_ROOT'] ?>/img/loading.svg?rev=<?= REVISION ?>">
|
||||||
</div>
|
</div>
|
||||||
Reference in new issue
Block a user