From e6e37840130fad0c5acab8f061499ef80fbc854e Mon Sep 17 00:00:00 2001 From: Piepow Date: Tue, 13 Jun 2017 12:09:37 -0400 Subject: [PATCH 1/7] Ignore .sass-cache and .css.map --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 5f7bdef..72cfc02 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ daemon_data.json daemon_storage.json daemon_log.txt *.swp +*.css.map +*.sass-cache/* From 40b66f5d162dd6d0e4da508ef60631284f83ecfd Mon Sep 17 00:00:00 2001 From: Piepow Date: Tue, 13 Jun 2017 12:09:48 -0400 Subject: [PATCH 2/7] Change accent color to purple --- sass/_master.scss | 2 +- www/includes/stylesheet.css | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/sass/_master.scss b/sass/_master.scss index 5d89104..8a3f6b3 100644 --- a/sass/_master.scss +++ b/sass/_master.scss @@ -13,7 +13,7 @@ $shade0: white; $shade1: #e3e3e3; $text1-0: #555; -$accent1: #378A54; +$accent1: #7A3E8A; $link1: #37798A; $error1: #8a3737; $warning1: #935E22; diff --git a/www/includes/stylesheet.css b/www/includes/stylesheet.css index f634615..7a54de8 100644 --- a/www/includes/stylesheet.css +++ b/www/includes/stylesheet.css @@ -53,7 +53,7 @@ h4, h5, h6, th { - color: #378A54; } + color: #7A3E8A; } h1 a, h2 a, h3 a, @@ -61,7 +61,7 @@ th { h5 a, h6 a, th a { - color: #378A54; + color: #7A3E8A; font-weight: 500; } h1 a:hover, h1 a.hovering, h2 a:hover, @@ -76,7 +76,7 @@ th { h6 a.hovering, th a:hover, th a.hovering { - color: #1a4128; } + color: #3c1e44; } .icon_group { width: 48px; @@ -92,13 +92,13 @@ th { left: 0; z-index: 10; } .icon_group .icon use[*|href="#path_serverlist"], .icon_group .icon use[*|href="#path_plus"], .icon_group .icon use[*|href="#path_dev"] { - fill: #378A54; } + fill: #7A3E8A; } .icon_group .icon use[*|href="#path_cross"] { fill: #8a3737; } .icon_group .icon.hovering { display: none; } .icon_group .icon.hovering use.path_hovering[*|href="#path_serverlist"], .icon_group .icon.hovering use.path_hovering[*|href="#path_plus"], .icon_group .icon.hovering use.path_hovering[*|href="#path_dev"] { - fill: #1a4128; } + fill: #3c1e44; } table.data_table { margin-top: 1em; @@ -108,7 +108,7 @@ table.data_table { padding: 10px; vertical-align: top; } table.data_table th { - background-color: #52a26e; + background-color: #925aa1; color: white; } table.data_table td { border-right: 1px solid #b0b0b0; } @@ -140,21 +140,21 @@ input { border: 1px solid #b0b0b0; box-shadow: inset 0px 0px 8px rgba(0, 0, 0, 0.2); font-family: Open Sans, Noto Sans, Roboto, sans-serif; - color: #3b3b3b; } + color: #3c3c3c; } input[type=text]:focus, input[type=number]:focus { - border-color: #65c286; } + border-color: #ae6fbf; } input[type=submit] { padding: 8px 12px; border: 1px solid #b0b0b0; font-family: Open Sans, Noto Sans, Roboto, sans-serif; color: #555; font-size: 14px; - background-color: #378A54; + background-color: #7A3E8A; box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); color: white; } input[type=submit]:hover { cursor: pointer; - background-color: #307849; } + background-color: #6a3678; } input[type=file] { display: none; } @@ -187,13 +187,13 @@ a { font-family: Open Sans, Noto Sans, Roboto, sans-serif; color: #555; font-size: 14px; - background-color: #378A54; + background-color: #7A3E8A; box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); color: white; font-weight: 400; } a.button:hover { cursor: pointer; - background-color: #307849; } + background-color: #6a3678; } a.button:hover a.button.hovering { color: #cccccc; } a.button.negative { @@ -204,12 +204,12 @@ a { font-size: 14px; background-color: white; box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); - color: #378A54; } + color: #7A3E8A; } a.button.negative:hover { cursor: pointer; background-color: #f2f2f2; } a.button.negative:hover a.button.negative.hovering { - color: #1a4128; } + color: #3c1e44; } body { background-color: white; } @@ -232,7 +232,7 @@ body { font-weight: 400; display: inline-block; } .breadcrumbs .crumb a { - color: #378A54; + color: #7A3E8A; font-weight: 500; } .tingle-modal.aside .tingle-modal-box { @@ -286,7 +286,7 @@ body { .main section:nth-child(even) { background-color: white; } .main section.page_branding { - background-color: #5e9672; } + background-color: #8b6794; } .main section.page_branding .page_title { color: white; display: inline-block; @@ -299,7 +299,7 @@ body { .main section.page_branding .page_description p { color: white; } .main section.site_branding { - background-color: #5e9672; + background-color: #8b6794; padding-top: 60px; padding-bottom: 60px; overflow: hidden; } From 598d7f10b75f9236f8f50cd731774a747e057b2b Mon Sep 17 00:00:00 2001 From: Piepow Date: Thu, 15 Jun 2017 16:37:37 -0400 Subject: [PATCH 3/7] Ignore .sass-cache and .css.map --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 72cfc02..688a605 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ daemon_storage.json daemon_log.txt *.swp *.css.map -*.sass-cache/* +*.sass-cache/* \ No newline at end of file From c3931f8290f90fdea579b0251d4925e5787d87a3 Mon Sep 17 00:00:00 2001 From: Piepow Date: Thu, 15 Jun 2017 16:39:28 -0400 Subject: [PATCH 4/7] Delete empty file --- www/stylesheet.css | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 www/stylesheet.css diff --git a/www/stylesheet.css b/www/stylesheet.css deleted file mode 100644 index e69de29..0000000 From 4a773a209a9acd80beb5ede4cd6656047aa7a054 Mon Sep 17 00:00:00 2001 From: Piepow Date: Thu, 15 Jun 2017 16:39:44 -0400 Subject: [PATCH 5/7] Add navigation to other trashmaps --- README.md | 2 +- srv/daemon_control.py => daemon_control.py | 4 +- sass/_master.scss | 3 +- sass/stylesheet.scss | 56 +++++++++++++++- srv/daemon_config.json | 14 ++-- srv/daemon_storage.json.default | 47 +++++++++++++ srv/init.cfg | 2 - systemd/user/trashmap.service | 11 +++ trashmap.py | 3 +- www/access_server.php | 6 ++ www/access_server_handle.php | 1 - www/create_server.php | 6 ++ www/create_server_handle.php | 1 - www/daemon_config.json | 28 ++++++++ www/includes/breadcrumbs.js | 4 +- www/includes/dropdown.svg | 53 +++++++++++++++ www/includes/head.inc.php | 1 + www/includes/localityModal.inc.php | 8 +++ www/includes/localizeNav.js | 30 +++++++++ www/includes/openingBody.inc.php | 1 + www/includes/start.js | 1 + www/includes/stylesheet.css | 78 +++++++++++++++++----- www/index.php | 8 ++- www/maintenance.php | 6 ++ www/rcon_commands.php | 18 +++-- www/suggest_rcon_command.php | 19 ++++-- 26 files changed, 360 insertions(+), 51 deletions(-) rename srv/daemon_control.py => daemon_control.py (93%) create mode 100644 srv/daemon_storage.json.default create mode 100644 systemd/user/trashmap.service create mode 100644 www/daemon_config.json create mode 100644 www/includes/dropdown.svg create mode 100644 www/includes/localityModal.inc.php create mode 100644 www/includes/localizeNav.js diff --git a/README.md b/README.md index d6c5ccb..eec9eb9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # DDNet Trashmap -[DDNet Trashmap](https://trashmap.timakro.de/) is a service for mappers who can't host their own server. +[DDNet Trashmap](http://trashmap.ddnet.tw/) is a service for mappers who can't host their own server. You can create a testing server here and test your map alone or with other players. ## Development diff --git a/srv/daemon_control.py b/daemon_control.py similarity index 93% rename from srv/daemon_control.py rename to daemon_control.py index 5360007..d23c060 100755 --- a/srv/daemon_control.py +++ b/daemon_control.py @@ -7,12 +7,12 @@ DELETE_RCON = 14 def getdata(): - data = json.load(open("/srv/trashmap/daemon_data.json")) + data = json.load(open("/srv/trashmap/srv/daemon_data.json")) return data def writefifo(order): line = json.dumps(order) + "\n" - with open("/srv/trashmap/daemon_input.fifo", "w") as fifo: + with open("/srv/trashmap/srv/daemon_input.fifo", "w") as fifo: fifo.write(line) print("Welcome to daemon control, enter 'help' to get a list of commands.") diff --git a/sass/_master.scss b/sass/_master.scss index 8a3f6b3..e030caf 100644 --- a/sass/_master.scss +++ b/sass/_master.scss @@ -13,7 +13,8 @@ $shade0: white; $shade1: #e3e3e3; $text1-0: #555; -$accent1: #7A3E8A; +$accent1: #378A54; +$accent1-fade: lighten(desaturate($accent1, 20%), 10%); $link1: #37798A; $error1: #8a3737; $warning1: #935E22; diff --git a/sass/stylesheet.scss b/sass/stylesheet.scss index 8506873..ae1aa84 100644 --- a/sass/stylesheet.scss +++ b/sass/stylesheet.scss @@ -231,10 +231,13 @@ body { .breadcrumbs { background-color: $shade0; - padding: 5px 0px 5px 20px; + padding-left: 20px; border-bottom: 1px solid darken($shade1, 10%); font-size: 16px; + position: relative; .separator { + padding-top: 5px; + padding-bottom: 5px; position: relative; top: -2px; margin-right: 10px; @@ -242,6 +245,8 @@ body { vertical-align: middle; } .crumb { + padding-top: 5px; + padding-bottom: 5px; margin-right: 10px; color: darken($shade1, 40%); font-family: $headerFS; @@ -252,6 +257,34 @@ body { font-weight: 500; } } + .locality_tab { + position: absolute; + height: 100%; + right: 0; + background-color: $accent1-fade; + border-bottom: 1px solid $accent1-fade; + box-sizing: content-box; + display: inline-block; + padding: 0 20px 0 20px; + &:hover { + cursor: pointer; + } + .locality { + padding-top: 5px; + padding-bottom: 5px; + display: inline-block; + color: $shade0; + font-size: 16px; + } + .dropdown { + position: relative; + top: -3px; + display: inline-block; + font-size: 16px; + height: 0.8em; + vertical-align: middle; + } + } } .tingle-modal { @@ -310,6 +343,23 @@ body { } } } + .trashmap_locations_header { + border-bottom: 2px solid $accent1; + padding-bottom: 8px; + } + ul.trashmap_locations { + list-style-type: none; + background-color: desaturate(lighten($accent1, 40%), 10%); + margin-top: 0; + margin-left: 0; + padding: 20px; + li a { + color: darken($accent1, 5%); + &:hover { + color: darken($accent1, 20%); + } + } + } } @@ -332,7 +382,7 @@ body { background-color: $shade0; } &.page_branding { - background-color: lighten(desaturate($accent1, 20%), 10%); + background-color: $accent1-fade; .page_title { color: $shade0; display: inline-block; @@ -349,7 +399,7 @@ body { } } &.site_branding { - background-color: lighten(desaturate($accent1, 20%), 10%); + background-color: $accent1-fade; padding-top: 60px; padding-bottom: 60px; overflow: hidden; diff --git a/srv/daemon_config.json b/srv/daemon_config.json index 39a370b..1d227ff 100644 --- a/srv/daemon_config.json +++ b/srv/daemon_config.json @@ -1,6 +1,7 @@ { - "name": "DDNet South Africa Trashmap", - "ip": "zaf.ddnet.tw", + "name": "DDNet GER Trashmap", + "locality" : "GER", + "ip": "trashmap.ddnet.tw", "maxservers": 300, "maxserversperip": 2, "maxrunningservers": 10, @@ -9,8 +10,8 @@ "joinminutes": 5, "stophours": 8, "deletedays": 30, - "mapsizehuman": "2MB", - "mapsize": 2097152, + "mapsizehuman": "5MB", + "mapsize": 5242880, "minplayers": 1, "maxplayers": 16, "defaultplayers": 8, @@ -20,5 +21,8 @@ "maxlengthpassword": 25, "maxlengthrconcommand": 25, "maxlengthrcon": 25, - "bannedips": [] + "bannedips": [], + "othertrashmaps" : [ + { "name":"DDNet ZAF Trashmap", "locality":"ZAF", "ip":"zaf.ddnet.tw" }, + ] } diff --git a/srv/daemon_storage.json.default b/srv/daemon_storage.json.default new file mode 100644 index 0000000..cf277e1 --- /dev/null +++ b/srv/daemon_storage.json.default @@ -0,0 +1,47 @@ +{ + "suggested_rcon": [], + "allowed_rcon": [ + "up", + "down", + "right", + "left", + "super", + "unsuper", + "totele", + "totelecp", + "addweapon", + "removeweapon", + "tune", + "tune_reset", + "tune_dump", + "tune_zone", + "tune_zone_enter", + "tune_zone_leave", + "tune_zone_reset", + "tune_zone_dump", + "logout", + "status", + "tele", + "kick", + "ban", + "bans", + "unban", + "unban_all", + "ban_range", + "unban_range", + "undeep", + "unsolo", + "shotgun", + "grenade", + "ninja", + "rifle", + "unshotgun", + "ungrenade", + "unrifle", + "jetpack", + "unjetpack", + "move", + "move_raw" + ], + "servers": {} +} \ No newline at end of file diff --git a/srv/init.cfg b/srv/init.cfg index 31d78fd..9c40d17 100644 --- a/srv/init.cfg +++ b/srv/init.cfg @@ -1,5 +1,3 @@ -sv_welcome Welcome to DDNet South Africa Trashmap! Information at trashmap.timakro.de - sv_input_fifo fifo sv_inactivekick_time 0 diff --git a/systemd/user/trashmap.service b/systemd/user/trashmap.service new file mode 100644 index 0000000..64a5505 --- /dev/null +++ b/systemd/user/trashmap.service @@ -0,0 +1,11 @@ +[Unit] +Description=DDNet Trashmap + +[Service] +Type=simple +ExecStart=/srv/trashmap/trashmap.py +ExecReload=/bin/kill -USR1 $MAINPID +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/trashmap.py b/trashmap.py index de43613..918c172 100755 --- a/trashmap.py +++ b/trashmap.py @@ -152,6 +152,7 @@ def startserver(identifier): if info["password"]: commands.append(buildcommand("password", info["password"])) commands.append(buildcommand("exec", "banlist.cfg")) + commands.append(buildcommand("sv_welcome", "Welcome to {}! Visit trashmap.ddnet.tw".format(data["config"]["name"]))) commands.append(buildcommand("exec", "/srv/trashmap/srv/init.cfg")) for rcon in data["storage"]["allowed_rcon"]: commands.append(buildcommand("access_level", rcon, 2)) @@ -459,7 +460,7 @@ def main(): # sleep for a tick delta = next_run - time.time() if delta < 0: - log("Skipped {0} ticks".format(delta / -data["config"]["tickseconds"]), warning=True) + log("Skipped {} ticks".format(delta / -data["config"]["tickseconds"]), warning=True) else: time.sleep(delta) diff --git a/www/access_server.php b/www/access_server.php index d75a2a6..b0393b7 100644 --- a/www/access_server.php +++ b/www/access_server.php @@ -104,6 +104,12 @@
Access Server
+
+

+ +

+ +
diff --git a/www/access_server_handle.php b/www/access_server_handle.php index a5aa016..df09946 100644 --- a/www/access_server_handle.php +++ b/www/access_server_handle.php @@ -107,7 +107,6 @@ } elseif($_POST["action"] == "map") { $mapfile = tempnam("/srv/trashmap/upload", ""); move_uploaded_file($_FILES["map"]["tmp_name"], $mapfile); - chmod($mapfile, 0666); file_put_contents("/srv/trashmap/srv/daemon_input.fifo", json_encode( ["type" => $CHANGE_MAP, "identifier" => $identifier, diff --git a/www/create_server.php b/www/create_server.php index ff11fa0..95bad2b 100644 --- a/www/create_server.php +++ b/www/create_server.php @@ -76,6 +76,12 @@
Create Server
+
+

+ +

+ +
diff --git a/www/create_server_handle.php b/www/create_server_handle.php index 8ae53e1..30eaf64 100644 --- a/www/create_server_handle.php +++ b/www/create_server_handle.php @@ -94,7 +94,6 @@ $link = "access_server.php?".http_build_query(["id" => $identifier, "key" => $raw_accesskey]); $mapfile = tempnam("/srv/trashmap/upload", ""); move_uploaded_file($_FILES["map"]["tmp_name"], $mapfile); - chmod($mapfile, 0666); file_put_contents("/srv/trashmap/srv/daemon_input.fifo", json_encode( ["type" => $CREATE_SERVER, "identifier" => $identifier, diff --git a/www/daemon_config.json b/www/daemon_config.json new file mode 100644 index 0000000..1d227ff --- /dev/null +++ b/www/daemon_config.json @@ -0,0 +1,28 @@ +{ + "name": "DDNet GER Trashmap", + "locality" : "GER", + "ip": "trashmap.ddnet.tw", + "maxservers": 300, + "maxserversperip": 2, + "maxrunningservers": 10, + "tickseconds": 1, + "titleupdateseconds": 10, + "joinminutes": 5, + "stophours": 8, + "deletedays": 30, + "mapsizehuman": "5MB", + "mapsize": 5242880, + "minplayers": 1, + "maxplayers": 16, + "defaultplayers": 8, + "defaultrcon": "trashmap", + "maxlengthlabel": 25, + "maxlengthaccesskey": 25, + "maxlengthpassword": 25, + "maxlengthrconcommand": 25, + "maxlengthrcon": 25, + "bannedips": [], + "othertrashmaps" : [ + { "name":"DDNet ZAF Trashmap", "locality":"ZAF", "ip":"zaf.ddnet.tw" }, + ] +} diff --git a/www/includes/breadcrumbs.js b/www/includes/breadcrumbs.js index 06287e3..dc0c925 100644 --- a/www/includes/breadcrumbs.js +++ b/www/includes/breadcrumbs.js @@ -6,8 +6,8 @@ var breadcrumbs = (function (public) { var initialLength = breadcrumbsBar.children.length; var crumbs = []; for (var i = 1; i < initialLength; i++) { - crumbs.push(breadcrumbsBar.children[i]); - // console.log(breadcrumbsBar.children[i]); + if (!breadcrumbsBar.children[i].classList.contains("locality_tab")) + crumbs.push(breadcrumbsBar.children[i]); } for (var j = 0; j < crumbs.length; j++) { var separator = document.createElement("IMG"); diff --git a/www/includes/dropdown.svg b/www/includes/dropdown.svg new file mode 100644 index 0000000..deeeb1c --- /dev/null +++ b/www/includes/dropdown.svg @@ -0,0 +1,53 @@ + + + + + + + + image/svg+xml + + + + + + + diff --git a/www/includes/head.inc.php b/www/includes/head.inc.php index 7ff7a22..ddf8eb6 100644 --- a/www/includes/head.inc.php +++ b/www/includes/head.inc.php @@ -7,3 +7,4 @@ + diff --git a/www/includes/localityModal.inc.php b/www/includes/localityModal.inc.php new file mode 100644 index 0000000..21709d9 --- /dev/null +++ b/www/includes/localityModal.inc.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/www/includes/localizeNav.js b/www/includes/localizeNav.js new file mode 100644 index 0000000..fef8b4c --- /dev/null +++ b/www/includes/localizeNav.js @@ -0,0 +1,30 @@ +var localizeNav = (function (public) { + public = {}; + + public.initialize = function() { + // instanciate new modal + localityTab = document.querySelector(".locality_tab"); + localityTab.onclick = function(event) { + var modal = new tingle.modal({ + closeMethods: ['overlay', 'button', 'escape'], + closeLabel: "Close", + cssClass: ['custom-class-1', 'custom-class-2'], + onOpen: function() { + console.log('modal open'); + }, + onClose: function() { + console.log('modal closed'); + }, + beforeClose: function() { + // here's goes some logic + // e.g. save content before closing the modal + return true; // close the modal + return false; // nothing happens + } + }); + modal.setContent(document.querySelector(".locality_modal").innerHTML); + modal.open(); + } + }; + return public; +}(localizeNav || {})) \ No newline at end of file diff --git a/www/includes/openingBody.inc.php b/www/includes/openingBody.inc.php index cd2e54d..35f3a3f 100644 --- a/www/includes/openingBody.inc.php +++ b/www/includes/openingBody.inc.php @@ -1 +1,2 @@ + diff --git a/www/includes/start.js b/www/includes/start.js index 0ca9e93..201b683 100644 --- a/www/includes/start.js +++ b/www/includes/start.js @@ -5,4 +5,5 @@ window.onload = function () { document.body.style.display = "block"; fileUpload.initialize(0); iconLinkHover.initialize(); + localizeNav.initialize(); }; diff --git a/www/includes/stylesheet.css b/www/includes/stylesheet.css index 7a54de8..ee47dc3 100644 --- a/www/includes/stylesheet.css +++ b/www/includes/stylesheet.css @@ -53,7 +53,7 @@ h4, h5, h6, th { - color: #7A3E8A; } + color: #378A54; } h1 a, h2 a, h3 a, @@ -61,7 +61,7 @@ th { h5 a, h6 a, th a { - color: #7A3E8A; + color: #378A54; font-weight: 500; } h1 a:hover, h1 a.hovering, h2 a:hover, @@ -76,7 +76,7 @@ th { h6 a.hovering, th a:hover, th a.hovering { - color: #3c1e44; } + color: #1a4128; } .icon_group { width: 48px; @@ -92,13 +92,13 @@ th { left: 0; z-index: 10; } .icon_group .icon use[*|href="#path_serverlist"], .icon_group .icon use[*|href="#path_plus"], .icon_group .icon use[*|href="#path_dev"] { - fill: #7A3E8A; } + fill: #378A54; } .icon_group .icon use[*|href="#path_cross"] { fill: #8a3737; } .icon_group .icon.hovering { display: none; } .icon_group .icon.hovering use.path_hovering[*|href="#path_serverlist"], .icon_group .icon.hovering use.path_hovering[*|href="#path_plus"], .icon_group .icon.hovering use.path_hovering[*|href="#path_dev"] { - fill: #3c1e44; } + fill: #1a4128; } table.data_table { margin-top: 1em; @@ -108,7 +108,7 @@ table.data_table { padding: 10px; vertical-align: top; } table.data_table th { - background-color: #925aa1; + background-color: #52a26e; color: white; } table.data_table td { border-right: 1px solid #b0b0b0; } @@ -142,19 +142,19 @@ input { font-family: Open Sans, Noto Sans, Roboto, sans-serif; color: #3c3c3c; } input[type=text]:focus, input[type=number]:focus { - border-color: #ae6fbf; } + border-color: #65c286; } input[type=submit] { padding: 8px 12px; border: 1px solid #b0b0b0; font-family: Open Sans, Noto Sans, Roboto, sans-serif; color: #555; font-size: 14px; - background-color: #7A3E8A; + background-color: #378A54; box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); color: white; } input[type=submit]:hover { cursor: pointer; - background-color: #6a3678; } + background-color: #307849; } input[type=file] { display: none; } @@ -187,13 +187,13 @@ a { font-family: Open Sans, Noto Sans, Roboto, sans-serif; color: #555; font-size: 14px; - background-color: #7A3E8A; + background-color: #378A54; box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); color: white; font-weight: 400; } a.button:hover { cursor: pointer; - background-color: #6a3678; } + background-color: #307849; } a.button:hover a.button.hovering { color: #cccccc; } a.button.negative { @@ -204,36 +204,65 @@ a { font-size: 14px; background-color: white; box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2); - color: #7A3E8A; } + color: #378A54; } a.button.negative:hover { cursor: pointer; background-color: #f2f2f2; } a.button.negative:hover a.button.negative.hovering { - color: #3c1e44; } + color: #1a4128; } body { background-color: white; } .breadcrumbs { background-color: white; - padding: 5px 0px 5px 20px; + padding-left: 20px; border-bottom: 1px solid #cacaca; - font-size: 16px; } + font-size: 16px; + position: relative; } .breadcrumbs .separator { + padding-top: 5px; + padding-bottom: 5px; position: relative; top: -2px; margin-right: 10px; height: 1em; vertical-align: middle; } .breadcrumbs .crumb { + padding-top: 5px; + padding-bottom: 5px; margin-right: 10px; color: #7d7d7d; font-family: Montserrat, Roboto, sans-serif; font-weight: 400; display: inline-block; } .breadcrumbs .crumb a { - color: #7A3E8A; + color: #378A54; font-weight: 500; } + .breadcrumbs .locality_tab { + position: absolute; + height: 100%; + right: 0; + background-color: #5e9672; + border-bottom: 1px solid #5e9672; + box-sizing: content-box; + display: inline-block; + padding: 0 20px 0 20px; } + .breadcrumbs .locality_tab:hover { + cursor: pointer; } + .breadcrumbs .locality_tab .locality { + padding-top: 5px; + padding-bottom: 5px; + display: inline-block; + color: white; + font-size: 16px; } + .breadcrumbs .locality_tab .dropdown { + position: relative; + top: -3px; + display: inline-block; + font-size: 16px; + height: 0.8em; + vertical-align: middle; } .tingle-modal.aside .tingle-modal-box { font-size: 14px; @@ -271,6 +300,19 @@ body { .tingle-modal .warning_block .warning_line .warning_message { color: #935E22; margin-left: 5px; } +.tingle-modal .trashmap_locations_header { + border-bottom: 2px solid #378A54; + padding-bottom: 8px; } +.tingle-modal ul.trashmap_locations { + list-style-type: none; + background-color: #b4d9c1; + margin-top: 0; + margin-left: 0; + padding: 20px; } + .tingle-modal ul.trashmap_locations li a { + color: #307849; } + .tingle-modal ul.trashmap_locations li a:hover { + color: #1a4128; } .main section { padding: 30px 0; @@ -286,7 +328,7 @@ body { .main section:nth-child(even) { background-color: white; } .main section.page_branding { - background-color: #8b6794; } + background-color: #5e9672; } .main section.page_branding .page_title { color: white; display: inline-block; @@ -299,7 +341,7 @@ body { .main section.page_branding .page_description p { color: white; } .main section.site_branding { - background-color: #8b6794; + background-color: #5e9672; padding-top: 60px; padding-bottom: 60px; overflow: hidden; } diff --git a/www/index.php b/www/index.php index cd765c2..8ee065b 100644 --- a/www/index.php +++ b/www/index.php @@ -19,6 +19,12 @@
Main Page
+
+

+ +

+ +
@@ -26,7 +32,7 @@

- is a service for mappers who can't host their own servers. + is a service for mappers who can't host their own servers. You can create a testing server here and test your map alone or with other players.

diff --git a/www/maintenance.php b/www/maintenance.php index b165709..35b702f 100644 --- a/www/maintenance.php +++ b/www/maintenance.php @@ -15,6 +15,12 @@
Maintenance
+
+

+ +

+ +
diff --git a/www/rcon_commands.php b/www/rcon_commands.php index 4580269..8925c58 100644 --- a/www/rcon_commands.php +++ b/www/rcon_commands.php @@ -1,17 +1,17 @@ + -DDNet Trashmap - Rcon Commands +<?php echo $config["name"];?> - Rcon Commands - -