Version 0.7.1 - Ajout des logs
This commit is contained in:
@ -18,6 +18,7 @@ const __glob = {
|
||||
NODES: root + path.sep + "data" + path.sep + "nodes.json",
|
||||
README: root + path.sep + "README.md",
|
||||
PLAYLIST: root + path.sep + "data" + path.sep + "playlist.json",
|
||||
LOGS: root + path.sep + "src" + path.sep + "modules" + path.sep + "logs"
|
||||
};
|
||||
|
||||
const webroot = __glob.WEB_DIR + path.sep
|
||||
|
@ -743,7 +743,7 @@ module.exports.updateMusicState = function (client, action) {
|
||||
data["isOnline"] = false
|
||||
}
|
||||
|
||||
clog.log("Actualisation de tous les clients - Titre : " + currentTitle + " - Loop : " + data.loop + " - Shuffle : " + data.shuffle + " - Playing : " + data.playing + " - Volume : " + Math.trunc(data.volume / 10) )
|
||||
clog.log("Actualisation Clients - Titre : " + currentTitle + " - Loop : " + data.loop + " - Shuffle : " + data.shuffle + " - Playing : " + data.playing + " - Volume : " + Math.trunc(data.volume / 10) )
|
||||
return data
|
||||
|
||||
|
||||
|
@ -8,7 +8,8 @@ const wlog = new LogType("Web")
|
||||
const subplayer = require(__glob.SUBPLAYER);
|
||||
const { List } = require("./sub-list")
|
||||
const subplaylist = require("./sub-playlist")
|
||||
|
||||
var fs = require("fs")
|
||||
var path = require("path")
|
||||
|
||||
module.exports.WebServer = class {
|
||||
|
||||
@ -213,6 +214,33 @@ function IOConnection(io) {
|
||||
})
|
||||
|
||||
|
||||
GetRequest(io, socket, "LOGS", () => {
|
||||
var cookies = socket.handshake.headers.cookie
|
||||
cookies = cook.parse(cookies)
|
||||
var token = cookies.token
|
||||
|
||||
const user = auth.getUser(token)
|
||||
const logs_data = new Array()
|
||||
|
||||
if(user.admin == true) {
|
||||
|
||||
const logs_folder = fs.readdirSync(__glob.LOGS)
|
||||
|
||||
for(var log of logs_folder) {
|
||||
|
||||
logs_data.push({"name":log, "value": fs.readFileSync(__glob.LOGS + path.sep + log).toString()})
|
||||
}
|
||||
|
||||
socket.emit("ANSWER/GET/LOGS", logs_data)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -269,6 +297,8 @@ function IOConnection(io) {
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
GetRequest(io, socket, "SPECIAL/MJ", () => {
|
||||
|
||||
|
@ -21,7 +21,7 @@ function get(request) {
|
||||
socket.once("ANSWER/GET/" + request, (answer) => {
|
||||
|
||||
console.log("Réponse pour la requête : " + request)
|
||||
|
||||
|
||||
resolve(answer)
|
||||
|
||||
})
|
||||
|
@ -13,9 +13,8 @@ const backward = document.getElementById("backward")
|
||||
const play = document.getElementById("play")
|
||||
const forward = document.getElementById("forward")
|
||||
|
||||
const settings_dialog = document.getElementById("SETTINGS_dialog")
|
||||
const settings_close = document.getElementById("SETTINGS_close")
|
||||
const settingsBtn = document.getElementById("settingsBtn")
|
||||
|
||||
const settingsBtn = document.getElementById("settings_btn")
|
||||
|
||||
|
||||
|
||||
@ -109,10 +108,6 @@ socket.on("DO_UPDATE_PLAYLIST", () => {
|
||||
get("PLAYLIST")
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
get("PLAYLIST")
|
||||
|
||||
socket.on("ANSWER/GET/PLAYLIST", (data) => {
|
||||
@ -644,10 +639,7 @@ disconnect.addEventListener("click", () => {
|
||||
})
|
||||
|
||||
|
||||
/*settingsBtn.addEventListener("click", () => {
|
||||
|
||||
settings_dialog.showModal()
|
||||
})*/
|
||||
|
||||
reportBtn.addEventListener("click", () => {
|
||||
|
||||
@ -678,10 +670,6 @@ shuffle.addEventListener("click", () => {
|
||||
})
|
||||
|
||||
|
||||
settings_close.addEventListener("click",() => {
|
||||
|
||||
settings_dialog.close()
|
||||
})
|
||||
|
||||
var durationAll = 0
|
||||
var durationProgress = 0
|
||||
@ -697,6 +685,8 @@ durationBar.addEventListener("change", () => {
|
||||
|
||||
userInfo.then(user => {
|
||||
|
||||
settingsBtn.style.display = "none"
|
||||
|
||||
var betastar = ""
|
||||
|
||||
if(user.beta) {
|
||||
@ -704,6 +694,11 @@ userInfo.then(user => {
|
||||
betastar = "<p class='beta'>BETA</p>"
|
||||
}
|
||||
|
||||
if(user.admin == true) {
|
||||
|
||||
settingsBtn.style.display = "flex"
|
||||
}
|
||||
|
||||
userInfoDiv.innerHTML = "<div class='INDEX_userInfo_name'><p class='INDEX_gbname'>" + user.user.global_name + "</p><p class='INDEX_usrname'>" + user.user.username + "</p></div><div class='INDEX_picture'><img src='https://cdn.discordapp.com/avatars/" + user.user.id + "/" + user.user.avatar + "'>" + betastar + "</div>"
|
||||
|
||||
|
||||
|
165
src/web/public/javascript/__settings_script.js
Normal file
165
src/web/public/javascript/__settings_script.js
Normal file
@ -0,0 +1,165 @@
|
||||
settingsBtn.addEventListener("click", () => {
|
||||
|
||||
mainView.innerHTML = `
|
||||
<div class="SETTINGS">
|
||||
<div class='ssidebar'>
|
||||
<div id="settings_logs" class="sside_line"><i class="fa-solid fa-newspaper"></i> Logs</div>
|
||||
<div id="settings_connexion" class="sside_line"><i class="fa-solid fa-tower-cell"></i> Connexions</div>
|
||||
<div id="settings_users" class="sside_line"><i class="fa-solid fa-people-group"></i> Utilisateurs</div>
|
||||
</div>
|
||||
<div id="settings_content" class='SETTINGS_content'>
|
||||
<div class=""><i class="fa fa-search"></i> Logs</div>
|
||||
</div>
|
||||
</div>
|
||||
`
|
||||
|
||||
const settings_logs = document.getElementById("settings_logs")
|
||||
const settings_connexion = document.getElementById("settings_connexion")
|
||||
const settings_users = document.getElementById("settings_users")
|
||||
const settings_content = document.getElementById("settings_content")
|
||||
|
||||
loadLogs()
|
||||
|
||||
settings_logs.addEventListener("click", () => {
|
||||
loadLogs()
|
||||
})
|
||||
|
||||
settings_connexion.addEventListener("click", () => {
|
||||
loadConnexion()
|
||||
})
|
||||
|
||||
settings_users.addEventListener("click", () => {
|
||||
loadUsers()
|
||||
})
|
||||
|
||||
settings_logs.style.color = "white"
|
||||
|
||||
function loadLogs() {
|
||||
settings_content.innerHTML = `
|
||||
<select id="logs_selection">
|
||||
<option>Test</option>
|
||||
<option>Test</option>
|
||||
<option>Test</option>
|
||||
</select>
|
||||
</div>
|
||||
<div id="logs_content" class="logs_content">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
`
|
||||
|
||||
const logs_selection = document.getElementById("logs_selection")
|
||||
const logs_content = document.getElementById("logs_content")
|
||||
|
||||
const logs_data = get("LOGS")
|
||||
|
||||
logs_data.then(data => {
|
||||
|
||||
|
||||
var optionToPush = new Array()
|
||||
for(var log of data) {
|
||||
optionToPush.push("<option>" + log.name + "</option>")
|
||||
}
|
||||
|
||||
logs_selection.innerHTML = optionToPush.reverse().join("")
|
||||
|
||||
for(var log of data) {
|
||||
|
||||
if(logs_selection.value == log.name) {
|
||||
|
||||
var logToPush = new Array()
|
||||
|
||||
|
||||
|
||||
for(var line of log.value.split("\n")) {
|
||||
|
||||
line.toString()
|
||||
|
||||
|
||||
line = line.replace("[INFO]", "<span style='color: #41f2ff !important;'>[INFO]</span>")
|
||||
.replace("[ERROR]", "<span style='color: #ff3232;'>[ERROR]</span>")
|
||||
.replace("[WARN]", "<span style='color: #ffea00;'>[WARN]</span>")
|
||||
.replace("[FATAL]", "<span style='color: red;'>[FATAL]</span>")
|
||||
.replace("[STEP]", "<span style='color: #ff6bf5;'>[STEP]</span>");
|
||||
|
||||
logToPush.push("<p class='log_line'>" +line+ "</p>")
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
logs_content.innerHTML = logToPush.join("")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
logs_selection.addEventListener("change", () => {
|
||||
|
||||
for(var log of data) {
|
||||
|
||||
if(logs_selection.value == log.name) {
|
||||
|
||||
var logToPush = new Array()
|
||||
|
||||
for(var line of log.value.split("\n")) {
|
||||
|
||||
line.toString()
|
||||
|
||||
|
||||
line = line.replace("[INFO]", "<span style='color: #41f2ff !important;'>[INFO]</span>")
|
||||
.replace("[ERROR]", "<span style='color: #ff3232;'>[ERROR]</span>")
|
||||
.replace("[WARN]", "<span style='color: #ffea00;'>[WARN]</span>")
|
||||
.replace("[FATAL]", "<span style='color: red;'>[FATAL]</span>")
|
||||
.replace("[STEP]", "<span style='color: #ff6bf5;'>[STEP]</span>");
|
||||
|
||||
|
||||
|
||||
logToPush.push("<p class='log_line'>" + line + "</p>")
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
logs_content.innerHTML = logToPush.join("")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function loadConnexion() {
|
||||
settings_content.innerHTML = `
|
||||
<p>Connexions</p>
|
||||
`
|
||||
|
||||
}
|
||||
|
||||
function loadUsers() {
|
||||
settings_content.innerHTML = `
|
||||
<p>Users</p>
|
||||
`
|
||||
|
||||
}
|
||||
|
||||
|
||||
const buttons = document.querySelectorAll(".sside_line");
|
||||
|
||||
buttons.forEach(button => {
|
||||
button.addEventListener("click", function () {
|
||||
buttons.forEach(btn => {
|
||||
if (btn === button) {
|
||||
btn.style.color = "white";
|
||||
} else {
|
||||
btn.style.color = "";
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
|
@ -442,33 +442,7 @@ p {
|
||||
|
||||
/*SETTINGS*/
|
||||
|
||||
.SETTINGS_dialog {
|
||||
|
||||
width: 40vw;
|
||||
height: 25vw;
|
||||
padding: 0;
|
||||
background: linear-gradient(90deg, #515151 0%, #2e2e2e 100%);
|
||||
border: none;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.SETTINGS_content {
|
||||
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-direction: row;
|
||||
|
||||
}
|
||||
|
||||
.ssidebar {
|
||||
width: 12vw;
|
||||
position: sticky;
|
||||
height: 25vw;
|
||||
background-color: #2d2d2d;
|
||||
border-radius: 12px 0 0 12px;
|
||||
display: flex; /* Ajout : pour aligner les éléments verticalement à l'intérieur */
|
||||
flex-direction: column; /* Ajout : pour aligner les éléments verticalement à l'intérieur */
|
||||
}
|
||||
|
||||
|
||||
.third-join {
|
||||
@ -563,24 +537,7 @@ p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.SETTINGS_close {
|
||||
color: red;
|
||||
background-color: transparent;
|
||||
border-radius: 50vw;
|
||||
border-color: red;
|
||||
border-style: solid;
|
||||
padding: 5px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
transition: all 0.2s ease 0s;
|
||||
}
|
||||
|
||||
.SETTINGS_close:hover {
|
||||
|
||||
color: white;
|
||||
background-color: red;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
|
||||
@ -1031,4 +988,65 @@ p {
|
||||
.ppTile {
|
||||
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
/*SETTINGS*/
|
||||
|
||||
.SETTINGS_content {
|
||||
|
||||
width: 100%;
|
||||
margin-left: 2%;
|
||||
border-left: solid 1px #515151;
|
||||
padding: 2%;
|
||||
overflow: auto;
|
||||
|
||||
}
|
||||
|
||||
.ssidebar {
|
||||
width: 20%;
|
||||
height: 100%;
|
||||
display: flex; /* Ajout : pour aligner les éléments verticalement à l'intérieur */
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.SETTINGS {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 64vh;
|
||||
|
||||
}
|
||||
|
||||
.sside_line {
|
||||
|
||||
width: 100%;
|
||||
color: rgba(255, 255, 255, 0.719);
|
||||
text-align: center;
|
||||
padding: 10%;
|
||||
font-size: 22px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#logs_selection {
|
||||
|
||||
width: 100%;
|
||||
border-radius: 12px;
|
||||
padding: 1%;
|
||||
}
|
||||
|
||||
.logs_content {
|
||||
|
||||
margin-top: 50px;
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.log_line {
|
||||
|
||||
width: 100%;
|
||||
}
|
@ -4,6 +4,8 @@ var path = require("path")
|
||||
var auth = require("../../modules/sub-auth")
|
||||
var log = require("../../modules/sub-log")
|
||||
var uuid = require("uuid")
|
||||
var fs = require("fs");
|
||||
const { __glob, __web } = require('../../modules/global-variables');
|
||||
|
||||
const wlog = log.getInstance("Web")
|
||||
const alog = log.getInstance("Authentification")
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div id="userInfoglobal">
|
||||
<div class="INDEX_userInfo" id="userInfo"></div>
|
||||
<div class="INDEX_userPopup" id="userPopup">
|
||||
<!--div id="settingsBtn" class="INDEX_line"><i class="fa-solid fa-wrench"></i> Paramètres</div>-->
|
||||
|
||||
<div id="reportBtn" class="INDEX_line"><i class="fa-solid fa-bug"></i> Rapport</div>
|
||||
<div id="restartBtn" class="INDEX_line"><i class="fa-solid fa-power-off"></i> Redémarrer</div>
|
||||
<a class="INDEX_signout" href="/internal/logout"><i class="fa fa-sign-out " aria-hidden="true"></i> Déconnexion</a>
|
||||
@ -33,6 +33,10 @@
|
||||
|
||||
<p><i class="fa fa-search"></i> Rechercher</p>
|
||||
</div>
|
||||
<div id="settings_btn" class="pSearch checker">
|
||||
|
||||
<p><i class="fa fa-gear"></i> Paramètres</p>
|
||||
</div>
|
||||
<hr style="color: white;">
|
||||
<div class="playlist-content" id="playlist-content">
|
||||
|
||||
@ -58,8 +62,6 @@
|
||||
<%- welcome %>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -110,32 +112,6 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<dialog class="SETTINGS_dialog" id="SETTINGS_dialog">
|
||||
<div class="SETTINGS_content">
|
||||
<div class="ssidebar">
|
||||
<h2 style=" padding: 1vw; position: absolute;" class="dialogTitle"><i class="fa fa-wrench"></i> Paramètres</h2>
|
||||
<div class="ssidebar_content">
|
||||
<div class="ssidebar_line"><i class="fa-solid fa-newspaper"></i> Logs</div>
|
||||
<div class="ssidebar_line"><i class="fa-solid fa-tower-cell"></i> Connexions</div>
|
||||
<div class="ssidebar_line"><i class="fa-solid fa-people-group"></i> Gestion d'accès</div>
|
||||
<div class="ssidebar_line"><i class="fa-solid fa-shield"></i> Bêta</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="scontent">
|
||||
<div class="slineclose">
|
||||
|
||||
<button id="SETTINGS_close" class="SETTINGS_close"><i class="fa-solid fa-xmark"></i></button>
|
||||
</div>
|
||||
|
||||
<p style="color: red; font-size: 72px; text-align: center; font-family: 'Gunship', sans-serif;" >NOT WORKING</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<dialog class="report_dialog" id="report_dialog">
|
||||
<div class="rlineclose">
|
||||
<p class="rtitle"><i class="fa fa-bug"></i> Rapport de bug</p>
|
||||
@ -159,6 +135,7 @@
|
||||
<script src="/socket.io/socket.io.js"></script>
|
||||
<script src="/javascript/IO.js"></script>
|
||||
<script src="/javascript/__index_script.js"></script>
|
||||
<script src="/javascript/__settings_script.js"></script>
|
||||
<script defer src="https://use.fontawesome.com/releases/v6.4.2/js/all.js" crossorigin="anonymous"></script>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
||||
</body>
|
||||
|
Reference in New Issue
Block a user