mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'dev' into 'master'
4.0.10 See merge request crafty-controller/crafty-4!432
This commit is contained in:
commit
5d021fc5c6
@ -11,13 +11,15 @@ release:
|
||||
script:
|
||||
- echo "Build Job $JOB_ID"
|
||||
- echo "Running release job for tag $CI_COMMIT_TAG"
|
||||
release:
|
||||
name: Crafty $CI_COMMIT_TAG
|
||||
tag_name: $CI_COMMIT_TAG
|
||||
description: ./CHANGELOG.md
|
||||
ref: $CI_COMMIT_TAG
|
||||
assets:
|
||||
links:
|
||||
- name: Windows Package
|
||||
url: "$CI_PROJECT_URL/-/jobs/$JOB_ID/artifacts/download"
|
||||
link_type: package
|
||||
- |
|
||||
full_changelog=$(cat CHANGELOG.md)
|
||||
trimmed_changelog="${full_changelog%%<br><br>*}"
|
||||
echo "$trimmed_changelog"
|
||||
- release-cli create
|
||||
--name "Crafty $CI_COMMIT_TAG"
|
||||
--description "$trimmed_changelog"
|
||||
--tag-name "$CI_COMMIT_TAG"
|
||||
--ref "$CI_COMMIT_TAG"
|
||||
--assets-link "{\"url\":\"$CI_PROJECT_URL/-/jobs/$JOB_ID/artifacts/download\",\"name\":\"Windows Package\",\"link_type\":\"package\"}"
|
||||
# Having to use raw release-cli instead of yaml syntax because variables are not expanding
|
||||
# https://gitlab.com/gitlab-org/gitlab/-/issues/237893#note_403465700
|
||||
|
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,4 +1,16 @@
|
||||
# Changelog
|
||||
## --- [4.0.10] - 2022/08/14
|
||||
### Bug fixes
|
||||
- Fix reaction tasks not firing ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/423))
|
||||
- QOL task delay offset not following over on task edit ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/423))
|
||||
- Fix Fresh Install Detection Logic issues ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/425))
|
||||
- Fix reload issue on backup panel - on certain browsers ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/431))
|
||||
- Fix '&' in backup paths ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/431))
|
||||
### Tweaks
|
||||
- Session Handling | Logout on browser close ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/424))
|
||||
- Backups Panel | Only display zips ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/426))
|
||||
- User creation | Fix page browser title ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/427))
|
||||
<br><br>
|
||||
|
||||
## --- [4.0.9] - 2022/08/06
|
||||
### Bug fixes
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
|
||||
[![Supported Python Versions](https://shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20-blue)](https://www.python.org)
|
||||
[![Version(temp-hardcoded)](https://img.shields.io/badge/release-v4.0.9--beta-orange)](https://gitlab.com/crafty-controller/crafty-4/-/releases)
|
||||
[![Version(temp-hardcoded)](https://img.shields.io/badge/release-v4.0.10--beta-orange)](https://gitlab.com/crafty-controller/crafty-4/-/releases)
|
||||
[![Code Quality(temp-hardcoded)](https://img.shields.io/badge/code%20quality-10-brightgreen)](https://gitlab.com/crafty-controller/crafty-4)
|
||||
[![Build Status](https://gitlab.com/crafty-controller/crafty-4/badges/master/pipeline.svg)](https://gitlab.com/crafty-controller/crafty-4/-/commits/master)
|
||||
|
||||
# Crafty Controller 4.0.9-beta
|
||||
# Crafty Controller 4.0.10-beta
|
||||
> Python based Control Panel for your Minecraft Server
|
||||
|
||||
## What is Crafty Controller?
|
||||
|
@ -107,6 +107,12 @@ class HelperUsers:
|
||||
usernames.append(user.username)
|
||||
return usernames
|
||||
|
||||
@staticmethod
|
||||
def get_user_total():
|
||||
count = Users.select().where(Users.username != "system").count()
|
||||
print(count)
|
||||
return count
|
||||
|
||||
@staticmethod
|
||||
def get_all_user_ids() -> t.List[int]:
|
||||
return [
|
||||
|
@ -30,9 +30,8 @@ class DatabaseBuilder:
|
||||
|
||||
def is_fresh_install(self):
|
||||
try:
|
||||
user = self.users_helper.get_by_id(1)
|
||||
if user:
|
||||
return False
|
||||
num_user = self.users_helper.get_user_total()
|
||||
return num_user <= 0
|
||||
except:
|
||||
return True
|
||||
|
||||
|
@ -1023,6 +1023,7 @@ class ServerInstance:
|
||||
"size": f["size"],
|
||||
}
|
||||
for f in files
|
||||
if f["path"].endswith(".zip")
|
||||
]
|
||||
|
||||
def jar_update(self):
|
||||
|
@ -3,7 +3,7 @@ import time
|
||||
import logging
|
||||
import threading
|
||||
import asyncio
|
||||
from datetime import datetime
|
||||
import datetime
|
||||
|
||||
from tzlocal import get_localzone
|
||||
from tzlocal.utils import ZoneInfoNotFoundError
|
||||
@ -199,7 +199,7 @@ class TasksManager:
|
||||
"interval",
|
||||
hours=12,
|
||||
id="update_watcher",
|
||||
start_date=datetime.now(),
|
||||
start_date=datetime.datetime.now(),
|
||||
)
|
||||
# self.scheduler.add_job(
|
||||
# self.scheduler.print_jobs, "interval", seconds=10, id="-1"
|
||||
|
@ -962,6 +962,7 @@ class PanelHandler(BaseHandler):
|
||||
page_data["schedule"]["command"] = ""
|
||||
page_data["schedule"]["one_time"] = False
|
||||
page_data["schedule"]["cron_string"] = ""
|
||||
page_data["schedule"]["delay"] = 0
|
||||
page_data["schedule"]["time"] = ""
|
||||
page_data["schedule"]["interval"] = ""
|
||||
# we don't need to check difficulty here.
|
||||
@ -1041,6 +1042,7 @@ class PanelHandler(BaseHandler):
|
||||
page_data["schedule"]["command"] = schedule.command
|
||||
else:
|
||||
page_data["schedule"]["command"] = ""
|
||||
page_data["schedule"]["delay"] = schedule.delay
|
||||
page_data["schedule"]["enabled"] = schedule.enabled
|
||||
page_data["schedule"]["one_time"] = schedule.one_time
|
||||
page_data["schedule"]["cron_string"] = schedule.cron_string
|
||||
@ -1574,7 +1576,7 @@ class PanelHandler(BaseHandler):
|
||||
else:
|
||||
checked = self.controller.management.get_excluded_backup_dirs(server_id)
|
||||
if superuser:
|
||||
backup_path = bleach.clean(self.get_argument("backup_path", None))
|
||||
backup_path = self.get_argument("backup_path", None)
|
||||
if Helpers.is_os_windows():
|
||||
backup_path.replace(" ", "^ ")
|
||||
backup_path = Helpers.wtol_path(backup_path)
|
||||
|
@ -105,21 +105,6 @@
|
||||
],
|
||||
"blurb": "Developer at work and at home, testing his own code is a pain, so his coding precept is \"Testing is Doubting\"",
|
||||
"pic": "/static/assets/images/credits/silversthorn.png"
|
||||
},
|
||||
{
|
||||
"name": "ThatOneLukas",
|
||||
"title": "Software Engineer",
|
||||
"loc": "Helsinki, FI",
|
||||
"tags": [
|
||||
"Staff",
|
||||
[
|
||||
"Developer",
|
||||
"https://gitlab.com/LukasDoesDev"
|
||||
],
|
||||
null
|
||||
],
|
||||
"blurb": "Arch Linux enthusiast who likes 80s/90s music, Rust (The programming language) and light distros like Arch Linux btw. Dislikes C, C++, Go, and Microsoft. Also doesn't like Finnish weather that freezes molten snow to (deadly) ice.",
|
||||
"pic": "/static/assets/images/credits/lukas.png"
|
||||
}
|
||||
],
|
||||
"support": [
|
||||
@ -217,6 +202,21 @@
|
||||
],
|
||||
"blurb": "His interests include learning, Linux, and programming. He loves pentesting apps and gaming.",
|
||||
"pic": "/static/assets/images/credits/mcgaming.png"
|
||||
},
|
||||
{
|
||||
"name": "ThatOneLukas",
|
||||
"title": "Software Engineer",
|
||||
"loc": "Helsinki, FI",
|
||||
"tags": [
|
||||
"Staff",
|
||||
[
|
||||
"Developer",
|
||||
"https://gitlab.com/LukasDoesDev"
|
||||
],
|
||||
null
|
||||
],
|
||||
"blurb": "Arch Linux enthusiast who likes 80s/90s music, Rust (The programming language) and light distros like Arch Linux btw. Dislikes C, C++, Go, and Microsoft. Also doesn't like Finnish weather that freezes molten snow to (deadly) ice.",
|
||||
"pic": "/static/assets/images/credits/lukas.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"major": 4,
|
||||
"minor": 0,
|
||||
"sub": 9,
|
||||
"sub": 10,
|
||||
"meta": "beta"
|
||||
}
|
||||
|
@ -15,7 +15,7 @@
|
||||
<link rel="stylesheet" href="/static/assets/vendors/typicons/typicons.css">
|
||||
<link rel="stylesheet" href="/static/assets/vendors/fontawesome5/css/all.css">
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="https://cdn.datatables.net/v/bs4/dt-1.10.22/fh-3.1.7/r-2.2.6/sc-2.0.3/sp-1.2.2/datatables.min.css" />
|
||||
href="https://cdn.datatables.net/v/bs4/dt-1.10.22/fh-3.1.7/r-2.2.6/sc-2.0.3/sp-1.2.2/datatables.min.css" />
|
||||
<link rel="stylesheet" href="/static/assets/vendors/css/vendor.bundle.base.css">
|
||||
<link rel="stylesheet" href="/static/assets/css/crafty.css">
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
{% include notify.html %}
|
||||
|
||||
<button class="navbar-toggler navbar-toggler-right d-lg-none align-self-center" type="button"
|
||||
data-toggle="offcanvas">
|
||||
data-toggle="offcanvas">
|
||||
<span class="mdi mdi-menu"></span>
|
||||
</button>
|
||||
</div>
|
||||
@ -163,7 +163,7 @@
|
||||
<script src="/static/assets/js/shared/hoverable-collapse.js"></script>
|
||||
<script src="/static/assets/js/shared/misc.js"></script>
|
||||
<script type="text/javascript"
|
||||
src="https://cdn.datatables.net/v/bs4/dt-1.10.22/fh-3.1.7/r-2.2.6/sc-2.0.3/sp-1.2.2/datatables.min.js"></script>
|
||||
src="https://cdn.datatables.net/v/bs4/dt-1.10.22/fh-3.1.7/r-2.2.6/sc-2.0.3/sp-1.2.2/datatables.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/5.4.0/bootbox.min.js"></script>
|
||||
<script type="text/javascript" src="/static/assets/js/motd.js"></script>
|
||||
|
||||
@ -191,7 +191,7 @@
|
||||
|
||||
$.extend($.fn.dataTable.defaults, {
|
||||
// {{ '\nlanguage:' }} {% raw translate('datatables', 'i18n', data['lang']) %}
|
||||
})
|
||||
})
|
||||
|
||||
//used to get cookies from browser - this is part of tornados xsrf protection - it's for extra security
|
||||
function getCookie(name) {
|
||||
@ -516,6 +516,9 @@
|
||||
});
|
||||
});
|
||||
|
||||
$(window).unload(function () {
|
||||
jQuery.get("/public/logout")
|
||||
});
|
||||
</script>
|
||||
|
||||
{% block js %}
|
||||
@ -525,4 +528,4 @@
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
@ -3,7 +3,9 @@
|
||||
{% block meta %}
|
||||
{% end %}
|
||||
|
||||
{% block title %}Crafty Controller - Edit User{% end %}
|
||||
{% block title %}Crafty Controller - {{ translate('userConfig', 'userSettings',
|
||||
data['lang']) }}{% end %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
|
||||
|
@ -294,6 +294,7 @@
|
||||
headers: { 'X-XSRFToken': token },
|
||||
url: '/ajax/backup_now?id=' + server_id,
|
||||
success: function (data) {
|
||||
location.reload();
|
||||
},
|
||||
});
|
||||
}
|
||||
@ -505,11 +506,6 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
if (webSocket) {
|
||||
webSocket.on('backup_reload', function (backup) {
|
||||
location.reload()
|
||||
});
|
||||
}
|
||||
|
||||
function getTreeView(path) {
|
||||
path = path
|
||||
|
@ -136,7 +136,8 @@
|
||||
<label for="delay">{{ translate('serverScheduleConfig', 'offset' , data['lang']) }} <small
|
||||
class="text-muted ml-1"> - {{ translate('serverScheduleConfig', 'offset-explain' ,
|
||||
data['lang']) }}</small> </label>
|
||||
<input type="number" class="form-control" name="delay" id="delay" value="0">
|
||||
<input type="number" class="form-control" name="delay" id="delay"
|
||||
value="{{ data['schedule']['delay']}}">
|
||||
<br>
|
||||
<br>
|
||||
<label for="parent">{{ translate('serverScheduleConfig', 'parent' , data['lang']) }} <small
|
||||
|
Loading…
Reference in New Issue
Block a user