fix: pull-request suggestions

updating the merge request by adding the suggestions from reviewer
This commit is contained in:
stroskler 2024-08-06 16:01:14 +00:00
parent dcc48d3240
commit 825b72761b
6 changed files with 42 additions and 40 deletions

View file

@ -76,15 +76,15 @@ export class AgentManager {
* @param url
* @param username
* @param password
* @param friendlyname
* @param updatedFriendlyName
* @param name
* @param updatedName
*/
async add(url : string, username : string, password : string, friendlyname : string) : Promise<Agent> {
async add(url: string, username: string, password: string, name: string): Promise<Agent> {
let bean = R.dispense("agent") as Agent;
bean.url = url;
bean.username = username;
bean.password = password;
bean.friendlyname = friendlyname;
bean.name = name;
await R.store(bean);
return bean;
}
@ -109,12 +109,19 @@ export class AgentManager {
/**
*
* @param friendlyname
* @param updatedFriendlyName
* @param url
* @param updatedName
*/
async update(friendlyname : string, updatedFriendlyName : string) {
await R.exec("UPDATE agent SET friendlyname = " + updatedFriendlyName + " WHERE friendlyname = " + friendlyname + "");
async update(url: string, updatedName: string) {
const agent = await R.findOne("agent", " url = ? ", [
url,
]);
if (agent) {
agent.name = updatedName;
await R.store(agent);
} else {
throw new Error("Agent not found");
}
}
connect(url : string, username : string, password : string) {
@ -289,8 +296,8 @@ export class AgentManager {
url: "",
username: "",
endpoint: "",
friendlyname: "",
updatedFriendlyName: "",
name: "",
updatedName: "",
};
for (let endpoint in list) {

View file

@ -7,7 +7,7 @@ export async function up(knex: Knex): Promise<void> {
table.string("url", 255).notNullable().unique();
table.string("username", 255).notNullable();
table.string("password", 255).notNullable();
table.string("friendlyname", 255);
table.string("name", 255);
table.boolean("active").notNullable().defaultTo(true);
});
}

View file

@ -20,7 +20,7 @@ export class ManageAgentSocketHandler extends SocketHandler {
let data = requestData as LooseObject;
let manager = socket.instanceManager;
await manager.test(data.url, data.username, data.password);
await manager.add(data.url, data.username, data.password, data.friendlyname);
await manager.add(data.url, data.username, data.password, data.name);
// connect to the agent
manager.connect(data.url, data.username, data.password);
@ -68,17 +68,13 @@ export class ManageAgentSocketHandler extends SocketHandler {
});
// updateAgent
socket.on("updateAgent", async (friendlyname : string, updatedFriendlyName : string, callback : unknown) => {
socket.on("updateAgent", async (name : string, updatedName : string, callback : unknown) => {
try {
log.debug("manage-agent-socket-handler", "updateAgent");
checkLogin(socket);
if (typeof(updatedFriendlyName) !== "string") {
throw new Error("FriendlyName must be a string");
}
let manager = socket.instanceManager;
await manager.update(friendlyname, updatedFriendlyName);
await manager.update(name, updatedName);
server.disconnectAllSocketClients(undefined, socket.id);
manager.sendAgentList();

View file

@ -133,10 +133,10 @@ export default defineComponent({
endpointDisplayFunction(endpoint : string) {
for (const [k, v] of Object.entries(this.$data.agentList)) {
if (endpoint) {
if (endpoint === v["endpoint"] && v["friendlyname"] !== "") {
return v["friendlyname"];
if (endpoint === v["endpoint"] && v["name"] !== "") {
return v["name"];
}
if (endpoint === v["endpoint"] && v["friendlyname"] === "" ) {
if (endpoint === v["endpoint"] && v["name"] === "" ) {
return endpoint;
}
}

View file

@ -99,7 +99,7 @@
<label for="name" class="form-label">{{ $t("dockgeAgent") }}</label>
<select v-model="stack.endpoint" class="form-select">
<option v-for="(agent, endpoint) in $root.agentList" :key="endpoint" :value="endpoint" :disabled="$root.agentStatusList[endpoint] != 'online'">
({{ $root.agentStatusList[endpoint] }}) {{ (agent.friendlyname !== '') ? agent.friendlyname : agent.url || $t("Controller") }}
({{ $root.agentStatusList[endpoint] }}) {{ (agent.name !== '') ? agent.name : agent.url || $t("Controller") }}
</option>
</select>
</div>

View file

@ -50,18 +50,18 @@
<!-- Agent Display Name -->
<template v-if="$root.agentStatusList[endpoint]">
<span v-if="endpoint === '' && agent.friendlyname === ''" class="badge bg-secondary me-2">Controller</span>
<span v-else-if="agent.friendlyname === ''" :href="agent.url">{{ endpoint }}</span>
<span v-else :href="agent.url">{{ agent.friendlyname }}</span>
<span v-if="endpoint === '' && agent.name === ''" class="badge bg-secondary me-2">Controller</span>
<span v-else-if="agent.name === ''" :href="agent.url">{{ endpoint }}</span>
<span v-else :href="agent.url">{{ agent.name }}</span>
</template>
<!-- Edit FriendlyName -->
<font-awesome-icon v-if="agent.friendlyname !== '' && agent.friendlyname !== ''" icon="pen-to-square" @click="showEditAgentFriendlynameDialog[agent.friendlyname] = !showEditAgentFriendlynameDialog[agent.friendlyname]" />
<!-- Edit Name -->
<font-awesome-icon icon="pen-to-square" @click="showEditAgentNameDialog[agent.name] = !showEditAgentNameDialog[agent.Name]" />
<!-- Edit Dialog -->
<BModal v-model="showEditAgentFriendlynameDialog[agent.friendlyname]" :no-close-on-backdrop="true" :close-on-esc="true" :okTitle="$t('Update Friendlyname')" okVariant="info" @ok="updateFriendlyname(agent.friendlyname, agent.updatedFriendlyName)">
<label for="Update Friendlyname" class="form-label">Current value: {{ $t(agent.friendlyname) }}</label>
<input id="updatedFriendlyName" v-model="agent.updatedFriendlyName" type="text" class="form-control" optional>
<BModal v-model="showEditAgentNameDialog[agent.name]" :no-close-on-backdrop="true" :close-on-esc="true" :okTitle="$t('Update Name')" okVariant="info" @ok="updateName(agent.url, agent.updatedName)">
<label for="Update Name" class="form-label">Current value: {{ $t(agent.name) }}</label>
<input id="updatedName" v-model="agent.updatedName" type="text" class="form-control" optional>
</BModal>
<!-- Remove Button -->
@ -94,8 +94,8 @@
</div>
<div class="mb-3">
<label for="friendlyname" class="form-label">{{ $t("Friendly Name") }}</label>
<input id="friendlyname" v-model="agent.friendlyname" type="text" class="form-control" optional>
<label for="name" class="form-label">{{ $t("Friendly Name") }}</label>
<input id="name" v-model="agent.name" type="text" class="form-control" optional>
</div>
<button type="submit" class="btn btn-primary" :disabled="connectingAgent">
@ -138,14 +138,14 @@ export default {
dockerRunCommand: "",
showAgentForm: false,
showRemoveAgentDialog: {},
showEditAgentFriendlynameDialog: {},
showEditAgentNameDialog: {},
connectingAgent: false,
agent: {
url: "http://",
username: "",
password: "",
friendlyname: "",
updatedFriendlyName: "",
name: "",
updatedName: "",
}
};
},
@ -219,15 +219,14 @@ export default {
});
},
updateFriendlyname(friendlyname, updatedFriendlyName) {
//console.log(this.showEditAgentFriendlynameDialog.inputNewFriendlyName);
this.$root.getSocket().emit("updateAgent", friendlyname, updatedFriendlyName, (res) => {
updateName(url, updatedName) {
this.$root.getSocket().emit("updateAgent", url, updatedName, (res) => {
this.$root.toastRes(res);
if (res.ok) {
this.showAgentForm = false;
this.agent = {
updatedFriendlyName: "",
updatedName: "",
};
}
});