Fix visual file loading order. Fix zip imports where directories were not being copied

This commit is contained in:
Andrew 2022-03-01 16:54:06 -05:00
parent 10d3afab58
commit 5d6ada23a4
4 changed files with 47 additions and 11 deletions

View File

@ -314,7 +314,8 @@ class Stats:
# get our server object, settings and data dictionaries
server_obj = self.controller.get_server_obj(server_id)
server_obj.reload_server_settings()
if server_obj:
server_obj.reload_server_settings()
server_settings = self.controller.get_server_settings(server_id)
server_data = self.controller.get_server_data(server_id)

View File

@ -652,8 +652,15 @@ class Helpers:
@staticmethod
def generate_tree(folder, output=""):
dir_list = []
unsorted_files = []
file_list = os.listdir(folder)
file_list = sorted(file_list, key=str.casefold)
for item in file_list:
if os.path.isdir(os.path.join(folder, item)):
dir_list.append(item)
else:
unsorted_files.append(item)
file_list = sorted(dir_list, key=str.casefold) + sorted(unsorted_files, key=str.casefold)
for raw_filename in file_list:
filename = html.escape(raw_filename)
rel = os.path.join(folder, raw_filename)
@ -673,7 +680,7 @@ class Helpers:
else:
if filename != "crafty_managed.txt":
output += f"""<li
class="tree-item tree-ctx-item tree-file"
class="tree-nested d-block tree-ctx-item tree-file"
data-path="{dpath}"
data-name="{filename}"
onclick="clickOnFile(event)"><span style="margin-right: 6px;"><i class="far fa-file"></i></span>{filename}</li>"""
@ -681,8 +688,15 @@ class Helpers:
@staticmethod
def generate_dir(folder, output=""):
dir_list = []
unsorted_files = []
file_list = os.listdir(folder)
file_list = sorted(file_list, key=str.casefold)
for item in file_list:
if os.path.isdir(os.path.join(folder, item)):
dir_list.append(item)
else:
unsorted_files.append(item)
file_list = sorted(dir_list, key=str.casefold) + sorted(unsorted_files, key=str.casefold)
output += \
f"""<ul class="tree-nested d-block" id="{folder}ul">"""\
@ -704,7 +718,7 @@ class Helpers:
else:
if filename != "crafty_managed.txt":
output += f"""<li
class="tree-item tree-ctx-item tree-file"
class="tree-nested d-block tree-ctx-item tree-file"
data-path="{dpath}"
data-name="{filename}"
onclick="clickOnFile(event)"><span style="margin-right: 6px;"><i class="far fa-file"></i></span>{filename}</li>"""

View File

@ -374,7 +374,10 @@ class Controller:
if str(item) == 'server.properties':
has_properties = True
try:
file_helper.move_file(os.path.join(tempDir, item), os.path.join(new_server_dir, item))
if not os.path.isdir(os.path.join(tempDir, item)):
file_helper.move_file(os.path.join(tempDir, item), os.path.join(new_server_dir, item))
else:
file_helper.move_dir(os.path.join(tempDir, item), os.path.join(new_server_dir, item))
except Exception as ex:
logger.error(f'ERROR IN ZIP IMPORT: {ex}')
if not has_properties:
@ -457,12 +460,16 @@ class Controller:
helper.ensure_dir_exists(new_server_dir)
helper.ensure_dir_exists(backup_path)
has_properties = False
print(os.listdir(tempDir))
#extracts archive to temp directory
for item in os.listdir(tempDir):
if str(item) == 'server.properties':
has_properties = True
try:
file_helper.move_file(os.path.join(tempDir, item), os.path.join(new_server_dir, item))
if not os.path.isdir(os.path.join(tempDir, item)):
file_helper.move_file(os.path.join(tempDir, item), os.path.join(new_server_dir, item))
else:
file_helper.move_dir(os.path.join(tempDir, item), os.path.join(new_server_dir, item))
except Exception as ex:
logger.error(f'ERROR IN ZIP IMPORT: {ex}')
if not has_properties:

View File

@ -108,8 +108,15 @@ class AjaxHandler(BaseHandler):
output = ""
dir_list = []
unsorted_files = []
file_list = os.listdir(folder)
file_list = sorted(file_list, key=str.casefold)
for item in file_list:
if os.path.isdir(os.path.join(folder, item)):
dir_list.append(item)
else:
unsorted_files.append(item)
file_list = sorted(dir_list, key=str.casefold) + sorted(unsorted_files, key=str.casefold)
output += \
f"""<ul class="tree-nested d-block" id="{folder}ul">"""\
@ -133,7 +140,7 @@ class AjaxHandler(BaseHandler):
else:
output += f"""<li
class="tree-item tree-ctx-item tree-file"
class="tree-nested d-block tree-ctx-item tree-file"
data-path="{dpath}"
data-name="{filename}"
onclick=""><input type='checkbox' class="checkBoxClass" name='root_path' value="{dpath}" checked><span style="margin-right: 6px;">
@ -155,7 +162,7 @@ class AjaxHandler(BaseHandler):
else:
output += f"""<li
class="tree-item tree-ctx-item tree-file"
class="tree-nested d-block tree-ctx-item tree-file"
data-path="{dpath}"
data-name="{filename}"
onclick=""><input type='checkbox' class="checkBoxClass" name='root_path' value="{dpath}">
@ -169,8 +176,15 @@ class AjaxHandler(BaseHandler):
folder = self.get_argument('path', None)
output = ""
dir_list = []
unsorted_files = []
file_list = os.listdir(folder)
file_list = sorted(file_list, key=str.casefold)
for item in file_list:
if os.path.isdir(os.path.join(folder, item)):
dir_list.append(item)
else:
unsorted_files.append(item)
file_list = sorted(dir_list, key=str.casefold) + sorted(unsorted_files, key=str.casefold)
output += \
f"""<ul class="tree-nested d-block" id="{folder}ul">"""\