Skip to content

Commit

Permalink
add button to delete file from node
Browse files Browse the repository at this point in the history
  • Loading branch information
liamcottle committed Dec 5, 2024
1 parent de75c4b commit d7dab05
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/components/pages/settings/NodeSettingsList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,15 @@
<div class="text-sm text-gray-500">{{ fileInfo.sizeBytes }} bytes</div>
</div>

<!-- trailing -->
<div class="my-auto text-gray-500">
<IconButton @click="deleteFile(nodeId, fileInfo.fileName)">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6">
<path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0" />
</svg>
</IconButton>
</div>

</div>
</div>

Expand All @@ -173,9 +182,11 @@ import GlobalState from "../../../js/GlobalState.js";
import NodeUtils from "../../../js/NodeUtils.js";
import NodeAPI from "../../../js/NodeAPI.js";
import DialogUtils from "../../../js/DialogUtils.js";
import IconButton from "../../IconButton.vue";
export default {
name: 'SettingsList',
components: {IconButton},
props: {
nodeId: String | Number,
},
Expand Down Expand Up @@ -224,6 +235,28 @@ export default {
}
},
async deleteFile(nodeId, filename) {
// confirm user wants to delete file from node
if(!confirm(`Are you sure you want to delete '${filename}' from this node?`)){
return;
}
try {
// delete file from node
await NodeAPI.remoteAdminDeleteFile(nodeId, filename);
// update local state
GlobalState.myNodeFiles = GlobalState.myNodeFiles.filter((fileInfo) => {
return fileInfo.fileName !== filename;
});
} catch(e) {
DialogUtils.showErrorAlert(e);
}
},
},
computed: {
GlobalState() {
Expand Down
18 changes: 18 additions & 0 deletions src/js/NodeAPI.js
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,24 @@ class NodeAPI {

}

/**
* Sends an admin request to delete a file from the provided node id
* @param nodeId
* @param filename the file to delete from the node
* @returns {Promise<*>}
*/
static async remoteAdminDeleteFile(nodeId, filename) {

// create admin message packet
const adminMessageRequest = Protobuf.Admin.AdminMessage.fromJson({
deleteFileRequest: filename,
});

// send packet and wait for response
await this.sendAdminPacketAndWaitForResponse(nodeId, adminMessageRequest, false);

}

}

export default NodeAPI;

0 comments on commit d7dab05

Please sign in to comment.