Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 12x | // For modules ( .mjs ), we need to export the function
import { ElementCollection } from "./ElementCollection.mjs";
import {Endpoints} from "./Endpoints.mjs";
window.createMember = createMember;
export function createMember() {
let response = "";
let nameElement = ElementCollection.getMemberCreateModalNameField();
let adminNumberElement = ElementCollection.getMemberCreateModalAdminNumberField();
let gymProgramsElement = ElementCollection.getMemberCreateModalGymProgramsField();
let modalMessageElement = ElementCollection.getMemberCreateModalMessage();
// Assumes comma-separated list
let gymPrograms = gymProgramsElement.value.split(",").map(item => item.trim());
if (gymPrograms.length === 1 && gymPrograms[0] === "")
{
gymPrograms = [];
}
// Collecting data from the form
const jsonData = {
name: nameElement.value.trim(),
adminNumber: adminNumberElement.value.trim(),
gymPrograms: gymPrograms
};
// Basic validation
if (!jsonData.name || !jsonData.adminNumber) {
modalMessageElement.innerHTML = 'All fields are required!';
modalMessageElement.setAttribute("class", "text-danger");
return;
}
// Sending POST request to backend API
const request = new XMLHttpRequest();
request.open("POST", Endpoints.MEMBER_CREATE_ENDPOINT, true);
request.setRequestHeader('Content-Type', 'application/json');
request.onload = function ()
{
let success = request.status === 200;
response = JSON.parse(request.responseText);
// Check for successful creation
// TODO: Change backend to return 201 status code
if (success){
modalMessageElement.innerHTML = `Added Member: ${jsonData.name}!`;
modalMessageElement.setAttribute("class", "text-success");
// Reset form fields
nameElement.value = adminNumberElement.value = gymProgramsElement.value = '';
// Refresh page to show new member
// TODO: Implement function for re-fetching members
window.location.reload();
} else {
modalMessageElement.innerHTML = response.message || 'Unable to add member!';
modalMessageElement.setAttribute("class", "text-danger");
}
};
request.onerror = function () {
modalMessageElement.innerHTML = 'An error occurred!';
modalMessageElement.setAttribute("class", "text-danger");
};
// Sending JSON data to the backend
request.send(JSON.stringify(jsonData));
} |