working demo

This commit is contained in:
Siwat Sirichai 2024-05-05 18:44:40 +07:00
parent b194d2031d
commit a8de581c09
6 changed files with 216 additions and 27 deletions

View file

@ -50,45 +50,77 @@
}
</style>
<div class="student-box">
<div class="inner-box">
<h2>Student Information</h2>
<p><span id="student-name">Name:</span> </p>
<p><span id="student-surname">Surname:</span> </p>
<p><span id="student-email">Email:</span> </p>
<body>
<div id="modal" style="display: none; position: fixed; z-index: 1; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(0,0,0,0.4);">
<div style="background-color: #fefefe; margin: 20% auto; padding: 20px; border: 1px solid #888; width: 50%; border-radius: 10px; box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);">
<span id="close" style="color: #aaa; float: right; font-size: 28px; font-weight: bold; cursor: pointer;">&times;</span>
<p id="modal-text" style="font-size: 18px; color: #333;"></p>
</div>
</div>
<div class="linked-parent">
<h2>Linked Parent</h2>
<p><span id="linked-parent-info"></span></p>
</div>
<button id="generate-token-btn">Generate Parent Link Token</button>
<a href="/selfservice/api/logout" style="text-decoration: none;">
<button id="logout-btn">Logout</button>
</a>
</div>
<div class="student-box">
<div class="inner-box">
<h2>Student Information</h2>
<p><span id="student-name">Name:</span> </p>
<p><span id="student-surname">Surname:</span> </p>
<p><span id="student-email">Email:</span> </p>
</div>
<div class="linked-parent">
<h2>Linked Parent</h2>
<p><span id="linked-parent-info"></span></p>
</div>
<button id="generate-token-btn">Generate Parent Link Token</button>
<a href="/selfservice/api/logout" style="text-decoration: none;">
<button id="logout-btn">Logout</button>
</a>
</div>
</body>
<script>
// Get student information on page load
// Student information is at /selfservice/api/student/${upn}
// UPN can be obtained from /selfservice/api/whoami
$(document).ready(function() {
$.get('/selfservice/api/whoami')
.done(function(response) {
$.get(`/selfservice/api/student/${response.upn}`)
const upn = response.upn;
$.get(`/selfservice/api/student/${upn}`)
.done(function(student) {
$('#student-name').text(`Name: ${student.first_name}`);
$('#student-surname').text(`Surname: ${student.last_name}`);
$('#student-email').text(`Email: ${student.username}`);
$('#linked-parent-info').text(student.primary_parent ? `Email: ${student.primary_parent}` : 'No linked parent');
})
.fail(function() {
alert('Failed to get student information');
showModal('Session expired, please login again');
setTimeout(() => {
window.location.href = '/selfservice';
}, 1000);
});
// Add click event handler to the "Generate Parent Link Token" button
$('#generate-token-btn').click(function() {
$.get(`/selfservice/api/student/${upn}/pairing-code`)
.done(function(pairingCode) {
showModal(`Your pairing code is: ${pairingCode}`);
})
.fail(function() {
showModal('Failed to generate pairing code');
});
});
})
.fail(function() {
alert('Failed to get user information');
showModal('Session expired, please login again');
setTimeout(() => {
window.location.href = '/selfservice';
}, 1000);
});
function showModal(text) {
$('#modal-text').text(text);
$('#modal').show();
}
$('#close').click(function() {
$('#modal').hide();
});
});
</script>