55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
class Instance extends HTMLElement {
|
|
constructor () {
|
|
super();
|
|
let shadowRoot = this.attachShadow({mode: "open"});
|
|
|
|
let instanceArticle = document.createElement("article");
|
|
shadowRoot.append(instanceArticle);
|
|
|
|
let styleLink = document.createElement("link");
|
|
styleLink.rel = "stylesheet";
|
|
styleLink.href = "css/style.css";
|
|
styleLink.type = "text/css";
|
|
shadowRoot.append(styleLink);
|
|
|
|
let instanceLink = document.createElement("link");
|
|
instanceLink.rel = "stylesheet";
|
|
instanceLink.href = "css/instance.css";
|
|
instanceLink.type = "text/css";
|
|
shadowRoot.append(instanceLink);
|
|
|
|
this.shadowElement = shadowRoot;
|
|
}
|
|
|
|
set data (data) {
|
|
let instanceArticle = this.shadowElement.querySelector("article");
|
|
|
|
let type = document.createElement("img");
|
|
type.src = `images/${data.type}.svg`;
|
|
instanceArticle.append(type);
|
|
|
|
let vmid = document.createElement("p");
|
|
vmid.innerText = data.vmid;
|
|
instanceArticle.append(vmid);
|
|
|
|
let name = document.createElement("p");
|
|
name.innerText = data.name;
|
|
instanceArticle.append(name);
|
|
|
|
let status = document.createElement("p");
|
|
status.innerText = data.status;
|
|
status.style.color = data.status === "running" ? "#00ff00" : "#ff0000";
|
|
instanceArticle.append(status);
|
|
|
|
let nodeName = document.createElement("p");
|
|
nodeName.innerText = data.node.name;
|
|
instanceArticle.append(nodeName);
|
|
|
|
let nodeStatus = document.createElement("p");
|
|
nodeStatus.innerText = data.node.status;
|
|
nodeStatus.style.color = data.node.status === "online" ? "#00ff00" : "#ff0000";
|
|
instanceArticle.append(nodeStatus);
|
|
}
|
|
}
|
|
|
|
customElements.define("instance-article", Instance); |