mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Front end loading of backup edit page
This commit is contained in:
parent
f2e00040bd
commit
eebf68a376
@ -178,8 +178,8 @@ class ManagementController:
|
||||
# Backups Methods
|
||||
# **********************************************************************************
|
||||
@staticmethod
|
||||
def get_backup_config(server_id):
|
||||
return HelpersManagement.get_backup_config(server_id)
|
||||
def get_backup_config(backup_id):
|
||||
return HelpersManagement.get_backup_config(backup_id)
|
||||
|
||||
@staticmethod
|
||||
def get_backups_by_server(server_id, model=False):
|
||||
@ -212,8 +212,8 @@ class ManagementController:
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def get_excluded_backup_dirs(server_id: int):
|
||||
return HelpersManagement.get_excluded_backup_dirs(server_id)
|
||||
def get_excluded_backup_dirs(backup_id: int):
|
||||
return HelpersManagement.get_excluded_backup_dirs(backup_id)
|
||||
|
||||
def add_excluded_backup_dir(self, server_id: int, dir_to_add: str):
|
||||
self.management_helper.add_excluded_backup_dir(server_id, dir_to_add)
|
||||
|
@ -455,7 +455,7 @@ class HelpersManagement:
|
||||
dir_list = []
|
||||
return dir_list
|
||||
|
||||
def add_excluded_backup_dir(self, server_id: int, dir_to_add: str):
|
||||
def add_excluded_backup_dir(self, server_id: str, dir_to_add: str):
|
||||
dir_list = self.get_excluded_backup_dirs(server_id)
|
||||
if dir_to_add not in dir_list:
|
||||
dir_list.append(dir_to_add)
|
||||
@ -467,7 +467,7 @@ class HelpersManagement:
|
||||
f"already in the excluded directory list for server ID {server_id}"
|
||||
)
|
||||
|
||||
def del_excluded_backup_dir(self, server_id: int, dir_to_del: str):
|
||||
def del_excluded_backup_dir(self, server_id: str, dir_to_del: str):
|
||||
dir_list = self.get_excluded_backup_dirs(server_id)
|
||||
if dir_to_del in dir_list:
|
||||
dir_list.remove(dir_to_del)
|
||||
|
@ -1243,7 +1243,66 @@ class PanelHandler(BaseHandler):
|
||||
template = "panel/server_schedule_edit.html"
|
||||
|
||||
elif page == "edit_backup":
|
||||
server_id = self.get_argument("id", None)
|
||||
backup_id = self.get_argument("backup_id", None)
|
||||
page_data["active_link"] = "backups"
|
||||
page_data["permissions"] = {
|
||||
"Commands": EnumPermissionsServer.COMMANDS,
|
||||
"Terminal": EnumPermissionsServer.TERMINAL,
|
||||
"Logs": EnumPermissionsServer.LOGS,
|
||||
"Schedule": EnumPermissionsServer.SCHEDULE,
|
||||
"Backup": EnumPermissionsServer.BACKUP,
|
||||
"Files": EnumPermissionsServer.FILES,
|
||||
"Config": EnumPermissionsServer.CONFIG,
|
||||
"Players": EnumPermissionsServer.PLAYERS,
|
||||
}
|
||||
if not self.failed_server:
|
||||
server_obj = self.controller.servers.get_server_instance_by_id(
|
||||
server_id
|
||||
)
|
||||
page_data["backup_failed"] = server_obj.last_backup_status()
|
||||
page_data["user_permissions"] = (
|
||||
self.controller.server_perms.get_user_id_permissions_list(
|
||||
exec_user["user_id"], server_id
|
||||
)
|
||||
)
|
||||
server_info = self.controller.servers.get_server_data_by_id(server_id)
|
||||
page_data["backup_config"] = self.controller.management.get_backup_config(
|
||||
backup_id
|
||||
)
|
||||
page_data["backups"] = self.controller.management.get_backups_by_server(
|
||||
server_id, model=True
|
||||
)
|
||||
exclusions = []
|
||||
page_data["backing_up"] = self.controller.servers.get_server_instance_by_id(
|
||||
server_id
|
||||
).is_backingup
|
||||
page_data["backup_stats"] = (
|
||||
self.controller.servers.get_server_instance_by_id(
|
||||
server_id
|
||||
).send_backup_status()
|
||||
)
|
||||
self.controller.servers.refresh_server_settings(server_id)
|
||||
try:
|
||||
page_data["backup_list"] = server.list_backups()
|
||||
except:
|
||||
page_data["backup_list"] = []
|
||||
page_data["backup_path"] = Helpers.wtol_path(
|
||||
page_data["backup_config"]["backup_location"]
|
||||
)
|
||||
page_data["server_data"] = self.controller.servers.get_server_data_by_id(
|
||||
server_id
|
||||
)
|
||||
page_data["server_stats"] = self.controller.servers.get_server_stats_by_id(
|
||||
server_id
|
||||
)
|
||||
page_data["server_stats"]["server_type"] = (
|
||||
self.controller.servers.get_server_type_by_id(server_id)
|
||||
)
|
||||
page_data["exclusions"] = (
|
||||
self.controller.management.get_excluded_backup_dirs(backup_id)
|
||||
)
|
||||
# Make exclusion paths relative for page
|
||||
for file in page_data["exclusions"]:
|
||||
if Helpers.is_os_windows():
|
||||
exclusions.append(file.replace(server_info["path"] + "\\", ""))
|
||||
@ -1251,6 +1310,12 @@ class PanelHandler(BaseHandler):
|
||||
exclusions.append(file.replace(server_info["path"] + "/", ""))
|
||||
page_data["exclusions"] = exclusions
|
||||
|
||||
if not EnumPermissionsServer.BACKUP in page_data["user_permissions"]:
|
||||
if not superuser:
|
||||
self.redirect("/panel/error?error=Unauthorized access To Schedules")
|
||||
return
|
||||
template = "panel/server_backup_edit.html"
|
||||
|
||||
elif page == "edit_user":
|
||||
user_id = self.get_argument("id", None)
|
||||
role_servers = self.controller.servers.get_authorized_servers(user_id)
|
||||
|
@ -85,7 +85,8 @@
|
||||
<tr>
|
||||
<td id="{{backup.enabled}}" class="enabled">
|
||||
<button type="button" class="btn btn-sm btn-info btn-toggle backup-custom-toggle"
|
||||
id="backup_{{backup.id}}" name="backup_{{backup.id}}" data-backup-id="{{backup.id}}"
|
||||
id="backup_{{backup.backup_id}}" name="backup_{{backup.backup_id}}"
|
||||
data-backup-id="{{backup.backup_id}}"
|
||||
data-backup-enabled="{{ 'true' if backup.enabled else 'false' }}" data-toggle="button"
|
||||
aria-pressed="true" autocomplete="off">
|
||||
<div class="handle"></div>
|
||||
@ -102,14 +103,14 @@
|
||||
</td>
|
||||
<td id="backup_edit" class="action">
|
||||
<button
|
||||
onclick="window.location.href=`/panel/backup_edit?id={{ data['server_stats']['server_id']['server_id'] }}&backup_id={{backup.id}}`"
|
||||
onclick="window.location.href=`/panel/edit_backup?id={{ data['server_stats']['server_id']['server_id'] }}&backup_id={{backup.backup_id}}`"
|
||||
class="btn btn-info">
|
||||
<i class="fas fa-pencil-alt"></i>
|
||||
</button>
|
||||
<button data-backup={{ backup.id }} class="btn btn-danger del_button">
|
||||
<button data-backup={{ backup.backup_id }} class="btn btn-danger del_button">
|
||||
<i class="fas fa-trash" aria-hidden="true"></i>
|
||||
</button>
|
||||
<button data-backup={{ backup.id }} data-toggle="tooltip"
|
||||
<button data-backup={{ backup.backup_id }} data-toggle="tooltip"
|
||||
title="{{ translate('serverBackups', 'run', data['lang']) }}"
|
||||
class="btn btn-outline-warning test-socket">
|
||||
<i class="fa-solid fa-vial"></i>
|
||||
@ -138,7 +139,8 @@
|
||||
<tr>
|
||||
<td id="{{backup.enabled}}" class="enabled">
|
||||
<button type="button" class="btn btn-sm btn-info btn-toggle backup-custom-toggle"
|
||||
id="backup_{{backup.id}}" name="backup_{{backup.id}}" data-backup-id="{{backup.id}}"
|
||||
id="backup_{{backup.backup_id}}" name="backup_{{backup.backup_id}}"
|
||||
data-backup-id="{{backup.backup_id}}"
|
||||
data-backup-enabled="{{ 'true' if backup.enabled else 'false' }}" data-toggle="button"
|
||||
aria-pressed="true" autocomplete="off">
|
||||
<div class="handle"></div>
|
||||
@ -149,7 +151,7 @@
|
||||
</td>
|
||||
<td id="backup_edit" class="action">
|
||||
<button
|
||||
onclick="window.location.href=`/panel/backup_edit?id={{ data['server_stats']['server_id']['server_id'] }}&backup_id={{backup.id}}`"
|
||||
onclick="window.location.href=`/panel/edit_backup?id={{ data['server_stats']['server_id']['server_id'] }}&backup_id={{backup.backup_id}}`"
|
||||
class="btn btn-info">
|
||||
<i class="fas fa-pencil-alt"></i>
|
||||
</button>
|
||||
|
@ -39,111 +39,6 @@
|
||||
<span class="d-block d-sm-none">
|
||||
{% include "parts/m_server_controls_list.html %}
|
||||
</span>
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-sm-12" style="overflow-x:auto;">
|
||||
<div class="card">
|
||||
<div class="card-header header-sm d-flex justify-content-between align-items-center">
|
||||
<h4 class="card-title"><i class="fa-regular fa-bell"></i> {{ translate('serverBackups', 'backups', data['lang']) }} </h4>
|
||||
{% if data['user_data']['hints'] %}
|
||||
<span class="too_small" title="{{ translate('serverSchedules', 'cannotSee', data['lang']) }}" , data-content="{{ translate('serverSchedules', 'cannotSeeOnMobile', data['lang']) }}" , data-placement="bottom"></span>
|
||||
{% end %}
|
||||
<div><a class="btn btn-info" href="/panel/add_backup?id={{ data['server_stats']['server_id']['server_id'] }}"><i class="fas fa-plus-circle"></i> {{ translate('serverBackups', 'newBackup', data['lang']) }}</a></div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% if len(data['backups']) == 0 %}
|
||||
<div style="text-align: center; color: grey;">
|
||||
<h7>{{ translate('serverBackups', 'no-backup', data['lang']) }} <strong>{{ translate('serverBackups', 'newBackup',data['lang']) }}</strong>.</h7>
|
||||
</div>
|
||||
{% end %}
|
||||
{% if len(data['backups']) > 0 %}
|
||||
<div class="d-none d-lg-block">
|
||||
<table class="table table-hover responsive-table" aria-label="backups list" id="backup_table" width="100%" style="table-layout:fixed;">
|
||||
<thead>
|
||||
<tr class="rounded">
|
||||
<th scope="col" style="width: 5%; min-width: 64px;">{{ translate('serverBackups', 'enabled', data['lang']) }}</th>
|
||||
<th scope="col" style="width: 15%; min-width: 10px;">{{ translate('serverBackups', 'name', data['lang']) }} </th>
|
||||
<th scope="col" style="width: 60%; min-width: 50px;">{{ translate('serverBackups', 'storageLocation', data['lang']) }}</th>
|
||||
<th scope="col" style="width: 10%; min-width: 50px;">{{ translate('serverBackups', 'maxBackups', data['lang']) }}</th>
|
||||
<th scope="col" style="width: 10%; min-width: 50px;">{{ translate('serverBackups', 'actions', data['lang']) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for backup in data['backups'] %}
|
||||
<tr>
|
||||
<td id="{{backup.enabled}}" class="enabled">
|
||||
<button type="button" class="btn btn-sm btn-info btn-toggle backup-custom-toggle" id="backup_{{backup.id}}" name="backup_{{backup.id}}" data-backup-id="{{backup.id}}" data-backup-enabled="{{ 'true' if backup.enabled else 'false' }}" data-toggle="button" aria-pressed="true" autocomplete="off">
|
||||
<div class="handle"></div>
|
||||
</button>
|
||||
</td>
|
||||
<td id="{{backup.backup_name}}" class="id">
|
||||
<p>{{backup.backup_name}}</p>
|
||||
</td>
|
||||
<td id="{{backup.backup_location}}" class="type">
|
||||
<p>{{backup.backup_location}}</p>
|
||||
</td>
|
||||
<td id="{{backup.max_backups}}" class="trigger" style="overflow: scroll; max-width: 30px;">
|
||||
<p>{{backup.max_backups}}</p>
|
||||
</td>
|
||||
<td id="backup_edit" class="action">
|
||||
<button onclick="window.location.href=`/panel/backup_edit?id={{ data['server_stats']['server_id']['server_id'] }}&backup_id={{backup.id}}`" class="btn btn-info">
|
||||
<i class="fas fa-pencil-alt"></i>
|
||||
</button>
|
||||
<button data-backup={{ backup.id }} class="btn btn-danger del_button">
|
||||
<i class="fas fa-trash" aria-hidden="true"></i>
|
||||
</button>
|
||||
<button data-backup={{ backup.id }} data-toggle="tooltip" title="{{ translate('serverBackups', 'run', data['lang']) }}" class="btn btn-outline-warning test-socket">
|
||||
<i class="fa-solid fa-vial"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
{% end %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="d-block d-lg-none">
|
||||
<table aria-label="backups list" class="table table-hover responsive-table" id="backup_table_mini" width="100%" style="table-layout:fixed;">
|
||||
<thead>
|
||||
<tr class="rounded">
|
||||
<th style="width: 20%; min-width: 64px;">{{ translate('serverBackups', 'enabled',
|
||||
data['lang']) }}</th>
|
||||
<th style="width: 40%; min-width: 10px;">Name
|
||||
</th>
|
||||
<th style="width: 40%; min-width: 50px;">{{ translate('serverBackups', 'edit', data['lang'])
|
||||
}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for backup in data['backups'] %}
|
||||
<tr>
|
||||
<td id="{{backup.enabled}}" class="enabled">
|
||||
<button type="button" class="btn btn-sm btn-info btn-toggle backup-custom-toggle" id="backup_{{backup.id}}" name="backup_{{backup.id}}" data-backup-id="{{backup.id}}" data-backup-enabled="{{ 'true' if backup.enabled else 'false' }}" data-toggle="button" aria-pressed="true" autocomplete="off">
|
||||
<div class="handle"></div>
|
||||
</button>
|
||||
</td>
|
||||
<td id="{{backup.backup_name}}" class="id">
|
||||
<p>{{backup.backup_name}}</p>
|
||||
</td>
|
||||
<td id="backup_edit" class="action">
|
||||
<button onclick="window.location.href=`/panel/backup_edit?id={{ data['server_stats']['server_id']['server_id'] }}&backup_id={{backup.id}}`" class="btn btn-info">
|
||||
<i class="fas fa-pencil-alt"></i>
|
||||
</button>
|
||||
<button data-backup={{ backup.backup_id }} class="btn btn-danger del_button">
|
||||
<i class="fas fa-trash" aria-hidden="true"></i>
|
||||
</button>
|
||||
<button data-backup={{ backup.backup_id }} data-toggle="tooltip" title="{{ translate('serverBackups', 'run', data['lang']) }}" class="btn btn-outline-warning test-socket">
|
||||
<i class="fa-solid fa-vial"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
{% end %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% end %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-sm-12">
|
||||
<br>
|
||||
@ -173,7 +68,7 @@
|
||||
class="text-muted ml-1"> - {{ translate('serverBackups', 'storageLocationDesc', data['lang'])
|
||||
}}</small> </label>
|
||||
<input type="text" class="form-control" name="backup_path" id="backup_path"
|
||||
value="{{ data['backup_config']['backup_path'] }}"
|
||||
value="{{ data['backup_config']['backup_location'] }}"
|
||||
placeholder="{{ translate('serverBackups', 'storageLocation', data['lang']) }}">
|
||||
{% end %}
|
||||
</div>
|
||||
@ -272,8 +167,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" id="modal-cancel" class="btn btn-secondary" data-dismiss="modal"><i class="fa-solid fa-xmark"></i></button>
|
||||
<button type="button" id="modal-okay" data-dismiss="modal" class="btn btn-primary"><i class="fa-solid fa-thumbs-up"></i></button>
|
||||
<button type="button" id="modal-cancel" class="btn btn-secondary" data-dismiss="modal"><i
|
||||
class="fa-solid fa-xmark"></i></button>
|
||||
<button type="button" id="modal-okay" data-dismiss="modal" class="btn btn-primary"><i
|
||||
class="fa-solid fa-thumbs-up"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -309,7 +206,7 @@
|
||||
</a>
|
||||
<br>
|
||||
<br>
|
||||
<button data-file="{{ backup['path'] }}" data-backup_path="{{ data['backup_path'] }}"
|
||||
<button data-file="{{ backup['path'] }}" data-backup_path="{{ data['backup_location'] }}"
|
||||
class="btn btn-danger del_button">
|
||||
<i class="fas fa-trash" aria-hidden="true"></i>
|
||||
{{ translate('serverBackups', 'delete', data['lang']) }}
|
||||
@ -414,15 +311,15 @@
|
||||
async function backup_started() {
|
||||
const token = getCookie("_xsrf")
|
||||
let res = await fetch(`/api/v2/servers/${server_id}/action/backup_server`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'X-XSRFToken': token
|
||||
}
|
||||
});
|
||||
let responseData = await res.json();
|
||||
if (responseData.status === "ok") {
|
||||
console.log(responseData);
|
||||
$("#backup_button").html(`<div class="progress" style="height: 15px;">
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'X-XSRFToken': token
|
||||
}
|
||||
});
|
||||
let responseData = await res.json();
|
||||
if (responseData.status === "ok") {
|
||||
console.log(responseData);
|
||||
$("#backup_button").html(`<div class="progress" style="height: 15px;">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated" id="backup_progress_bar"
|
||||
role="progressbar" style="width:{{data['backup_stats']['percent']}}%;"
|
||||
aria-valuenow="{{data['backup_stats']['percent']}}" aria-valuemin="0" aria-valuemax="100">{{
|
||||
@ -430,18 +327,18 @@
|
||||
</div>
|
||||
<p>Backing up <i class="fas fa-spin fa-spinner"></i> <span
|
||||
id="total_files">{{data['server_stats']['world_size']}}</span></p>`);
|
||||
} else {
|
||||
} else {
|
||||
|
||||
bootbox.alert({
|
||||
title: responseData.status,
|
||||
message: responseData.error
|
||||
});
|
||||
}
|
||||
bootbox.alert({
|
||||
title: responseData.status,
|
||||
message: responseData.error
|
||||
});
|
||||
}
|
||||
return;
|
||||
}
|
||||
async function del_backup(filename, id) {
|
||||
const token = getCookie("_xsrf")
|
||||
let contents = JSON.stringify({"filename": filename})
|
||||
let contents = JSON.stringify({ "filename": filename })
|
||||
let res = await fetch(`/api/v2/servers/${id}/backups/backup/`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
@ -452,15 +349,17 @@
|
||||
let responseData = await res.json();
|
||||
if (responseData.status === "ok") {
|
||||
window.location.reload();
|
||||
}else{
|
||||
bootbox.alert({"title": responseData.status,
|
||||
"message": responseData.error})
|
||||
} else {
|
||||
bootbox.alert({
|
||||
"title": responseData.status,
|
||||
"message": responseData.error
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async function restore_backup(filename, id) {
|
||||
const token = getCookie("_xsrf")
|
||||
let contents = JSON.stringify({"filename": filename})
|
||||
let contents = JSON.stringify({ "filename": filename })
|
||||
var dialog = bootbox.dialog({
|
||||
message: "<i class='fa fa-spin fa-spinner'></i> {{ translate('serverBackups', 'restoring', data['lang']) }}",
|
||||
closeButton: false
|
||||
@ -475,9 +374,11 @@
|
||||
let responseData = await res.json();
|
||||
if (responseData.status === "ok") {
|
||||
window.location.href = "/panel/dashboard";
|
||||
}else{
|
||||
bootbox.alert({"title": responseData.status,
|
||||
"message": responseData.error})
|
||||
} else {
|
||||
bootbox.alert({
|
||||
"title": responseData.status,
|
||||
"message": responseData.error
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -529,7 +430,7 @@
|
||||
$('input.excluded:checkbox:checked').each(function () {
|
||||
excluded.push($(this).val());
|
||||
});
|
||||
if ($("#root_files_button").hasClass("clicked")){
|
||||
if ($("#root_files_button").hasClass("clicked")) {
|
||||
formDataObject.exclusions = excluded;
|
||||
}
|
||||
delete formDataObject.root_path
|
||||
@ -711,54 +612,54 @@
|
||||
});
|
||||
}
|
||||
|
||||
function getDirView(event){
|
||||
function getDirView(event) {
|
||||
let path = event.target.parentElement.getAttribute("data-path");
|
||||
if (document.getElementById(path).classList.contains('clicked')) {
|
||||
return;
|
||||
}else{
|
||||
} else {
|
||||
getTreeView(path);
|
||||
}
|
||||
|
||||
}
|
||||
async function getTreeView(path){
|
||||
async function getTreeView(path) {
|
||||
console.log(path)
|
||||
const token = getCookie("_xsrf");
|
||||
let res = await fetch(`/api/v2/servers/${server_id}/files`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'X-XSRFToken': token
|
||||
},
|
||||
body: JSON.stringify({"page": "backups", "path": path}),
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'X-XSRFToken': token
|
||||
},
|
||||
body: JSON.stringify({ "page": "backups", "path": path }),
|
||||
});
|
||||
let responseData = await res.json();
|
||||
if (responseData.status === "ok") {
|
||||
console.log(responseData);
|
||||
process_tree_response(responseData);
|
||||
|
||||
} else {
|
||||
|
||||
bootbox.alert({
|
||||
title: responseData.status,
|
||||
message: responseData.error
|
||||
});
|
||||
let responseData = await res.json();
|
||||
if (responseData.status === "ok") {
|
||||
console.log(responseData);
|
||||
process_tree_response(responseData);
|
||||
|
||||
} else {
|
||||
|
||||
bootbox.alert({
|
||||
title: responseData.status,
|
||||
message: responseData.error
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function process_tree_response(response) {
|
||||
let path = response.data.root_path.path;
|
||||
let text = `<ul class="tree-nested d-block" id="${path}ul">`;
|
||||
Object.entries(response.data).forEach(([key, value]) => {
|
||||
if (key === "root_path" || key === "db_stats"){
|
||||
//continue is not valid in for each. Return acts as a continue.
|
||||
return;
|
||||
}
|
||||
Object.entries(response.data).forEach(([key, value]) => {
|
||||
if (key === "root_path" || key === "db_stats") {
|
||||
//continue is not valid in for each. Return acts as a continue.
|
||||
return;
|
||||
}
|
||||
let checked = ""
|
||||
let dpath = value.path;
|
||||
let filename = key;
|
||||
if (value.excluded){
|
||||
if (value.excluded) {
|
||||
checked = "checked"
|
||||
}
|
||||
if (value.dir){
|
||||
if (value.dir) {
|
||||
text += `<li class="tree-item" data-path="${dpath}">
|
||||
\n<div id="${dpath}" data-path="${dpath}" data-name="${filename}" class="tree-caret tree-ctx-item tree-folder">
|
||||
<input type="checkbox" class="checkBoxClass excluded" value="${dpath}" ${checked}>
|
||||
@ -768,7 +669,7 @@
|
||||
<strong>${filename}</strong>
|
||||
</span>
|
||||
</input></div><li>`
|
||||
}else{
|
||||
} else {
|
||||
text += `<li
|
||||
class="d-block tree-ctx-item tree-file"
|
||||
data-path="${dpath}"
|
||||
@ -778,30 +679,30 @@
|
||||
}
|
||||
});
|
||||
text += `</ul>`;
|
||||
if(response.data.root_path.top){
|
||||
if (response.data.root_path.top) {
|
||||
try {
|
||||
document.getElementById('main-tree-div').innerHTML += text;
|
||||
document.getElementById('main-tree').parentElement.classList.add("clicked");
|
||||
} catch {
|
||||
document.getElementById('files-tree').innerHTML = text;
|
||||
}
|
||||
}else{
|
||||
document.getElementById('main-tree-div').innerHTML += text;
|
||||
document.getElementById('main-tree').parentElement.classList.add("clicked");
|
||||
} catch {
|
||||
document.getElementById('files-tree').innerHTML = text;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
document.getElementById(path + "span").classList.add('tree-caret-down');
|
||||
document.getElementById(path).innerHTML += text;
|
||||
document.getElementById(path).classList.add("clicked");
|
||||
} catch {
|
||||
console.log("Bad")
|
||||
}
|
||||
document.getElementById(path + "span").classList.add('tree-caret-down');
|
||||
document.getElementById(path).innerHTML += text;
|
||||
document.getElementById(path).classList.add("clicked");
|
||||
} catch {
|
||||
console.log("Bad")
|
||||
}
|
||||
|
||||
var toggler = document.getElementById(path + "span");
|
||||
var toggler = document.getElementById(path + "span");
|
||||
|
||||
if (toggler.classList.contains('files-tree-title')) {
|
||||
document.getElementById(path + "span").addEventListener("click", function caretListener() {
|
||||
document.getElementById(path + "ul").classList.toggle("d-block");
|
||||
document.getElementById(path + "span").classList.toggle("tree-caret-down");
|
||||
});
|
||||
}
|
||||
if (toggler.classList.contains('files-tree-title')) {
|
||||
document.getElementById(path + "span").addEventListener("click", function caretListener() {
|
||||
document.getElementById(path + "ul").classList.toggle("d-block");
|
||||
document.getElementById(path + "span").classList.toggle("tree-caret-down");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user