diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4fe82b8f..5a09fd50 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,16 @@
# Changelog
-## --- [4.4.1] - 2024/TBD
-### New features
-TBD
-### Refactor
+## --- [4.4.1] - 2024/08/06
+
+### Patch Fixes
+- Migrations | Fix orphan backup configurations crashing migration operation ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/785))
+- Migrations | Fix missing default configuration if no server backup config exists during the migration ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/785))
+- Migrations | Fix extended runtime on move procedure during migration ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/785))
+
+**-----------------------------------------------------------------------------**
+
+**Initial release was reverted for patching (See Merge Request: [!784](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/784))** *2024/07/28*
+
+**-----------------------------------------------------------------------------**### Refactor
- Backups | Allow multiple backup configurations ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/711))
- UploadAPI | Use Crafty's JWT authentication for file uploads ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/762))
- UploadAPI | Splice files on the frontend to allow chunked uploads as well as bulk uploads ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/762))
@@ -18,6 +26,7 @@ TBD
- Security improvements for general user creations on roles page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/763))
- Security improvements for general user creations on user page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/763))
- Use UTC for tokens_valid_from in user config, to resolve token invalidation on instance TZ change ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/765))
+- Remove unused and problematic "dropdown-menu" ident from [!722](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/772) CSS ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/782))
### Tweaks
- Add info note to default creds file ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/760))
- Remove navigation label from sidebar ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/766))
@@ -29,9 +38,10 @@ TBD
- Change Role selector in server wizard to be a filter list ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/772))
### Lang
- Show natural language name instead of country code in User Config Lang select list ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/773))
-- Add remaining `he_IL`, `th_TH` translations from 4.4.0 Release ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/761))
+- Add remaining `he_IL`, `th_TH` translations from **4.4.0** Release ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/761) | [Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/763))
- Fix `fr_FR` syntax issues ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/780) | [Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/778))
- Add ru_RU Translation ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/779))
+- Add `th_TH` translations for [!772](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/772) ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/781))
## --- [4.4.0] - 2024/05/11
diff --git a/app/classes/models/management.py b/app/classes/models/management.py
index 1a3e4a11..b6be14b5 100644
--- a/app/classes/models/management.py
+++ b/app/classes/models/management.py
@@ -400,6 +400,8 @@ class HelpersManagement:
if "excluded_dirs" in conf:
dirs_to_exclude = ",".join(conf["excluded_dirs"])
conf["excluded_dirs"] = dirs_to_exclude
+ if len(self.get_backups_by_server(conf["server_id"], True)) <= 0:
+ conf["default"] = True
backup = Backups.create(**conf)
logger.debug("Creating new backup record.")
return backup.backup_id
diff --git a/app/classes/shared/file_helpers.py b/app/classes/shared/file_helpers.py
index 23bf01dd..4fcd0c21 100644
--- a/app/classes/shared/file_helpers.py
+++ b/app/classes/shared/file_helpers.py
@@ -183,8 +183,7 @@ class FileHelpers:
@staticmethod
def move_dir(src_path, dest_path):
- FileHelpers.copy_dir(src_path, dest_path)
- FileHelpers.del_dirs(src_path)
+ shutil.move(src_path, dest_path)
@staticmethod
def move_dir_exist(src_path, dest_path):
@@ -193,8 +192,7 @@ class FileHelpers:
@staticmethod
def move_file(src_path, dest_path):
- FileHelpers.copy_file(src_path, dest_path)
- FileHelpers.del_file(src_path)
+ shutil.move(src_path, dest_path)
@staticmethod
def make_archive(path_to_destination, path_to_zip, comment=""):
diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py
index ab8ca54a..6aec5fc4 100644
--- a/app/classes/shared/server.py
+++ b/app/classes/shared/server.py
@@ -1373,6 +1373,19 @@ class ServerInstance:
def threaded_jar_update(self):
server_users = PermissionsServers.get_server_user_list(self.server_id)
+ # check to make sure a backup config actually exists before starting the update
+ if len(self.management_helper.get_backups_by_server(self.server_id, True)) <= 0:
+ for user in server_users:
+ WebSocketManager().broadcast_user(
+ user,
+ "notification",
+ "Backup config does not exist for "
+ + self.name
+ + ". canceling update.",
+ )
+ logger.error(f"Back config does not exist for {self.name}. Update Failed.")
+ self.stats_helper.set_update(False)
+ return
was_started = "-1"
# Get default backup configuration
backup_config = HelpersManagement.get_default_server_backup(self.server_id)
@@ -1428,7 +1441,8 @@ class ServerInstance:
"notification",
"Backup failed for " + self.name + ". canceling update.",
)
- return False
+ self.stats_helper.set_update(False)
+ return
# lets download the files
if HelperServers.get_server_type_by_id(self.server_id) != "minecraft-bedrock":
diff --git a/app/frontend/static/assets/css/crafty.css b/app/frontend/static/assets/css/crafty.css
index be688657..b765bca6 100644
--- a/app/frontend/static/assets/css/crafty.css
+++ b/app/frontend/static/assets/css/crafty.css
@@ -278,10 +278,6 @@ div.warnings div.wssError a:hover {
}
/**************************************************************/
-.dropdown-menu {
- max-width: 100%;
-}
-
.hidden-input {
margin-left: -40px;
}
\ No newline at end of file
diff --git a/app/frontend/templates/panel/server_backup.html b/app/frontend/templates/panel/server_backup.html
index 86cd9415..73fde1cc 100644
--- a/app/frontend/templates/panel/server_backup.html
+++ b/app/frontend/templates/panel/server_backup.html
@@ -58,8 +58,7 @@