forked from Adleraci/adlerka.top
Implement a bunch of stuff
This commit is contained in:
124
templates/adminActions.html
Normal file
124
templates/adminActions.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<script>
|
||||
function addActivationCodes() {
|
||||
const count = document.getElementById("activationCodeCount").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "add_activation_codes");
|
||||
data.append("count", count);
|
||||
|
||||
doAction(data, "Activation codes added Successfully!", "Activation codes addition failed.");
|
||||
}
|
||||
|
||||
async function listUsers() {
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "list_users");
|
||||
|
||||
const result = await doAction(data, "User list retrieved Successfully!", "User list retrieval failed.");
|
||||
|
||||
if (result && result.Status === "Success") {
|
||||
displayUserList(result.Users);
|
||||
}
|
||||
}
|
||||
|
||||
function displayUserList(users) {
|
||||
const tableContainer = document.getElementById("userListTable");
|
||||
tableContainer.innerHTML = ""; // Clear previous content
|
||||
|
||||
const table = document.createElement("table");
|
||||
table.border = "1";
|
||||
|
||||
// Create header row
|
||||
const headerRow = table.insertRow(0);
|
||||
for (const key in users[0]) {
|
||||
const th = document.createElement("th");
|
||||
th.appendChild(document.createTextNode(key));
|
||||
headerRow.appendChild(th);
|
||||
}
|
||||
|
||||
// Create data rows
|
||||
for (const user of users) {
|
||||
const dataRow = table.insertRow();
|
||||
for (const key in user) {
|
||||
const td = document.createElement("td");
|
||||
td.appendChild(document.createTextNode(user[key]));
|
||||
dataRow.appendChild(td);
|
||||
}
|
||||
}
|
||||
|
||||
tableContainer.appendChild(table);
|
||||
}
|
||||
|
||||
function listActivationCodes() {
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "list_activation_codes");
|
||||
|
||||
doAction(data, "Activation code list retrieved Successfully!", "Activation code list retrieval failed.");
|
||||
}
|
||||
|
||||
function deleteUser() {
|
||||
const userId = document.getElementById("userId").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "delete_user");
|
||||
data.append("user_id", userId);
|
||||
|
||||
doAction(data, "User deleted Successfully!", "User deletion failed.");
|
||||
}
|
||||
|
||||
function deleteActivationCode() {
|
||||
const activationCode = document.getElementById("activationCode").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "delete_activation_code");
|
||||
data.append("activation_code", activationCode);
|
||||
|
||||
doAction(data, "Activation code deleted Successfully!", "Activation code deletion failed.");
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="form-container" id="addActivationCodesForm">
|
||||
<h1>Add Activation Codes</h1>
|
||||
<form>
|
||||
<label for="activationCodeCount">Activation Code Count:</label>
|
||||
<input type="text" id="activationCodeCount" name="activationCodeCount" required>
|
||||
|
||||
<button type="button" onclick="addActivationCodes()">Add Activation Codes</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-container" id="listUsersForm">
|
||||
<h1>List Users</h1>
|
||||
<form>
|
||||
<button type="button" onclick="listUsers()">List Users</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-container" id="listActivationCodesForm">
|
||||
<h1>List Activation Codes</h1>
|
||||
<form>
|
||||
<button type="button" onclick="listActivationCodes()">List Activation Codes</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-container" id="deleteUserForm">
|
||||
<h1>Delete User</h1>
|
||||
<form>
|
||||
<label for="userId">User ID:</label>
|
||||
<input type="text" id="userId" name="userId" required>
|
||||
|
||||
<button type="button" onclick="deleteUser()">Delete User</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-container" id="deleteActivationCodeForm">
|
||||
<h1>Delete Activation Code</h1>
|
||||
<form>
|
||||
<label for="activationCode">Activation Code:</label>
|
||||
<input type="text" id="activationCode" name="activationCode" required>
|
||||
|
||||
<button type="button" onclick="deleteActivationCode()">Delete Activation Code</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- Centralized Status Message -->
|
||||
<p id="StatusMessage"></p>
|
@@ -1,13 +1,32 @@
|
||||
<div class="login-container">
|
||||
<script>
|
||||
function login() {
|
||||
const email = document.getElementById("email").value;
|
||||
const password = document.getElementById("password").value;
|
||||
doLogin(email, password);
|
||||
}
|
||||
|
||||
function doLogin(email, password) {
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "login");
|
||||
data.append("email", email);
|
||||
data.append("password", password);
|
||||
|
||||
doAction(data, "Login Successful!", "Login failed. Please check your credentials.");
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="form-container" id="loginForm">
|
||||
<h1>Login</h1>
|
||||
<form id="loginForm">
|
||||
<form>
|
||||
<label for="email">Email:</label>
|
||||
<input type="email" id="email" name="email" required>
|
||||
<input type="text" id="email" name="email" required>
|
||||
|
||||
<label for="password">Password:</label>
|
||||
<input type="password" id="password" name="password" required>
|
||||
|
||||
<button type="button" onclick="login()">Login</button>
|
||||
</form>
|
||||
<p id="statusMessage"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Centralized Status Message -->
|
||||
<p id="StatusMessage"></p>
|
58
templates/register.html
Normal file
58
templates/register.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<script>
|
||||
function register() {
|
||||
const firstName = document.getElementById("firstName").value;
|
||||
const lastName = document.getElementById("lastName").value;
|
||||
const nickname = document.getElementById("nickname").value;
|
||||
const email = document.getElementById("email").value;
|
||||
const password = document.getElementById("password").value;
|
||||
const minecraftNick = document.getElementById("minecraftNick").value;
|
||||
const activationToken = document.getElementById("activationToken").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "register");
|
||||
data.append("firstname", firstName);
|
||||
data.append("lastname", lastName);
|
||||
data.append("nickname", nickname);
|
||||
data.append("email", email);
|
||||
data.append("password", password);
|
||||
data.append("minecraftnick", minecraftNick);
|
||||
data.append("activation_token", activationToken);
|
||||
|
||||
doRegister(data);
|
||||
}
|
||||
|
||||
function doRegister(requestData) {
|
||||
doAction(requestData, "Registration Successful!", "Registration failed.");
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="form-container" id="registerForm">
|
||||
<h1>Register</h1>
|
||||
<form>
|
||||
<label for="firstName">First Name:</label>
|
||||
<input type="text" id="firstName" name="firstName" required>
|
||||
|
||||
<label for="lastName">Last Name:</label>
|
||||
<input type="text" id="lastName" name="lastName" required>
|
||||
|
||||
<label for="nickname">Nickname:</label>
|
||||
<input type="text" id="nickname" name="nickname" required>
|
||||
|
||||
<label for="email">Email:</label>
|
||||
<input type="text" id="email" name="email" required>
|
||||
|
||||
<label for="password">Password:</label>
|
||||
<input type="password" id="password" name="password" required>
|
||||
|
||||
<label for="minecraftNick">Minecraft Nick:</label>
|
||||
<input type="text" id="minecraftNick" name="minecraftNick" required>
|
||||
|
||||
<label for="activationToken">Activation Token:</label>
|
||||
<input type="text" id="activationToken" name="activationToken" required>
|
||||
|
||||
<button type="button" onclick="register()">Register</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- Centralized Status Message -->
|
||||
<p id="StatusMessage"></p>
|
128
templates/userActions.html
Normal file
128
templates/userActions.html
Normal file
@@ -0,0 +1,128 @@
|
||||
<script>
|
||||
function changePassword() {
|
||||
const userId = document.getElementById("changeUserId").value;
|
||||
const newPassword = document.getElementById("changeNewPassword").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "change_password");
|
||||
data.append("user_id", userId);
|
||||
data.append("new_password", newPassword);
|
||||
|
||||
doChangePassword(data, "Password change Successful!", "Password change failed.");
|
||||
}
|
||||
|
||||
function doChangePassword(requestData, successMessage, failureMessage) {
|
||||
doAction(requestData, successMessage, failureMessage);
|
||||
}
|
||||
|
||||
function updateUserProfile() {
|
||||
const userId = document.getElementById("updateUserIdProfile").value;
|
||||
const firstName = document.getElementById("updateFirstName").value;
|
||||
const lastName = document.getElementById("updateLastName").value;
|
||||
const nickname = document.getElementById("updateNickname").value;
|
||||
const minecraftNick = document.getElementById("updateMinecraftNick").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "update_user_profile");
|
||||
data.append("user_id", userId);
|
||||
data.append("first_name", firstName);
|
||||
data.append("last_name", lastName);
|
||||
data.append("nickname", nickname);
|
||||
data.append("minecraft_nick", minecraftNick);
|
||||
|
||||
doAction(data, "Profile update Successful!", "Profile update failed.");
|
||||
}
|
||||
|
||||
async function getUserInfo() {
|
||||
const userId = document.getElementById("getUserInfoId").value;
|
||||
|
||||
const data = new URLSearchParams();
|
||||
data.append("action", "get_user_info");
|
||||
data.append("user_id", userId);
|
||||
|
||||
const result = await doAction(data, "User info retrieved Successfully!", "User info retrieval failed.");
|
||||
|
||||
if (result && result.Status === "Success") {
|
||||
displayUserInfo(result);
|
||||
}
|
||||
}
|
||||
|
||||
function displayUserInfo(userData) {
|
||||
const tableContainer = document.getElementById("userInfoTable");
|
||||
tableContainer.innerHTML = ""; // Clear previous content
|
||||
|
||||
const table = document.createElement("table");
|
||||
table.border = "1";
|
||||
|
||||
const headerRow = table.insertRow(0);
|
||||
for (const key in userData) {
|
||||
const th = document.createElement("th");
|
||||
th.appendChild(document.createTextNode(key));
|
||||
headerRow.appendChild(th);
|
||||
}
|
||||
|
||||
const dataRow = table.insertRow(1);
|
||||
for (const key in userData) {
|
||||
const td = document.createElement("td");
|
||||
td.appendChild(document.createTextNode(userData[key]));
|
||||
dataRow.appendChild(td);
|
||||
}
|
||||
|
||||
tableContainer.appendChild(table);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="form-container" id="changePasswordForm">
|
||||
<h1>Change Password</h1>
|
||||
<form>
|
||||
<label for="changeUserId">User ID:</label>
|
||||
<input type="text" id="changeUserId" name="changeUserId" required>
|
||||
|
||||
<label for="changeOldPassword">Old Password:</label>
|
||||
<input type="password" id="changeOldPassword" name="changeOldPassword" required>
|
||||
|
||||
<label for="changeNewPassword">New Password:</label>
|
||||
<input type="password" id="changeNewPassword" name="changeNewPassword" required>
|
||||
|
||||
<button type="button" onclick="changePassword()">Change Password</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-container" id="updateUserProfileForm">
|
||||
<h1>Update User Profile</h1>
|
||||
<form>
|
||||
<label for="updateUserIdProfile">User ID:</label>
|
||||
<input type="text" id="updateUserIdProfile" name="updateUserIdProfile" required>
|
||||
|
||||
<label for="updateFirstName">First Name:</label>
|
||||
<input type="text" id="updateFirstName" name="updateFirstName" required>
|
||||
|
||||
<label for="updateLastName">Last Name:</label>
|
||||
<input type="text" id="updateLastName" name="updateLastName" required>
|
||||
|
||||
<label for="updateNickname">Nickname:</label>
|
||||
<input type="text" id="updateNickname" name="updateNickname" required>
|
||||
|
||||
<label for="updateMinecraftNick">Minecraft Nick:</label>
|
||||
<input type="text" id="updateMinecraftNick" name="updateMinecraftNick" required>
|
||||
|
||||
<button type="button" onclick="updateUserProfile()">Update Profile</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-container" id="getUserInfoForm">
|
||||
<h1>Get User Info</h1>
|
||||
<form>
|
||||
<label for="getUserInfoId">User ID:</label>
|
||||
<input type="text" id="getUserInfoId" name="getUserInfoId" required>
|
||||
|
||||
<button type="button" onclick="getUserInfo()">Get User Info</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<button type="button" onclick="logout()">Logout</button>
|
||||
|
||||
<!-- Include other user action forms similarly -->
|
||||
|
||||
<!-- Centralized Status Message -->
|
||||
<p id="StatusMessage"></p>
|
Reference in New Issue
Block a user