-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
93 lines (82 loc) · 2.92 KB
/
app.js
File metadata and controls
93 lines (82 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
const members = [
{ name: 'Mukesh Ravichandran', cwid: '50380788' },
{ name: 'Trisha Harjono', cwid: '50386141' },
{ name: 'Jaahnavi Garikipati', cwid: '50393610' },
{ name: 'Tejaswini Damodara Kannan', cwid: '50380778' },//All Members
];
const teamName = "The Excel-erators";
// Google Form field entry IDs
const entryIDs = {
team: 'entry.500000070',
member: 'entry.721958901',
cwid: 'entry.1522950107',
activity: 'entry.1322466239',
duration: 'entry.737958173'
};
const formBaseURL = 'https://docs.google.com/forms/d/e/1FAIpQLSfhLBkLnU8xGQouW4lr_ALblEuij9aCkgYad5F87T06XBJUvg/viewform';
function getSelectedMember() {
const idx = document.getElementById('member').value;
return members[idx];
}
function updateProfile(idx) {
document.getElementById('teamName').textContent = teamName;
document.getElementById('cwid').textContent = members[idx].cwid;
}
function buildPrefillURL(profile, activity, duration) {
const params = new URLSearchParams();
params.append(entryIDs.team, teamName);
params.append(entryIDs.member, profile.name);
params.append(entryIDs.cwid, profile.cwid);
params.append(entryIDs.activity, activity);
params.append(entryIDs.duration, duration);
return `https://docs.google.com/forms/d/e/1FAIpQLSfhLBkLnU8xGQouW4lr_ALblEuij9aCkgYad5F87T06XBJUvg/viewform?pli=1&${params.toString()}`;
}
function saveRecentLog(log) {
let logs = JSON.parse(localStorage.getItem('fitober_logs') || '[]');
logs.unshift(log);
logs = logs.slice(0, 7);
localStorage.setItem('fitober_logs', JSON.stringify(logs));
renderRecentLogs();
}
function renderRecentLogs() {
const logs = JSON.parse(localStorage.getItem('fitober_logs') || '[]');
const ul = document.getElementById('recentLog');
ul.innerHTML = '';
logs.forEach(l => {
const li = document.createElement('li');
li.textContent = `${l.date} | ${l.member} | ${l.activity} (${l.duration} min)`;
ul.appendChild(li);
});
}
// Populate member dropdown
const memberSelect = document.getElementById('member');
members.forEach((m, i) => {
const opt = document.createElement('option');
opt.value = i;
opt.textContent = m.name;
memberSelect.appendChild(opt);
});
// Default to first member
memberSelect.value = 0;
updateProfile(0);
memberSelect.onchange = () => updateProfile(memberSelect.value);
document.getElementById('activityForm').onsubmit = function(e) {
e.preventDefault();
const idx = memberSelect.value;
const profile = members[idx];
const activity = document.getElementById('activity').value;
const duration = document.getElementById('duration').value;
if (!activity || !duration) return;
// Log locally
const date = new Date().toLocaleDateString('en-GB', { year:'numeric', month:'short', day:'2-digit' });
saveRecentLog({
date,
member: profile.name,
activity,
duration
});
// Open pre-filled form
const url = buildPrefillURL(profile, activity, duration);
window.open(url, '_blank');
};
renderRecentLogs();