mirror of
https://github.com/dyzulk/dyzulk-apps.git
synced 2026-01-26 21:32:04 +07:00
pertama commit
This commit is contained in:
302
application/views/Forms.php
Normal file
302
application/views/Forms.php
Normal 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 →</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>
|
||||
88
application/views/auth/change-password.php
Normal file
88
application/views/auth/change-password.php
Normal 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>
|
||||
71
application/views/auth/forgotpassword.php
Normal file
71
application/views/auth/forgotpassword.php
Normal 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>
|
||||
89
application/views/auth/login.php
Normal file
89
application/views/auth/login.php
Normal 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>
|
||||
137
application/views/auth/signup.php
Normal file
137
application/views/auth/signup.php
Normal 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
198
application/views/cards.php
Normal 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 →</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>
|
||||
364
application/views/dashboard.php
Normal file
364
application/views/dashboard.php
Normal 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>
|
||||
59
application/views/email/activation.html
Normal file
59
application/views/email/activation.html
Normal 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>
|
||||
132
application/views/email/activation.php
Normal file
132
application/views/email/activation.php
Normal 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>
|
||||
141
application/views/email/password.php
Normal file
141
application/views/email/password.php
Normal 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>
|
||||
8
application/views/errors/cli/error_404.php
Normal file
8
application/views/errors/cli/error_404.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
echo "\nERROR: ",
|
||||
$heading,
|
||||
"\n\n",
|
||||
$message,
|
||||
"\n\n";
|
||||
8
application/views/errors/cli/error_db.php
Normal file
8
application/views/errors/cli/error_db.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
echo "\nDatabase error: ",
|
||||
$heading,
|
||||
"\n\n",
|
||||
$message,
|
||||
"\n\n";
|
||||
21
application/views/errors/cli/error_exception.php
Normal file
21
application/views/errors/cli/error_exception.php
Normal 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 ?>
|
||||
8
application/views/errors/cli/error_general.php
Normal file
8
application/views/errors/cli/error_general.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
echo "\nERROR: ",
|
||||
$heading,
|
||||
"\n\n",
|
||||
$message,
|
||||
"\n\n";
|
||||
21
application/views/errors/cli/error_php.php
Normal file
21
application/views/errors/cli/error_php.php
Normal 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 ?>
|
||||
11
application/views/errors/cli/index.html
Normal file
11
application/views/errors/cli/index.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
64
application/views/errors/html/error_404.php
Normal file
64
application/views/errors/html/error_404.php
Normal 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>
|
||||
64
application/views/errors/html/error_db.php
Normal file
64
application/views/errors/html/error_db.php
Normal 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>
|
||||
32
application/views/errors/html/error_exception.php
Normal file
32
application/views/errors/html/error_exception.php
Normal 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>
|
||||
64
application/views/errors/html/error_general.php
Normal file
64
application/views/errors/html/error_general.php
Normal 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>
|
||||
33
application/views/errors/html/error_php.php
Normal file
33
application/views/errors/html/error_php.php
Normal 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>
|
||||
11
application/views/errors/html/index.html
Normal file
11
application/views/errors/html/index.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/views/errors/index.html
Normal file
11
application/views/errors/index.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
11
application/views/index.html
Normal file
11
application/views/index.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
416
application/views/partials/01header.php
Normal file
416
application/views/partials/01header.php
Normal 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>
|
||||
252
application/views/transaction/admin.php
Normal file
252
application/views/transaction/admin.php
Normal 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 →</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>
|
||||
58
application/views/transaction/edit.php
Normal file
58
application/views/transaction/edit.php
Normal 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 →</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>
|
||||
221
application/views/transaction/view.php
Normal file
221
application/views/transaction/view.php
Normal 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 →</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>
|
||||
101
application/views/welcome_message.php
Normal file
101
application/views/welcome_message.php
Normal 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>
|
||||
Reference in New Issue
Block a user