Skip to content

Commit

Permalink
add button to reset node db
Browse files Browse the repository at this point in the history
  • Loading branch information
liamcottle committed Dec 5, 2024
1 parent e462510 commit c5372a4
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
36 changes: 36 additions & 0 deletions src/components/pages/settings/NodeSettingsList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,27 @@

</div>

<div @click="resetNodeDb(nodeId)" class="flex cursor-pointer px-2 py-3 bg-white hover:bg-gray-50">

<!-- leading -->
<div class="my-auto ml-2 mr-4 text-gray-500">
<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>
</div>

<!-- title -->
<div class="my-auto mr-auto">Reset Node DB</div>

<!-- trailing -->
<div class="my-auto mr-2 text-gray-500">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-5">
<path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" />
</svg>
</div>

</div>

<div @click="reboot(nodeId)" class="flex cursor-pointer px-2 py-3 bg-white hover:bg-gray-50">

<!-- leading -->
Expand Down Expand Up @@ -167,6 +188,21 @@ export default {
}
},
async resetNodeDb(nodeId) {
// confirm user wants to reset node db
if(!confirm("Are you sure you want to reset this nodes Node DB?")){
return;
}
try {
await NodeAPI.remoteAdminResetNodeDb(nodeId);
alert("Node has been asked to reset its Node DB. It will reboot afterwards.");
} catch(e) {
DialogUtils.showErrorAlert(e);
}
},
},
computed: {
GlobalState() {
Expand Down
17 changes: 17 additions & 0 deletions src/js/NodeAPI.js
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,23 @@ class NodeAPI {

}

/**
* Sends an admin request to reset the node db for the provided node id
* @param nodeId
* @returns {Promise<*>}
*/
static async remoteAdminResetNodeDb(nodeId) {

// create admin message packet
const adminMessageRequest = Protobuf.Admin.AdminMessage.fromJson({
nodedbReset: 1, // this is what is sent by the android client, even though firmware doesn't use it
});

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

}

}

export default NodeAPI;

0 comments on commit c5372a4

Please sign in to comment.