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",\
|
||||
"explorer_stats" : "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)) {
|
||||
|
@ -446,12 +449,12 @@ ipcMain.on("get-file-path", (event, data) => {
|
|||
dialog
|
||||
.showOpenDialog({
|
||||
defaultPath: path.join(__dirname, "../"),
|
||||
buttonLabel: "Select rigctld",
|
||||
buttonLabel: "Select File",
|
||||
properties: ["openFile"],
|
||||
})
|
||||
.then((filePaths) => {
|
||||
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"],
|
||||
})
|
||||
.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
|
||||
ipcMain.on("save-file-to-folder", (event, data) => {
|
||||
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
|
||||
document.getElementById("sendMessage").addEventListener("click", () => {
|
||||
document.getElementById("emojipickercontainer").style.display = "none";
|
||||
|
@ -496,6 +514,7 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
file = "";
|
||||
filename = "";
|
||||
});
|
||||
|
||||
ipcRenderer.on("return-selected-files", (event, arg) => {
|
||||
filetype = arg.mime;
|
||||
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) => {
|
||||
let imageFiletype = arg.mime;
|
||||
let imageFile = arg.data;
|
||||
|
@ -728,7 +793,11 @@ ipcRenderer.on("action-new-msg-received", (event, arg) => {
|
|||
obj.filetype = "null";
|
||||
obj.file = "null";
|
||||
|
||||
sendUserData(item.dxcallsign);
|
||||
if(config.enable_request_profile == "True"){
|
||||
sendUserData(item.dxcallsign);
|
||||
}
|
||||
|
||||
|
||||
} else if (splitted_data[1] == "res") {
|
||||
obj.uuid = uuidv4().toString();
|
||||
obj.timestamp = Math.floor(Date.now() / 1000);
|
||||
|
|
|
@ -162,9 +162,10 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
.addEventListener("click", () => {
|
||||
ipcRenderer.send("get-folder-path", {
|
||||
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 =
|
||||
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
|
||||
.getElementById("openReceivedFilesFolder")
|
||||
.addEventListener("click", () => {
|
||||
|
@ -180,6 +198,8 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
/*
|
||||
// ENABLE BOOTSTRAP 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("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") {
|
||||
document.getElementById("enable_is_writing").checked = true;
|
||||
} else {
|
||||
|
@ -556,9 +591,10 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
.addEventListener("click", () => {
|
||||
ipcRenderer.send("get-file-path", {
|
||||
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];
|
||||
document.getElementById("hamlib_rigctld_path").value = rigctldPath;
|
||||
config.hamlib_rigctld_path = rigctldPath;
|
||||
|
@ -1033,6 +1069,26 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
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
|
||||
document.getElementById("tuning_range_fmin").addEventListener("click", () => {
|
||||
var tuning_range_fmin = document.getElementById("tuning_range_fmin").value;
|
||||
|
|
|
@ -582,19 +582,29 @@
|
|||
|
||||
<!-- user shared folder -->
|
||||
<div
|
||||
class="modal fade"
|
||||
class="modal fade "
|
||||
id="sharedFolderModal"
|
||||
tabindex="-1"
|
||||
aria-labelledby="sharedFolderModalLabel"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-dialog modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="sharedFolderModalLabel">
|
||||
My Shared folder
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary"
|
||||
id="openSharedFilesFolder"
|
||||
><i class="bi bi-archive"></i></button>
|
||||
|
||||
|
||||
</h1>
|
||||
|
||||
|
||||
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="btn-close"
|
||||
|
@ -603,15 +613,24 @@
|
|||
></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="container-fluid">Future feature... be patient :-)</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal"
|
||||
>
|
||||
Close
|
||||
</button>
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="table-responsive">
|
||||
<!-- START OF TABLE FOR HEARD STATIONS -->
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<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>
|
||||
|
|
|
@ -1854,6 +1854,58 @@
|
|||
</div>
|
||||
</label>
|
||||
</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>
|
||||
<!--Rigctl tab contents-->
|
||||
<div
|
||||
|
|
Loading…
Reference in a new issue