mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2025-01-22 19:25:28 +01:00
Merge branch 'dev' into 'master'
v4.0.18 - Hotfix See merge request crafty-controller/crafty-4!500
This commit is contained in:
commit
8d5bd871f6
@ -1,5 +1,5 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
## --- [4.0.17] - 2022/11/30
|
## --- [4.0.17/4.0.18] - 2022/11/30
|
||||||
### New features
|
### New features
|
||||||
- Automate forge install process through Crafty server creation for Forge server version 1.16 and greater. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/495))
|
- Automate forge install process through Crafty server creation for Forge server version 1.16 and greater. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/495))
|
||||||
- Tooltip for server port on dashboard. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/496))
|
- Tooltip for server port on dashboard. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/496))
|
||||||
@ -7,8 +7,10 @@
|
|||||||
### Bug fixes
|
### Bug fixes
|
||||||
- Fix no port on bedrock server creation. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/493))
|
- Fix no port on bedrock server creation. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/493))
|
||||||
### Tweaks
|
### Tweaks
|
||||||
- Docker🐋 | Update image base to Ubuntu 22.04 Jammy ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/497))<br>
|
- Docker🐋 | Update image base to Ubuntu 22.04 Jammy. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/497))<br>
|
||||||
*(OpenJDK16 Removed, no jammy backport)*
|
*(OpenJDK16 Removed, no jammy backport)*
|
||||||
|
### Hotfix (4.0.18)
|
||||||
|
- Apply custom login backgrounds on all public pages. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/499))
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
## --- [4.0.16] - 2022/10/23
|
## --- [4.0.16] - 2022/10/23
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[![Crafty Logo](app/frontend/static/assets/images/logo_long.svg)](https://craftycontrol.com)
|
[![Crafty Logo](app/frontend/static/assets/images/logo_long.svg)](https://craftycontrol.com)
|
||||||
# Crafty Controller 4.0.17
|
# Crafty Controller 4.0.18
|
||||||
> Python based Control Panel for your Minecraft Server
|
> Python based Control Panel for your Minecraft Server
|
||||||
|
|
||||||
## What is Crafty Controller?
|
## What is Crafty Controller?
|
||||||
|
@ -39,6 +39,7 @@ class PublicHandler(BaseHandler):
|
|||||||
"lang": self.helper.get_setting("language"),
|
"lang": self.helper.get_setting("language"),
|
||||||
"lang_page": self.helper.get_lang_page(self.helper.get_setting("language")),
|
"lang_page": self.helper.get_lang_page(self.helper.get_setting("language")),
|
||||||
"query": "",
|
"query": "",
|
||||||
|
"background": self.controller.cached_login,
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.request.query:
|
if self.request.query:
|
||||||
@ -48,7 +49,6 @@ class PublicHandler(BaseHandler):
|
|||||||
template = "public/404.html"
|
template = "public/404.html"
|
||||||
|
|
||||||
if page == "login":
|
if page == "login":
|
||||||
page_data["background"] = self.controller.cached_login
|
|
||||||
template = "public/login.html"
|
template = "public/login.html"
|
||||||
|
|
||||||
elif page == 404:
|
elif page == 404:
|
||||||
|
@ -7,7 +7,7 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class StatusHandler(BaseHandler):
|
class StatusHandler(BaseHandler):
|
||||||
def get(self):
|
def get(self):
|
||||||
page_data = {}
|
page_data = {"background": self.controller.cached_login}
|
||||||
page_data["lang"] = self.helper.get_setting("language")
|
page_data["lang"] = self.helper.get_setting("language")
|
||||||
page_data["lang_page"] = self.helper.get_lang_page(
|
page_data["lang_page"] = self.helper.get_lang_page(
|
||||||
self.helper.get_setting("language")
|
self.helper.get_setting("language")
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"major": 4,
|
"major": 4,
|
||||||
"minor": 0,
|
"minor": 0,
|
||||||
"sub": 17
|
"sub": 18
|
||||||
}
|
}
|
||||||
|
@ -1,70 +1,81 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
|
||||||
<!-- Required meta tags -->
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
||||||
<title>Crafty Controller</title>
|
|
||||||
<!-- plugins:css -->
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/mdi/css/materialdesignicons.min.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/flag-icon-css/css/flag-icon.min.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/ti-icons/css/themify-icons.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/typicons/typicons.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/css/vendor.bundle.base.css">
|
|
||||||
<!-- endinject -->
|
|
||||||
<!-- Plugin css for this page -->
|
|
||||||
<!-- End Plugin css for this page -->
|
|
||||||
<!-- Layout styles -->
|
|
||||||
<link rel="stylesheet" href="/static/assets/css/dark/style.css">
|
|
||||||
<!-- End Layout styles -->
|
|
||||||
<link rel="shortcut icon" type="image/svg+xml" href="/static/assets/images/logo_small.svg">
|
|
||||||
<link rel="alternate icon" href="/static/assets/images/favicon.png" />
|
|
||||||
</head>
|
|
||||||
<body class="dark-theme">
|
|
||||||
<div class="container-scroller">
|
|
||||||
<div class="container-fluid page-body-wrapper full-page-wrapper">
|
|
||||||
<div class="content-wrapper d-flex align-items-center auth auth-bg-1 theme-one">
|
|
||||||
<div class="row w-100">
|
|
||||||
<div class="col-lg-4 mx-auto">
|
|
||||||
|
|
||||||
<div class="auto-form-wrapper">
|
<head>
|
||||||
<div class="text-center">
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Crafty Controller</title>
|
||||||
|
<!-- plugins:css -->
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/mdi/css/materialdesignicons.min.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/flag-icon-css/css/flag-icon.min.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/ti-icons/css/themify-icons.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/typicons/typicons.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/css/vendor.bundle.base.css">
|
||||||
|
<!-- endinject -->
|
||||||
|
<!-- Plugin css for this page -->
|
||||||
|
<!-- End Plugin css for this page -->
|
||||||
|
<!-- Layout styles -->
|
||||||
|
<link rel="stylesheet" href="/static/assets/css/dark/style.css">
|
||||||
|
<!-- End Layout styles -->
|
||||||
|
<link rel="shortcut icon" type="image/svg+xml" href="/static/assets/images/logo_small.svg">
|
||||||
|
<link rel="alternate icon" href="/static/assets/images/favicon.png" />
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
.auth.auth-bg-1 {
|
||||||
|
background: url("../../static/assets/images/auth/{{data['background']}}"),
|
||||||
|
url("../../static/assets/images/auth/login-1.jpg");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body class="dark-theme">
|
||||||
|
<div class="container-scroller">
|
||||||
|
<div class="container-fluid page-body-wrapper full-page-wrapper">
|
||||||
|
<div class="content-wrapper d-flex align-items-center auth auth-bg-1 theme-one">
|
||||||
|
<div class="row w-100">
|
||||||
|
<div class="col-lg-4 mx-auto">
|
||||||
|
|
||||||
|
<div class="auto-form-wrapper">
|
||||||
|
<div class="text-center">
|
||||||
<img src="/static/assets/images/logo_long.svg"><br /><br />
|
<img src="/static/assets/images/logo_long.svg"><br /><br />
|
||||||
<div class="col-sm-12 grid-margin stretch-card">
|
<div class="col-sm-12 grid-margin stretch-card">
|
||||||
<div class="card card-statistics social-card facebook-card card-colored">
|
<div class="card card-statistics social-card facebook-card card-colored">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h4 class="platform-name mb-3 mt-4 font-weight-semibold user-name">404</h4>
|
<h4 class="platform-name mb-3 mt-4 font-weight-semibold user-name">404</h4>
|
||||||
<h5 class="headline font-weight-medium">{{ translate('404', 'notFound', data['lang']) }}</h5>
|
<h5 class="headline font-weight-medium">{{ translate('404', 'notFound', data['lang']) }}</h5>
|
||||||
<p class="mb-2 comment font-weight-light">
|
<p class="mb-2 comment font-weight-light">
|
||||||
{{ translate('404', 'unableToFind', data['lang']) }}
|
{{ translate('404', 'unableToFind', data['lang']) }}
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('404', 'contact', data['lang']) }}</a>
|
<a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('404',
|
||||||
</p>
|
'contact', data['lang']) }}</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- content-wrapper ends -->
|
|
||||||
</div>
|
</div>
|
||||||
<!-- page-body-wrapper ends -->
|
<!-- content-wrapper ends -->
|
||||||
</div>
|
</div>
|
||||||
<!-- container-scroller -->
|
<!-- page-body-wrapper ends -->
|
||||||
<!-- plugins:js -->
|
</div>
|
||||||
<script src="/static/assets/vendors/js/vendor.bundle.base.js"></script>
|
<!-- container-scroller -->
|
||||||
<!-- endinject -->
|
<!-- plugins:js -->
|
||||||
<!-- inject:js -->
|
<script src="/static/assets/vendors/js/vendor.bundle.base.js"></script>
|
||||||
<script src="/static/assets/js/shared/off-canvas.js"></script>
|
<!-- endinject -->
|
||||||
<script src="/static/assets/js/shared/hoverable-collapse.js"></script>
|
<!-- inject:js -->
|
||||||
<script src="/static/assets/js/shared/misc.js"></script>
|
<script src="/static/assets/js/shared/off-canvas.js"></script>
|
||||||
<script src="/static/assets/js/shared/settings.js"></script>
|
<script src="/static/assets/js/shared/hoverable-collapse.js"></script>
|
||||||
<script src="/static/assets/js/shared/todolist.js"></script>
|
<script src="/static/assets/js/shared/misc.js"></script>
|
||||||
<!-- endinject -->
|
<script src="/static/assets/js/shared/settings.js"></script>
|
||||||
</body>
|
<script src="/static/assets/js/shared/todolist.js"></script>
|
||||||
|
<!-- endinject -->
|
||||||
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
@ -1,73 +1,86 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
|
||||||
<!-- Required meta tags -->
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
||||||
<title>Crafty Controller</title>
|
|
||||||
<!-- plugins:css -->
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/mdi/css/materialdesignicons.min.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/flag-icon-css/css/flag-icon.min.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/ti-icons/css/themify-icons.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/typicons/typicons.css">
|
|
||||||
<link rel="stylesheet" href="/static/assets/vendors/css/vendor.bundle.base.css">
|
|
||||||
<!-- endinject -->
|
|
||||||
<!-- Plugin css for this page -->
|
|
||||||
<!-- End Plugin css for this page -->
|
|
||||||
<!-- Layout styles -->
|
|
||||||
<link rel="stylesheet" href="/static/assets/css/dark/style.css">
|
|
||||||
<!-- End Layout styles -->
|
|
||||||
<link rel="shortcut icon" type="image/svg+xml" href="/static/assets/images/logo_small.svg">
|
|
||||||
<link rel="alternate icon" href="/static/assets/images/favicon.png" />
|
|
||||||
</head>
|
|
||||||
<body class="dark-theme">
|
|
||||||
<div class="container-scroller">
|
|
||||||
<div class="container-fluid page-body-wrapper full-page-wrapper">
|
|
||||||
<div class="content-wrapper d-flex align-items-center auth auth-bg-1 theme-one">
|
|
||||||
<div class="row w-100">
|
|
||||||
<div class="col-lg-4 mx-auto">
|
|
||||||
|
|
||||||
<div class="auto-form-wrapper">
|
<head>
|
||||||
<div class="text-center">
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
<title>Crafty Controller</title>
|
||||||
|
<!-- plugins:css -->
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/mdi/css/materialdesignicons.min.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/flag-icon-css/css/flag-icon.min.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/ti-icons/css/themify-icons.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/typicons/typicons.css">
|
||||||
|
<link rel="stylesheet" href="/static/assets/vendors/css/vendor.bundle.base.css">
|
||||||
|
<!-- endinject -->
|
||||||
|
<!-- Plugin css for this page -->
|
||||||
|
<!-- End Plugin css for this page -->
|
||||||
|
<!-- Layout styles -->
|
||||||
|
<link rel="stylesheet" href="/static/assets/css/dark/style.css">
|
||||||
|
<!-- End Layout styles -->
|
||||||
|
<link rel="shortcut icon" type="image/svg+xml" href="/static/assets/images/logo_small.svg">
|
||||||
|
<link rel="alternate icon" href="/static/assets/images/favicon.png" />
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
.auth.auth-bg-1 {
|
||||||
|
background: url("../../static/assets/images/auth/{{data['background']}}"),
|
||||||
|
url("../../static/assets/images/auth/login-1.jpg");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body class="dark-theme">
|
||||||
|
<div class="container-scroller">
|
||||||
|
<div class="container-fluid page-body-wrapper full-page-wrapper">
|
||||||
|
<div class="content-wrapper d-flex align-items-center auth auth-bg-1 theme-one">
|
||||||
|
<div class="row w-100">
|
||||||
|
<div class="col-lg-4 mx-auto">
|
||||||
|
|
||||||
|
<div class="auto-form-wrapper">
|
||||||
|
<div class="text-center">
|
||||||
<img src="/static/assets/images/logo_long.svg"><br /><br />
|
<img src="/static/assets/images/logo_long.svg"><br /><br />
|
||||||
<div class="col-sm-12 grid-margin stretch-card">
|
<div class="col-sm-12 grid-margin stretch-card">
|
||||||
<div class="card card-statistics social-card google-card card-colored">
|
<div class="card card-statistics social-card google-card card-colored">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h4 class="platform-name mb-3 mt-4 font-weight-semibold user-name">{{ translate('error', 'error', data['lang']) }}</h4>
|
<h4 class="platform-name mb-3 mt-4 font-weight-semibold user-name">{{ translate('error', 'error',
|
||||||
<h5 class="headline font-weight-medium">{{ translate('error', 'terribleFailure', data['lang']) }}</h5>
|
data['lang']) }}</h4>
|
||||||
<p class="mb-2 comment font-weight-light">
|
<h5 class="headline font-weight-medium">{{ translate('error', 'terribleFailure', data['lang']) }}
|
||||||
{{ translate('error', 'embarassing', data['lang']) }}<br />
|
</h5>
|
||||||
<br />
|
<p class="mb-2 comment font-weight-light">
|
||||||
<b>{{ translate('error', 'hereIsTheError', data['lang']) }}: {{data['error']}}</b><br /><br />
|
{{ translate('error', 'embarassing', data['lang']) }}<br />
|
||||||
That's all the help I can give you - Godspeed
|
<br />
|
||||||
<br /><br />
|
<b>{{ translate('error', 'hereIsTheError', data['lang']) }}: {{data['error']}}</b><br /><br />
|
||||||
<a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('error', 'contact', data['lang']) }}</a>
|
That's all the help I can give you - Godspeed
|
||||||
</p>
|
<br /><br />
|
||||||
|
<a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('error',
|
||||||
|
'contact', data['lang']) }}</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- content-wrapper ends -->
|
|
||||||
</div>
|
</div>
|
||||||
<!-- page-body-wrapper ends -->
|
<!-- content-wrapper ends -->
|
||||||
</div>
|
</div>
|
||||||
<!-- container-scroller -->
|
<!-- page-body-wrapper ends -->
|
||||||
<!-- plugins:js -->
|
</div>
|
||||||
<script src="/static/assets/vendors/js/vendor.bundle.base.js"></script>
|
<!-- container-scroller -->
|
||||||
<!-- endinject -->
|
<!-- plugins:js -->
|
||||||
<!-- inject:js -->
|
<script src="/static/assets/vendors/js/vendor.bundle.base.js"></script>
|
||||||
<script src="/static/assets/js/shared/off-canvas.js"></script>
|
<!-- endinject -->
|
||||||
<script src="/static/assets/js/shared/hoverable-collapse.js"></script>
|
<!-- inject:js -->
|
||||||
<script src="/static/assets/js/shared/misc.js"></script>
|
<script src="/static/assets/js/shared/off-canvas.js"></script>
|
||||||
<script src="/static/assets/js/shared/settings.js"></script>
|
<script src="/static/assets/js/shared/hoverable-collapse.js"></script>
|
||||||
<script src="/static/assets/js/shared/todolist.js"></script>
|
<script src="/static/assets/js/shared/misc.js"></script>
|
||||||
<!-- endinject -->
|
<script src="/static/assets/js/shared/settings.js"></script>
|
||||||
</body>
|
<script src="/static/assets/js/shared/todolist.js"></script>
|
||||||
|
<!-- endinject -->
|
||||||
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
@ -21,6 +21,13 @@
|
|||||||
<link rel="shortcut icon" type="image/svg+xml" href="/static/assets/images/logo_small.svg">
|
<link rel="shortcut icon" type="image/svg+xml" href="/static/assets/images/logo_small.svg">
|
||||||
<link rel="alternate icon" href="/static/assets/images/favicon.png" />
|
<link rel="alternate icon" href="/static/assets/images/favicon.png" />
|
||||||
</head>
|
</head>
|
||||||
|
<style>
|
||||||
|
.auth.auth-bg-1 {
|
||||||
|
background: url("../../static/assets/images/auth/{{data['background']}}"),
|
||||||
|
url("../../static/assets/images/auth/login-1.jpg");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<body class="dark-theme">
|
<body class="dark-theme">
|
||||||
<div class="container-scroller">
|
<div class="container-scroller">
|
||||||
@ -60,11 +67,6 @@
|
|||||||
.login-input:focus {
|
.login-input:focus {
|
||||||
box-shadow: 0 12px 16px 0 hsla(0, 0%, 0%, 0.4);
|
box-shadow: 0 12px 16px 0 hsla(0, 0%, 0%, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
.auth.auth-bg-1 {
|
|
||||||
background: url("../../static/assets/images/auth/{{data['background']}}");
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
{% if data['query'] %}
|
{% if data['query'] %}
|
||||||
<form action="/public/login?{{ data['query'] }}" method="post">
|
<form action="/public/login?{{ data['query'] }}" method="post">
|
||||||
|
@ -7,6 +7,13 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<!-- View for Large screen -->
|
<!-- View for Large screen -->
|
||||||
|
<style>
|
||||||
|
.auth.auth-bg-1 {
|
||||||
|
background: url("../../static/assets/images/auth/{{data['background']}}"),
|
||||||
|
url("../../static/assets/images/auth/login-1.jpg");
|
||||||
|
background-size: cover;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="content-wrapper col-md login-modal d-none d-sm-block" style="background-color: var(--dropdown-bg);">
|
<div class="content-wrapper col-md login-modal d-none d-sm-block" style="background-color: var(--dropdown-bg);">
|
||||||
<img src="/static/assets/images/logo_long.png" style='width: 25%; margin-left: 38%;'>
|
<img src="/static/assets/images/logo_long.png" style='width: 25%; margin-left: 38%;'>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user