Skip to content

Commit 0c2ea59

Browse files
Display Total Project Time
- Calculate and display the total time on a specific project
1 parent 3953ab2 commit 0c2ea59

3 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/index.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,9 @@ ipcMain.handle('quick-times-handler', async (req, data) => {
311311
case 'Specific':
312312
times = await getSpecificTimes(data.timeFrame);
313313
break;
314+
case 'Project':
315+
times = await getProjectTime(data.topicID, data.subtopicID, data.project);
316+
break;
314317
}
315318
if (times){
316319
const calcTime = await calculateTotalTime(times);
@@ -328,16 +331,19 @@ async function getAllQuickTimes(){
328331
}
329332

330333
async function getSpecificTimes(dayCount) {
331-
// Calculate the start date based on the dayCount
332334
const startDate = new Date();
333335
startDate.setDate(startDate.getDate() - (dayCount - 1));
334336
const formattedStartDate = startDate.toISOString().split('T')[0];
335337

336-
// Construct the SQL statement to fetch entries within the specified timeframe
337338
const sqlStatement = `SELECT * FROM clock WHERE date >= ?`;
338339
const params = [formattedStartDate];
339-
340-
// Execute the query
340+
const result = await databaseHandler('all', sqlStatement, params);
341+
return result;
342+
}
343+
344+
async function getProjectTime(topic, subtopic, project) {
345+
const sqlStatement = `SELECT * FROM clock WHERE topicID = ? AND subtopicID = ? AND project = ?`;
346+
const params = [topic, subtopic, project];
341347
const result = await databaseHandler('all', sqlStatement, params);
342348
return result;
343349
}
@@ -381,4 +387,4 @@ async function getProjects(){
381387
const params = [];
382388
const result = databaseHandler('all', sqlStatement, params);
383389
return result;
384-
}
390+
}

src/infoHandler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ async function getAllActiveSubtopics(){
2222

2323
async function getAllActiveProjects(){
2424
activeProjects = await api.projectHandler({request: 'Get'});
25-
populateRecentProjects();
25+
await populateRecentProjects();
2626
}

src/recentProjects.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
const projectListDiv_el = document.getElementById('projectListDiv');
22

3-
function populateRecentProjects(){
4-
console.log(activeTopics);
3+
async function populateRecentProjects(){
54

6-
activeProjects.forEach(element => {
5+
for (const element of activeProjects){
76
const projectItem_el = document.createElement('div');
87
projectItem_el.classList.add('project-item-div');
98

109
const projectName_el = document.createElement('p');
1110
projectName_el.textContent = element.project;
1211

1312
const projectTimeText_el = document.createElement('p');
14-
projectTimeText_el.textContent = 'NA YET';
13+
const projectTime = await api.quickTimesHandler({request: 'Project', topicID: element.topicID, subtopicID: element.subtopicID, project: element.project})
14+
projectTimeText_el.textContent = projectTime;
1515

1616
const projectTopicText_el = document.createElement('h5');
1717
const topicName = findTopicById(element.topicID);
@@ -25,7 +25,7 @@ function populateRecentProjects(){
2525
projectItem_el.append(projectName_el, projectTimeText_el, projectTopicText_el, projectSubtopicText_el);
2626

2727
projectListDiv_el.append(projectItem_el);
28-
});
28+
}
2929
}
3030

3131
function findTopicById(id) {

0 commit comments

Comments
 (0)