feat: Implement admin dashboard and page collection

This commit introduces a new admin dashboard and a page collection feature. The admin dashboard allows for managing KTP data, including viewing details and exporting data. The page collection provides a structure for organizing different pages within the application.

The following files were added:

- `dashboard-admin-ktp/index.html`: HTML structure for the admin dashboard.
- `dashboard-admin-ktp/script.js`: JavaScript logic for the admin dashboard.
- `dashboard-admin-ktp/style.css`: Styling for the admin dashboard.
- `page-collection/index.html`: HTML structure for a sample page collection.
- `page-collection/script.js`: JavaScript logic for the sample page collection.
- `page-collection/style.css`: Styling for the sample page collection.
- `design-styles.json`: JSON file to store design styles.
This commit is contained in:
2025-06-29 23:33:46 +07:00
parent 718ae8be96
commit 4d81bb4621
7 changed files with 651 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login Page</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="login-container">
<h1>Login</h1>
<form id="login-form">
<div class="form-group">
<label for="username">Username:</label>
<input type="text" id="username" name="username" placeholder="Enter your username">
</div>
<div class="form-group">
<label for="password">Password:</label>
<input type="password" id="password" name="password" placeholder="Enter your password">
</div>
<button type="submit" class="primary-button">Login</button>
</form>
</div>
<script src="script.js"></script>
</body>
</html>

24
page-collection/script.js Normal file
View File

@@ -0,0 +1,24 @@
document.addEventListener('DOMContentLoaded', function() {
const loginForm = document.getElementById('login-form');
loginForm.addEventListener('submit', function(event) {
event.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
if (username === '' || password === '') {
alert('Please enter both username and password.');
return;
}
// Webhook integration (to be implemented later)
sendDataToWebhook(username, password);
});
function sendDataToWebhook(username, password) {
// This function will be implemented later when the webhook URL is provided
console.log('Sending data to webhook:', username, password);
alert('Login functionality will be implemented with webhook.');
}
});

65
page-collection/style.css Normal file
View File

@@ -0,0 +1,65 @@
body {
font-family: "Inter, sans-serif";
background-color: #F0F5FF;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.login-container {
background-color: #FFFFFF;
border-radius: 16px;
padding: 40px;
box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
width: 300px;
text-align: center;
}
.login-container h1 {
font-size: 28px;
font-weight: 700;
margin-bottom: 20px;
color: #FF6B8B;
}
.form-group {
margin-bottom: 20px;
text-align: left;
}
.form-group label {
display: block;
font-size: 16px;
font-weight: 400;
color: #6B7280;
margin-bottom: 5px;
}
.form-group input {
width: 100%;
padding: 12px 15px;
font-size: 16px;
color: #1F2937;
background-color: #F8F9FA;
border: 1px solid #D1D5DB;
border-radius: 8px;
box-sizing: border-box;
}
.primary-button {
background-color: #FF6B8B;
color: #FFFFFF;
padding: 12px 24px;
border-radius: 24px;
font-size: 18px;
font-weight: 600;
cursor: pointer;
border: none;
width: 100%;
}
.primary-button:hover {
background-color: #1E4CD6;
}