diff --git a/CHANGELOG.md b/CHANGELOG.md index f90dd136..33d211d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ # Changelog -## --- [4.0.17] - 2022/11/30 +## --- [4.0.17/4.0.18] - 2022/11/30 ### 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)) - Tooltip for server port on dashboard. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/496)) @@ -7,8 +7,10 @@ ### Bug fixes - Fix no port on bedrock server creation. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/493)) ### 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)* +### 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> ## --- [4.0.16] - 2022/10/23 diff --git a/README.md b/README.md index 5ae83d5f..a3426311 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [](https://craftycontrol.com) -# Crafty Controller 4.0.17 +# Crafty Controller 4.0.18 > Python based Control Panel for your Minecraft Server ## What is Crafty Controller? diff --git a/app/classes/web/public_handler.py b/app/classes/web/public_handler.py index bb31248f..7f3f0c26 100644 --- a/app/classes/web/public_handler.py +++ b/app/classes/web/public_handler.py @@ -39,6 +39,7 @@ class PublicHandler(BaseHandler): "lang": self.helper.get_setting("language"), "lang_page": self.helper.get_lang_page(self.helper.get_setting("language")), "query": "", + "background": self.controller.cached_login, } if self.request.query: @@ -48,7 +49,6 @@ class PublicHandler(BaseHandler): template = "public/404.html" if page == "login": - page_data["background"] = self.controller.cached_login template = "public/login.html" elif page == 404: diff --git a/app/classes/web/status_handler.py b/app/classes/web/status_handler.py index 6e73cdcb..410e3a36 100644 --- a/app/classes/web/status_handler.py +++ b/app/classes/web/status_handler.py @@ -7,7 +7,7 @@ logger = logging.getLogger(__name__) class StatusHandler(BaseHandler): def get(self): - page_data = {} + page_data = {"background": self.controller.cached_login} page_data["lang"] = self.helper.get_setting("language") page_data["lang_page"] = self.helper.get_lang_page( self.helper.get_setting("language") diff --git a/app/config/version.json b/app/config/version.json index f97d9f2b..4f94cf56 100644 --- a/app/config/version.json +++ b/app/config/version.json @@ -1,5 +1,5 @@ { "major": 4, "minor": 0, - "sub": 17 + "sub": 18 } diff --git a/app/frontend/templates/public/404.html b/app/frontend/templates/public/404.html index fa301d26..480fe5cf 100644 --- a/app/frontend/templates/public/404.html +++ b/app/frontend/templates/public/404.html @@ -1,70 +1,81 @@ <!DOCTYPE html> <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"> - <div class="text-center"> +<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> +<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 /> - <div class="col-sm-12 grid-margin stretch-card"> - <div class="card card-statistics social-card facebook-card card-colored"> - <div class="card-body"> - <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> - <p class="mb-2 comment font-weight-light"> - {{ translate('404', 'unableToFind', data['lang']) }} - <br /><br /> - <a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('404', 'contact', data['lang']) }}</a> - </p> + <div class="col-sm-12 grid-margin stretch-card"> + <div class="card card-statistics social-card facebook-card card-colored"> + <div class="card-body"> + <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> + <p class="mb-2 comment font-weight-light"> + {{ translate('404', 'unableToFind', data['lang']) }} + <br /><br /> + <a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('404', + 'contact', data['lang']) }}</a> + </p> + </div> </div> </div> </div> - </div> - </div> - </div> + </div> </div> - <!-- content-wrapper ends --> </div> - <!-- page-body-wrapper ends --> + <!-- content-wrapper ends --> </div> - <!-- container-scroller --> - <!-- plugins:js --> - <script src="/static/assets/vendors/js/vendor.bundle.base.js"></script> - <!-- endinject --> - <!-- inject:js --> - <script src="/static/assets/js/shared/off-canvas.js"></script> - <script src="/static/assets/js/shared/hoverable-collapse.js"></script> - <script src="/static/assets/js/shared/misc.js"></script> - <script src="/static/assets/js/shared/settings.js"></script> - <script src="/static/assets/js/shared/todolist.js"></script> - <!-- endinject --> - </body> + <!-- page-body-wrapper ends --> + </div> + <!-- container-scroller --> + <!-- plugins:js --> + <script src="/static/assets/vendors/js/vendor.bundle.base.js"></script> + <!-- endinject --> + <!-- inject:js --> + <script src="/static/assets/js/shared/off-canvas.js"></script> + <script src="/static/assets/js/shared/hoverable-collapse.js"></script> + <script src="/static/assets/js/shared/misc.js"></script> + <script src="/static/assets/js/shared/settings.js"></script> + <script src="/static/assets/js/shared/todolist.js"></script> + <!-- endinject --> +</body> + </html> \ No newline at end of file diff --git a/app/frontend/templates/public/error.html b/app/frontend/templates/public/error.html index 23a67863..e57e1d13 100644 --- a/app/frontend/templates/public/error.html +++ b/app/frontend/templates/public/error.html @@ -1,73 +1,86 @@ <!DOCTYPE html> <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"> - <div class="text-center"> +<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> +<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 /> - <div class="col-sm-12 grid-margin stretch-card"> - <div class="card card-statistics social-card google-card card-colored"> - <div class="card-body"> - <h4 class="platform-name mb-3 mt-4 font-weight-semibold user-name">{{ translate('error', 'error', data['lang']) }}</h4> - <h5 class="headline font-weight-medium">{{ translate('error', 'terribleFailure', data['lang']) }}</h5> - <p class="mb-2 comment font-weight-light"> - {{ translate('error', 'embarassing', data['lang']) }}<br /> - <br /> - <b>{{ translate('error', 'hereIsTheError', data['lang']) }}: {{data['error']}}</b><br /><br /> - That's all the help I can give you - Godspeed - <br /><br /> - <a class="d-inline font-weight-medium" href="https://discord.gg/9VJPhCE"> {{ translate('error', 'contact', data['lang']) }}</a> - </p> + <div class="col-sm-12 grid-margin stretch-card"> + <div class="card card-statistics social-card google-card card-colored"> + <div class="card-body"> + <h4 class="platform-name mb-3 mt-4 font-weight-semibold user-name">{{ translate('error', 'error', + data['lang']) }}</h4> + <h5 class="headline font-weight-medium">{{ translate('error', 'terribleFailure', data['lang']) }} + </h5> + <p class="mb-2 comment font-weight-light"> + {{ translate('error', 'embarassing', data['lang']) }}<br /> + <br /> + <b>{{ translate('error', 'hereIsTheError', data['lang']) }}: {{data['error']}}</b><br /><br /> + That's all the help I can give you - Godspeed + <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> - <!-- content-wrapper ends --> </div> - <!-- page-body-wrapper ends --> + <!-- content-wrapper ends --> </div> - <!-- container-scroller --> - <!-- plugins:js --> - <script src="/static/assets/vendors/js/vendor.bundle.base.js"></script> - <!-- endinject --> - <!-- inject:js --> - <script src="/static/assets/js/shared/off-canvas.js"></script> - <script src="/static/assets/js/shared/hoverable-collapse.js"></script> - <script src="/static/assets/js/shared/misc.js"></script> - <script src="/static/assets/js/shared/settings.js"></script> - <script src="/static/assets/js/shared/todolist.js"></script> - <!-- endinject --> - </body> + <!-- page-body-wrapper ends --> + </div> + <!-- container-scroller --> + <!-- plugins:js --> + <script src="/static/assets/vendors/js/vendor.bundle.base.js"></script> + <!-- endinject --> + <!-- inject:js --> + <script src="/static/assets/js/shared/off-canvas.js"></script> + <script src="/static/assets/js/shared/hoverable-collapse.js"></script> + <script src="/static/assets/js/shared/misc.js"></script> + <script src="/static/assets/js/shared/settings.js"></script> + <script src="/static/assets/js/shared/todolist.js"></script> + <!-- endinject --> +</body> + </html> \ No newline at end of file diff --git a/app/frontend/templates/public/login.html b/app/frontend/templates/public/login.html index c6621a11..e172a9a8 100644 --- a/app/frontend/templates/public/login.html +++ b/app/frontend/templates/public/login.html @@ -21,6 +21,13 @@ <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"> @@ -60,11 +67,6 @@ .login-input:focus { 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> {% if data['query'] %} <form action="/public/login?{{ data['query'] }}" method="post"> diff --git a/app/frontend/templates/public/status.html b/app/frontend/templates/public/status.html index 8a81638a..fcb24676 100644 --- a/app/frontend/templates/public/status.html +++ b/app/frontend/templates/public/status.html @@ -7,6 +7,13 @@ {% block content %} <!-- 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="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%;'>