From 377c3310e4a0cf1ea73f68a848cc1eaafaee4505 Mon Sep 17 00:00:00 2001 From: Raphix Date: Sat, 13 Jan 2024 19:20:11 +0100 Subject: [PATCH] =?UTF-8?q?Version=201.0.1=20-=20Fix=20de=20WebMetrics=20e?= =?UTF-8?q?t=20de=20l'=C3=A9dit=20utilisateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/metrics.js | 30 +++++++++++++++++++++++------- bin/users.js | 7 +++++-- package.json | 2 +- public/javascripts/basics.js | 12 +++++++++--- public/javascripts/metric.js | 8 +++++++- public/stylesheets/style.css | 5 +++++ 6 files changed, 50 insertions(+), 14 deletions(-) diff --git a/bin/metrics.js b/bin/metrics.js index a461b3b..a492baf 100644 --- a/bin/metrics.js +++ b/bin/metrics.js @@ -28,13 +28,17 @@ module.exports.getMetrics = function() { var processed = 0 + if(metrics.length == 0) { + resolve(metricsToReturn) + } + await metrics.forEach(async (metric) => { // Try to connect to the metric server with the key in query params named "privatekey" // If the connection is successful, we add the metric to the list of metrics to return const url = `http://${metric.address}:${metric.port}/metrics?privatekey=${metric.key}` - const res = await fetch(url, { + const fet = await fetch(url, { method: "GET", headers: { "Accept": "application/json", @@ -46,21 +50,33 @@ module.exports.getMetrics = function() { if(res) { metric.data = res metricsToReturn.push(metric) + processed++ } else { metric.data = "ERROR" metricsToReturn.push(metric) } + + if(processed == metrics.length) { + resolve(metricsToReturn) + } + + }).catch((err) => { + metric.data = "ERROR" + metricsToReturn.push(metric) + processed++ + if(processed == metrics.length) { + resolve(metricsToReturn) + } }) - processed++ + - if(processed == metrics.length) { - resolve(metricsToReturn) - } - - }) + + + + }) diff --git a/bin/users.js b/bin/users.js index 0861aeb..f45874d 100644 --- a/bin/users.js +++ b/bin/users.js @@ -328,6 +328,9 @@ module.exports.User = class { setPicture(file) { this.#sync() var pictureDir = __glob.USERS_IMAGES + path.sep + uuid.v4().toString() + ".png" + if(!fs.existsSync(__glob.USERS_IMAGES)) { + fs.mkdirSync(__glob.USERS_IMAGES) + } fs.writeFileSync(pictureDir, file) this.picture = pictureDir.replace(__glob.USERS_IMAGES + path.sep, "/users/") @@ -430,7 +433,7 @@ module.exports.editUser = function(settings) { ulog.step.init("edit_user", "Modification d'un utilisateur dans la base de donnée : " + settings.username) const user = this.fetchUsers().get(settings.username) if(user) { - console.log(settings) + if(settings.newusername && settings.newusername != settings.username) { if(this.getUser(settings.newusername)) { ulog.error("L'utilisateur existe déjà : " + settings.username) @@ -466,7 +469,7 @@ module.exports.editUser = function(settings) { } module.exports.editMySelf = function (settings, user) { - if(user.username == settings.actualUsername) { + if(user.username == settings.username) { if(settings.username == '') { ulog.error("Le nom d'utilisateur est manquant") return "USERNAME_MISSING" diff --git a/package.json b/package.json index 4abaaa8..faeac2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "neutral", - "version": "1.0.0", + "version": "1.0.1", "description": "Panel d'administration de Raphix", "main": "index.js", "scripts": { diff --git a/public/javascripts/basics.js b/public/javascripts/basics.js index 08ed476..37784f5 100644 --- a/public/javascripts/basics.js +++ b/public/javascripts/basics.js @@ -1221,10 +1221,16 @@ class Metric { const contentDiv = getID(`${this.properties.id}_content`) - for(const data of this.data) { - contentDiv.innerHTML += `

${data.description}

${data.name}

Valeur : ${data.value}

` - + if(this.data == "ERROR") { + contentDiv.innerHTML += `

Impossible de charger les données de la métrique

` + + } else { + for(const data of this.data) { + contentDiv.innerHTML += `

${data.description}

${data.name}

Valeur : ${data.value}

` + + } } + const deleteButton = getID(`${this.properties.id}_metricpower`) diff --git a/public/javascripts/metric.js b/public/javascripts/metric.js index 94b860c..1378214 100644 --- a/public/javascripts/metric.js +++ b/public/javascripts/metric.js @@ -42,8 +42,14 @@ metrics.createWindow(() => { }) metricsReq.then((ANS_metrics) => { + console.log(ANS_metrics) if(ANS_metrics != "UNAVAILABLE") { - metricsList.length = 0 + metricsList.length = 0 + if(ANS_metrics.length == 0) { + metricsList.push(`
+

Aucune WebMetrik n'a été ajoutée

+
`) + } ANS_metrics.forEach((metric) => { const metricComponent = new Metric({ properties: metric, diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index f95ea20..3df3413 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -1359,4 +1359,9 @@ a { border-radius: 10px; text-align: center; width: 100px; +} + +.metric-error { + + color: yellow; } \ No newline at end of file