pertama commit

This commit is contained in:
dyzulk
2023-09-21 23:32:36 +07:00
commit 01bbf11bbd
300 changed files with 73812 additions and 0 deletions

302
application/views/Forms.php Normal file
View File

@@ -0,0 +1,302 @@
<main class="h-full pb-16 overflow-y-auto">
<div class="container px-6 mx-auto grid">
<h2
class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
>
Forms
</h2>
<!-- CTA -->
<a
class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
href="https://github.com/estevanmaito/windmill-dashboard"
>
<div class="flex items-center">
<svg
class="w-5 h-5 mr-2"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
></path>
</svg>
<span>Star this project on GitHub</span>
</div>
<span>View more &RightArrow;</span>
</a>
<!-- General elements -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Elements
</h4>
<div
class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
>
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Name</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
/>
</label>
<div class="mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Account Type
</span>
<div class="mt-2">
<label
class="inline-flex items-center text-gray-600 dark:text-gray-400"
>
<input
type="radio"
class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
name="accountType"
value="personal"
/>
<span class="ml-2">Personal</span>
</label>
<label
class="inline-flex items-center ml-6 text-gray-600 dark:text-gray-400"
>
<input
type="radio"
class="text-purple-600 form-radio focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
name="accountType"
value="busines"
/>
<span class="ml-2">Business</span>
</label>
</div>
</div>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Requested Limit
</span>
<select
class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
>
<option>$1,000</option>
<option>$5,000</option>
<option>$10,000</option>
<option>$25,000</option>
</select>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Multiselect
</span>
<select
class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
multiple
>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>
<option>Option 5</option>
</select>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Message</span>
<textarea
class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
rows="3"
placeholder="Enter some long form content."
></textarea>
</label>
<div class="flex mt-6 text-sm">
<label class="flex items-center dark:text-gray-400">
<input
type="checkbox"
class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
/>
<span class="ml-2">
I agree to the
<span class="underline">privacy policy</span>
</span>
</label>
</div>
</div>
<!-- Validation inputs -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Validation
</h4>
<div
class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
>
<!-- Invalid input -->
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">
Invalid input
</span>
<input
class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input"
placeholder="Jane Doe"
/>
<span class="text-xs text-red-600 dark:text-red-400">
Your password is too short.
</span>
</label>
<!-- Valid input -->
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Valid input
</span>
<input
class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input"
placeholder="Jane Doe"
/>
<span class="text-xs text-green-600 dark:text-green-400">
Your password is strong.
</span>
</label>
<!-- Helper text -->
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Helper text
</span>
<input
class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
/>
<span class="text-xs text-gray-600 dark:text-gray-400">
Your password must be at least 6 characters long.
</span>
</label>
</div>
<!-- Inputs with icons -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Icons
</h4>
<div
class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
>
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Icon left</span>
<!-- focus-within sets the color for the icon when input is focused -->
<div
class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
>
<input
class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
/>
<div
class="absolute inset-y-0 flex items-center ml-3 pointer-events-none"
>
<svg
class="w-5 h-5"
aria-hidden="true"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
></path>
</svg>
</div>
</div>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Icon right</span>
<!-- focus-within sets the color for the icon when input is focused -->
<div
class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
>
<input
class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
/>
<div
class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none"
>
<svg
class="w-5 h-5"
aria-hidden="true"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
></path>
</svg>
</div>
</div>
</label>
</div>
<!-- Inputs with buttons -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Buttons
</h4>
<div
class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
>
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">
Button left
</span>
<div class="relative">
<input
class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
/>
<button
class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
>
Click
</button>
</div>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Button right
</span>
<div
class="relative text-gray-500 focus-within:text-purple-600"
>
<input
class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
/>
<button
class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
>
Click
</button>
</div>
</label>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,88 @@
<!DOCTYPE html>
<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://dyzulk.me/dist/img/favicon.png" rel="icon" sizes=”32×32″ type="image/png">
<title><?=$title;?> - App Dashboard</title>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="<?=base_url();?>src/css/tailwind.output.css" />
<script
src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
defer
></script>
<script src="<?=base_url();?>src/js/init-alpine.js"></script>
<!-- Font Awesome Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/dyzcdn/fas@main/css/all.min.css">
<script src="https://cdn.jsdelivr.net/gh/dyzcdn/fas@main/js/pro.min.js"></script>
</head>
<body>
<div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
<div
class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800"
>
<div class="flex flex-col overflow-y-auto md:flex-row">
<div class="h-32 md:h-auto md:w-1/2">
<img
aria-hidden="true"
class="object-cover w-full h-full dark:hidden"
src="<?=base_url();?>src/img/login-office.jpeg"
alt="Office"
/>
<img
aria-hidden="true"
class="hidden object-cover w-full h-full dark:block"
src="<?=base_url();?>src/img/login-office-dark.jpeg"
alt="Office"
/>
</div>
<div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
<div class="w-full">
<h1
class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
>
Change Password
</h1>
<form action="<?=base_url('auth/changepassword');?>" method="post">
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">New Password</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Enter new password" name="password1" value="<?=set_value('password1');?>"
type="password"
/>
<?= form_error('password1', '<p><small class="text-danger text-xs"><strong>', '</strong></small></p>'); ?>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Confirm New Password</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Enter new password again" name="password2"
type="password"
/>
<?= form_error('password2', '<p><small class="text-danger text-xs"><strong>', '</strong></small></p>'); ?>
</label>
<!-- You should use a button here, as the anchor is only used for the example -->
<button
type="submit" class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
>
Change Password
</button>
</form>
<hr class="my-8" />
<div class="mb-0"><?= $this->session->flashdata('message'); ?></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,71 @@
<!DOCTYPE html>
<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://dyzulk.me/dist/img/favicon.png" rel="icon" sizes=”32×32″ type="image/png">
<title><?=$title;?> - App Dashboard</title>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="<?=base_url();?>src/css/tailwind.output.css" />
<script
src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
defer
></script>
<script src="<?=base_url();?>src/js/init-alpine.js"></script>
</head>
<body>
<div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
<div
class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800"
>
<div class="flex flex-col overflow-y-auto md:flex-row">
<div class="h-32 md:h-auto md:w-1/2">
<img
aria-hidden="true"
class="object-cover w-full h-full dark:hidden"
src="<?=base_url();?>src/img/forgot-password-office.jpeg"
alt="Office"
/>
<img
aria-hidden="true"
class="hidden object-cover w-full h-full dark:block"
src="<?=base_url();?>src/img/forgot-password-office-dark.jpeg"
alt="Office"
/>
</div>
<div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
<div class="w-full">
<h1
class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
>
Forgot password
</h1>
<form action="<?=base_url('auth/forgotpassword');?>" method="post">
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Email</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="your@mail.com" name="email" value="<?=set_value('email');?>"
type="email"
/>
</label>
<!-- You should use a button here, as the anchor is only used for the example -->
<button
class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
type="submit"
>
Recover password
</button>
</form>
<div class="mb-0"><?= $this->session->flashdata('message'); ?></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE html>
<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://dyzulk.me/dist/img/favicon.png" rel="icon" sizes=”32×32″ type="image/png">
<title>Login - App Dashboard</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
rel="stylesheet" />
<link rel="stylesheet" href="<?=base_url();?>src/css/tailwind.output.css" />
<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" defer></script>
<script src="<?=base_url();?>src/js/init-alpine.js"></script>
<!-- Font Awesome Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/dyzcdn/fas@main/css/all.min.css">
<script src="https://cdn.jsdelivr.net/gh/dyzcdn/fas@main/js/pro.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
<div class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800">
<div class="flex flex-col overflow-y-auto md:flex-row">
<div class="h-32 md:h-auto md:w-1/2">
<img aria-hidden="true" class="object-cover w-full h-full dark:hidden"
src="<?=base_url();?>src/img/login-office.jpeg" alt="Office" />
<img aria-hidden="true" class="hidden object-cover w-full h-full dark:block"
src="<?=base_url();?>src/img/login-office-dark.jpeg" alt="Office" />
</div>
<div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
<div class="w-full">
<h1 class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200">
Login
</h1>
<form action="<?=base_url('auth');?>" method="post">
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Email</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="your@mail.com" name="email" value="<?=set_value('email');?>" />
<?= form_error('email', '<p><small style="color: #DE5154;"><strong>', '</strong></small></p>'); ?>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Password</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Password" name="password" type="password" />
<?= form_error('password', '<p><small style="color: #DE5154;"><strong>', '</strong></small></p>'); ?>
</label>
<!-- You should use a button here, as the anchor is only used for the example -->
<button type="submit"
class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
Log in
</button>
</form>
<div style="margin-top: 9px"><?= $this->session->flashdata('message'); ?></div>
<hr class="my-8" />
<button
class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray">
<i class="fab fa-google mr-2"></i>
With Google
</button>
<p class="mt-4">
<a class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
href="<?=base_url('auth/forgotpassword');?>">
Forgot your password?
</a>
</p>
<p class="mt-1">
<a class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
href="<?=base_url('auth/signup');?>">
Create account
</a>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,137 @@
<!DOCTYPE html>
<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="https://dyzulk.me/dist/img/favicon.png" rel="icon" sizes=”32×32″ type="image/png">
<title>Create account - Windmill Dashboard</title>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="<?=base_url();?>src/css/tailwind.output.css" />
<script
src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
defer
></script>
<script src="<?=base_url();?>src/js/init-alpine.js"></script>
<!-- Font Awesome Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/dyzcdn/fas@main/css/all.min.css">
<script src="https://cdn.jsdelivr.net/gh/dyzcdn/fas@main/js/pro.min.js"></script>
</head>
<body>
<div class="flex items-center min-h-screen p-6 bg-gray-50 dark:bg-gray-900">
<div
class="flex-1 h-full max-w-4xl mx-auto overflow-hidden bg-white rounded-lg shadow-xl dark:bg-gray-800"
>
<div class="flex flex-col overflow-y-auto md:flex-row">
<div class="h-32 md:h-auto md:w-1/2">
<img
aria-hidden="true"
class="object-cover w-full h-full dark:hidden"
src="<?=base_url();?>src/img/create-account-office.jpeg"
alt="Office"
/>
<img
aria-hidden="true"
class="hidden object-cover w-full h-full dark:block"
src="<?=base_url();?>src/img/create-account-office-dark.jpeg"
alt="Office"
/>
</div>
<div class="flex items-center justify-center p-6 sm:p-12 md:w-1/2">
<div class="w-full">
<h1
class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
>
Create account
</h1>
<form action="<?=base_url('auth/signup');?>" method="post">
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Full name</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Jane Doe"
type="text"
name="nama" value="<?=set_value('nama');?>"
/>
</label>
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Email</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="your@mail.com"
type="email"
name="email" value="<?=set_value('email');?>"
/>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Password</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Type your password"
type="password"
name="password1"
/>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Confirm password
</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Type your password again"
type="password"
name="password2"
/>
</label>
<div class="flex mt-6 text-sm">
<label class="flex items-center dark:text-gray-400">
<input
type="checkbox"
class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
/>
<span class="ml-2">
I agree to the
<span class="underline">privacy policy</span>
</span>
</label>
</div>
<!-- You should use a button here, as the anchor is only used for the example -->
<button
class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
type="submit"
>
Create account
</button>
</form>
<div style="margin-top: 9px"><?= $this->session->flashdata('message'); ?></div>
<hr class="my-8" />
<button
class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
>
<i class="fab fa-google mr-2"></i>
With Google
</button>
<p class="mt-4">
<a
class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
href="<?=base_url('auth');?>"
>
Already have an account? Login
</a>
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

