left to add restart button, view user button, fix the UI and fix the way dates are generated in the db

This commit is contained in:
QkoSad
2024-11-20 22:52:11 +02:00
commit 06f91a264d
988 changed files with 576669 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
import { fileURLToPath } from "url";
import { connection } from "./index.js";
// Create the connection to database
// get data for users between 2 dates
async function getTopTen() {
let filteredResults;
let startDate = "2021-01-01";
let endDate = "2029-01-01";
if (req.query.to) startDate = req.query.to;
if (req.query.from) startDate = req.query.from;
try {
const [results, fields] = await connection.query(
"SELECT t.user,t.time,t.date,t.project \
FROM Timelog t\
WHERE t.date BETWEEN ? AND ? ;",
[startDate, endDate],
);
filteredResults = results;
console.log(filteredResults);
} catch (err) {
console.log(err);
}
if (req.query.filterBy) filterBy = req.query.filterBy;
// how much time each user has logged during that time period
if (filterBy === "user") {
let users = {};
for (let i = 0; i < filteredResults.length; i++) {
if (filteredResults[i].user in users) {
users[filteredResults[i].user] += filteredResults[i].time;
} else {
users[filteredResults[i].user] = filteredResults[i].time;
}
}
// Create items array
let items = Object.keys(users).map(function (key) {
return [key, users[key]];
});
// Sort the array based on the second element
items.sort(function (first, second) {
return second[1] - first[1];
});
// Create a new array with only the first 10 items
return items.slice(0, 10);
}
}
export { getTopTen };
// SELECT u.f_name,u.l_name,u.mail,p.name,t.time,t.date
// FROM Timelog t
// INNER JOIN Project p ON p.id=t.project
// INNER JOIN User u ON u.id=t.user
// ORDER BY time
// LIMIT 10 OFFSET 10