|
|
|
@ -143,10 +143,12 @@ const populateProfiles = (noTable?: boolean): void => _get("/getProfiles", null,
|
|
|
|
|
if (this.readyState == 4 && this.status == 200) {
|
|
|
|
|
const profileList = document.getElementById('profileList');
|
|
|
|
|
profileList.textContent = '';
|
|
|
|
|
availableProfiles = [];
|
|
|
|
|
availableProfiles = [this.response["default_profile"]];
|
|
|
|
|
for (let name in this.response) {
|
|
|
|
|
if (name != availableProfiles[0]) {
|
|
|
|
|
availableProfiles.push(name);
|
|
|
|
|
if (!noTable) {
|
|
|
|
|
}
|
|
|
|
|
if (!noTable && name != "default_profile") {
|
|
|
|
|
const profile: Profile = {
|
|
|
|
|
Admin: this.response[name]["admin"],
|
|
|
|
|
LibraryAccess: this.response[name]["libraries"],
|
|
|
|
@ -154,16 +156,28 @@ const populateProfiles = (noTable?: boolean): void => _get("/getProfiles", null,
|
|
|
|
|
};
|
|
|
|
|
profileList.innerHTML += `
|
|
|
|
|
<td nowrap="nowrap" class="align-middle"><strong>${name}</strong></td>
|
|
|
|
|
<td nowrap="nowrap" class="align-middle"><input class="form-check-input" type="radio" name="defaultProfile" onclick="setDefaultProfile('${name}')" ${(name == availableProfiles[0]) ? "checked" : ""}></td>
|
|
|
|
|
<td nowrap="nowrap" class="align-middle">${profile.FromUser}</td>
|
|
|
|
|
<td nowrap="nowrap" class="align-middle">${profile.Admin ? "Yes" : "No"}</td>
|
|
|
|
|
<td nowrap="nowrap" class="align-middle">${profile.LibraryAccess}</td>
|
|
|
|
|
<td nowrap="nowrap" class="align-middle"><button class="btn btn-outline-danger" onclick="deleteProfile('${name}')">Delete</button></td>
|
|
|
|
|
<td nowrap="nowrap" class="align-middle"><button class="btn btn-outline-danger" id="defaultProfile_${name}" onclick="deleteProfile('${name}')">Delete</button></td>
|
|
|
|
|
`;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const setDefaultProfile = (name: string): void => _post("/setDefaultProfile", { "name": name }, function (): void {
|
|
|
|
|
if (this.readyState == 4) {
|
|
|
|
|
if (this.status != 200) {
|
|
|
|
|
(document.getElementById(`defaultProfile_${availableProfiles[0]}`) as HTMLInputElement).checked = true;
|
|
|
|
|
(document.getElementById(`defaultProfile_${name}`) as HTMLInputElement).checked = false;
|
|
|
|
|
} else {
|
|
|
|
|
generateInvites();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const deleteProfile = (name: string): void => _post("/deleteProfile", { "name": name }, function (): void {
|
|
|
|
|
if (this.readyState == 4 && this.status == 200) {
|
|
|
|
|
populateProfiles();
|
|
|
|
@ -224,10 +238,11 @@ function storeProfile(): void {
|
|
|
|
|
addAttr(button, "btn-primary");
|
|
|
|
|
rmAttr(button, "btn-success");
|
|
|
|
|
button.disabled = false;
|
|
|
|
|
populateProfiles();
|
|
|
|
|
userDefaultsModal.hide();
|
|
|
|
|
|
|
|
|
|
}, 1000);
|
|
|
|
|
populateProfiles();
|
|
|
|
|
generateInvites();
|
|
|
|
|
} else {
|
|
|
|
|
if ("error" in this.response) {
|
|
|
|
|
button.textContent = this.response["error"];
|
|
|
|
|