mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first test run with getting list of files in folder
This commit is contained in:
parent
1238a4c761
commit
90ce4acfce
45
gui/main.js
45
gui/main.js
|
@ -89,7 +89,10 @@ const configDefaultSettings =
|
||||||
"high_graphics" : "True",\
|
"high_graphics" : "True",\
|
||||||
"explorer_stats" : "False", \
|
"explorer_stats" : "False", \
|
||||||
"auto_tune" : "False", \
|
"auto_tune" : "False", \
|
||||||
"enable_is_writing" : "True" \
|
"enable_is_writing" : "True", \
|
||||||
|
"shared_folder_path" : ".", \
|
||||||
|
"enable_request_profile" : "True", \
|
||||||
|
"enable_request_shared_folder" : "True" \
|
||||||
}';
|
}';
|
||||||
|
|
||||||
if (!fs.existsSync(configPath)) {
|
if (!fs.existsSync(configPath)) {
|
||||||
|
@ -446,12 +449,12 @@ ipcMain.on("get-file-path", (event, data) => {
|
||||||
dialog
|
dialog
|
||||||
.showOpenDialog({
|
.showOpenDialog({
|
||||||
defaultPath: path.join(__dirname, "../"),
|
defaultPath: path.join(__dirname, "../"),
|
||||||
buttonLabel: "Select rigctld",
|
buttonLabel: "Select File",
|
||||||
properties: ["openFile"],
|
properties: ["openFile"],
|
||||||
})
|
})
|
||||||
.then((filePaths) => {
|
.then((filePaths) => {
|
||||||
if (filePaths.canceled == false) {
|
if (filePaths.canceled == false) {
|
||||||
win.webContents.send("return-file-paths", { path: filePaths });
|
win.webContents.send(data.action, { path: filePaths });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -465,7 +468,7 @@ ipcMain.on("get-folder-path", (event, data) => {
|
||||||
properties: ["openDirectory"],
|
properties: ["openDirectory"],
|
||||||
})
|
})
|
||||||
.then((folderPaths) => {
|
.then((folderPaths) => {
|
||||||
win.webContents.send("return-folder-paths", { path: folderPaths });
|
win.webContents.send(data.action, { path: folderPaths });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -543,6 +546,40 @@ ipcMain.on("select-user-image", (event, data) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// read files in folder - use case "shared folder"
|
||||||
|
ipcMain.on("read-files-in-folder", (event, data) => {
|
||||||
|
|
||||||
|
let fileList = []
|
||||||
|
|
||||||
|
let folder = data.folder
|
||||||
|
let files = fs.readdirSync(folder);
|
||||||
|
console.log(folder)
|
||||||
|
console.log(files)
|
||||||
|
files.forEach(file => {
|
||||||
|
try{
|
||||||
|
let filePath = folder + '/' + file;
|
||||||
|
if(fs.lstatSync(filePath).isFile()){
|
||||||
|
let fileSizeInBytes = fs.statSync(filePath).size
|
||||||
|
let extension = path.extname(filePath);
|
||||||
|
fileList.push({ name: file, extension: extension.substring(1), size: fileSizeInBytes });
|
||||||
|
}
|
||||||
|
} catch(err){
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
chat.webContents.send("return-shared-folder-files", {
|
||||||
|
files: fileList,
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//save file to folder
|
//save file to folder
|
||||||
ipcMain.on("save-file-to-folder", (event, data) => {
|
ipcMain.on("save-file-to-folder", (event, data) => {
|
||||||
console.log(data.file);
|
console.log(data.file);
|
||||||
|
|
|
@ -397,6 +397,24 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// open file selector for shared folder
|
||||||
|
document.getElementById("sharedFolderButton").addEventListener("click", () => {
|
||||||
|
ipcRenderer.send("read-files-in-folder", {
|
||||||
|
folder: config.shared_folder_path,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
document
|
||||||
|
.getElementById("openSharedFilesFolder")
|
||||||
|
.addEventListener("click", () => {
|
||||||
|
ipcRenderer.send("open-folder", {
|
||||||
|
path: config.shared_folder_path,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// SEND MSG
|
// SEND MSG
|
||||||
document.getElementById("sendMessage").addEventListener("click", () => {
|
document.getElementById("sendMessage").addEventListener("click", () => {
|
||||||
document.getElementById("emojipickercontainer").style.display = "none";
|
document.getElementById("emojipickercontainer").style.display = "none";
|
||||||
|
@ -496,6 +514,7 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
file = "";
|
file = "";
|
||||||
filename = "";
|
filename = "";
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcRenderer.on("return-selected-files", (event, arg) => {
|
ipcRenderer.on("return-selected-files", (event, arg) => {
|
||||||
filetype = arg.mime;
|
filetype = arg.mime;
|
||||||
console.log(filetype);
|
console.log(filetype);
|
||||||
|
@ -509,6 +528,52 @@ ipcRenderer.on("return-selected-files", (event, arg) => {
|
||||||
`;
|
`;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on("return-shared-folder-files", (event, arg) => {
|
||||||
|
console.log(arg)
|
||||||
|
|
||||||
|
var tbl = document.getElementById("sharedFolderTable");
|
||||||
|
tbl.innerHTML = "";
|
||||||
|
let counter = 0
|
||||||
|
arg.files.forEach(file => {
|
||||||
|
console.log(file["name"]);
|
||||||
|
var row = document.createElement("tr");
|
||||||
|
|
||||||
|
let id = document.createElement("td");
|
||||||
|
let idText = document.createElement("span");
|
||||||
|
idText.innerText = counter+=1;
|
||||||
|
id.appendChild(idText);
|
||||||
|
row.appendChild(id);
|
||||||
|
|
||||||
|
|
||||||
|
let filename = document.createElement("td");
|
||||||
|
let filenameText = document.createElement("span");
|
||||||
|
filenameText.innerText = file["name"];
|
||||||
|
filename.appendChild(filenameText);
|
||||||
|
row.appendChild(filename);
|
||||||
|
|
||||||
|
let filetype = document.createElement("td");
|
||||||
|
let filetypeText = document.createElement("span");
|
||||||
|
filetypeText.innerHTML = `
|
||||||
|
<i class="bi bi-filetype-${file['extension']}" style="font-size: 1.8rem"></i>
|
||||||
|
`;
|
||||||
|
filetype.appendChild(filetypeText);
|
||||||
|
row.appendChild(filetype);
|
||||||
|
|
||||||
|
let filesize = document.createElement("td");
|
||||||
|
let filesizeText = document.createElement("span");
|
||||||
|
filesizeText.innerText = file["size"];
|
||||||
|
filesize.appendChild(filesizeText);
|
||||||
|
row.appendChild(filesize);
|
||||||
|
|
||||||
|
|
||||||
|
tbl.appendChild(row);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
ipcRenderer.on("return-select-user-image", (event, arg) => {
|
ipcRenderer.on("return-select-user-image", (event, arg) => {
|
||||||
let imageFiletype = arg.mime;
|
let imageFiletype = arg.mime;
|
||||||
let imageFile = arg.data;
|
let imageFile = arg.data;
|
||||||
|
@ -728,7 +793,11 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
|
||||||
obj.filetype = "null";
|
obj.filetype = "null";
|
||||||
obj.file = "null";
|
obj.file = "null";
|
||||||
|
|
||||||
|
if(config.enable_request_profile == "True"){
|
||||||
sendUserData(item.dxcallsign);
|
sendUserData(item.dxcallsign);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (splitted_data[1] == "res") {
|
} else if (splitted_data[1] == "res") {
|
||||||
obj.uuid = uuidv4().toString();
|
obj.uuid = uuidv4().toString();
|
||||||
obj.timestamp = Math.floor(Date.now() / 1000);
|
obj.timestamp = Math.floor(Date.now() / 1000);
|
||||||
|
|
|
@ -162,9 +162,10 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
.addEventListener("click", () => {
|
.addEventListener("click", () => {
|
||||||
ipcRenderer.send("get-folder-path", {
|
ipcRenderer.send("get-folder-path", {
|
||||||
title: "Title",
|
title: "Title",
|
||||||
|
action: "return-folder-paths-received_files_folder",
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcRenderer.on("return-folder-paths", (event, data) => {
|
ipcRenderer.on("return-folder-paths-received_files_folder", (event, data) => {
|
||||||
document.getElementById("received_files_folder").value =
|
document.getElementById("received_files_folder").value =
|
||||||
data.path.filePaths[0];
|
data.path.filePaths[0];
|
||||||
config.received_files_folder = data.path.filePaths[0];
|
config.received_files_folder = data.path.filePaths[0];
|
||||||
|
@ -172,6 +173,23 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document
|
||||||
|
.getElementById("shared_folder_path")
|
||||||
|
.addEventListener("click", () => {
|
||||||
|
ipcRenderer.send("get-folder-path", {
|
||||||
|
title: "Title",
|
||||||
|
action: "return-folder-paths-shared_folder_path",
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcRenderer.on("return-folder-paths-shared_folder_path", (event, data) => {
|
||||||
|
document.getElementById("shared_folder_path").value =
|
||||||
|
data.path.filePaths[0];
|
||||||
|
config.shared_folder_path = data.path.filePaths[0];
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
document
|
document
|
||||||
.getElementById("openReceivedFilesFolder")
|
.getElementById("openReceivedFilesFolder")
|
||||||
.addEventListener("click", () => {
|
.addEventListener("click", () => {
|
||||||
|
@ -180,6 +198,8 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// ENABLE BOOTSTRAP POPOVERS EVERYWHERE
|
// ENABLE BOOTSTRAP POPOVERS EVERYWHERE
|
||||||
// https://getbootstrap.com/docs/5.0/components/popovers/#example-enable-popovers-everywhere
|
// https://getbootstrap.com/docs/5.0/components/popovers/#example-enable-popovers-everywhere
|
||||||
|
@ -242,6 +262,21 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
document.getElementById("scatterSwitch").checked = false;
|
document.getElementById("scatterSwitch").checked = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.getElementById("shared_folder_path").value =
|
||||||
|
config.shared_folder_path;
|
||||||
|
|
||||||
|
if (config.enable_request_profile == "True") {
|
||||||
|
document.getElementById("enable_request_profile").checked = true;
|
||||||
|
} else {
|
||||||
|
document.getElementById("enable_request_profile").checked = false;
|
||||||
|
}
|
||||||
|
if (config.enable_request_shared_folder == "True") {
|
||||||
|
document.getElementById("enable_request_shared_folder").checked = true;
|
||||||
|
} else {
|
||||||
|
document.getElementById("enable_request_shared_folder").checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (config.enable_is_writing == "True") {
|
if (config.enable_is_writing == "True") {
|
||||||
document.getElementById("enable_is_writing").checked = true;
|
document.getElementById("enable_is_writing").checked = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -556,9 +591,10 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
.addEventListener("click", () => {
|
.addEventListener("click", () => {
|
||||||
ipcRenderer.send("get-file-path", {
|
ipcRenderer.send("get-file-path", {
|
||||||
title: "Title",
|
title: "Title",
|
||||||
|
action : "return-file-path-hamlib_rigctld_path"
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcRenderer.on("return-file-paths", (event, data) => {
|
ipcRenderer.on("return-file-path-hamlib_rigctld_path", (event, data) => {
|
||||||
rigctldPath = data.path.filePaths[0];
|
rigctldPath = data.path.filePaths[0];
|
||||||
document.getElementById("hamlib_rigctld_path").value = rigctldPath;
|
document.getElementById("hamlib_rigctld_path").value = rigctldPath;
|
||||||
config.hamlib_rigctld_path = rigctldPath;
|
config.hamlib_rigctld_path = rigctldPath;
|
||||||
|
@ -1033,6 +1069,26 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// enable enable_request_shared_folder switch clicked
|
||||||
|
document.getElementById("enable_request_shared_folder").addEventListener("click", () => {
|
||||||
|
if (document.getElementById("enable_request_shared_folder").checked == true) {
|
||||||
|
config.enable_request_shared_folder = "True";
|
||||||
|
} else {
|
||||||
|
config.enable_request_shared_folder = "False";
|
||||||
|
}
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
|
||||||
|
// enable enable_request_profile switch clicked
|
||||||
|
document.getElementById("enable_request_profile").addEventListener("click", () => {
|
||||||
|
if (document.getElementById("enable_request_profile").checked == true) {
|
||||||
|
config.enable_request_profile = "True";
|
||||||
|
} else {
|
||||||
|
config.enable_request_profile = "False";
|
||||||
|
}
|
||||||
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||||
|
});
|
||||||
|
|
||||||
// Tuning range clicked
|
// Tuning range clicked
|
||||||
document.getElementById("tuning_range_fmin").addEventListener("click", () => {
|
document.getElementById("tuning_range_fmin").addEventListener("click", () => {
|
||||||
var tuning_range_fmin = document.getElementById("tuning_range_fmin").value;
|
var tuning_range_fmin = document.getElementById("tuning_range_fmin").value;
|
||||||
|
|
|
@ -582,19 +582,29 @@
|
||||||
|
|
||||||
<!-- user shared folder -->
|
<!-- user shared folder -->
|
||||||
<div
|
<div
|
||||||
class="modal fade"
|
class="modal fade "
|
||||||
id="sharedFolderModal"
|
id="sharedFolderModal"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
aria-labelledby="sharedFolderModalLabel"
|
aria-labelledby="sharedFolderModalLabel"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog modal-dialog-scrollable">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h1 class="modal-title fs-5" id="sharedFolderModalLabel">
|
<h1 class="modal-title fs-5" id="sharedFolderModalLabel">
|
||||||
My Shared folder
|
My Shared folder
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="btn btn-primary"
|
||||||
|
id="openSharedFilesFolder"
|
||||||
|
><i class="bi bi-archive"></i></button>
|
||||||
|
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn-close"
|
class="btn-close"
|
||||||
|
@ -603,15 +613,24 @@
|
||||||
></button>
|
></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="container-fluid">Future feature... be patient :-)</div>
|
<div class="container-fluid">
|
||||||
<div class="modal-footer">
|
|
||||||
<button
|
<div class="table-responsive">
|
||||||
type="button"
|
<!-- START OF TABLE FOR HEARD STATIONS -->
|
||||||
class="btn btn-secondary"
|
<table class="table table-sm">
|
||||||
data-bs-dismiss="modal"
|
<thead>
|
||||||
>
|
<tr>
|
||||||
Close
|
<th scope="col">#</th>
|
||||||
</button>
|
<th scope="col">Name</th>
|
||||||
|
<th scope="col">Type</th>
|
||||||
|
<th scope="col">Size</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="sharedFolderTable">
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1854,6 +1854,58 @@
|
||||||
</div>
|
</div>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="input-group input-group-sm mb-1">
|
||||||
|
<label class="input-group-text w-50"
|
||||||
|
>Allow requesting "user profile"</label
|
||||||
|
>
|
||||||
|
<label class="input-group-text bg-white w-50">
|
||||||
|
<div class="form-check form-switch form-check-inline">
|
||||||
|
<input
|
||||||
|
class="form-check-input"
|
||||||
|
type="checkbox"
|
||||||
|
id="enable_request_profile"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="input-group input-group-sm mb-1">
|
||||||
|
<label class="input-group-text w-50"
|
||||||
|
>Allow requesting "shared folder"</label
|
||||||
|
>
|
||||||
|
<label class="input-group-text bg-white w-50">
|
||||||
|
<div class="form-check form-switch form-check-inline">
|
||||||
|
<input
|
||||||
|
class="form-check-input"
|
||||||
|
type="checkbox"
|
||||||
|
id="enable_request_shared_folder"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="input-group input-group-sm mb-1">
|
||||||
|
<label class="input-group-text w-50"
|
||||||
|
>Shared folder path</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control w-50"
|
||||||
|
id="shared_folder_path"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!--Rigctl tab contents-->
|
<!--Rigctl tab contents-->
|
||||||
<div
|
<div
|
||||||
|
|
Loading…
Reference in a new issue