144 lines
5.7 KiB
JavaScript
144 lines
5.7 KiB
JavaScript
metrics.createWindow(() => {
|
|
|
|
const View = new ViewWindow({
|
|
title: `<i class="fa-solid fa-square-poll-vertical"></i> Web Metrik`,
|
|
width: "600px",
|
|
height: "600px",
|
|
})
|
|
|
|
loadMetrics()
|
|
|
|
function loadMetrics() {
|
|
|
|
View.setContent(`
|
|
<div class="metrics">
|
|
<div class='mt-bar'>
|
|
<p> <strong>WebMetrik</strong> : <span id='${View.getViewTitle()}_number'><i>Calcul en cours</i></span></p>
|
|
<div>
|
|
<button id='${View.getViewTitle()}_refresh' class='btn green'><span><i class='fa fa-rotate-left'></i> Rafraîchir</span></button>
|
|
<button id='${View.getViewTitle()}_add' class='btn blue'><span><i class='fa fa-add'></i> Ajouter un WebMetrik</span></button>
|
|
</div>
|
|
</div>
|
|
<div class='mt-metrics' id='${View.getViewTitle()}_metrics'>
|
|
|
|
<div style='font-size: 24px; margin-top: 180px;' class='t-center'>
|
|
<p><i class="fa-solid fa-rotate fa-spin"></i> Chargement en cours ...</p>
|
|
</div>
|
|
|
|
</div>`)
|
|
|
|
const metricsList = new Array()
|
|
const metricsComponent = new Array()
|
|
const metricsReq = get("MT_ALL")
|
|
|
|
const metricsDiv = document.getElementById(`${View.getViewTitle()}_metrics`)
|
|
const metricsNumber = document.getElementById(`${View.getViewTitle()}_number`)
|
|
const addButton = document.getElementById(`${View.getViewTitle()}_add`)
|
|
const refreshButton = document.getElementById(`${View.getViewTitle()}_refresh`)
|
|
const metricsView = document.getElementById(`${View.getViewTitle()}_metrics`)
|
|
|
|
refreshButton.addEventListener("click", () => {
|
|
loadMetrics()
|
|
})
|
|
|
|
metricsReq.then((ANS_metrics) => {
|
|
console.log(ANS_metrics)
|
|
if(ANS_metrics != "UNAVAILABLE") {
|
|
metricsList.length = 0
|
|
if(ANS_metrics.length == 0) {
|
|
metricsList.push(`<div style='font-size: 24px; margin-top: 180px;' class='yellow t-center'>
|
|
<p><i class="fa-solid fa-warning"></i> Aucune WebMetrik n'a été ajoutée</p>
|
|
</div>`)
|
|
}
|
|
ANS_metrics.forEach((metric) => {
|
|
const metricComponent = new Metric({
|
|
properties: metric,
|
|
Component: metrics,
|
|
View: View
|
|
})
|
|
metricsList.push(metricComponent.generateHTML())
|
|
|
|
metricsComponent.push(metricComponent)
|
|
})
|
|
metricsDiv.innerHTML = metricsList.join("")
|
|
metricsNumber.innerHTML = ANS_metrics.length
|
|
|
|
for(const metric of metricsComponent) {
|
|
metric.loadScript()
|
|
}
|
|
} else {
|
|
metricsDiv.innerHTML = `<div style='font-size: 24px; margin-top: 180px;' class='t-center'>
|
|
<p><i class="fa-solid fa-warning"></i> Une erreur est survenue lors du chargement des WebMetrik</p>
|
|
</div>`
|
|
}
|
|
})
|
|
|
|
// Generate a pop to add metrics with 3 settings, the adress, the port, the name of the metrics and the key to authentificate
|
|
|
|
addButton.addEventListener("click", () => {
|
|
|
|
View.createPopup({
|
|
title: "Ajouter un WebMetrik",
|
|
content: `
|
|
<div class='mt-add'>
|
|
<p>Adresse</p>
|
|
<input class='field' type="text" id="mt-add-address" placeholder="Adresse">
|
|
<p>Port</p>
|
|
<input class='field' type="number" id="mt-add-port" placeholder="Port">
|
|
<p>Nom</p>
|
|
<input class='field' type="text" id="mt-add-name" placeholder="Nom">
|
|
<p>Clé d'authentification</p>
|
|
<input class='field' type="password" id="mt-add-key" placeholder="Clé d'authentification">
|
|
<span id='mtaddinfo'></span>
|
|
<button id='mt-add-btn' class='btn blue'><span><i class='fa fa-add'></i> Ajouter</span></button>
|
|
</div>
|
|
`
|
|
})
|
|
|
|
const addBtn = document.getElementById("mt-add-btn")
|
|
const address = document.getElementById("mt-add-address")
|
|
const port = document.getElementById("mt-add-port")
|
|
const name = document.getElementById("mt-add-name")
|
|
const key = document.getElementById("mt-add-key")
|
|
const infoMTAdd = new TextResponse("mtaddinfo")
|
|
|
|
|
|
addBtn.addEventListener("click", () => {
|
|
|
|
// Check if all fields are filled
|
|
|
|
if(address.value == "" || port.value == "" || name.value == "" || key.value == "") {
|
|
infoMTAdd.err("Veuillez remplir tous les champs")
|
|
return
|
|
}
|
|
|
|
post("MT_ADD", {
|
|
address: address.value,
|
|
port: port.value,
|
|
name: name.value,
|
|
key: key.value
|
|
}).then((res) => {
|
|
if(res != "ERROR") {
|
|
View.destroyPopup()
|
|
loadMetrics()
|
|
} else {
|
|
View.createPopup({
|
|
title: "Erreur",
|
|
content: `<p class='yellow'><i class='fa fa-warning'></i> Une erreur est survenue lors de l'ajout de la WebMetrik</p>`
|
|
})
|
|
}
|
|
})
|
|
})
|
|
|
|
})
|
|
|
|
|
|
}
|
|
})
|
|
|
|
|
|
|
|
/*
|
|
<div style='font-size: 24px; margin-top: 180px;' class='t-center'>
|
|
<p><i class="fa-solid fa-rotate fa-spin"></i> Chargement en cours ...</p>
|
|
</div>*/ |