198
application/views/cards.php Normal file
View File

@@ -0,0 +1,198 @@
<main class="h-full pb-16 overflow-y-auto">
<div class="container px-6 mx-auto grid">
<h2
class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
>
Cards
</h2>
<!-- CTA -->
<a
class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
href="https://github.com/estevanmaito/windmill-dashboard"
>
<div class="flex items-center">
<svg
class="w-5 h-5 mr-2"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
></path>
</svg>
<span>Star this project on GitHub</span>
</div>
<span>View more &RightArrow;</span>
</a>
<!-- Big section cards -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Big section cards
</h4>
<div
class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
>
<p class="text-sm text-gray-600 dark:text-gray-400">
Large, full width sections goes here
</p>
</div>
<!-- Responsive cards -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Responsive cards
</h4>
<div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Total clients
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
6389
</p>
</div>
</div>
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
fill-rule="evenodd"
d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z"
clip-rule="evenodd"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Account balance
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
$ 46,760.89
</p>
</div>
</div>
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
New sales
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
376
</p>
</div>
</div>
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
fill-rule="evenodd"
d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z"
clip-rule="evenodd"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Pending contacts
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
35
</p>
</div>
</div>
</div>
<!-- Cards with title -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Cards with title
</h4>
<div class="grid gap-6 mb-8 md:grid-cols-2">
<div
class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<h4 class="mb-4 font-semibold text-gray-600 dark:text-gray-300">
Revenue
</h4>
<p class="text-gray-600 dark:text-gray-400">
Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Fuga, cum commodi a omnis numquam quod? Totam exercitationem
quos hic ipsam at qui cum numquam, sed amet ratione! Ratione,
nihil dolorum.
</p>
</div>
<div
class="min-w-0 p-4 text-white bg-purple-600 rounded-lg shadow-xs"
>
<h4 class="mb-4 font-semibold">
Colored card
</h4>
<p>
Lorem ipsum dolor sit, amet consectetur adipisicing elit.
Fuga, cum commodi a omnis numquam quod? Totam exercitationem
quos hic ipsam at qui cum numquam, sed amet ratione! Ratione,
nihil dolorum.
</p>
</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,364 @@
<main class="h-full overflow-y-auto">
<?php
function rupiah($angka){
$hasil_rupiah = "Rp. " . number_format($angka, 0, ',', '.');
return $hasil_rupiah;
}
?>
<div class="container px-6 mx-auto grid">
<h2
class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
>
Dashboard
</h2>
<!-- CTA -->
<!-- Cards -->
<div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Number of Users
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
<?=$total_users;?>
</p>
</div>
</div>
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
fill-rule="evenodd"
d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z"
clip-rule="evenodd"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Online
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
<?=$total_online_users;?>
</p>
</div>
</div>
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Account balance
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
<?=rupiah($total_amount);?>
</p>
</div>
</div>
<!-- Card -->
<div
class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<div
class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path
fill-rule="evenodd"
d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z"
clip-rule="evenodd"
></path>
</svg>
</div>
<div>
<p
class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
>
Remainder of Balance
</p>
<p
class="text-lg font-semibold text-gray-700 dark:text-gray-200"
>
<?php
$remainder = 12000000 - $total_amount; echo rupiah($remainder);
?>
</p>
</div>
</div>
</div>
<!-- New Table -->
<div class="w-full overflow-hidden rounded-lg shadow-xs">
<div class="w-full overflow-x-auto">
<table class="w-full whitespace-no-wrap">
<thead>
<tr
class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
>
<th class="px-4 py-3">Whos</th>
<th class="px-4 py-3">Address</th>
<th class="px-4 py-3">Status</th>
<th class="px-4 py-3">Date Created</th>
</tr>
</thead>
<tbody
class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
>
<?php foreach($users as $usr) : ?>
<tr class="text-gray-700 dark:text-gray-400">
<td class="px-4 py-3">
<div class="flex items-center text-sm">
<!-- Avatar with inset shadow -->
<div
class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
>
<img
class="object-cover w-full h-full rounded-full"
src="<?=base_url('src/user/image/').$usr['image'];?>"
alt=""
loading="lazy"
/>
<div
class="absolute inset-0 rounded-full shadow-inner"
aria-hidden="true"
></div>
</div>
<div>
<p class="font-semibold"><?=$usr['nama'];?></p>
<p class="text-xs text-gray-600 dark:text-gray-400">
<?=$usr['email'];?>
</p>
</div>
</div>
</td>
<td class="px-4 py-3 text-sm">
<?=$usr['address'];?>
</td>
<td class="px-4 py-3 text-xs">
<span
<?php if($usr['status_login'] == 'online') : ?>
class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
<?php else : ?>
class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700"
<?php endif; ?>
>
<?=$usr['status_login'];?>
</span>
</td>
<td class="px-4 py-3 text-sm">
<?=date('d F Y', $usr['date_created']);?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div
class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
>
<span class="flex items-center col-span-3">
Showing 21-30 of 100
</span>
<span class="col-span-2"></span>
<!-- Pagination -->
<span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
<nav aria-label="Table navigation">
<ul class="inline-flex items-center">
<li>
<button
class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Previous"
>
<svg
aria-hidden="true"
class="w-4 h-4 fill-current"
viewBox="0 0 20 20"
>
<path
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"
fill-rule="evenodd"
></path>
</svg>
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
1
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
2
</button>
</li>
<li>
<button
class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple"
>
3
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
4
</button>
</li>
<li>
<span class="px-3 py-1">...</span>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
8
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
9
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Next"
>
<svg
class="w-4 h-4 fill-current"
aria-hidden="true"
viewBox="0 0 20 20"
>
<path
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
fill-rule="evenodd"
></path>
</svg>
</button>
</li>
</ul>
</nav>
</span>
</div>
</div>
<!-- Charts -->
<h2
class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
>
Charts
</h2>
<div class="grid gap-6 mb-8 md:grid-cols-2">
<div
class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
Revenue
</h4>
<canvas id="pie"></canvas>
<div
class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
>
<!-- Chart legend -->
<div class="flex items-center">
<span
class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
></span>
<span>Shirts</span>
</div>
<div class="flex items-center">
<span
class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
></span>
<span>Shoes</span>
</div>
<div class="flex items-center">
<span
class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
></span>
<span>Bags</span>
</div>
</div>
</div>
<div
class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
>
<h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
Traffic
</h4>
<canvas id="line"></canvas>
<div
class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
>
<!-- Chart legend -->
<div class="flex items-center">
<span
class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
></span>
<span>Organic</span>
</div>
<div class="flex items-center">
<span
class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
></span>
<span>Paid</span>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Konfirmasi Email</title>
<!-- Tautkan ke Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Segoe+UI&display=swap" rel="stylesheet">
<style>
body {
padding: 0;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background-color: #f7f7f7;
}
.email-container {
font-family: 'Segoe UI', Arial, sans-serif;
max-width: 600px;
margin: 0 20px;
/* Margin kiri dan kanan */
background-color: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
text-align: center;
}
</style>
</head>
<body>
<div class="email-container">
<h1>Silakan konfirmasi alamat email Anda untuk mendaftar</h1>
<p>Terima kasih telah bergabung dengan Dyzulk Apps. Kami perlu mengkonfirmasi alamat email Anda. Silakan klik
tautan di bawah ini.</p>
<p style="margin-top: 30px; font-size: 14px; color: #888;">Jika Anda tidak meminta email ini, harap abaikan
saja.</p>
<a href="https://www.example.com/konfirmasi-email"
style="display: inline-block; padding: 10px 20px; background-color: #007bff; color: #fff; text-decoration: none; border-radius: 5px; margin-top: 20px;">Lanjutkan
ke Dyzulk Apps</a>
<p style="font-size: 14px; color: #888; margin-top: 20px;">Demi keamanan, tautan ini hanya akan aktif selama 24
jam.</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,132 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Konfirmasi Email</title>
<link href="https://fonts.googleapis.com/css2?family=Segoe+UI&display=swap" rel="stylesheet">
<style>
body {
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
background-color: #26577C;
}
h1 {
font-family: 'Segoe UI', Arial, sans-serif;
font-size: 40px;
font-weight: 800;
}
.email-container {
font-family: 'Segoe UI', Arial, sans-serif;
max-width: 600px;
margin: 0 auto;
margin-top: 50px;
border: 1px solid #eee;
background-color: #fff;
padding-top: 20px;
padding-bottom: 40px;
padding-left: 40px;
padding-right: 40px;
border-radius: 10px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
text-align: left;
}
.btn {
display: inline-block;
padding: 10px 20px;
background-color: #E55604;
color: #fff;
text-decoration: none;
border-radius: 5px;
margin-top: 20px;
font-weight: bold;
}
.btn:hover {
opacity: 0.8;
transition: 0.3s;
}
.header-logo {
display: block;
margin: 0 auto;
max-width: 100%;
}
.tipis {
font-size: 14px;
color: #888;
margin-top: 30px;
}
.copyright {
font-family: 'Segoe UI', Arial, sans-serif;
text-align: center;
margin-top: 20px;
font-size: 12px;
color: #EBE4D1;
}
.unsubscribe {
text-align: center;
font-size: 12px;
color: #EBE4D1;
text-decoration: none;
display: block;
margin-top: 5px;
}
.link-container {
margin-top: 20px;
margin-bottom: 20px;
max-width: 75%;
}
.link {
font-size: 14px;
word-wrap: break-word;
overflow: hidden;
text-overflow: ellipsis;
}
.hr2 {
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="email-container">
<img class="header-logo" src="https://dyzulk.me/dist/img/favicon.png" alt="Logo" width="100">
<h1>Silakan konfirmasi email<br/>Untuk mendaftar</h1>
<p>Terima kasih telah bergabung dengan Dyzulk Apps. Kami perlu mengkonfirmasi alamat email Anda. Silakan klik tautan di bawah ini.</p>
<a href="<?=$link;?>" target="_blank" class="btn">Aktifkan Akun</a>
<p class="tipis">Demi keamanan, tautan ini hanya akan aktif selama 24jam</p>
<hr>
<p>Jika Anda mengalami masalah saat mengklik tombol "<b>Aktifkan Akun</b>", salin dan tempel tautan di bawah ini ke browser web Anda:</p>
<div class="link-container">
<a href="<?=$link;?>" target="_blank" class="link"><?=$link;?></a>
</div>
<hr class="hr2">
<p class="tipis">Jika Anda tidak meminta email ini, harap abaikan saja.</p>
</div>
<div class="copyright">
Copyright © 2023 Dyzulk Apps. All rights reserved.
</div>
</body>
</html>

View File

@@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pemulihan Password</title>
<link href="https://fonts.googleapis.com/css2?family=Segoe+UI&display=swap" rel="stylesheet">
<style>
body {
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
background-color: #26577C;
}
h1 {
font-family: 'Segoe UI', Arial, sans-serif;
font-size: 40px;
font-weight: 800;
}
.email-container {
font-family: 'Segoe UI', Arial, sans-serif;
max-width: 600px;
margin: 0 auto;
margin-top: 50px;
border: 1px solid #eee;
background-color: #fff;
padding-top: 20px;
padding-bottom: 40px;
padding-left: 40px;
padding-right: 40px;
border-radius: 10px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
text-align: left;
}
.btn {
display: inline-block;
padding: 10px 20px;
background-color: #E55604;
color: #ffffff;
text-decoration: none;
border-radius: 5px;
margin-top: 20px;
font-weight: bold;
}
.btn:hover {
opacity: 0.8;
transition: 0.3s;
}
.header-logo {
display: block;
margin: 0 auto;
max-width: 100%;
}
.tipis {
font-size: 14px;
color: #888;
margin-top: 30px;
}
.copyright {
font-family: 'Segoe UI', Arial, sans-serif;
text-align: center;
margin-top: 20px;
font-size: 12px;
color: #EBE4D1;
}
.unsubscribe {
text-align: center;
font-size: 12px;
color: #EBE4D1;
text-decoration: none;
display: block;
margin-top: 5px;
}
.link-container {
margin-top: 20px;
margin-bottom: 20px;
max-width: 75%;
}
.link {
font-size: 14px;
word-wrap: break-word;
overflow: hidden;
text-overflow: ellipsis;
}
.hr2 {
margin-bottom: 20px;
}
.email {
color: #E55604;
font-size: 30px;
}
.untuk {
font-size: 30px;
}
</style>
</head>
<body>
<div class="email-container">
<img class="header-logo" src="https://dyzulk.me/dist/img/favicon.png" alt="Logo" width="100">
<h1>Pemulihan password<br/><span class="untuk">Untuk </span><span class="email"><?=$email.'.';?></span></h1>
<p>Terima kasih telah bersama dengan Dyzulk Apps. Untuk memperbarui password Anda. Silakan klik tautan di bawah ini.</p>
<a href="<?=$link;?>" target="_blank" class="btn">Perbarui Password</a>
<p class="tipis">Demi keamanan, tautan ini hanya akan aktif selama 24jam</p>
<hr>
<p>Jika Anda mengalami masalah saat mengklik tombol "<b>Perbarui Password</b>", salin dan tempel tautan di bawah ini ke browser web Anda:</p>
<div class="link-container">
<a href="<?=$link;?>" target="_blank" class="link"><?=$link;?></a>
</div>
<hr class="hr2">
<p class="tipis">Jika Anda tidak meminta email ini, harap abaikan saja.</p>
</div>
<div class="copyright">
Copyright © 2023 Dyzulk Apps. All rights reserved.
</div>
</body>
</html>

View File

@@ -0,0 +1,8 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nERROR: ",
$heading,
"\n\n",
$message,
"\n\n";

View File

@@ -0,0 +1,8 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nDatabase error: ",
$heading,
"\n\n",
$message,
"\n\n";

View File

@@ -0,0 +1,21 @@
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
An uncaught Exception was encountered
Type: <?php echo get_class($exception), "\n"; ?>
Message: <?php echo $message, "\n"; ?>
Filename: <?php echo $exception->getFile(), "\n"; ?>
Line Number: <?php echo $exception->getLine(); ?>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
Backtrace:
<?php foreach ($exception->getTrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
File: <?php echo $error['file'], "\n"; ?>
Line: <?php echo $error['line'], "\n"; ?>
Function: <?php echo $error['function'], "\n\n"; ?>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>

View File

@@ -0,0 +1,8 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
echo "\nERROR: ",
$heading,
"\n\n",
$message,
"\n\n";

View File

@@ -0,0 +1,21 @@
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>
A PHP Error was encountered
Severity: <?php echo $severity, "\n"; ?>
Message: <?php echo $message, "\n"; ?>
Filename: <?php echo $filepath, "\n"; ?>
Line Number: <?php echo $line; ?>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
Backtrace:
<?php foreach (debug_backtrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
File: <?php echo $error['file'], "\n"; ?>
Line: <?php echo $error['line'], "\n"; ?>
Function: <?php echo $error['function'], "\n\n"; ?>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>404 Page Not Found</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Database Error</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>An uncaught Exception was encountered</h4>
<p>Type: <?php echo get_class($exception); ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $exception->getFile(); ?></p>
<p>Line Number: <?php echo $exception->getLine(); ?></p>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
<p>Backtrace:</p>
<?php foreach ($exception->getTrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
<p style="margin-left:10px">
File: <?php echo $error['file']; ?><br />
Line: <?php echo $error['line']; ?><br />
Function: <?php echo $error['function']; ?>
</p>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
</div>

View File

@@ -0,0 +1,64 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
</body>
</html>

View File

@@ -0,0 +1,33 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: <?php echo $severity; ?></p>
<p>Message: <?php echo $message; ?></p>
<p>Filename: <?php echo $filepath; ?></p>
<p>Line Number: <?php echo $line; ?></p>
<?php if (defined('SHOW_DEBUG_BACKTRACE') && SHOW_DEBUG_BACKTRACE === TRUE): ?>
<p>Backtrace:</p>
<?php foreach (debug_backtrace() as $error): ?>
<?php if (isset($error['file']) && strpos($error['file'], realpath(BASEPATH)) !== 0): ?>
<p style="margin-left:10px">
File: <?php echo $error['file'] ?><br />
Line: <?php echo $error['line'] ?><br />
Function: <?php echo $error['function'] ?>
</p>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
</div>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

View File

@@ -0,0 +1,416 @@
<!DOCTYPE html>
<html :class="{ 'theme-dark': dark }" x-data="data()" lang="en">
<head>
<link href="https://dyzulk.me/dist/img/favicon.png" rel="icon" sizes=”32×32″ type="image/png">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><?=$title;?> - App Dashboard</title>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="<?=base_url();?>src/css/tailwind.output.css" />
<script
src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
defer
></script>
<script src="<?=base_url();?>src/js/init-alpine.js"></script>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"
/>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"
defer
></script>
<script src="<?=base_url();?>src/js/charts-lines.js" defer></script>
<script src="<?=base_url();?>src/js/charts-pie.js" defer></script>
<!-- Font Awesome Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/dyzcdn/fontawesome-pro-5.15.4@main/css/all.css">
<script src="https://cdn.jsdelivr.net/gh/dyzcdn/fontawesome-pro-5.15.4@main/js/pro.js"></script>
<!-- SweetAlert2 -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.7.28/dist/sweetalert2.all.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11.7.28/dist/sweetalert2.min.css">
</head>
<body>
<div
class="flex h-screen bg-gray-50 dark:bg-gray-900"
:class="{ 'overflow-hidden': isSideMenuOpen }"
>
<!-- Query Menu -->
<?php
$role_id = $this->session->userdata('role_id');
$queryMenu = " SELECT `user_menu`.`id`, `title`, `url`, `icon`
FROM `user_menu` JOIN `user_access_menu`
ON `user_menu`.`id` = `user_access_menu`.`menu_id`
WHERE `user_access_menu`.`role_id` = $role_id
ORDER BY `user_access_menu`.`menu_id` ASC
";
$menu = $this->db->query($queryMenu)->result_array();
?>
<!-- Desktop sidebar -->
<aside
class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
>
<div class="py-4 text-gray-500 dark:text-gray-400">
<a
class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
href="#"
>
DyzPanel
</a>
<ul class="mt-6"></ul>
<?php foreach ($menu as $m) : ?>
<ul>
<li class="relative px-6 py-3">
<?php if ($title == $m['title']) : ?>
<span class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" aria-hidden="true"></span>
<?php endif; ?>
<a
href="<?=base_url($m['url']);?>"
<?php if ($title == $m['title']) : ?>
class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
<?php else : ?>
class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
<?php endif; ?>>
<i class="<?=$m['icon'];?>"></i>
<span class="ml-4"><?=$m['title'];?></span>
</a>
</li>
</ul>
<?php endforeach; ?>
<div class="px-6 my-6">
<a href="<?=base_url('auth/logout');?>"
class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
>
Log Out
<i class="ml-4 fad fa-power-off"></i>
</a>
</div>
</div>
</aside>
<!-- Mobile sidebar -->
<!-- Backdrop -->
<div
x-show="isSideMenuOpen"
x-transition:enter="transition ease-in-out duration-150"
x-transition:enter-start="opacity-0"
x-transition:enter-end="opacity-100"
x-transition:leave="transition ease-in-out duration-150"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
></div>
<aside
class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden"
x-show="isSideMenuOpen"
x-transition:enter="transition ease-in-out duration-150"
x-transition:enter-start="opacity-0 transform -translate-x-20"
x-transition:enter-end="opacity-100"
x-transition:leave="transition ease-in-out duration-150"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0 transform -translate-x-20"
@click.away="closeSideMenu"
@keydown.escape="closeSideMenu"
>
<div class="py-4 text-gray-500 dark:text-gray-400">
<a
class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
href="#"
>
DyzPanel
</a>
<ul class="mt-6"></ul>
<?php foreach ($menu as $m) : ?>
<ul>
<li class="relative px-6 py-3">
<?php if ($title == $m['title']) : ?>
<span
class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
aria-hidden="true"
></span>
<?php endif; ?>
<a
<?php if ($title == $m['title']) : ?>
class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
<?php else : ?>
class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
<?php endif; ?>
href="<?=base_url($m['url']);?>"
>
<i class="<?=$m['icon'];?>"></i>
<span class="ml-4"><?=$m['title'];?></span>
</a>
</li>
</ul>
<?php endforeach; ?>
<div class="px-6 my-6">
<a href="<?=base_url('auth/logout');?>"
class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
>
Log Out
<i class="ml-4 fad fa-power-off"></i>
</a>
</div>
</div>
</aside>
<div class="flex flex-col flex-1 w-full">
<header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
<div
class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
>
<!-- Mobile hamburger -->
<button
class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
@click="toggleSideMenu"
aria-label="Menu"
>
<svg
class="w-6 h-6"
aria-hidden="true"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
fill-rule="evenodd"
d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
clip-rule="evenodd"
></path>
</svg>
</button>
<!-- Search input -->
<div class="flex justify-center flex-1 lg:mr-32">
<div
class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
>
<div class="absolute inset-y-0 flex items-center pl-2">
<svg
class="w-4 h-4"
aria-hidden="true"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
fill-rule="evenodd"
d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
clip-rule="evenodd"
></path>
</svg>
</div>
<input
class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
type="text"
placeholder="Search for projects"
aria-label="Search"
/>
</div>
</div>
<ul class="flex items-center flex-shrink-0 space-x-6">
<!-- Theme toggler -->
<li class="flex">
<button
class="rounded-md focus:outline-none focus:shadow-outline-purple"
@click="toggleTheme"
aria-label="Toggle color mode"
>
<template x-if="!dark">
<svg
class="w-5 h-5"
aria-hidden="true"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
></path>
</svg>
</template>
<template x-if="dark">
<svg
class="w-5 h-5"
aria-hidden="true"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
fill-rule="evenodd"
d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z"
clip-rule="evenodd"
></path>
</svg>
</template>
</button>
</li>
<!-- Notifications menu -->
<li class="relative">
<button
class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
@click="toggleNotificationsMenu"
@keydown.escape="closeNotificationsMenu"
aria-label="Notifications"
aria-haspopup="true"
>
<svg
class="w-5 h-5"
aria-hidden="true"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z"
></path>
</svg>
<!-- Notification badge -->
<span
aria-hidden="true"
class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800"
></span>
</button>
<template x-if="isNotificationsMenuOpen">
<ul
x-transition:leave="transition ease-in duration-150"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
@click.away="closeNotificationsMenu"
@keydown.escape="closeNotificationsMenu"
class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700"
>
<li class="flex">
<a
class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
href="#"
>
<span>Messages</span>
<span
class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
>
13
</span>
</a>
</li>
<li class="flex">
<a
class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
href="#"
>
<span>Sales</span>
<span
class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600"
>
2
</span>
</a>
</li>
<li class="flex">
<a
class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
href="#"
>
<span>Alerts</span>
</a>
</li>
</ul>
</template>
</li>
<!-- Profile menu -->
<li class="relative">
<button
class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
@click="toggleProfileMenu"
@keydown.escape="closeProfileMenu"
aria-label="Account"
aria-haspopup="true"
>
<img
class="object-cover w-8 h-8 rounded-full"
src="<?=base_url('src/user/image/'); echo $user['image'];?>"
alt="Your Avatar"
aria-hidden="true"
/>
</button>
<template x-if="isProfileMenuOpen">
<ul
x-transition:leave="transition ease-in duration-150"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
@click.away="closeProfileMenu"
@keydown.escape="closeProfileMenu"
class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700"
aria-label="submenu"
>
<li class="flex">
<a
class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
href="#"
>
<svg
class="w-4 h-4 mr-3"
aria-hidden="true"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
></path>
</svg>
<span>Profile</span>
</a>
</li>
<li class="flex">
<a
class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
href="#"
>
<svg
class="w-4 h-4 mr-3"
aria-hidden="true"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
></path>
<path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
</svg>
<span>Settings</span>
</a>
</li>
<li class="flex">
<a
class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200"
href="<?=base_url('auth/logout');?>"
>
<svg
class="w-4 h-4 mr-3"
aria-hidden="true"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"
></path>
</svg>
<span>Log out</span>
</a>
</li>
</ul>
</template>
</li>
</ul>
</div>
</header>

View File

@@ -0,0 +1,252 @@
<main class="h-full pb-16 overflow-y-auto">
<div class="container grid px-6 mx-auto">
<h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
Tables
</h2>
<!-- CTA -->
<a class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
href="<?=base_url('transaksi');?>">
<div class="flex items-center">
<svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg>
<span>Star this project on GitHub</span>
</div>
<span>View more &RightArrow;</span>
</a>
<div class="mb-4">
<button @click="openModal"
class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
<i class="fad fa-plus w-4 h-4 mr-2 -ml-1"></i>
<span>Create</span>
</button>
</div>
<!-- With actions -->
<h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
Table with actions
</h4>
<div class="w-full overflow-hidden rounded-lg shadow-xs">
<div class="w-full overflow-x-auto">
<table class="w-full whitespace-no-wrap">
<thead>
<tr
class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800">
<th class="px-4 py-3">Whos</th>
<th class="px-4 py-3">Amount</th>
<th class="px-4 py-3">Date</th>
<th class="px-4 py-3">Other</th>
<th class="px-4 py-3">Actions</th>
</tr>
</thead>
<tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
<?php foreach ($transData as $transaction) : ?>
<tr class="text-gray-700 dark:text-gray-400">
<td class="px-4 py-3">
<div class="flex items-center text-sm">
<!-- Avatar with inset shadow -->
<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
<img class="object-cover w-full h-full rounded-full"
src="<?=base_url('src/user/image/' . $transaction['image']);?>" alt=""
loading="lazy" />
<div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true">
</div>
</div>
<div>
<p class="font-semibold">
<?=$transaction['nama'];?>
</p>
<p class="text-xs text-gray-600 dark:text-gray-400">
<?=$transaction['email'];?>
</p>
</div>
</div>
</td>
<td class="px-4 py-3 text-sm">
<?=$transaction['amount'];?>
</td>
<td class="px-4 py-3 text-sm">
<?= date('d F Y', $transaction['time_transaction']); ?>
</td>
<td class="px-4 py-3 text-sm">
<?= date('d F Y', $transaction['other']);?>
</td>
<td class="px-4 py-3">
<div class="flex items-center space-x-4 text-sm">
<?php echo anchor(base_url('transaksi/editData?id=').$transaction['id'], '<button class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray" aria-label="Edit"><svg class="w-5 h-5" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20"><path d="M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z"></path></svg></button>');?>
<button
onclick="hapusData('<?php echo $transaction['id']; ?>')"
class="flex items-center justify-between px-2 py-2 text-sm font-medium leading-5 text-purple-600 rounded-lg dark:text-gray-400 focus:outline-none focus:shadow-outline-gray"
aria-label="Delete">
<svg class="w-5 h-5" aria-hidden="true" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd"
d="M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z"
clip-rule="evenodd"></path>
</svg>
</button>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
<div
class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
<span class="flex items-center col-span-3">
Showing 21-30 of 100
</span>
<span class="col-span-2"></span>
<!-- Pagination -->
<span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
<nav aria-label="Table navigation">
<ul class="inline-flex items-center">
<li>
<button
class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Previous">
<svg class="w-4 h-4 fill-current" aria-hidden="true" viewBox="0 0 20 20">
<path
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd" fill-rule="evenodd"></path>
</svg>
</button>
</li>
<li>
<button class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
1
</button>
</li>
<li>
<button class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
2
</button>
</li>
<li>
<button
class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple">
3
</button>
</li>
<li>
<button class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
4
</button>
</li>
<li>
<span class="px-3 py-1">...</span>
</li>
<li>
<button class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
8
</button>
</li>
<li>
<button class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
9
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Next">
<svg class="w-4 h-4 fill-current" aria-hidden="true" viewBox="0 0 20 20">
<path
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd" fill-rule="evenodd"></path>
</svg>
</button>
</li>
</ul>
</nav>
</span>
</div>
<!-- Modal backdrop. This what you want to place close to the closing body tag -->
<div x-show="isModalOpen" x-transition:enter="transition ease-out duration-150"
x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100"
x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
class="fixed inset-0 z-30 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center">
<!-- Modal -->
<div x-show="isModalOpen" x-transition:enter="transition ease-out duration-150"
x-transition:enter-start="opacity-0 transform translate-y-1/2" x-transition:enter-end="opacity-100"
x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0 transform translate-y-1/2" @click.away="closeModal"
@keydown.escape="closeModal"
class="w-full px-6 py-4 overflow-hidden bg-white rounded-t-lg dark:bg-gray-800 sm:rounded-lg sm:m-4 sm:max-w-xl"
role="dialog" id="modal">
<!-- Remove header if you don't want a close icon. Use modal body to place modal tile. -->
<form action="<?=base_url('transaksi/addData');?>" method="post">
<header class="flex justify-end">
<button
class="inline-flex items-center justify-center w-6 h-6 text-gray-400 transition-colors duration-150 rounded dark:hover:text-gray-200 hover: hover:text-gray-700"
aria-label="close" @click="closeModal">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20" role="img" aria-hidden="true">
<path
d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
clip-rule="evenodd" fill-rule="evenodd"></path>
</svg>
</button>
</header>
<!-- Modal body -->
<div class="mt-4 mb-6">
<!-- Modal title -->
<p class="mb-2 text-lg font-semibold text-gray-700 dark:text-gray-300">
Add
</p>
<!-- Modal description -->
<div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">
Whos
</span>
<select
class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
name="id">
<?php foreach ($users as $usr) : ?>
<option value="<?= $usr['id']; ?>">
<?= $usr['id']; ?> - <?= $usr['nama']; ?>
</option>
<?php endforeach; ?>
</select>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Amount</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
placeholder="Rp. " type="text" name="amount" id="amountInput"
required="required" />
</label>
</div>
</div>
<footer
class="flex flex-col items-center justify-end px-6 py-3 -mx-6 -mb-4 space-y-4 sm:space-y-0 sm:space-x-6 sm:flex-row bg-gray-50 dark:bg-gray-800">
<button @click="closeModal"
class="w-full px-5 py-3 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 sm:px-4 sm:py-2 sm:w-auto active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray">
Cancel
</button>
<button
type="submit"
class="w-full px-5 py-3 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg sm:w-auto sm:px-4 sm:py-2 active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
Accept
</button>
</footer>
</form>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
<script src="<?=base_url('src/js/rupiah.js');?>"></script>
<script src="<?=base_url('src/js/deleteWalert.js');?>"></script>
<script>
var baseUrl = "<?=base_url();?>";
</script>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<main class="h-full pb-16 overflow-y-auto">
<div class="container px-6 mx-auto grid">
<h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
Forms
</h2>
<!-- CTA -->
<a class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
href="https://github.com/estevanmaito/windmill-dashboard">
<div class="flex items-center">
<svg class="w-5 h-5 mr-2" fill="currentColor" viewBox="0 0 20 20">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z">
</path>
</svg>
<span>Star this project on GitHub</span>
</div>
<span>View more &RightArrow;</span>
</a>
<!-- General elements -->
<h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
Elements
</h4>
<div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
<form action="<?=base_url('transaksi/updateData');?>" method="post">
<label class="block text-sm">
<span class="text-gray-700 dark:text-gray-400">Whos</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
name="id" value="<?=$transData['id'];?>" readonly/>
</label>
<label class="block mt-4 text-sm">
<span class="text-gray-700 dark:text-gray-400">Amount</span>
<input
class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
name="amount" value="<?=$transData['amount'];?>"/>
</label>
<div
class="flex flex-col items-center justify-end py-4 sm:space-y-0 sm:space-x-6 sm:flex-row bg-gray-50 dark:bg-gray-800">
<a
href="javascript:history.back()" class="w-full px-5 py-3 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 sm:px-4 sm:py-2 sm:w-auto active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray">
Cancel
</a>
<button
type="submit"
class="w-full px-5 py-3 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg sm:w-auto sm:px-4 sm:py-2 active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
Accept
</button>
</div>
</form>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,221 @@
<main class="h-full pb-16 overflow-y-auto">
<div class="container grid px-6 mx-auto">
<h2
class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
>
Tables
</h2>
<!-- CTA -->
<a
class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple"
href="<?=base_url('transaksi/admin');?>"
>
<div class="flex items-center">
<svg
class="w-5 h-5 mr-2"
fill="currentColor"
viewBox="0 0 20 20"
>
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
></path>
</svg>
<span>Star this project on GitHub</span>
</div>
<span>View more &RightArrow;</span>
</a>
<!-- With avatar -->
<h4
class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
>
Table with avatars
</h4>
<div class="w-full mb-8 overflow-hidden rounded-lg shadow-xs">
<div class="w-full overflow-x-auto">
<table class="w-full whitespace-no-wrap">
<thead>
<tr
class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
>
<th class="px-4 py-3">Whos</th>
<th class="px-4 py-2">Amount</th>
<th class="px-4 py-2">Remainder</th>
<th class="px-4 py-2">Status</th>
<th class="px-4 py-3">Date</th>
</tr>
</thead>
<tbody
class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
>
<?php
$session = $this->session->userdata('email');
$queryTransaksi = "SELECT *
FROM `users_account`
JOIN `user_transaction` ON `users_account`.`email` = `user_transaction`.`user_email`
WHERE `users_account`.`email` = '$session'
ORDER BY `user_transaction`.`time_transaction` DESC";
$transaksiData = $this->db->query($queryTransaksi)->result_array();
function rupiah($angka){
$hasil_rupiah = "Rp. " . number_format($angka, 0, ',', '.');
return $hasil_rupiah;
}
$sisaSebelumnya = 1000000; // Inisialisasi sisa yang harus dibayar
foreach ($transaksiData as $transaksi) {
// Mengurangkan sisa yang harus dibayar dengan nilai amount pada transaksi
$sisa = $sisaSebelumnya - $transaksi['amount'];
// Menampilkan data transaksi
echo '<tr class="text-gray-700 dark:text-gray-400">';
echo '<td class="px-4 py-3">';
echo '<div class="flex items-center text-sm">';
// Avatar
echo '<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">';
echo '<img class="object-cover w-full h-full rounded-full" src="' . base_url('src/user/image/' . $transaksi['image']) . '" alt="" loading="lazy" />';
echo '<div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>';
echo '</div>';
// Nama dan Email
echo '<div>';
echo '<p class="font-semibold">' . $transaksi['nama'] . '</p>';
echo '<p class="text-xs text-gray-600 dark:text-gray-400">' . $transaksi['email'] . '</p>';
echo '</div>';
echo '</div>';
echo '</td>';
// Amount
echo '<td class="px-4 py-3 text-sm">' . rupiah($transaksi['amount']) . '</td>';
// Sisa yang harus dibayar
echo '<td class="px-4 py-3 text-sm">' . rupiah($sisa) . '</td>';
// Status Pembayaran
echo '<td class="px-4 py-3 text-xs">';
if ($sisa <= 0) {
echo '<span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">Lunas</span>';
} else {
echo '<span class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700">Belum Lunas</span>';
}
echo '</td>';
// Tanggal Transaksi
echo '<td class="px-4 py-3 text-sm">' . date('d F Y', $transaksi['time_transaction']) . '</td>';
echo '</tr>';
// Mengupdate nilai sisa yang harus dibayar untuk transaksi berikutnya
$sisaSebelumnya = $sisa;
}
?>
</tbody>
</table>
</div>
<div
class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
>
<span class="flex items-center col-span-3">
Showing 21-30 of 100
</span>
<span class="col-span-2"></span>
<!-- Pagination -->
<span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
<nav aria-label="Table navigation">
<ul class="inline-flex items-center">
<li>
<button
class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Previous"
>
<svg
aria-hidden="true"
class="w-4 h-4 fill-current"
viewBox="0 0 20 20"
>
<path
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"
fill-rule="evenodd"
></path>
</svg>
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
1
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
2
</button>
</li>
<li>
<button
class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple"
>
3
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
4
</button>
</li>
<li>
<span class="px-3 py-1">...</span>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
8
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
>
9
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Next"
>
<svg
class="w-4 h-4 fill-current"
aria-hidden="true"
viewBox="0 0 20 20"
>
<path
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
fill-rule="evenodd"
></path>
</svg>
</button>
</li>
</ul>
</nav>
</span>
</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,101 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
text-decoration: none;
}
a:hover {
color: #97310e;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#body {
margin: 0 15px 0 15px;
min-height: 96px;
}
p {
margin: 0 0 10px;
padding:0;
}
p.footer {
text-align: right;
font-size: 11px;
border-top: 1px solid #D0D0D0;
line-height: 32px;
padding: 0 10px 0 10px;
margin: 20px 0 0 0;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
</style>
</head>
<body>
<div id="container">
<h1>Welcome to CodeIgniter!</h1>
<div id="body">
<p>The page you are looking at is being generated dynamically by CodeIgniter.</p>
<p>If you would like to edit this page you'll find it located at:</p>
<code>application/views/welcome_message.php</code>
<p>The corresponding controller for this page is found at:</p>
<code>application/controllers/Welcome.php</code>
<p>If you are exploring CodeIgniter for the very first time, you should start by reading the <a href="userguide3/">User Guide</a>.</p><br/>
<p><strong><a href="<?=base_url('auth');?>">Login</a> | <a href="<?=base_url('auth/signup');?>">Signup</a></strong></p>
</div>
<p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo (ENVIRONMENT === 'development') ? 'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
</div>
</body>
</html>