mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'dev' into tweak/nav-label
This commit is contained in:
commit
1a9ee2cbc1
@ -3,11 +3,11 @@
|
|||||||
### New features
|
### New features
|
||||||
TBD
|
TBD
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
TBD
|
- Fix zip imports so the root dir selection is functional ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/764))
|
||||||
### Tweaks
|
### Tweaks
|
||||||
TBD
|
- Add info note to default creds file ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/760))
|
||||||
### Lang
|
### Lang
|
||||||
TBD
|
- Add remaining `he_IL`, `th_TH` translations for 4.4.0 Release ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/761))
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
## --- [4.4.0] - 2024/05/11
|
## --- [4.4.0] - 2024/05/11
|
||||||
|
@ -41,7 +41,7 @@ async function getTreeView(path, unzip = false, upload = false) {
|
|||||||
let responseData = await res.json();
|
let responseData = await res.json();
|
||||||
if (responseData.status === "ok") {
|
if (responseData.status === "ok") {
|
||||||
console.log(responseData);
|
console.log(responseData);
|
||||||
process_tree_response(responseData);
|
process_tree_response(responseData, unzip);
|
||||||
let x = document.querySelector('.bootbox');
|
let x = document.querySelector('.bootbox');
|
||||||
if (x) {
|
if (x) {
|
||||||
x.remove()
|
x.remove()
|
||||||
@ -61,7 +61,7 @@ async function getTreeView(path, unzip = false, upload = false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function process_tree_response(response) {
|
function process_tree_response(response, unzip) {
|
||||||
const styles = window.getComputedStyle(document.getElementById("lower_half"));
|
const styles = window.getComputedStyle(document.getElementById("lower_half"));
|
||||||
//If this value is still hidden we know the user is executing a zip import and not an upload
|
//If this value is still hidden we know the user is executing a zip import and not an upload
|
||||||
if (styles.visibility === "hidden") {
|
if (styles.visibility === "hidden") {
|
||||||
@ -70,7 +70,9 @@ function process_tree_response(response) {
|
|||||||
document.getElementById('upload_submit').disabled = false;
|
document.getElementById('upload_submit').disabled = false;
|
||||||
}
|
}
|
||||||
let path = response.data.root_path.path;
|
let path = response.data.root_path.path;
|
||||||
$(".root-input").val(response.data.root_path.path);
|
if (unzip) {
|
||||||
|
$(".root-input").val(response.data.root_path.path);
|
||||||
|
}
|
||||||
let text = `<ul class="tree-nested d-block" id="${path}ul">`;
|
let text = `<ul class="tree-nested d-block" id="${path}ul">`;
|
||||||
Object.entries(response.data).forEach(([key, value]) => {
|
Object.entries(response.data).forEach(([key, value]) => {
|
||||||
if (key === "root_path" || key === "db_stats") {
|
if (key === "root_path" || key === "db_stats") {
|
||||||
@ -83,7 +85,7 @@ function process_tree_response(response) {
|
|||||||
if (value.dir) {
|
if (value.dir) {
|
||||||
text += `<li class="tree-item" id="${dpath}li" data-path="${dpath}">
|
text += `<li class="tree-item" id="${dpath}li" data-path="${dpath}">
|
||||||
<div id="${dpath}" data-path="${dpath}" data-name="${filename}" class="tree-caret tree-ctx-item tree-folder">
|
<div id="${dpath}" data-path="${dpath}" data-name="${filename}" class="tree-caret tree-ctx-item tree-folder">
|
||||||
<input type="radio" name="root_path" value="${dpath}">
|
<input type="radio" class="root-input" name="root_path" value="${dpath}">
|
||||||
<span id="${dpath}span" class="files-tree-title" data-path="${dpath}" data-name="${filename}" onclick="getDirView(event)">
|
<span id="${dpath}span" class="files-tree-title" data-path="${dpath}" data-name="${filename}" onclick="getDirView(event)">
|
||||||
<i style="color: var(--info);" class="far fa-folder"></i>
|
<i style="color: var(--info);" class="far fa-folder"></i>
|
||||||
<i style="color: var(--info);" class="far fa-folder-open"></i>
|
<i style="color: var(--info);" class="far fa-folder-open"></i>
|
||||||
|
@ -246,11 +246,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="visibility: hidden;">
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="text" class="form-control" id="zip_root_path" name="zip_root_path">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal fade" id="dir_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
<div class="modal fade" id="dir_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
||||||
aria-hidden="true">
|
aria-hidden="true">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
@ -378,11 +373,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="visibility: hidden;">
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="text" class="form-control" id="zip_root_path" name="zip_root_path">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal fade" id="dir_upload_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
<div class="modal fade" id="dir_upload_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
||||||
aria-hidden="true">
|
aria-hidden="true">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
@ -591,7 +581,7 @@
|
|||||||
message: '<p class="text-center mb-0"><i class="fa fa-spin fa-cog"></i> Please wait while we gather your files...</p>',
|
message: '<p class="text-center mb-0"><i class="fa fa-spin fa-cog"></i> Please wait while we gather your files...</p>',
|
||||||
closeButton: false
|
closeButton: false
|
||||||
});
|
});
|
||||||
setTimeout(function(){
|
setTimeout(function () {
|
||||||
getDirView();
|
getDirView();
|
||||||
}, 2000);
|
}, 2000);
|
||||||
} else {
|
} else {
|
||||||
@ -640,7 +630,7 @@
|
|||||||
message: '<p class="text-center mb-0"><i class="fa fa-spin fa-cog"></i> Please wait while we gather your files...</p>',
|
message: '<p class="text-center mb-0"><i class="fa fa-spin fa-cog"></i> Please wait while we gather your files...</p>',
|
||||||
closeButton: false
|
closeButton: false
|
||||||
});
|
});
|
||||||
setTimeout(function(){
|
setTimeout(function () {
|
||||||
getDirView();
|
getDirView();
|
||||||
}, 2000);
|
}, 2000);
|
||||||
} else {
|
} else {
|
||||||
@ -796,7 +786,13 @@
|
|||||||
wait_msg(true);
|
wait_msg(true);
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
let jarForm = document.getElementById("import-zip");
|
let jarForm = document.getElementById("import-zip");
|
||||||
|
var checkedRadio = $('.root-input:checked');
|
||||||
|
let zip_root_path = ""
|
||||||
|
if (checkedRadio.length > 0) {
|
||||||
|
// Get the value of the checked radio button
|
||||||
|
var checkedValue = checkedRadio.val();
|
||||||
|
zip_root_path = checkedValue; // Return the checked value if needed
|
||||||
|
}
|
||||||
let formData = new FormData(jarForm);
|
let formData = new FormData(jarForm);
|
||||||
//Create an object from the form data entries
|
//Create an object from the form data entries
|
||||||
let formDataObject = Object.fromEntries(formData.entries());
|
let formDataObject = Object.fromEntries(formData.entries());
|
||||||
@ -813,7 +809,7 @@
|
|||||||
"minecraft_bedrock_create_data": {
|
"minecraft_bedrock_create_data": {
|
||||||
"create_type": "import_server",
|
"create_type": "import_server",
|
||||||
"import_server_create_data": {
|
"import_server_create_data": {
|
||||||
"existing_server_path": formDataObject.root_path,
|
"existing_server_path": zip_root_path,
|
||||||
"executable": formDataObject.server_jar,
|
"executable": formDataObject.server_jar,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -834,6 +830,13 @@
|
|||||||
//Create an object from the form data entries
|
//Create an object from the form data entries
|
||||||
let formDataObject = Object.fromEntries(formData.entries());
|
let formDataObject = Object.fromEntries(formData.entries());
|
||||||
console.log(formDataObject);
|
console.log(formDataObject);
|
||||||
|
var checkedRadio = $('.root-input:checked');
|
||||||
|
let zip_root_path = ""
|
||||||
|
if (checkedRadio.length > 0) {
|
||||||
|
// Get the value of the checked radio button
|
||||||
|
var checkedValue = checkedRadio.val();
|
||||||
|
zip_root_path = checkedValue; // Return the checked value if needed
|
||||||
|
}
|
||||||
let send_data = {
|
let send_data = {
|
||||||
"name": formDataObject.name,
|
"name": formDataObject.name,
|
||||||
"roles": calcRoles(),
|
"roles": calcRoles(),
|
||||||
@ -846,7 +849,7 @@
|
|||||||
"minecraft_bedrock_create_data": {
|
"minecraft_bedrock_create_data": {
|
||||||
"create_type": "import_server",
|
"create_type": "import_server",
|
||||||
"import_server_create_data": {
|
"import_server_create_data": {
|
||||||
"existing_server_path": formDataObject.root_path,
|
"existing_server_path": zip_root_path,
|
||||||
"executable": formDataObject.server_jar,
|
"executable": formDataObject.server_jar,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -437,11 +437,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12" style="visibility: hidden;" hidden>
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="text" class="form-control" id="zip_root_path" name="zip_root_path">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal fade" id="dir_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
<div class="modal fade" id="dir_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
||||||
aria-hidden="true">
|
aria-hidden="true">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
@ -588,11 +583,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="visibility: hidden;">
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="text" class="form-control" id="zip_root_path" name="zip_root_path">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal fade" id="dir_upload_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
<div class="modal fade" id="dir_upload_select" tabindex="-1" role="dialog" aria-labelledby="dir_select"
|
||||||
aria-hidden="true">
|
aria-hidden="true">
|
||||||
<div class="modal-dialog" role="document">
|
<div class="modal-dialog" role="document">
|
||||||
@ -1035,6 +1025,13 @@
|
|||||||
//Create an object from the form data entries
|
//Create an object from the form data entries
|
||||||
let formDataObject = Object.fromEntries(formData.entries());
|
let formDataObject = Object.fromEntries(formData.entries());
|
||||||
console.log(formDataObject);
|
console.log(formDataObject);
|
||||||
|
var checkedRadio = $('.root-input:checked');
|
||||||
|
let zip_root_path = ""
|
||||||
|
if (checkedRadio.length > 0) {
|
||||||
|
// Get the value of the checked radio button
|
||||||
|
var checkedValue = checkedRadio.val();
|
||||||
|
zip_root_path = checkedValue; // Return the checked value if needed
|
||||||
|
}
|
||||||
let send_data = {
|
let send_data = {
|
||||||
"name": formDataObject.name,
|
"name": formDataObject.name,
|
||||||
"roles": calcRoles(),
|
"roles": calcRoles(),
|
||||||
@ -1047,7 +1044,7 @@
|
|||||||
"minecraft_java_create_data": {
|
"minecraft_java_create_data": {
|
||||||
"create_type": "import_server",
|
"create_type": "import_server",
|
||||||
"import_server_create_data": {
|
"import_server_create_data": {
|
||||||
"existing_server_path": formDataObject.root_path,
|
"existing_server_path": zip_root_path,
|
||||||
"jarfile": formDataObject.server_jar,
|
"jarfile": formDataObject.server_jar,
|
||||||
"mem_min": formDataObject.mem_min,
|
"mem_min": formDataObject.mem_min,
|
||||||
"mem_max": formDataObject.mem_max,
|
"mem_max": formDataObject.mem_max,
|
||||||
@ -1071,6 +1068,13 @@
|
|||||||
//Create an object from the form data entries
|
//Create an object from the form data entries
|
||||||
let formDataObject = Object.fromEntries(formData.entries());
|
let formDataObject = Object.fromEntries(formData.entries());
|
||||||
console.log(formDataObject);
|
console.log(formDataObject);
|
||||||
|
var checkedRadio = $('.root-input:checked');
|
||||||
|
let zip_root_path = ""
|
||||||
|
if (checkedRadio.length > 0) {
|
||||||
|
// Get the value of the checked radio button
|
||||||
|
var checkedValue = checkedRadio.val();
|
||||||
|
zip_root_path = checkedValue; // Return the checked value if needed
|
||||||
|
}
|
||||||
let send_data = {
|
let send_data = {
|
||||||
"name": formDataObject.name,
|
"name": formDataObject.name,
|
||||||
"roles": calcRoles(),
|
"roles": calcRoles(),
|
||||||
@ -1083,7 +1087,7 @@
|
|||||||
"minecraft_java_create_data": {
|
"minecraft_java_create_data": {
|
||||||
"create_type": "import_server",
|
"create_type": "import_server",
|
||||||
"import_server_create_data": {
|
"import_server_create_data": {
|
||||||
"existing_server_path": formDataObject.root_path,
|
"existing_server_path": zip_root_path,
|
||||||
"jarfile": formDataObject.server_jar,
|
"jarfile": formDataObject.server_jar,
|
||||||
"mem_min": formDataObject.mem_min,
|
"mem_min": formDataObject.mem_min,
|
||||||
"mem_max": formDataObject.mem_max,
|
"mem_max": formDataObject.mem_max,
|
||||||
|
@ -184,6 +184,8 @@
|
|||||||
"error": {
|
"error": {
|
||||||
"agree": "מסכים",
|
"agree": "מסכים",
|
||||||
"bedrockError": "הורדות Bedrock אינן זמינות. אנא בדוק",
|
"bedrockError": "הורדות Bedrock אינן זמינות. אנא בדוק",
|
||||||
|
"bigBucket1": "בדיקת הבריאות של Big Bucket נכשלה. אנא בדוק",
|
||||||
|
"bigBucket2": "כדי לקבל את המידע המעודכן ביותר.",
|
||||||
"cancel": "בטל",
|
"cancel": "בטל",
|
||||||
"contact": "בבקשה צרו קשר עם תמיכת פאנל קראפטי באמצעות דיסקורד",
|
"contact": "בבקשה צרו קשר עם תמיכת פאנל קראפטי באמצעות דיסקורד",
|
||||||
"craftyStatus": "דף המצב של Crafty",
|
"craftyStatus": "דף המצב של Crafty",
|
||||||
@ -206,6 +208,7 @@
|
|||||||
"portReminder": "זיהינו שזו הפעם הראשונה ש-{} מופעל. הקפידו להעביר את היציאה {} דרך הנתב/חומת האש שלכם כדי להפוך אותה לנגישה מרחוק מהאינטרנט.",
|
"portReminder": "זיהינו שזו הפעם הראשונה ש-{} מופעל. הקפידו להעביר את היציאה {} דרך הנתב/חומת האש שלכם כדי להפוך אותה לנגישה מרחוק מהאינטרנט.",
|
||||||
"privMsg": "וה",
|
"privMsg": "וה",
|
||||||
"return": "חזרה לפאנל",
|
"return": "חזרה לפאנל",
|
||||||
|
"selfHost": "אם אתה מארח בעצמך את הריפו הזה, אנא בדוק את הכתובת שלך או התייעץ עם מדריך פתרון הבעיות שלנו.",
|
||||||
"serverJars1": "API של צנצנות השרת אינו נגיש. אנא בדוק",
|
"serverJars1": "API של צנצנות השרת אינו נגיש. אנא בדוק",
|
||||||
"serverJars2": "למידע מעודכן ביותר.",
|
"serverJars2": "למידע מעודכן ביותר.",
|
||||||
"start-error": "השרת {} לא הצליח להתחיל עם קוד שגיאה: {}",
|
"start-error": "השרת {} לא הצליח להתחיל עם קוד שגיאה: {}",
|
||||||
@ -602,6 +605,7 @@
|
|||||||
},
|
},
|
||||||
"startup": {
|
"startup": {
|
||||||
"almost": "מסיימים. תחזיקו חזק...",
|
"almost": "מסיימים. תחזיקו חזק...",
|
||||||
|
"cache": "מרענן את קובץ המטמון של Big Bucket",
|
||||||
"internals": "הגדרה והפעלה של הרכיבים הפנימיים של Crafty",
|
"internals": "הגדרה והפעלה של הרכיבים הפנימיים של Crafty",
|
||||||
"internet": "בודק את חיבור האינטרנט",
|
"internet": "בודק את חיבור האינטרנט",
|
||||||
"server": "אתחול ",
|
"server": "אתחול ",
|
||||||
|
@ -184,6 +184,8 @@
|
|||||||
"error": {
|
"error": {
|
||||||
"agree": "ยอมรับ",
|
"agree": "ยอมรับ",
|
||||||
"bedrockError": "การดาวน์โหลดเวอร์ชั่น Bedrock ไม่พร้อมใช้งาน โปรดตรวจสอบ",
|
"bedrockError": "การดาวน์โหลดเวอร์ชั่น Bedrock ไม่พร้อมใช้งาน โปรดตรวจสอบ",
|
||||||
|
"bigBucket1": "การตรวจสอบสุขภาพ Big Bucket ล้มเหลว โปรดตรวจสอบ",
|
||||||
|
"bigBucket2": "สำหรับข้อมูลล่าสุด",
|
||||||
"cancel": "ยกเลิก",
|
"cancel": "ยกเลิก",
|
||||||
"contact": "ติดต่อฝ่ายสนับสนุน Crafty Control ผ่านดิสคอร์ด",
|
"contact": "ติดต่อฝ่ายสนับสนุน Crafty Control ผ่านดิสคอร์ด",
|
||||||
"craftyStatus": "หน้าสถานะของ Crafty",
|
"craftyStatus": "หน้าสถานะของ Crafty",
|
||||||
@ -206,6 +208,7 @@
|
|||||||
"portReminder": "เราตรวจพบว่านี่เป็นครั้งแรกที่มีการเรียกใช้ {} ตรวจสอบให้แน่ใจว่าได้ Forward port {} ผ่านเราเตอร์/ไฟร์วอลล์ของคุณเพื่อให้สามารถเข้าถึงได้จากอินเทอร์เน็ตจากระยะไกล",
|
"portReminder": "เราตรวจพบว่านี่เป็นครั้งแรกที่มีการเรียกใช้ {} ตรวจสอบให้แน่ใจว่าได้ Forward port {} ผ่านเราเตอร์/ไฟร์วอลล์ของคุณเพื่อให้สามารถเข้าถึงได้จากอินเทอร์เน็ตจากระยะไกล",
|
||||||
"privMsg": "และ ",
|
"privMsg": "และ ",
|
||||||
"return": "ย้อนกลับไปยังแผงควบคุม",
|
"return": "ย้อนกลับไปยังแผงควบคุม",
|
||||||
|
"selfHost": "หากคุณโฮสต์ repo นี้ด้วยตนเอง โปรดตรวจสอบที่อยู่ของคุณ หรือศึกษาคู่มือแก้ปัญหาของเรา",
|
||||||
"serverJars1": "ไม่สามารถเข้าถึงเซิร์ฟเวอร์ JARs API กรุณาตรวจสอบ",
|
"serverJars1": "ไม่สามารถเข้าถึงเซิร์ฟเวอร์ JARs API กรุณาตรวจสอบ",
|
||||||
"serverJars2": "เพื่อข้อมูลที่ทันสมัยที่สุด",
|
"serverJars2": "เพื่อข้อมูลที่ทันสมัยที่สุด",
|
||||||
"start-error": "เซิร์ฟเวอร์ {} ไม่สามารถเริ่มต้นได้เนื่องจากรหัสข้อผิดพลาด: {}",
|
"start-error": "เซิร์ฟเวอร์ {} ไม่สามารถเริ่มต้นได้เนื่องจากรหัสข้อผิดพลาด: {}",
|
||||||
@ -601,6 +604,7 @@
|
|||||||
},
|
},
|
||||||
"startup": {
|
"startup": {
|
||||||
"almost": "เสร็จสิ้นการทำงาน. รอซักครู่...",
|
"almost": "เสร็จสิ้นการทำงาน. รอซักครู่...",
|
||||||
|
"cache": "กำลังรีเฟรชไฟล์แคช Big Bucket",
|
||||||
"internals": "กำหนดค่าและเริ่มการทำงานภายในของ Crafty",
|
"internals": "กำหนดค่าและเริ่มการทำงานภายในของ Crafty",
|
||||||
"internet": "กำลังตรวจสอบการเชื่อมต่ออินเทอร์เน็ต",
|
"internet": "กำลังตรวจสอบการเชื่อมต่ออินเทอร์เน็ต",
|
||||||
"server": "กำลังเริ่มต้นการทำงาน ",
|
"server": "กำลังเริ่มต้นการทำงาน ",
|
||||||
|
10
main.py
10
main.py
@ -367,7 +367,15 @@ if __name__ == "__main__":
|
|||||||
encoding="utf-8",
|
encoding="utf-8",
|
||||||
) as cred_file:
|
) as cred_file:
|
||||||
cred_file.write(
|
cred_file.write(
|
||||||
json.dumps({"username": "admin", "password": PASSWORD}, indent=4)
|
json.dumps(
|
||||||
|
{
|
||||||
|
"username": "admin",
|
||||||
|
"password": PASSWORD,
|
||||||
|
"info": "This is NOT where you change your password."
|
||||||
|
" This file is only a means to give you a default password.",
|
||||||
|
},
|
||||||
|
indent=4,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
os.chmod(
|
os.chmod(
|
||||||
os.path.join(APPLICATION_PATH, "app", "config", "default-creds.txt"), 0o600
|
os.path.join(APPLICATION_PATH, "app", "config", "default-creds.txt"), 0o600
|
||||||
|
Loading…
Reference in New Issue
Block a user