diff --git a/CHANGELOG.md b/CHANGELOG.md index eb186b78..fb3da326 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,13 @@ ## --- [4.0.20] - 2022/TBD ### New features - Add option to run command before backup. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/536)) +- Make Config.json editable from panel. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/532)) ### Bug fixes - Fix local java server imports. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/529)) - Fix Schedule Restore | Add Backup Config Preservation. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/533)) - Rework `/public` Route. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/538)) ### Tweaks +- Hide stats DB directory from files tree. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/530)) - Added further login screen customisation settings. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/531)) - Set backup filename to use same time as schedule. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/534)) - Move Schedules to from DB to Queue Datatype. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/535)) diff --git a/app/classes/shared/helpers.py b/app/classes/shared/helpers.py index e64e4329..3dbd1ea3 100644 --- a/app/classes/shared/helpers.py +++ b/app/classes/shared/helpers.py @@ -78,6 +78,7 @@ class Helpers: self.websocket_helper = WebSocketHelper(self) self.translation = Translation(self) self.update_available = False + self.ignored_names = ["crafty_managed.txt", "db_stats"] @staticmethod def auto_installer_fix(ex): @@ -947,8 +948,7 @@ class Helpers: return data - @staticmethod - def generate_tree(folder, output=""): + def generate_tree(self, folder, output=""): dir_list = [] unsorted_files = [] file_list = os.listdir(folder) @@ -965,17 +965,20 @@ class Helpers: rel = os.path.join(folder, raw_filename) dpath = os.path.join(folder, filename) if os.path.isdir(rel): - output += f"""
  • - \n
    - - - - {filename} - -
  • - \n""" + if filename not in self.ignored_names: + output += f"""
  • + \n
    + + + + {filename} + +
  • + \n""" else: - if filename != "crafty_managed.txt": + if filename not in self.ignored_names: output += f"""
  • {filename}
  • """ return output - @staticmethod - def generate_dir(folder, output=""): + def generate_dir(self, folder, output=""): dir_list = [] unsorted_files = [] @@ -1004,16 +1006,19 @@ class Helpers: dpath = os.path.join(folder, filename) rel = os.path.join(folder, raw_filename) if os.path.isdir(rel): - output += f"""
  • - \n
    - - - - {filename} - -
  • """ + if filename not in self.ignored_names: + output += f"""
  • + \n
    + + + + {filename} + +
  • """ else: - if filename != "crafty_managed.txt": + if filename not in self.ignored_names: output += f"""
  • + + +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    + + {% if data['superuser'] %} + {% include "parts/crafty_config_list.html %} + {% end %} + + +
    +
    + +
    + +
    + + +
    + {% raw xsrf_form_html() %} + + {% for item in data['config-json'].items() %} +
    +
    + {% if item[0] == 'language' %} + + {% elif item[0] == 'disabled_language_files' %} +
    + + + +
    + {% elif isinstance(item[1], list) %} + + {% elif isinstance(item[1], bool) %} + {% if item[1] == True %} +
    + +  
    + +   +
    + {% else %} +
    + +  
    + +   +
    + {% end %} + {% elif isinstance(item[1], int) %} + + {% else %} + + {% end %} +
    + {% end %} +   +
    +
    +
    +
    +
    + + +
    + + + + +{% end %} + +{% block js %} + + + +{% end %} \ No newline at end of file diff --git a/app/frontend/templates/panel/custom_login.html b/app/frontend/templates/panel/custom_login.html new file mode 100644 index 00000000..018eb006 --- /dev/null +++ b/app/frontend/templates/panel/custom_login.html @@ -0,0 +1,391 @@ +{% extends ../base.html %} + +{% block meta %} +{% end %} + +{% block title %}Crafty Controller - {{ translate('customLogin', 'pageTitle', data['lang']) }}{% end %} + +{% block content %} + +
    + +
    +
    + +
    +
    + + +
    +
    +
    +
    + + + {% if data['superuser'] %} + {% include "parts/crafty_config_list.html %} + {% end %} + + +
    +
    + +
    + +
    + + +
    +
    +
    +
    +
    +
    +

    {{ translate('customLogin', 'loginImage', data['lang']) }}

    +
    +
    + {% raw xsrf_form_html() %} + +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    {{ translate('customLogin', 'preview', data['lang']) }}:
    +
    +
    + +
    + +
    +
    + +
    + + +
    + +
    +
    +
    + Responsive image +
    + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +
    + + + + +{% end %} + +{% block js %} + + + +{% end %} \ No newline at end of file diff --git a/app/frontend/templates/panel/panel_config.html b/app/frontend/templates/panel/panel_config.html index 4bf13833..249daf70 100644 --- a/app/frontend/templates/panel/panel_config.html +++ b/app/frontend/templates/panel/panel_config.html @@ -8,16 +8,16 @@ {% block content %}
    -
    -
    @@ -26,6 +26,23 @@
    + + {% if data['superuser'] %} + {% include "parts/crafty_config_list.html %} + {% end %} + + +
    +
    + +
    + +
    + +
    @@ -33,9 +50,7 @@

    {{ translate('panelConfig', 'users', data['lang']) }}

    {% if data['user_data']['hints'] %} - + {% end %}
    -
    -
    -
    -
    -

    {{ translate('panelConfig', 'customLoginPage', data['lang']) }}

    -
    -
    -
    -
    -

    {{ translate('panelConfig', 'loginImage', data['lang']) }}

    -
    -
    - {% raw xsrf_form_html() %} - -
    - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    {{ translate('panelConfig', 'preview', data['lang']) }}:
    -
    -
    - -
    - -
    -
    - -
    - - -
    - -
    -
    -
    - Responsive image -
    - -
    -
    -
    - - -
    -
    -
    -
    -
    -
    -
    -
    -
    {% end %}
    @@ -461,116 +295,5 @@ } }); - {% end %} \ No newline at end of file diff --git a/app/frontend/templates/panel/parts/crafty_config_list.html b/app/frontend/templates/panel/parts/crafty_config_list.html new file mode 100644 index 00000000..5ef6b922 --- /dev/null +++ b/app/frontend/templates/panel/parts/crafty_config_list.html @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/app/translations/en_EN.json b/app/translations/en_EN.json index 296f1b16..15a8ed27 100644 --- a/app/translations/en_EN.json +++ b/app/translations/en_EN.json @@ -213,6 +213,8 @@ "assignedRoles": "Assigned Roles", "cancel": "Cancel", "clearComms": "Clear Un-executed Commands", + "select": "Select", + "apply": "Apply", "delete": "Delete", "edit": "Edit", "enabled": "Enabled", @@ -228,6 +230,9 @@ "superConfirmTitle": "Enable superuser? Are you sure?", "user": "User", "users": "Users", + "title": "Crafty Configuration" + }, + "customLogin": { "customLoginPage": "Customise the Login Page", "loginImage": "Upload a background image for the login screen.", "backgroundUpload": "Background Upload", @@ -235,8 +240,10 @@ "loginOpacity": "Select the Login Window Opacity", "select": "Select", "apply": "Apply", + "delete": "Delete", "selectImage": "Select an image", - "preview": "Preview" + "preview": "Preview", + "pageTitle": "Custom Login Page" }, "rolesConfig": { "config": "Role Config",