Compare commits
41 Commits
hanan/logi
...
963885d8a3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
963885d8a3 | ||
|
|
1f2973360c | ||
|
|
329db2e2ac | ||
|
|
f527eaa17e | ||
|
|
559f0b41a2 | ||
|
|
89bac6fabe | ||
|
|
e157e2fe43 | ||
|
|
728c4ccf7a | ||
|
|
6972963f41 | ||
|
|
48b4de265f | ||
|
|
662382b50b | ||
|
|
b278020911 | ||
|
|
80ff72e3b3 | ||
| f5e512aa6e | |||
| a4f262af4c | |||
| 3baa3a2cac | |||
| df96880e76 | |||
| f4c7507e6d | |||
|
|
cca5fe06d1 | ||
|
|
90d632a515 | ||
|
|
a90d4843cc | ||
|
|
202f4d22f4 | ||
| 8a474a3082 | |||
|
|
defc0d41c2 | ||
|
|
01d0c0ec07 | ||
|
|
7cc0ce51ba | ||
|
|
62d7735ee1 | ||
|
|
e193769da1 | ||
|
|
f6eb31c242 | ||
|
|
b25c1c3669 | ||
|
|
638e9724c8 | ||
|
|
6260d3bc25 | ||
|
|
d601cc0801 | ||
|
|
0219959594 | ||
|
|
c267c26260 | ||
|
|
3c9c63dd2a | ||
|
|
012f1db6e4 | ||
|
|
ae59d63940 | ||
|
|
976753fc8e | ||
|
|
22e7cadb2d | ||
|
|
dc2c1491fd |
838
assets/andy/underdev.html
Normal file
838
assets/andy/underdev.html
Normal file
@@ -0,0 +1,838 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
|
||||
Author: KeenThemes
|
||||
Website: http://www.keenthemes.com/
|
||||
Contact: support@keenthemes.com
|
||||
Follow: www.twitter.com/keenthemes
|
||||
Dribbble: www.dribbble.com/keenthemes
|
||||
Like: www.facebook.com/keenthemes
|
||||
Purchase: https://1.envato.market/EA4JP
|
||||
Renew Support: https://1.envato.market/EA4JP
|
||||
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
|
||||
-->
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
|
||||
<head>
|
||||
<base href="../" />
|
||||
<meta charset="utf-8" />
|
||||
<title>Westerindo</title>
|
||||
<meta name="description" content="Updates and statistics" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
|
||||
<!--begin::Fonts-->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
|
||||
/>
|
||||
<!--end::Fonts-->
|
||||
|
||||
<!--begin::Page Vendors Styles(used by this page)-->
|
||||
<link
|
||||
href="assets/plugins/custom/fullcalendar/fullcalendar.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!--end::Page Vendors Styles-->
|
||||
|
||||
<!--begin::Global Theme Styles(used by all pages)-->
|
||||
<link
|
||||
href="assets/plugins/global/plugins.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Global Theme Styles-->
|
||||
|
||||
<!--begin::Layout Themes(used by all pages)-->
|
||||
|
||||
<link
|
||||
href="assets/css/themes/layout/header/base/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/header/menu/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/brand/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/aside/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!-- <link href="asset-corporate-portal/media/landingpage/" rel="stylesheet" type="text/css" /> -->
|
||||
<!--end::Layout Themes-->
|
||||
|
||||
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
|
||||
<link
|
||||
href=" https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
|
||||
<script src="//code.iconify.design/1/1.0.6/iconify.min.js"></script>
|
||||
|
||||
<!-- CUSTOM BUNDLE CSS -->
|
||||
<link
|
||||
href="asset-corporate-portal/css/sas.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
|
||||
.navbar-lp {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
.jumbotron-lp {
|
||||
border-radius: 32px;
|
||||
/* background: #3B4F9F; */
|
||||
}
|
||||
|
||||
.title {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 15px;
|
||||
/* font-size: 1vw; */
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.title-jumbotron {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 52px;
|
||||
/* font-size: 3vw; */
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.sub-title-jumbotron {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 16px;
|
||||
/* font-size: 1vw; */
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.btn-login {
|
||||
border-radius: 40px;
|
||||
/* background-color: #3B4F9F; */
|
||||
box-shadow: 0px 8px 16px 0px rgba(59, 79, 159, 0.24);
|
||||
}
|
||||
|
||||
.title-get-started {
|
||||
/* color: #0C518C; */
|
||||
font-family: Poppins;
|
||||
font-size: 20px;
|
||||
/* font-size: 1vw; */
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.custom-button-get-started {
|
||||
border-radius: 40px;
|
||||
/* background-color: #FFF; */
|
||||
box-shadow: 0px 8px 16px 0px rgba(12, 81, 140, 0.24);
|
||||
padding: 20px;
|
||||
margin-top: 44px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 242px;
|
||||
}
|
||||
|
||||
.title-section {
|
||||
/* color: #000; */
|
||||
font-family: Poppins;
|
||||
font-size: 40px;
|
||||
/* font-size: 3vw; */
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
line-height: 80px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.sub-title-section {
|
||||
/* color: #212B36; */
|
||||
font-family: Poppins;
|
||||
font-size: 20px;
|
||||
/* font-size: 1.5vw; */
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
.custom-card-lp {
|
||||
border-radius: 24px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.title-fs-20 {
|
||||
/* color: #0E1E28; */
|
||||
font-family: Poppins;
|
||||
font-size: 20px;
|
||||
/* font-size: 1.5vw; */
|
||||
font-style: normal;
|
||||
/* font-weight: 500; */
|
||||
line-height: 36px;
|
||||
}
|
||||
|
||||
.sub-title-fs-12 {
|
||||
/* color: #0E1E28; */
|
||||
font-family: Poppins;
|
||||
font-size: 12px;
|
||||
/* font-size: 0.9vw; */
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 20px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.icon-container {
|
||||
display: inline-block;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 16px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
.link-learn-more {
|
||||
/* color: #3B4F9F; */
|
||||
font-family: Poppins;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: normal;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.wrapper-custom {
|
||||
/* background: #1B1D1F; */
|
||||
padding-left: 10vw;
|
||||
padding-right: 10vw;
|
||||
}
|
||||
|
||||
.media-left-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.footer-title {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 14px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.footer-sub-title {
|
||||
/* color: #C3C4C5; */
|
||||
font-family: Poppins;
|
||||
font-size: 12px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.logo-footer {
|
||||
margin-bottom: 24px;
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
.garis {
|
||||
/* background: #C3C4C5; */
|
||||
height: 0.2px;
|
||||
}
|
||||
.img-header {
|
||||
object-fit: contain;
|
||||
}
|
||||
.underdev {
|
||||
font-family: "Public Sans";
|
||||
font-size: 64px;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
line-height: normal;
|
||||
}
|
||||
.underdevsub {
|
||||
font-family: "Public Sans";
|
||||
font-size: 26px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
|
||||
<!--begin::Body-->
|
||||
|
||||
<body
|
||||
id="kt_body"
|
||||
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
|
||||
>
|
||||
<div class="wrapper-custom">
|
||||
<!-- Navbar Start -->
|
||||
<nav
|
||||
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
|
||||
>
|
||||
<a class="navbar-brand" href="#">
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/logo.png"
|
||||
width="126"
|
||||
height="40"
|
||||
class="d-inline-block align-top"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</a>
|
||||
<button type="button" class="btn btn-lg btn-primary btn-pill">
|
||||
<span class="title">Login</span>
|
||||
</button>
|
||||
</nav>
|
||||
<!-- Navbar End -->
|
||||
<div class="d-flex justify-content-center text-center flex-column mt-20">
|
||||
<div class="text-primary underdev">Site Under Development</div>
|
||||
<div class="text-disabled underdevsub mb-10">
|
||||
"Stay Tuned, We're Building Excitement!"
|
||||
</div>
|
||||
<div>
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/under_development/under_development.png"
|
||||
class="d-inline-block align-top"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<!-- jumbotron START -->
|
||||
<!-- <div class="jumbotron jumbotron-lp d-none d-lg-block"> -->
|
||||
<div class="jumbotron bg-primary">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 d-flex flex-column">
|
||||
<div class="mb-3">
|
||||
<h1 class="title-jumbotron text-white">
|
||||
Invest in Your Well-being with Our Comprehensive Medical
|
||||
Check-Up
|
||||
</h1>
|
||||
<p class="sub-title-jumbotron text-white">
|
||||
Elevate your health journey with our thorough medical
|
||||
assessments, empowering you to take proactive steps towards
|
||||
a healthier, happier life.
|
||||
</p>
|
||||
<button type="button" class="btn btn-lg btn-pill bg-white">
|
||||
<span class="title-get-started">Get Started</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="mt-auto"></div>
|
||||
</div>
|
||||
<div class="col-md-4 d-flex justify-content-md-end">
|
||||
<div
|
||||
style="
|
||||
flex: 2;
|
||||
margin: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
>
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/jumbotron_left.png"
|
||||
class="img-fluid img-header"
|
||||
alt="Your Brand"
|
||||
style="width: 100%; height: 100%;"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- jumbotron END -->
|
||||
|
||||
<!-- Our Medical Service START -->
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-left">
|
||||
<h2 class="title-section text-black">Our Medical Services</h2>
|
||||
<p class="sub-title-section text-black">
|
||||
Discover excellence in healthcare at Our Medical Services. From
|
||||
diagnosis to treatment, our dedicated team provides personalized
|
||||
care for your well-being.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="card custom-card-lp">
|
||||
<div class="card-body">
|
||||
<div class="icon-container bg-primary-transparent">
|
||||
<span
|
||||
class="iconify text-primary w-20 h-20"
|
||||
data-icon="uil:clinic-medical"
|
||||
></span>
|
||||
</div>
|
||||
<h5 class="card-title title-fs-20">In House Clinic</h5>
|
||||
<p class="card-text sub-title-fs-12">
|
||||
Maintaining health in the workplace by carrying out
|
||||
promotional, preventive, curative and rehabilitative
|
||||
programs.
|
||||
</p>
|
||||
<a href="#" class="link-learn-more text-primary"
|
||||
>Learn More
|
||||
<span
|
||||
class="iconify text-primary w-20 h-20"
|
||||
data-icon="eva:arrow-forward-outline"
|
||||
></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="card custom-card-lp">
|
||||
<div class="card-body">
|
||||
<div class="icon-container bg-primary-transparent">
|
||||
<span
|
||||
class="iconify text-primary w-20 h-20"
|
||||
data-icon="healthicons:clinical-a-outline"
|
||||
></span>
|
||||
</div>
|
||||
<h5 class="card-title title-fs-20">Laboratorium Test</h5>
|
||||
<p class="card-text sub-title-fs-12">
|
||||
Maintaining health in the workplace by carrying out
|
||||
promotional, preventive, curative and rehabilitative
|
||||
programs.
|
||||
</p>
|
||||
<a href="#" class="link-learn-more text-primary"
|
||||
>Learn More
|
||||
<span
|
||||
class="iconify text-primary w-20 h-20"
|
||||
data-icon="eva:arrow-forward-outline"
|
||||
></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="card custom-card-lp">
|
||||
<div class="card-body">
|
||||
<div class="icon-container bg-primary-transparent">
|
||||
<span
|
||||
class="iconify text-primary w-20 h-20"
|
||||
data-icon="jam:medical"
|
||||
></span>
|
||||
</div>
|
||||
<h5 class="card-title title-fs-20">Medical Check Up</h5>
|
||||
<p class="card-text sub-title-fs-12">
|
||||
Maintaining health in the workplace by carrying out
|
||||
promotional, preventive, curative and rehabilitative
|
||||
programs.
|
||||
</p>
|
||||
<a href="#" class="link-learn-more text-primary"
|
||||
>Learn More
|
||||
<span
|
||||
class="iconify text-primary w-20 h-20"
|
||||
data-icon="eva:arrow-forward-outline"
|
||||
></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Our Medical Service END -->
|
||||
|
||||
<!-- Why Westerindo START belum fix di ukuran < 1400 -->
|
||||
<div class="container mt-5">
|
||||
<div class="row">
|
||||
<div class="col-md-12 col-lg-12 text-left">
|
||||
<h2 class="title-section text-black">Why Westerindo</h2>
|
||||
<p class="sub-title-section text-black">
|
||||
With a dedicated team of professionals we’re committed to
|
||||
providing medical attention tailored to your needs, ensuring a
|
||||
journey to optimal health and vitality.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-5">
|
||||
<div class="col-md-6">
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/why_westerindo_right.png"
|
||||
alt="Your Brand"
|
||||
class="align-top w-100 h-100 pt-4 pb-4"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-md-6 d-flex flex-column">
|
||||
<!-- 1 -->
|
||||
<div class="row flex-grow-1">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<span
|
||||
class="iconify text-primary media-left-icon"
|
||||
data-icon="mingcute:certificate-line"
|
||||
></span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="title-fs-20 text-black ml-4">ISO Certificate</h4>
|
||||
<p class="sub-title-fs-12 text-black ml-4">
|
||||
Westerindo Clinical Laboratory has obtained ISO 15189:2009
|
||||
(ISO 15189:2007) Accreditation from the National
|
||||
Accreditation Committee (KAN) and the Health Laboratory
|
||||
Accreditation Commission (KALK).
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 2 -->
|
||||
<div class="row flex-grow-1">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<span
|
||||
class="iconify text-primary media-left-icon"
|
||||
data-icon="mingcute:certificate-line"
|
||||
></span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="title-fs-20 text-black ml-4">
|
||||
Modern Technology
|
||||
</h4>
|
||||
<p class="sub-title-fs-12 text-black ml-4">
|
||||
Laboratory Information System (LIS) is an information
|
||||
system in which laboratory equipment and diagnostic
|
||||
support have been integrated automatically so that
|
||||
examination results can be immediately filled in in
|
||||
employee data. This eliminates the possibility of human
|
||||
error.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 3 -->
|
||||
<div class="row flex-grow-1">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<span
|
||||
class="iconify media-left-icon"
|
||||
data-icon="mingcute:certificate-line"
|
||||
></span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="title-fs-20 text-black ml-4">
|
||||
Good Quality Facilities
|
||||
</h4>
|
||||
<p class="sub-title-fs-12 text-black ml-4">
|
||||
The laboratory and medical support equipment used at the
|
||||
Westerindo Clinical Laboratory is international scale for
|
||||
precise, fast and accurate results. Lab and medical
|
||||
equipment certificates are periodically renewed according
|
||||
to standards.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 4 -->
|
||||
<div class="row flex-grow-1">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<span
|
||||
class="iconify media-left-icon"
|
||||
data-icon="mingcute:certificate-line"
|
||||
></span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="title-fs-20 text-black ml-4">
|
||||
Professional Service
|
||||
</h4>
|
||||
<p class="sub-title-fs-12 text-black ml-4">
|
||||
Westerindo Clinical Laboratory is committed to providing
|
||||
professional and excellent service. Therefore, all staff
|
||||
and doctors at the Westerindo Clinical Laboratory have
|
||||
competency certification according to their field.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 5 -->
|
||||
<div class="row">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<span
|
||||
class="iconify media-left-icon"
|
||||
data-icon="mingcute:certificate-line"
|
||||
></span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h4 class="title-fs-20 text-black ml-4">Experienced</h4>
|
||||
<p class="sub-title-fs-12 text-black ml-4">
|
||||
Westerindo Clinical Laboratory is very experienced in
|
||||
carrying out Medical Check Ups both onsite and insite, in
|
||||
all corners of Indonesia. Serving various kinds of
|
||||
companies, from oil and gas companies, automotive,
|
||||
manufacturing, offices, and others.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Why Westerindo END -->
|
||||
|
||||
<!-- Promotion START -->
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-left">
|
||||
<h2 class="title-section text-black">Promotions</h2>
|
||||
<p class="sub-title-section text-black">
|
||||
Seize This Opportunity to Enhance Your Health
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-4 mb-2">
|
||||
<div class="col-md-4 mt-2">
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/promotion_1.png"
|
||||
class="img-fluid"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-md-4 mt-2">
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/promotion_2.png"
|
||||
class="img-fluid"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-md-4 mt-2">
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/promotion_3.png"
|
||||
class="img-fluid"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Promotion END -->
|
||||
</div>
|
||||
|
||||
<!-- footer START -->
|
||||
<footer class="wrapper-custom bg-black pb-25 pt-25">
|
||||
<div class="row mb-5">
|
||||
<div class="col-md-12 col-lg">
|
||||
<img
|
||||
src="asset-corporate-portal/media/landingpage/logo.png"
|
||||
class="logo-footer"
|
||||
width="126"
|
||||
height="40"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
|
||||
<div class="text-white d-flex flex-row mb-3">
|
||||
<!-- style="display: flex; flex-direction: row; color: white;align-items: start; margin-bottom: 24px;" -->
|
||||
<div class="mr-3 mt-1">
|
||||
<i
|
||||
class="fas fa-map-marker-alt marker footer-icon text-warning"
|
||||
></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<p class="footer-sub-title text-grey">
|
||||
Jl. Cipaku I No.5, RT.2/RW.4, Petogogan, Kec. Kby. Baru, Kota
|
||||
Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12170
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-flex flex-row">
|
||||
<div class="mr-3 mt-1">
|
||||
<i class="fas fa-phone footer-icon text-warning"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<p class="footer-sub-title text-grey">021-7392345</p>
|
||||
<p class="footer-sub-title text-grey">021-2702525</p>
|
||||
<p class="footer-sub-title text-grey">021-7255080</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md col-lg">
|
||||
<h4 class="footer-title text-white mb-3">Dashboard</h4>
|
||||
<p class="footer-sub-title text-grey">
|
||||
Employee Medical Health Analytic Clinic Admission
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md col-lg">
|
||||
<h4 class="footer-title text-white">Benefit</h4>
|
||||
</div>
|
||||
<div class="col-md col-lg">
|
||||
<h4 class="footer-title text-white">Finance & Claims</h4>
|
||||
</div>
|
||||
<div class="col-md col-lg">
|
||||
<h4 class="footer-title text-white">Membership</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="garis bg-grey"></div>
|
||||
<div class="row mt-4">
|
||||
<div class="col-md-6">
|
||||
<p class="footer-sub-title text-grey">
|
||||
© Copyright 2024. Organized PT SADHANA ABIYASA SAMPOERNA (Privacy
|
||||
Policy)
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6 text-right">
|
||||
<p class="footer-icons">
|
||||
<a href="#" class="mr-3"><i class="fab fa-whatsapp"></i></a>
|
||||
<a href="#" class="mr-3"><i class="fab fa-facebook"></i></a>
|
||||
<a href="#"><i class="fab fa-instagram"></i></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<!-- footer END -->
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var HOST_URL =
|
||||
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
|
||||
</script>
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script>
|
||||
var KTAppSettings = {
|
||||
breakpoints: {
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
xl: 1200,
|
||||
xxl: 1400,
|
||||
},
|
||||
colors: {
|
||||
theme: {
|
||||
base: {
|
||||
white: "#ffffff",
|
||||
primary: "#3699FF",
|
||||
secondary: "#E5EAEE",
|
||||
success: "#1BC5BD",
|
||||
info: "#8950FC",
|
||||
warning: "#FFA800",
|
||||
danger: "#F64E60",
|
||||
light: "#E4E6EF",
|
||||
dark: "#181C32",
|
||||
},
|
||||
light: {
|
||||
white: "#ffffff",
|
||||
primary: "#E1F0FF",
|
||||
secondary: "#EBEDF3",
|
||||
success: "#C9F7F5",
|
||||
info: "#EEE5FF",
|
||||
warning: "#FFF4DE",
|
||||
danger: "#FFE2E5",
|
||||
light: "#F3F6F9",
|
||||
dark: "#D6D6E0",
|
||||
},
|
||||
inverse: {
|
||||
white: "#ffffff",
|
||||
primary: "#ffffff",
|
||||
secondary: "#3F4254",
|
||||
success: "#ffffff",
|
||||
info: "#ffffff",
|
||||
warning: "#ffffff",
|
||||
danger: "#ffffff",
|
||||
light: "#464E5F",
|
||||
dark: "#ffffff",
|
||||
},
|
||||
},
|
||||
gray: {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32",
|
||||
},
|
||||
},
|
||||
"font-family": "Poppins",
|
||||
};
|
||||
</script>
|
||||
<!--end::Global Config-->
|
||||
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
|
||||
<script src="assets/js/scripts.bundle.js"></script>
|
||||
<!--end::Global Theme Bundle-->
|
||||
|
||||
<!--begin::Page Vendors(used by this page)-->
|
||||
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
|
||||
<!--end::Page Vendors-->
|
||||
|
||||
<!--begin::Page Scripts(used by this page)-->
|
||||
<script src="assets/js/pages/widgets.js"></script>
|
||||
<!--end::Page Scripts-->
|
||||
|
||||
<!-- echartjs.min.js -->
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
|
||||
<!-- helper htmx -->
|
||||
<script src="assets/js/helper-htmx/helper.js"></script>
|
||||
|
||||
<!-- iconify -->
|
||||
<script
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
|
||||
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
|
||||
crossorigin="anonymous"
|
||||
referrerpolicy="no-referrer"
|
||||
></script>
|
||||
|
||||
<!-- htmx -->
|
||||
<script
|
||||
src="https://unpkg.com/htmx.org@1.9.11/dist/htmx.js"
|
||||
integrity="sha384-l9bYT9SL4CAW0Hl7pAOpfRc18mys1b0wK4U8UtGnWOxPVbVMgrOdB+jyz/WY8Jue"
|
||||
crossorigin="anonymous"
|
||||
></script>
|
||||
|
||||
<!-- SCRIPT -->
|
||||
<script type="text/javascript" async></script>
|
||||
<!-- SCRIPT -->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
58
assets/asset-corporate-portal/js/ktappsetting.js
Normal file
58
assets/asset-corporate-portal/js/ktappsetting.js
Normal file
@@ -0,0 +1,58 @@
|
||||
var KTAppSettings = {
|
||||
breakpoints: {
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
xl: 1200,
|
||||
xxl: 1400,
|
||||
},
|
||||
colors: {
|
||||
theme: {
|
||||
base: {
|
||||
white: "#ffffff",
|
||||
primary: "#3699FF",
|
||||
secondary: "#E5EAEE",
|
||||
success: "#1BC5BD",
|
||||
info: "#8950FC",
|
||||
warning: "#FFA800",
|
||||
danger: "#F64E60",
|
||||
light: "#E4E6EF",
|
||||
dark: "#181C32",
|
||||
},
|
||||
light: {
|
||||
white: "#ffffff",
|
||||
primary: "#E1F0FF",
|
||||
secondary: "#EBEDF3",
|
||||
success: "#C9F7F5",
|
||||
info: "#EEE5FF",
|
||||
warning: "#FFF4DE",
|
||||
danger: "#FFE2E5",
|
||||
light: "#F3F6F9",
|
||||
dark: "#D6D6E0",
|
||||
},
|
||||
inverse: {
|
||||
white: "#ffffff",
|
||||
primary: "#ffffff",
|
||||
secondary: "#3F4254",
|
||||
success: "#ffffff",
|
||||
info: "#ffffff",
|
||||
warning: "#ffffff",
|
||||
danger: "#ffffff",
|
||||
light: "#464E5F",
|
||||
dark: "#ffffff",
|
||||
},
|
||||
},
|
||||
gray: {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32",
|
||||
},
|
||||
},
|
||||
"font-family": "Poppins",
|
||||
};
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
80
assets/assets/css/googlefont/poppins.css
Normal file
80
assets/assets/css/googlefont/poppins.css
Normal file
@@ -0,0 +1,80 @@
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Poppins';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/poppins/v21/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
120
assets/assets/css/googlefont/publicsans.css
Normal file
120
assets/assets/css/googlefont/publicsans.css
Normal file
@@ -0,0 +1,120 @@
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNJfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNIfJ7Cww.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Public Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/publicsans/v15/ijwRs572Xtc6ZYQws9YVwnNGfJ4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
224
assets/assets/css/googlefont/roboto.css
Normal file
224
assets/assets/css/googlefont/roboto.css
Normal file
@@ -0,0 +1,224 @@
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2');
|
||||
unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
2
assets/assets/css/slick/slick-theme.css
Normal file
2
assets/assets/css/slick/slick-theme.css
Normal file
@@ -0,0 +1,2 @@
|
||||
@charset 'UTF-8';.slick-loading .slick-list{background:#fff url(ajax-loader.gif) center center no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(fonts/slick.eot);src:url(fonts/slick.eot?#iefix) format('embedded-opentype'),url(fonts/slick.woff) format('woff'),url(fonts/slick.ttf) format('truetype'),url(fonts/slick.svg#slick) format('svg')}.slick-next,.slick-prev{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;color:transparent;border:none;outline:0;background:0 0}.slick-next:focus,.slick-next:hover,.slick-prev:focus,.slick-prev:hover{color:transparent;outline:0;background:0 0}.slick-next:focus:before,.slick-next:hover:before,.slick-prev:focus:before,.slick-prev:hover:before{opacity:1}.slick-next.slick-disabled:before,.slick-prev.slick-disabled:before{opacity:.25}.slick-next:before,.slick-prev:before{font-family:slick;font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir=rtl] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:'←'}[dir=rtl] .slick-prev:before{content:'→'}.slick-next{right:-25px}[dir=rtl] .slick-next{right:auto;left:-25px}.slick-next:before{content:'→'}[dir=rtl] .slick-next:before{content:'←'}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:0;background:0 0}.slick-dots li button:focus,.slick-dots li button:hover{outline:0}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'•';text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}
|
||||
/*# sourceMappingURL=slick-theme.min.css.map */
|
||||
119
assets/assets/css/slick/slick.css
Normal file
119
assets/assets/css/slick/slick.css
Normal file
@@ -0,0 +1,119 @@
|
||||
/* Slider */
|
||||
.slick-slider
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
|
||||
-webkit-touch-callout: none;
|
||||
-khtml-user-select: none;
|
||||
-ms-touch-action: pan-y;
|
||||
touch-action: pan-y;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
.slick-list
|
||||
{
|
||||
position: relative;
|
||||
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.slick-list:focus
|
||||
{
|
||||
outline: none;
|
||||
}
|
||||
.slick-list.dragging
|
||||
{
|
||||
cursor: pointer;
|
||||
cursor: hand;
|
||||
}
|
||||
|
||||
.slick-slider .slick-track,
|
||||
.slick-slider .slick-list
|
||||
{
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
-moz-transform: translate3d(0, 0, 0);
|
||||
-ms-transform: translate3d(0, 0, 0);
|
||||
-o-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
.slick-track
|
||||
{
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.slick-track:before,
|
||||
.slick-track:after
|
||||
{
|
||||
display: table;
|
||||
|
||||
content: '';
|
||||
}
|
||||
.slick-track:after
|
||||
{
|
||||
clear: both;
|
||||
}
|
||||
.slick-loading .slick-track
|
||||
{
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.slick-slide
|
||||
{
|
||||
display: none;
|
||||
float: left;
|
||||
|
||||
height: 100%;
|
||||
min-height: 1px;
|
||||
}
|
||||
[dir='rtl'] .slick-slide
|
||||
{
|
||||
float: right;
|
||||
}
|
||||
.slick-slide img
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
.slick-slide.slick-loading img
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
.slick-slide.dragging img
|
||||
{
|
||||
pointer-events: none;
|
||||
}
|
||||
.slick-initialized .slick-slide
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
.slick-loading .slick-slide
|
||||
{
|
||||
visibility: hidden;
|
||||
}
|
||||
.slick-vertical .slick-slide
|
||||
{
|
||||
display: block;
|
||||
|
||||
height: auto;
|
||||
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.slick-arrow.slick-hidden {
|
||||
display: none;
|
||||
}
|
||||
1
assets/assets/js/htmx/htmx.min.js
vendored
Normal file
1
assets/assets/js/htmx/htmx.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
13
assets/assets/js/iconify/iconify.min.js
vendored
Normal file
13
assets/assets/js/iconify/iconify.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
assets/assets/js/slick/slick.min.js
vendored
Normal file
1
assets/assets/js/slick/slick.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
431
assets/hanan/employee-medical-analytic.html
Normal file
431
assets/hanan/employee-medical-analytic.html
Normal file
@@ -0,0 +1,431 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
|
||||
Author: KeenThemes
|
||||
Website: http://www.keenthemes.com/
|
||||
Contact: support@keenthemes.com
|
||||
Follow: www.twitter.com/keenthemes
|
||||
Dribbble: www.dribbble.com/keenthemes
|
||||
Like: www.facebook.com/keenthemes
|
||||
Purchase: https://1.envato.market/EA4JP
|
||||
Renew Support: https://1.envato.market/EA4JP
|
||||
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
|
||||
-->
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
|
||||
<head>
|
||||
<base href="../" />
|
||||
<meta charset="utf-8" />
|
||||
<title>Westerindo</title>
|
||||
<meta name="description" content="Updates and statistics" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
|
||||
<!--begin::Fonts-->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
|
||||
/>
|
||||
<!--end::Fonts-->
|
||||
|
||||
<!--begin::Page Vendors Styles(used by this page)-->
|
||||
<link
|
||||
href="assets/plugins/custom/fullcalendar/fullcalendar.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!--end::Page Vendors Styles-->
|
||||
|
||||
<!--begin::Global Theme Styles(used by all pages)-->
|
||||
<link
|
||||
href="assets/plugins/global/plugins.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Global Theme Styles-->
|
||||
|
||||
<!--begin::Layout Themes(used by all pages)-->
|
||||
|
||||
<link
|
||||
href="assets/css/themes/layout/header/base/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/header/menu/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/brand/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/aside/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!-- <link href="asset-corporate-portal/media/landingpage/" rel="stylesheet" type="text/css" /> -->
|
||||
<!--end::Layout Themes-->
|
||||
|
||||
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
|
||||
<link
|
||||
href=" https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
|
||||
<script src="//code.iconify.design/1/1.0.6/iconify.min.js"></script>
|
||||
|
||||
<!-- CUSTOM BUNDLE CSS -->
|
||||
<link
|
||||
href="asset-corporate-portal/css/sas.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
|
||||
.navbar-lp {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
.title {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 15px;
|
||||
/* font-size: 1vw; */
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.custom-card-lp {
|
||||
border-radius: 24px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.wrapper-custom {
|
||||
/* background: #1B1D1F; */
|
||||
padding-left: 10vw;
|
||||
padding-right: 10vw;
|
||||
}
|
||||
|
||||
.media-left-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.items-content {
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
.content-page {
|
||||
padding-top: 24px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
.item-foto {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
.heading {
|
||||
padding-top: 40px;
|
||||
}
|
||||
.card:hover {
|
||||
background-color: rgba(197, 200, 211, 0.5);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
|
||||
<!--begin::Body-->
|
||||
|
||||
<body
|
||||
id="kt_body"
|
||||
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
|
||||
>
|
||||
<div class="wrapper-custom">
|
||||
<!-- Navbar Start -->
|
||||
<nav
|
||||
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
|
||||
>
|
||||
<a class="navbar-brand" href="#">
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/logo.png"
|
||||
width="126"
|
||||
height="40"
|
||||
class="d-inline-block align-top"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</a>
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/logo/foto.png"
|
||||
alt="..."
|
||||
class="item-foto rounded-circle"
|
||||
/>
|
||||
</nav>
|
||||
<!-- Navbar End -->
|
||||
|
||||
<!--begin::Page Heading-->
|
||||
<div class="heading d-flex justify-content-between">
|
||||
<div class="align-items-center flex-wrap">
|
||||
<!--begin::Page Title-->
|
||||
<h5 class="text-dark font-weight-bold my-1 mr-5">
|
||||
PT. Sadhana Abiyasa Sampoerna
|
||||
</h5>
|
||||
<!--end::Page Title-->
|
||||
|
||||
<!--begin::Breadcrumb-->
|
||||
<ul
|
||||
class="breadcrumb breadcrumb-transparent font-weight-bold p-0 my-2 font-size-sm"
|
||||
>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="" class="text-muted">Dashboard</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="" class="text-muted">Employee Health Medical Analytic</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--end::Breadcrumb-->
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
<!--begin::Actions-->
|
||||
<a href="#" class="btn btn-primary font-weight-bolder btn-lg">
|
||||
<i class="fas fa-filter"></i> Filter
|
||||
</a>
|
||||
<!--end::Actions-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Page Heading-->
|
||||
|
||||
<!-- content -->
|
||||
<div class="align-items-center pt-15 flex-column">
|
||||
<div class="bg-field rounded">
|
||||
<div class="content-page">
|
||||
<!-- card -->
|
||||
<a href="">
|
||||
<div class="items-content card shadow">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="col-7">
|
||||
<h3 class="text-black">MCU Calon Karyawan</h3>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>Tanggal Pelaksanaan</span
|
||||
>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>01/04/2024 - 06/04/2024</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- end card -->
|
||||
|
||||
<!-- card -->
|
||||
<a href="">
|
||||
<div class="items-content card shadow">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="col-7">
|
||||
<h3 class="text-black">MCU Karyawan</h3>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>Tanggal Pelaksanaan</span
|
||||
>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>01/04/2024 - 06/04/2024</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- end card -->
|
||||
|
||||
<!-- card -->
|
||||
<a href="">
|
||||
<div class="items-content card shadow">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="col-7">
|
||||
<h3 class="text-black">MCU Eselon 1</h3>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>Tanggal Pelaksanaan</span
|
||||
>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>01/04/2024 - 06/04/2024</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- end card -->
|
||||
|
||||
<!-- card -->
|
||||
<a href="">
|
||||
<div class="items-content card shadow">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="col-7">
|
||||
<h3 class="text-black">MCU Eselon 2</h3>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>Tanggal Pelaksanaan</span
|
||||
>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde"
|
||||
>01/04/2024 - 06/04/2024</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- end card -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end content -->
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var HOST_URL =
|
||||
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
|
||||
</script>
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script>
|
||||
var KTAppSettings = {
|
||||
breakpoints: {
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
xl: 1200,
|
||||
xxl: 1400,
|
||||
},
|
||||
colors: {
|
||||
theme: {
|
||||
base: {
|
||||
white: "#ffffff",
|
||||
primary: "#3699FF",
|
||||
secondary: "#E5EAEE",
|
||||
success: "#1BC5BD",
|
||||
info: "#8950FC",
|
||||
warning: "#FFA800",
|
||||
danger: "#F64E60",
|
||||
light: "#E4E6EF",
|
||||
dark: "#181C32",
|
||||
},
|
||||
light: {
|
||||
white: "#ffffff",
|
||||
primary: "#E1F0FF",
|
||||
secondary: "#EBEDF3",
|
||||
success: "#C9F7F5",
|
||||
info: "#EEE5FF",
|
||||
warning: "#FFF4DE",
|
||||
danger: "#FFE2E5",
|
||||
light: "#F3F6F9",
|
||||
dark: "#D6D6E0",
|
||||
},
|
||||
inverse: {
|
||||
white: "#ffffff",
|
||||
primary: "#ffffff",
|
||||
secondary: "#3F4254",
|
||||
success: "#ffffff",
|
||||
info: "#ffffff",
|
||||
warning: "#ffffff",
|
||||
danger: "#ffffff",
|
||||
light: "#464E5F",
|
||||
dark: "#ffffff",
|
||||
},
|
||||
},
|
||||
gray: {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32",
|
||||
},
|
||||
},
|
||||
"font-family": "Poppins",
|
||||
};
|
||||
</script>
|
||||
<!--end::Global Config-->
|
||||
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
|
||||
<script src="assets/js/scripts.bundle.js"></script>
|
||||
<!--end::Global Theme Bundle-->
|
||||
|
||||
<!--begin::Page Vendors(used by this page)-->
|
||||
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
|
||||
<!--end::Page Vendors-->
|
||||
|
||||
<!--begin::Page Scripts(used by this page)-->
|
||||
<script src="assets/js/pages/widgets.js"></script>
|
||||
<!--end::Page Scripts-->
|
||||
|
||||
<!-- echartjs.min.js -->
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
|
||||
<!-- helper htmx -->
|
||||
<script src="assets/js/helper-htmx/helper.js"></script>
|
||||
|
||||
<!-- iconify -->
|
||||
<script
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
|
||||
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
|
||||
crossorigin="anonymous"
|
||||
referrerpolicy="no-referrer"
|
||||
></script>
|
||||
|
||||
<!-- htmx -->
|
||||
<script
|
||||
src="https://unpkg.com/htmx.org@1.9.11/dist/htmx.js"
|
||||
integrity="sha384-l9bYT9SL4CAW0Hl7pAOpfRc18mys1b0wK4U8UtGnWOxPVbVMgrOdB+jyz/WY8Jue"
|
||||
crossorigin="anonymous"
|
||||
></script>
|
||||
|
||||
<!-- SCRIPT -->
|
||||
<script type="text/javascript" async></script>
|
||||
<!-- SCRIPT -->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
338
assets/mcu/kelainan-global.html
Normal file
338
assets/mcu/kelainan-global.html
Normal file
@@ -0,0 +1,338 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
|
||||
Author: KeenThemes
|
||||
Website: http://www.keenthemes.com/
|
||||
Contact: support@keenthemes.com
|
||||
Follow: www.twitter.com/keenthemes
|
||||
Dribbble: www.dribbble.com/keenthemes
|
||||
Like: www.facebook.com/keenthemes
|
||||
Purchase: https://1.envato.market/EA4JP
|
||||
Renew Support: https://1.envato.market/EA4JP
|
||||
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
|
||||
-->
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
|
||||
<head>
|
||||
<base href="../" />
|
||||
<meta charset="utf-8" />
|
||||
<title>KELAINAN GLOBAL | MCU004</title>
|
||||
<meta name="description" content="Login page example" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
|
||||
<!--begin::Fonts-->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
|
||||
/>
|
||||
<!--end::Fonts-->
|
||||
|
||||
<!--begin::Page Custom Styles(used by this page)-->
|
||||
<link
|
||||
href="assets/css/pages/login/login-1.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!--end::Page Custom Styles-->
|
||||
|
||||
<!--begin::Global Theme Styles(used by all pages)-->
|
||||
<link
|
||||
href="assets/plugins/global/plugins.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Global Theme Styles-->
|
||||
|
||||
<!--begin::Layout Themes(used by all pages)-->
|
||||
|
||||
<link
|
||||
href="assets/css/themes/layout/header/base/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/header/menu/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/brand/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/aside/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!--end::Layout Themes-->
|
||||
|
||||
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
|
||||
<style>
|
||||
#mcu-004 {
|
||||
height: 50%;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
#mcu-005 {
|
||||
height: 40%;
|
||||
width: "100%";
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
|
||||
<!--begin::Body-->
|
||||
|
||||
<body
|
||||
id="kt_body"
|
||||
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
|
||||
>
|
||||
<!--begin::Main-->
|
||||
<div class="d-flex flex-column flex-root bg-white">
|
||||
<!-- begin::Navbar -->
|
||||
<div class="d-flex justify-content-center">
|
||||
<h3 class="mb-3">Data Persentase Kelainan Global</h3>
|
||||
</div>
|
||||
|
||||
<div id="mcu-004" class="mt-5"></div>
|
||||
<div id="mcu-005"></div>
|
||||
<!-- end::Navbar -->
|
||||
</div>
|
||||
<!--end::Main-->
|
||||
<script>
|
||||
var HOST_URL =
|
||||
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
|
||||
</script>
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script>
|
||||
var KTAppSettings = {
|
||||
breakpoints: {
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
xl: 1200,
|
||||
xxl: 1400,
|
||||
},
|
||||
colors: {
|
||||
theme: {
|
||||
base: {
|
||||
white: "#ffffff",
|
||||
primary: "#3699FF",
|
||||
secondary: "#E5EAEE",
|
||||
success: "#1BC5BD",
|
||||
info: "#8950FC",
|
||||
warning: "#FFA800",
|
||||
danger: "#F64E60",
|
||||
light: "#E4E6EF",
|
||||
dark: "#181C32",
|
||||
},
|
||||
light: {
|
||||
white: "#ffffff",
|
||||
primary: "#E1F0FF",
|
||||
secondary: "#EBEDF3",
|
||||
success: "#C9F7F5",
|
||||
info: "#EEE5FF",
|
||||
warning: "#FFF4DE",
|
||||
danger: "#FFE2E5",
|
||||
light: "#F3F6F9",
|
||||
dark: "#D6D6E0",
|
||||
},
|
||||
inverse: {
|
||||
white: "#ffffff",
|
||||
primary: "#ffffff",
|
||||
secondary: "#3F4254",
|
||||
success: "#ffffff",
|
||||
info: "#ffffff",
|
||||
warning: "#ffffff",
|
||||
danger: "#ffffff",
|
||||
light: "#464E5F",
|
||||
dark: "#ffffff",
|
||||
},
|
||||
},
|
||||
gray: {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32",
|
||||
},
|
||||
},
|
||||
"font-family": "Poppins",
|
||||
};
|
||||
</script>
|
||||
<!--end::Global Config-->
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
|
||||
<script src="assets/js/scripts.bundle.js"></script>
|
||||
<!--end::Global Theme Bundle-->
|
||||
|
||||
<!--begin::Page Vendors(used by this page)-->
|
||||
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
|
||||
<!--end::Page Vendors-->
|
||||
|
||||
<!--begin::Page Scripts(used by this page)-->
|
||||
<script src="assets/js/pages/widgets.js"></script>
|
||||
<!--end::Page Scripts-->
|
||||
<!-- echartjs.min.js -->
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
<!-- SCRIPT -->
|
||||
<script type="text/javascript">
|
||||
// Initialize the echarts instance based on the prepared dom
|
||||
var chartMCU004 = echarts.init(document.getElementById("mcu-004"));
|
||||
var optMCU004 = {
|
||||
title: {
|
||||
text: "Kelainan MCU",
|
||||
// subtext: 'Living Expenses in Shenzhen'
|
||||
},
|
||||
dataset: {
|
||||
source: [
|
||||
["score", "amount", "product", "percentage"],
|
||||
[200, 447, "Body Mass Index"],
|
||||
[150, 314, "Pemeriksaan Mata"],
|
||||
[125, 314, "Fungsi Lemak"],
|
||||
[100, 254, "Autospirometri"],
|
||||
[90, 200, "Hematologi"],
|
||||
[80, 180, "ECG"],
|
||||
[75, 160, "Hiperuricemia"],
|
||||
[70, 125, "Tekanan Darah"],
|
||||
[60, 118, "Urine Lengkap"],
|
||||
[50, 87, "Fungsi Hati"],
|
||||
],
|
||||
},
|
||||
grid: {
|
||||
containLabel: true,
|
||||
},
|
||||
xAxis: {
|
||||
name: "amount",
|
||||
},
|
||||
yAxis: {
|
||||
type: "category",
|
||||
},
|
||||
visualMap: {
|
||||
orient: "horizontal",
|
||||
left: "center",
|
||||
min: 10,
|
||||
max: 100,
|
||||
show: false,
|
||||
|
||||
// text: ['High Score', 'Low Score'],
|
||||
// Map the score column to color
|
||||
dimension: 0,
|
||||
inRange: {
|
||||
color: ["#42aaf5", "#00eaf2", "#035bff"],
|
||||
},
|
||||
},
|
||||
series: [
|
||||
{
|
||||
label: {
|
||||
position: "right",
|
||||
show: true,
|
||||
formatter: "{@[3]} %",
|
||||
},
|
||||
type: "bar",
|
||||
encode: {
|
||||
// Map the "amount" column to X axis.
|
||||
x: "amount",
|
||||
// Map the "product" column to Y axis
|
||||
y: "product",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
window.addEventListener("resize", function () {
|
||||
chartMCU004.resize();
|
||||
});
|
||||
|
||||
// Display the chart using the configuration items and data just specified.
|
||||
chartMCU004.setOption(optMCU004);
|
||||
|
||||
//MCU005
|
||||
// Initialize the echarts instance based on the prepared dom
|
||||
var chartMCU005 = echarts.init(document.getElementById("mcu-005"));
|
||||
var optMCU005 = {
|
||||
title: {
|
||||
text: "Kelainan Fisik",
|
||||
// subtext: 'Living Expenses in Shenzhen'
|
||||
},
|
||||
dataset: {
|
||||
source: [
|
||||
["score", "amount", "product", "percentage"],
|
||||
[200, 400, "Obesitas Stage 1"],
|
||||
[150, 300, "Pre Hipertensi"],
|
||||
[133, 250, "Kelainan Refraksi"],
|
||||
[125, 180, "Overweight"],
|
||||
[100, 125, "Obesitas Stage 2"],
|
||||
[80, 100, "Hipertensi grade 1"],
|
||||
[70, 80, "Kel. Refrakti terkoreksi"],
|
||||
[60, 70, "Kel. Refrakti tidak terkoreksi"],
|
||||
[55, 55, "Hipertensi grade 2"],
|
||||
],
|
||||
},
|
||||
grid: {
|
||||
containLabel: true,
|
||||
},
|
||||
xAxis: {
|
||||
name: "amount",
|
||||
},
|
||||
yAxis: {
|
||||
type: "category",
|
||||
},
|
||||
visualMap: {
|
||||
orient: "horizontal",
|
||||
left: "center",
|
||||
min: 10,
|
||||
max: 100,
|
||||
show: false,
|
||||
// text: ['High Score', 'Low Score'],
|
||||
// Map the score column to color
|
||||
dimension: 0,
|
||||
inRange: {
|
||||
color: ["#42aaf5", "#00eaf2", "#035bff"],
|
||||
},
|
||||
},
|
||||
series: [
|
||||
{
|
||||
label: {
|
||||
position: "right",
|
||||
show: true,
|
||||
formatter: "{@[3]} %",
|
||||
},
|
||||
type: "bar",
|
||||
encode: {
|
||||
// Map the "amount" column to X axis.
|
||||
x: "amount",
|
||||
// Map the "product" column to Y axis
|
||||
y: "product",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
window.addEventListener("resize", function () {
|
||||
chartMCU005.resize();
|
||||
});
|
||||
|
||||
// Display the chart using the configuration items and data just specified.
|
||||
chartMCU005.setOption(optMCU005);
|
||||
</script>
|
||||
<!-- SCRIPT -->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
@@ -1,301 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
|
||||
Author: KeenThemes
|
||||
Website: http://www.keenthemes.com/
|
||||
Contact: support@keenthemes.com
|
||||
Follow: www.twitter.com/keenthemes
|
||||
Dribbble: www.dribbble.com/keenthemes
|
||||
Like: www.facebook.com/keenthemes
|
||||
Purchase: https://1.envato.market/EA4JP
|
||||
Renew Support: https://1.envato.market/EA4JP
|
||||
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
|
||||
-->
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
|
||||
<head>
|
||||
<base href="../" />
|
||||
<meta charset="utf-8" />
|
||||
<title>KELAINAN GLOBAL | MCU004</title>
|
||||
<meta name="description" content="Login page example" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||
|
||||
<!--begin::Fonts-->
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />
|
||||
<!--end::Fonts-->
|
||||
|
||||
<!--begin::Page Custom Styles(used by this page)-->
|
||||
<link href="assets/css/pages/login/login-1.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Page Custom Styles-->
|
||||
|
||||
<!--begin::Global Theme Styles(used by all pages)-->
|
||||
<link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link href="assets/plugins/custom/prismjs/prismjs.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Global Theme Styles-->
|
||||
|
||||
<!--begin::Layout Themes(used by all pages)-->
|
||||
|
||||
<link href="assets/css/themes/layout/header/base/light.css" rel="stylesheet" type="text/css" />
|
||||
<link href="assets/css/themes/layout/header/menu/light.css" rel="stylesheet" type="text/css" />
|
||||
<link href="assets/css/themes/layout/brand/dark.css" rel="stylesheet" type="text/css" />
|
||||
<link href="assets/css/themes/layout/aside/dark.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Layout Themes-->
|
||||
|
||||
<link rel="shortcut icon" href="assets/media/logos/favicon.ico" />
|
||||
<style>
|
||||
#mcu-004 {
|
||||
height: 100vh;
|
||||
/* overflow-x: scroll; */
|
||||
width: "100%";
|
||||
}
|
||||
|
||||
#mcu-005 {
|
||||
height: 100vh;
|
||||
/* overflow-x: scroll; */
|
||||
width: "100%";
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
|
||||
<!--begin::Body-->
|
||||
|
||||
<body id="kt_body" class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading">
|
||||
<!--begin::Main-->
|
||||
<div class="d-flex flex-column flex-root bg-white">
|
||||
<!-- begin::Navbar -->
|
||||
<div class="d-flex justify-content-center ">
|
||||
<h3 class="mb-3">Data Persentase Kelainan Global</h3>
|
||||
</div>
|
||||
|
||||
<div id="mcu-004" class="mt-5">
|
||||
</div>
|
||||
<div id="mcu-005">
|
||||
</div>
|
||||
<!-- end::Navbar -->
|
||||
</div>
|
||||
<!--end::Main-->
|
||||
<script>
|
||||
var HOST_URL = "https://preview.keenthemes.com/metronic/theme/html/tools/preview";
|
||||
</script>
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script>
|
||||
var KTAppSettings = {
|
||||
"breakpoints": {
|
||||
"sm": 576,
|
||||
"md": 768,
|
||||
"lg": 992,
|
||||
"xl": 1200,
|
||||
"xxl": 1400
|
||||
},
|
||||
"colors": {
|
||||
"theme": {
|
||||
"base": {
|
||||
"white": "#ffffff",
|
||||
"primary": "#3699FF",
|
||||
"secondary": "#E5EAEE",
|
||||
"success": "#1BC5BD",
|
||||
"info": "#8950FC",
|
||||
"warning": "#FFA800",
|
||||
"danger": "#F64E60",
|
||||
"light": "#E4E6EF",
|
||||
"dark": "#181C32"
|
||||
},
|
||||
"light": {
|
||||
"white": "#ffffff",
|
||||
"primary": "#E1F0FF",
|
||||
"secondary": "#EBEDF3",
|
||||
"success": "#C9F7F5",
|
||||
"info": "#EEE5FF",
|
||||
"warning": "#FFF4DE",
|
||||
"danger": "#FFE2E5",
|
||||
"light": "#F3F6F9",
|
||||
"dark": "#D6D6E0"
|
||||
},
|
||||
"inverse": {
|
||||
"white": "#ffffff",
|
||||
"primary": "#ffffff",
|
||||
"secondary": "#3F4254",
|
||||
"success": "#ffffff",
|
||||
"info": "#ffffff",
|
||||
"warning": "#ffffff",
|
||||
"danger": "#ffffff",
|
||||
"light": "#464E5F",
|
||||
"dark": "#ffffff"
|
||||
}
|
||||
},
|
||||
"gray": {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32"
|
||||
}
|
||||
},
|
||||
"font-family": "Poppins"
|
||||
};
|
||||
</script>
|
||||
<!--end::Global Config-->
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
|
||||
<script src="assets/js/scripts.bundle.js"></script>
|
||||
<!--end::Global Theme Bundle-->
|
||||
|
||||
<!--begin::Page Vendors(used by this page)-->
|
||||
<script src="assets/plugins/custom/fullcalendar/fullcalendar.bundle.js"></script>
|
||||
<!--end::Page Vendors-->
|
||||
|
||||
<!--begin::Page Scripts(used by this page)-->
|
||||
<script src="assets/js/pages/widgets.js"></script>
|
||||
<!--end::Page Scripts-->
|
||||
<!-- echartjs.min.js -->
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
<!-- SCRIPT -->
|
||||
<script type="text/javascript">
|
||||
// Initialize the echarts instance based on the prepared dom
|
||||
var chartMCU004 = echarts.init(document.getElementById('mcu-004'));
|
||||
var optMCU004 = {
|
||||
title: {
|
||||
text: 'Kelainan MCU',
|
||||
// subtext: 'Living Expenses in Shenzhen'
|
||||
},
|
||||
dataset: {
|
||||
source: [
|
||||
['score', 'amount', 'product', 'percentage'],
|
||||
[200, 447, 'Body Mass Index'],
|
||||
[150, 314, 'Pemeriksaan Mata'],
|
||||
[125, 314, 'Fungsi Lemak'],
|
||||
[100, 254, 'Autospirometri'],
|
||||
[90, 200, 'Hematologi'],
|
||||
[80, 180, 'ECG'],
|
||||
[75, 160, 'Hiperuricemia'],
|
||||
[70, 125, 'Tekanan Darah'],
|
||||
[60, 118, 'Urine Lengkap'],
|
||||
[50, 87, 'Fungsi Hati']
|
||||
]
|
||||
},
|
||||
grid: {
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
name: 'amount'
|
||||
},
|
||||
yAxis: {
|
||||
type: 'category'
|
||||
},
|
||||
visualMap: {
|
||||
orient: 'horizontal',
|
||||
left: 'center',
|
||||
min: 10,
|
||||
max: 100,
|
||||
show: false,
|
||||
|
||||
// text: ['High Score', 'Low Score'],
|
||||
// Map the score column to color
|
||||
dimension: 0,
|
||||
inRange: {
|
||||
color: ['#42aaf5', '#00eaf2', '#035bff']
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
label: {
|
||||
position: 'right',
|
||||
show: true,
|
||||
formatter: "{@[3]} %"
|
||||
},
|
||||
type: 'bar',
|
||||
encode: {
|
||||
// Map the "amount" column to X axis.
|
||||
x: 'amount',
|
||||
// Map the "product" column to Y axis
|
||||
y: 'product'
|
||||
}
|
||||
}]
|
||||
};
|
||||
|
||||
window.addEventListener('resize', function() {
|
||||
chartMCU004.resize();
|
||||
});
|
||||
|
||||
// Display the chart using the configuration items and data just specified.
|
||||
chartMCU004.setOption(optMCU004);
|
||||
|
||||
//MCU005
|
||||
// Initialize the echarts instance based on the prepared dom
|
||||
var chartMCU005 = echarts.init(document.getElementById('mcu-005'));
|
||||
var optMCU005 = {
|
||||
title: {
|
||||
text: 'Kelainan Fisik',
|
||||
// subtext: 'Living Expenses in Shenzhen'
|
||||
},
|
||||
dataset: {
|
||||
source: [
|
||||
['score', 'amount', 'product', 'percentage'],
|
||||
[200, 400, 'Obesitas Stage 1'],
|
||||
[150, 300, 'Pre Hipertensi'],
|
||||
[133, 250, 'Kelainan Refraksi'],
|
||||
[125, 180, 'Overweight'],
|
||||
[100, 125, 'Obesitas Stage 2'],
|
||||
[80, 100, 'Hipertensi grade 1'],
|
||||
[70, 80, 'Kel. Refrakti terkoreksi'],
|
||||
[60, 70, 'Kel. Refrakti tidak terkoreksi'],
|
||||
[55, 55, 'Hipertensi grade 2']
|
||||
]
|
||||
},
|
||||
grid: {
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
name: 'amount'
|
||||
},
|
||||
yAxis: {
|
||||
type: 'category'
|
||||
},
|
||||
visualMap: {
|
||||
orient: 'horizontal',
|
||||
left: 'center',
|
||||
min: 10,
|
||||
max: 100,
|
||||
show: false,
|
||||
// text: ['High Score', 'Low Score'],
|
||||
// Map the score column to color
|
||||
dimension: 0,
|
||||
inRange: {
|
||||
color: ['#42aaf5', '#00eaf2', '#035bff']
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
label: {
|
||||
position: 'right',
|
||||
show: true,
|
||||
formatter: "{@[3]} %"
|
||||
},
|
||||
type: 'bar',
|
||||
encode: {
|
||||
// Map the "amount" column to X axis.
|
||||
x: 'amount',
|
||||
// Map the "product" column to Y axis
|
||||
y: 'product'
|
||||
}
|
||||
}]
|
||||
};;
|
||||
|
||||
window.addEventListener('resize', function() {
|
||||
chartMCU005.resize();
|
||||
});
|
||||
|
||||
// Display the chart using the configuration items and data just specified.
|
||||
chartMCU005.setOption(optMCU005);
|
||||
</script>
|
||||
<!-- SCRIPT -->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
||||
</html>
|
||||
5
assets/sindhu/catatan_inputan.txt
Normal file
5
assets/sindhu/catatan_inputan.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
// Example Custom Text Field
|
||||
@customtextfield.MainCustomTextField("Kode", "kode", "Kode", "text")
|
||||
|
||||
// Example Active Search
|
||||
@customtextfieldsearch.MainCustomTextFieldSearch("pid", "PID / Nama","text","/search", "", "input changed delay:500ms, search", ".htmx-indicator")
|
||||
@@ -277,6 +277,9 @@ License: You must have a valid license purchased only from themeforest(the above
|
||||
/* background: #C3C4C5; */
|
||||
height: 0.2px;
|
||||
}
|
||||
.img-header {
|
||||
object-fit: contain;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
@@ -340,7 +343,7 @@ License: You must have a valid license purchased only from themeforest(the above
|
||||
>
|
||||
<img
|
||||
src="../assets/asset-corporate-portal/media/landingpage/jumbotron_left.png"
|
||||
class="img-fluid"
|
||||
class="img-fluid img-header"
|
||||
alt="Your Brand"
|
||||
style="width: 100%; height: 100%;"
|
||||
/>
|
||||
|
||||
35
cmd/main.go
35
cmd/main.go
@@ -27,6 +27,10 @@ func main() {
|
||||
return c.Redirect(http.StatusMovedPermanently, "/landing_page/")
|
||||
})
|
||||
|
||||
app.GET("/pie_chart", func(c echo.Context) error {
|
||||
return c.Redirect(http.StatusMovedPermanently, "/pie_chart/")
|
||||
})
|
||||
|
||||
uStore, err := db.NewUserStore(dbName)
|
||||
if err != nil {
|
||||
app.Logger.Fatalf("failed to create store: %s", err)
|
||||
@@ -60,7 +64,36 @@ func main() {
|
||||
}
|
||||
lps := services.NewServicesLandingPage(services.LandingPage{}, LpStore)
|
||||
lphs := handlers.NewLandingPageHandler(lps)
|
||||
handlers.SetupRoutesLandingPage(app, lphs)
|
||||
// handlers.SetupRoutesLandingPage(app, lphs)
|
||||
|
||||
Lpmastermenustore, err := db.NewMasterMenuUserGroupStore(dbName)
|
||||
if err != nil {
|
||||
app.Logger.Fatalf("failed to create store: %s", err)
|
||||
}
|
||||
mastermenuservices := services.NewServicesMasterMenuUserGroup(services.MasterMenu{}, Lpmastermenustore)
|
||||
mastermenuhandler := handlers.NewMasterMenuUserGroupHandler(mastermenuservices)
|
||||
handlers.SetupRoutesLandingPage(app, lphs, mastermenuhandler)
|
||||
|
||||
LpchartStore, err := db.NewPieChartStore(dbName)
|
||||
if err != nil {
|
||||
app.Logger.Fatalf("failed to create store: %s", err)
|
||||
}
|
||||
bchart, err := db.NewBarChartStore(dbName)
|
||||
if err != nil {
|
||||
app.Logger.Fatalf("failed to create store: %s", err)
|
||||
}
|
||||
|
||||
lpchart := services.NewServicesPiechart(services.Piechart{}, services.Barchart{}, LpchartStore, bchart)
|
||||
lphsx := handlers.NewPiechartHandler(lpchart)
|
||||
handlers.SetupRoutesPieChart(app, lphsx)
|
||||
|
||||
eStore, err := db.NewEmployeeStore(dbName)
|
||||
if err != nil {
|
||||
app.Logger.Fatalf("failed to create store: %s", err)
|
||||
}
|
||||
el := services.NewServicesEmployee(services.Employee{}, eStore)
|
||||
ehs := handlers.NewEmployeeHandler(el)
|
||||
handlers.SetupRoutesEmployee(app, ehs)
|
||||
|
||||
app.Logger.Fatal(app.Start(":5000"))
|
||||
}
|
||||
|
||||
43
db/chart.store.go
Normal file
43
db/chart.store.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
_ "github.com/glebarez/go-sqlite"
|
||||
)
|
||||
|
||||
type PieChartStore struct {
|
||||
Db *sql.DB
|
||||
}
|
||||
type BarChartStore struct {
|
||||
Db *sql.DB
|
||||
}
|
||||
|
||||
func NewPieChartStore(dbName string) (PieChartStore, error) {
|
||||
Db, err := getConnection(dbName)
|
||||
if err != nil {
|
||||
return PieChartStore{}, err
|
||||
}
|
||||
|
||||
if err := createMigrations(dbName, Db); err != nil {
|
||||
return PieChartStore{}, err
|
||||
}
|
||||
|
||||
return PieChartStore{
|
||||
Db,
|
||||
}, nil
|
||||
}
|
||||
func NewBarChartStore(dbName string) (BarChartStore, error) {
|
||||
Db, err := getConnection(dbName)
|
||||
if err != nil {
|
||||
return BarChartStore{}, err
|
||||
}
|
||||
|
||||
if err := createMigrations(dbName, Db); err != nil {
|
||||
return BarChartStore{}, err
|
||||
}
|
||||
|
||||
return BarChartStore{
|
||||
Db,
|
||||
}, nil
|
||||
}
|
||||
26
db/employee.store.go
Normal file
26
db/employee.store.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
_ "github.com/glebarez/go-sqlite"
|
||||
)
|
||||
|
||||
type EmployeeStore struct {
|
||||
Db *sql.DB
|
||||
}
|
||||
|
||||
func NewEmployeeStore(dbName string) (EmployeeStore, error) {
|
||||
Db, err := getConnection(dbName)
|
||||
if err != nil {
|
||||
return EmployeeStore{}, err
|
||||
}
|
||||
|
||||
if err := createMigrations(dbName, Db); err != nil {
|
||||
return EmployeeStore{}, err
|
||||
}
|
||||
|
||||
return EmployeeStore{
|
||||
Db,
|
||||
}, nil
|
||||
}
|
||||
26
db/mastermenuusergroup.go
Normal file
26
db/mastermenuusergroup.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
_ "github.com/glebarez/go-sqlite"
|
||||
)
|
||||
|
||||
type MasterMenuUserGroupStore struct {
|
||||
Db *sql.DB
|
||||
}
|
||||
|
||||
func NewMasterMenuUserGroupStore(dbName string) (MasterMenuUserGroupStore, error) {
|
||||
Db, err := getConnection(dbName)
|
||||
if err != nil {
|
||||
return MasterMenuUserGroupStore{}, err
|
||||
}
|
||||
|
||||
if err := createMigrations(dbName, Db); err != nil {
|
||||
return MasterMenuUserGroupStore{}, err
|
||||
}
|
||||
|
||||
return MasterMenuUserGroupStore{
|
||||
Db,
|
||||
}, nil
|
||||
}
|
||||
3
go.mod
3
go.mod
@@ -4,14 +4,13 @@ go 1.21.0
|
||||
|
||||
require (
|
||||
github.com/a-h/templ v0.2.663
|
||||
github.com/glebarez/go-sqlite v1.22.0
|
||||
github.com/labstack/echo/v4 v4.11.3
|
||||
github.com/mattn/go-sqlite3 v1.14.19
|
||||
golang.org/x/text v0.14.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||
github.com/glebarez/go-sqlite v1.22.0 // indirect
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
|
||||
github.com/google/uuid v1.5.0 // indirect
|
||||
github.com/labstack/gommon v0.4.0 // indirect
|
||||
|
||||
16
go.sum
16
go.sum
@@ -1,5 +1,3 @@
|
||||
github.com/a-h/templ v0.2.476 h1:+H4hP4CwK4kfJwXsE6kHeFWMGtcVOVoOm/I64uzARBk=
|
||||
github.com/a-h/templ v0.2.476/go.mod h1:zQ95mSyadNTGHv6k5Fm+wQU8zkBMMbHCHg7eAvUZKNM=
|
||||
github.com/a-h/templ v0.2.663 h1:aa0WMm27InkYHGjimcM7us6hJ6BLhg98ZbfaiDPyjHE=
|
||||
github.com/a-h/templ v0.2.663/go.mod h1:SA7mtYwVEajbIXFRh3vKdYm/4FYyLQAtPH1+KxzGPA8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
@@ -13,6 +11,8 @@ github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keL
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
|
||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
|
||||
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
|
||||
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/labstack/echo/v4 v4.11.3 h1:Upyu3olaqSHkCjs1EJJwQ3WId8b8b1hxbogyommKktM=
|
||||
@@ -24,12 +24,8 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
|
||||
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI=
|
||||
github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||
@@ -43,12 +39,8 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC
|
||||
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
||||
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
|
||||
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
|
||||
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
|
||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
|
||||
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
|
||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
|
||||
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
@@ -56,12 +48,8 @@ golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
|
||||
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
|
||||
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
|
||||
|
||||
181
handlers/chart.handlers.go
Normal file
181
handlers/chart.handlers.go
Normal file
@@ -0,0 +1,181 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
kelainanglobal "github.com/emarifer/go-templ-project-structure/views/mcu/kelainan_global"
|
||||
mcupeserta "github.com/emarifer/go-templ-project-structure/views/mcu/peserta"
|
||||
"github.com/emarifer/go-templ-project-structure/views/piechart"
|
||||
"github.com/emarifer/go-templ-project-structure/views/xsample"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
type PiechartService interface {
|
||||
GetPieChart(string, int) (string, services.Piechart, error)
|
||||
GetBarChart(code string, id int) (string, services.Barchart, error)
|
||||
}
|
||||
|
||||
func NewPiechartHandler(us PiechartService) *PiechartHandler {
|
||||
return &PiechartHandler{
|
||||
PiechartService: us,
|
||||
}
|
||||
}
|
||||
|
||||
type PiechartHandler struct {
|
||||
PiechartService PiechartService
|
||||
}
|
||||
|
||||
func (uh *PiechartHandler) Hello(c echo.Context) error {
|
||||
helo := xsample.ShowHelo("Hello World", xsample.HelloWorld("Hello World"), xsample.CssHelo(), xsample.JsHelo())
|
||||
return uh.View(c, helo)
|
||||
}
|
||||
|
||||
// example pie chart
|
||||
func (uh *PiechartHandler) ShowPieChart(c echo.Context) error {
|
||||
// helo := piechart.MainPieChart("main_001")
|
||||
var code = "mcu006"
|
||||
title, udata, err := uh.PiechartService.GetPieChart(code, 1)
|
||||
if err != nil {
|
||||
// fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
|
||||
jsonData, err := json.MarshalIndent(udata, "", " ")
|
||||
if err != nil {
|
||||
fmt.Println("Error:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// randomID := md5.Sum([]byte(title + time.Now().String()))
|
||||
seed := title + time.Now().String()
|
||||
hash := md5.Sum([]byte(seed))
|
||||
randomID := hex.EncodeToString(hash[:])
|
||||
randomID = strings.ReplaceAll(randomID, "-", "")
|
||||
|
||||
// randomID := hex.EncodeToString(md5.Sum([]byte(title + time.Now().String())))
|
||||
helo := piechart.ShowPieChart("Chart", piechart.MainPieChart(randomID, string(jsonData)), piechart.CssPieChart(), piechart.JsPieChart())
|
||||
return uh.View(c, helo)
|
||||
}
|
||||
func (uh *PiechartHandler) ShowBarChart(c echo.Context) error {
|
||||
// helo := piechart.MainPieChart("main_001")
|
||||
var code = "mcu004"
|
||||
title, udata, err := uh.PiechartService.GetBarChart(code, 1)
|
||||
if err != nil {
|
||||
// fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
var code2 = "mcu005"
|
||||
title2, udata2, err := uh.PiechartService.GetBarChart(code2, 1)
|
||||
if err != nil {
|
||||
// fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
|
||||
jsonData, err := json.MarshalIndent(udata, "", " ")
|
||||
if err != nil {
|
||||
fmt.Println("Error:", err)
|
||||
return err
|
||||
}
|
||||
jsonData2, err := json.MarshalIndent(udata2, "", " ")
|
||||
if err != nil {
|
||||
fmt.Println("Error:", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// randomID := md5.Sum([]byte(title + time.Now().String()))
|
||||
seed := title + time.Now().String()
|
||||
hash := md5.Sum([]byte(seed))
|
||||
randomID := hex.EncodeToString(hash[:])
|
||||
randomID = strings.ReplaceAll(randomID, "-", "")
|
||||
|
||||
seed2 := title2 + time.Now().String()
|
||||
hash2 := md5.Sum([]byte(seed2))
|
||||
randomID2 := hex.EncodeToString(hash2[:])
|
||||
randomID2 = strings.ReplaceAll(randomID2, "-", "")
|
||||
|
||||
// randomID := hex.EncodeToString(md5.Sum([]byte(title + time.Now().String())))
|
||||
helo := kelainanglobal.ShowKelainanGlobal("Kelainan global", kelainanglobal.MainKelainanGlobal(randomID, string(jsonData), randomID2, string(jsonData2)), kelainanglobal.CssKelainanGlobal(), kelainanglobal.JsKelainanGlobal())
|
||||
return uh.View(c, helo)
|
||||
}
|
||||
|
||||
// mcu peserta
|
||||
func (uh *PiechartHandler) ShowMcuPeserta(c echo.Context) error {
|
||||
|
||||
// 1
|
||||
var code001 = "mcu001"
|
||||
title001, udata001, err001 := uh.PiechartService.GetPieChart(code001, 1)
|
||||
if err001 != nil {
|
||||
return err001
|
||||
}
|
||||
|
||||
jsonData001, err001 := json.MarshalIndent(udata001, "", " ")
|
||||
if err001 != nil {
|
||||
fmt.Println("Error:", err001)
|
||||
return err001
|
||||
}
|
||||
|
||||
seed001 := title001 + time.Now().String()
|
||||
hash001 := md5.Sum([]byte(seed001))
|
||||
randomID001 := hex.EncodeToString(hash001[:])
|
||||
randomID001 = strings.ReplaceAll(randomID001, "-", "")
|
||||
|
||||
// 2
|
||||
var code002 = "mcu002"
|
||||
title002, udata002, err002 := uh.PiechartService.GetPieChart(code002, 1)
|
||||
if err002 != nil {
|
||||
return err002
|
||||
}
|
||||
|
||||
jsonData002, err002 := json.MarshalIndent(udata002, "", " ")
|
||||
if err002 != nil {
|
||||
fmt.Println("Error:", err002)
|
||||
return err002
|
||||
}
|
||||
|
||||
seed002 := title002 + time.Now().String()
|
||||
hash002 := md5.Sum([]byte(seed002))
|
||||
randomID002 := hex.EncodeToString(hash002[:])
|
||||
randomID002 = strings.ReplaceAll(randomID002, "-", "")
|
||||
|
||||
// 3
|
||||
var code003 = "mcu003"
|
||||
title003, udata003, err003 := uh.PiechartService.GetPieChart(code003, 1)
|
||||
if err003 != nil {
|
||||
return err003
|
||||
}
|
||||
|
||||
jsonData003, err003 := json.MarshalIndent(udata003, "", " ")
|
||||
if err003 != nil {
|
||||
fmt.Println("Error:", err003)
|
||||
return err003
|
||||
}
|
||||
|
||||
seed003 := title003 + time.Now().String()
|
||||
hash003 := md5.Sum([]byte(seed003))
|
||||
randomID003 := hex.EncodeToString(hash003[:])
|
||||
randomID003 = strings.ReplaceAll(randomID003, "-", "")
|
||||
|
||||
helo := mcupeserta.ShowMcuPeserta("Peserta", mcupeserta.MainMcuPeserta(
|
||||
randomID001, string(jsonData001),
|
||||
randomID002, string(jsonData002),
|
||||
randomID003, string(jsonData003),
|
||||
),
|
||||
mcupeserta.CssMcuPeserta(),
|
||||
mcupeserta.JsMcuPeserta(),
|
||||
)
|
||||
|
||||
return uh.View(c, helo)
|
||||
}
|
||||
|
||||
func (uh *PiechartHandler) View(c echo.Context, cmp templ.Component) error {
|
||||
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
|
||||
|
||||
return cmp.Render(c.Request().Context(), c.Response().Writer)
|
||||
}
|
||||
42
handlers/employee.handler.go
Normal file
42
handlers/employee.handler.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/employee"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
type EmployeeService interface {
|
||||
GetEmployeeService() ([]services.EmployeeService, error)
|
||||
}
|
||||
|
||||
func NewEmployeeHandler(us EmployeeService) *EmployeeHandler {
|
||||
return &EmployeeHandler{
|
||||
EmployeeService: us,
|
||||
}
|
||||
}
|
||||
|
||||
type EmployeeHandler struct {
|
||||
EmployeeService EmployeeService
|
||||
}
|
||||
|
||||
func (eh *EmployeeHandler) ShowEmployee(c echo.Context) error {
|
||||
udata, err := eh.EmployeeService.GetEmployeeService()
|
||||
if err != nil {
|
||||
// fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Printf("%+v\n", udata)
|
||||
e := employee.ShowEmployee("Employee", employee.MainEmployee(employee.ListCardService(udata)), employee.CssEmployee(), employee.JsEmployee())
|
||||
return eh.View(c, e)
|
||||
}
|
||||
|
||||
func (eh *EmployeeHandler) View(c echo.Context, cmp templ.Component) error {
|
||||
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
|
||||
|
||||
return cmp.Render(c.Request().Context(), c.Response().Writer)
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
landingpage "github.com/emarifer/go-templ-project-structure/views/LandingPage"
|
||||
landingpage "github.com/emarifer/go-templ-project-structure/views/landingpage"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
@@ -14,6 +14,7 @@ type LandingPageService interface {
|
||||
GetClientService() ([]services.ClientService, error)
|
||||
GetClientAdvantage() ([]services.AdvantageClient, error)
|
||||
GetPromotionList() ([]services.Promotion, error)
|
||||
GetFooterNavList() ([]services.FooterNav, error)
|
||||
}
|
||||
|
||||
func NewLandingPageHandler(us LandingPageService) *LandingPageHandler {
|
||||
@@ -42,11 +43,15 @@ func (uh *LandingPageHandler) ShowLandingPage(c echo.Context) error {
|
||||
// fmt.Println(err)
|
||||
return err
|
||||
}
|
||||
ftNav, err := uh.LandingPageService.GetFooterNavList()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("%+v\n", udata)
|
||||
helo := landingpage.ShowLandingPage("Hello World",
|
||||
landingpage.MainLandingPage(landingpage.ListMedicalService(udata),
|
||||
landingpage.ListAdvantage(adData), landingpage.ListPromotion(lpData),
|
||||
landingpage.Footer()),
|
||||
landingpage.FooterSection(ftNav)),
|
||||
landingpage.CssLandingPage(),
|
||||
landingpage.JsLandingPage())
|
||||
return uh.View(c, helo)
|
||||
|
||||
58
handlers/mastermenuusergroup.handlers.go
Normal file
58
handlers/mastermenuusergroup.handlers.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
mastermenuusergroup "github.com/emarifer/go-templ-project-structure/views/mastermenuusergroup"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
type MasterMenuUserGroupService interface {
|
||||
GetMasterMenus() ([]services.MasterMenu, error)
|
||||
}
|
||||
|
||||
func NewMasterMenuUserGroupHandler(us MasterMenuUserGroupService) *MasterMenuUserGroupHandler {
|
||||
return &MasterMenuUserGroupHandler{
|
||||
MasterMenuUserGroupService: us,
|
||||
}
|
||||
}
|
||||
|
||||
type MasterMenuUserGroupHandler struct {
|
||||
MasterMenuUserGroupService MasterMenuUserGroupService
|
||||
}
|
||||
|
||||
func (lh *MasterMenuUserGroupHandler) HandlerShowMasterMenuUserGroup(c echo.Context) error {
|
||||
dataMenu, err := lh.MasterMenuUserGroupService.GetMasterMenus()
|
||||
fmt.Println(dataMenu)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataMenu)
|
||||
return err
|
||||
}
|
||||
dataUser, err := services.GetUser()
|
||||
fmt.Println(dataUser)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataUser)
|
||||
return err
|
||||
}
|
||||
|
||||
si := mastermenuusergroup.ShowMasterMenuUserGroup(
|
||||
"Master Menu",
|
||||
mastermenuusergroup.ContentMasterMenuUserGroup(),
|
||||
mastermenuusergroup.CssMasterMenuUserGroup(),
|
||||
mastermenuusergroup.JsMasterMenuUserGroup(),
|
||||
dataMenu,
|
||||
dataUser,
|
||||
)
|
||||
|
||||
return lh.View(c, si)
|
||||
}
|
||||
|
||||
func (uh *MasterMenuUserGroupHandler) View(c echo.Context, cmp templ.Component) error {
|
||||
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
|
||||
|
||||
return cmp.Render(c.Request().Context(), c.Response().Writer)
|
||||
}
|
||||
@@ -18,10 +18,25 @@ func SetupRoutesLogin(app *echo.Echo, h *LoginHandler) {
|
||||
func SetupRoutesXsample(app *echo.Echo, h *XsampleHandler) {
|
||||
xSample := app.Group("/xsample")
|
||||
xSample.GET("/xsample01", h.Hello)
|
||||
xSample.GET("/coba", h.ShowCoba)
|
||||
}
|
||||
func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler) {
|
||||
func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler, mastermenuusergroupHandler *MasterMenuUserGroupHandler) {
|
||||
Lp := app.Group("/landing_page")
|
||||
Lp.GET("/", h.ShowLandingPage)
|
||||
clientgroup := app.Group("/client")
|
||||
// mdgroup := clientgroup.Group("/md")
|
||||
// clientusergroup.GET("/md", mastermenuusergroupHandler.HandlerShowMasterMenuUserGroup)
|
||||
clientgroup.GET("/usergroup", mastermenuusergroupHandler.HandlerShowMasterMenuUserGroup)
|
||||
}
|
||||
func SetupRoutesPieChart(app *echo.Echo, h *PiechartHandler) {
|
||||
Lp := app.Group("/pie_chart")
|
||||
Lp.GET("/", h.ShowPieChart)
|
||||
Lp.GET("/peserta", h.ShowMcuPeserta)
|
||||
Lp.GET("/bar", h.ShowBarChart)
|
||||
}
|
||||
func SetupRoutesEmployee(app *echo.Echo, e *EmployeeHandler) {
|
||||
employee := app.Group("/employee")
|
||||
employee.GET("/", e.ShowEmployee)
|
||||
}
|
||||
func SetupRoutesProject(app *echo.Echo) {
|
||||
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/a-h/templ"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/utils"
|
||||
"github.com/emarifer/go-templ-project-structure/views/xsample"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
type XsampleService interface {
|
||||
GetListMenus() ([]services.MasterMenu, error)
|
||||
}
|
||||
|
||||
func NewXsampleHandler(us XsampleService) *XsampleHandler {
|
||||
@@ -24,6 +29,26 @@ func (uh *XsampleHandler) Hello(c echo.Context) error {
|
||||
helo := xsample.ShowHelo("Hello World", xsample.HelloWorld("Hello World"), xsample.CssHelo(), xsample.JsHelo())
|
||||
return uh.View(c, helo)
|
||||
}
|
||||
func (uh *XsampleHandler) ShowCoba(c echo.Context) error {
|
||||
dataMenu, err := uh.XsampleService.GetListMenus()
|
||||
fmt.Println(dataMenu)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataMenu)
|
||||
return err
|
||||
}
|
||||
randomID := utils.GenerateRandomID("coba")
|
||||
fmt.Println(randomID)
|
||||
dataUser, err := services.GetUser()
|
||||
fmt.Println(dataUser)
|
||||
fmt.Println(err)
|
||||
if err != nil {
|
||||
fmt.Println(dataUser)
|
||||
return err
|
||||
}
|
||||
helo := xsample.ShowCoba("Hello World", xsample.Coba("Hello World"), xsample.CssCoba(), xsample.JsCoba(), dataMenu, dataUser)
|
||||
return uh.View(c, helo)
|
||||
}
|
||||
|
||||
func (uh *XsampleHandler) View(c echo.Context, cmp templ.Component) error {
|
||||
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
|
||||
|
||||
15
models/table.models.go
Normal file
15
models/table.models.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package models
|
||||
|
||||
type TableHead struct {
|
||||
Name string `json:"name"`
|
||||
Width string `json:"width"`
|
||||
}
|
||||
|
||||
func GetTableHead() []TableHead {
|
||||
a := []TableHead{
|
||||
{Name: "Kode", Width: "30%"},
|
||||
{Name: "User Group", Width: "40%"},
|
||||
{Name: "Aksi", Width: "30%"},
|
||||
}
|
||||
return a
|
||||
}
|
||||
8
models/user.models.go
Normal file
8
models/user.models.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package models
|
||||
|
||||
type User struct {
|
||||
UserID int `json:"userID"`
|
||||
Username string `json:"username"`
|
||||
UserFullName string `json:"userFullName"`
|
||||
UserPosition string `json:"userPosition"`
|
||||
}
|
||||
830
services/chart.services.go
Normal file
830
services/chart.services.go
Normal file
@@ -0,0 +1,830 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/emarifer/go-templ-project-structure/db"
|
||||
)
|
||||
|
||||
func NewServicesPiechart(u Piechart, b Barchart, uStore db.PieChartStore, bStore db.BarChartStore) *ServicesPiechart {
|
||||
|
||||
return &ServicesPiechart{
|
||||
Piechart: u,
|
||||
Barchart: b,
|
||||
BarChartStore: bStore,
|
||||
PieChartStore: uStore,
|
||||
}
|
||||
}
|
||||
|
||||
// type Option struct {
|
||||
// Title struct {
|
||||
// Text string
|
||||
// Left string
|
||||
// }
|
||||
// Tooltip struct {
|
||||
// Trigger string
|
||||
// }
|
||||
// Legend struct {
|
||||
// Top string
|
||||
// Left string
|
||||
// Orient string
|
||||
// }
|
||||
// Series []Series
|
||||
// }
|
||||
|
||||
type SeriesData struct {
|
||||
Value int `json:"value"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type Series struct {
|
||||
Label struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
} `json:"label"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Radius []string `json:"radius"`
|
||||
ItemStyle struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
} `json:"itemStyle"`
|
||||
Data []SeriesData `json:"data"`
|
||||
Emphasis struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
} `json:"emphasis"`
|
||||
}
|
||||
|
||||
type Barchart struct {
|
||||
Title struct {
|
||||
Text string `json:"text"`
|
||||
} `json:"title"`
|
||||
Dataset struct {
|
||||
Source [][]interface{} `json:"source"`
|
||||
} `json:"dataset"`
|
||||
Grid struct {
|
||||
ContainLabel bool `json:"containLabel"`
|
||||
} `json:"grid"`
|
||||
XAxis struct {
|
||||
Name string `json:"name"`
|
||||
} `json:"xAxis"`
|
||||
YAxis struct {
|
||||
Type string `json:"type"`
|
||||
} `json:"yAxis"`
|
||||
VisualMap struct {
|
||||
Orient string `json:"orient"`
|
||||
Left string `json:"left"`
|
||||
Min int `json:"min"`
|
||||
Max int `json:"max"`
|
||||
Show bool `json:"show"`
|
||||
Dimension int `json:"dimension"`
|
||||
InRange struct {
|
||||
Color []string `json:"color"`
|
||||
} `json:"inRange"`
|
||||
} `json:"visualMap"`
|
||||
Series []struct {
|
||||
Label struct {
|
||||
Position string `json:"position"`
|
||||
Show bool `json:"show"`
|
||||
Formatter string `json:"formatter"`
|
||||
} `json:"label"`
|
||||
Type string `json:"type"`
|
||||
Encode struct {
|
||||
X string `json:"x"`
|
||||
Y string `json:"y"`
|
||||
} `json:"encode"`
|
||||
} `json:"series"`
|
||||
}
|
||||
|
||||
type Piechart struct {
|
||||
// ID int `json:"id"`
|
||||
// Xsamplename string `json:"Xsamplename"`
|
||||
// Email string `json:"email"`
|
||||
// CreatedAt time.Time `json:"created_at,omitempty"`
|
||||
|
||||
Title struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
} `json:"title"`
|
||||
Tooltip struct {
|
||||
Trigger string `json:"trigger"`
|
||||
} `json:"tooltip"`
|
||||
Legend struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
} `json:"legend"`
|
||||
Series []Series `json:"series"`
|
||||
}
|
||||
|
||||
type ServicesPiechart struct {
|
||||
Piechart Piechart
|
||||
Barchart Barchart
|
||||
BarChartStore db.BarChartStore
|
||||
PieChartStore db.PieChartStore
|
||||
}
|
||||
|
||||
// func (su *ServicesPiechart) GetAllXsamples() ([]Piechart, error) {
|
||||
// query := `SELECT id, Xsamplename, email, created_at FROM Xsamples ORDER BY created_at DESC`
|
||||
|
||||
// rows, err := su.PieChartStore.Db.Query(query)
|
||||
// if err != nil {
|
||||
// return []Piechart{}, err
|
||||
// }
|
||||
// // We close the resource
|
||||
// defer rows.Close()
|
||||
|
||||
// Xsamples := []Piechart{}
|
||||
// for rows.Next() {
|
||||
// rows.Scan(
|
||||
// &su.Piechart.ID,
|
||||
// &su.Piechart.Xsamplename,
|
||||
// &su.Piechart.Email,
|
||||
// &su.Piechart.CreatedAt,
|
||||
// )
|
||||
|
||||
// Xsamples = append(Xsamples, su.Piechart)
|
||||
// }
|
||||
|
||||
// return Xsamples, nil
|
||||
// }
|
||||
|
||||
// func (su *ServicesPiechart) GetXsampleById(id int) (Piechart, error) {
|
||||
|
||||
// query := `SELECT id, Xsamplename, email, created_at FROM Xsamples
|
||||
// WHERE id = ?`
|
||||
|
||||
// stmt, err := su.PieChartStore.Db.Prepare(query)
|
||||
// if err != nil {
|
||||
// return Piechart{}, err
|
||||
// }
|
||||
|
||||
// defer stmt.Close()
|
||||
|
||||
// su.Piechart.ID = id
|
||||
// err = stmt.QueryRow(
|
||||
// su.Piechart.ID,
|
||||
// ).Scan(
|
||||
// &su.Piechart.ID,
|
||||
// &su.Piechart.Xsamplename,
|
||||
// &su.Piechart.Email,
|
||||
// &su.Piechart.CreatedAt,
|
||||
// )
|
||||
// if err != nil {
|
||||
// return Piechart{}, err
|
||||
// }
|
||||
|
||||
// return su.Piechart, nil
|
||||
// }
|
||||
|
||||
// Peserta MCU -- MCU001
|
||||
func GetPieChartMcu001(code string, id int) (string, Piechart, error) {
|
||||
var title = "Peserta MCU"
|
||||
option := Piechart{
|
||||
Title: struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
SubText: "Total Peserta 506",
|
||||
Left: "center",
|
||||
},
|
||||
Tooltip: struct {
|
||||
Trigger string `json:"trigger"`
|
||||
}{
|
||||
Trigger: "item",
|
||||
},
|
||||
Legend: struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
}{
|
||||
Top: "bottom",
|
||||
Left: "center",
|
||||
Orient: "vertical",
|
||||
|
||||
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
|
||||
// Top: "bottom",
|
||||
// Left: "center",
|
||||
// Orient: "horizontal",
|
||||
},
|
||||
Series: []Series{
|
||||
{
|
||||
Label: struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
}{
|
||||
Position: "inner",
|
||||
Formatter: "{d}%",
|
||||
},
|
||||
Name: "Access From",
|
||||
Type: "pie",
|
||||
Radius: []string{"20%", "50%"},
|
||||
ItemStyle: struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
}{
|
||||
BorderRadius: 10,
|
||||
BorderColor: "#fff",
|
||||
BorderWidth: 2,
|
||||
},
|
||||
Data: []SeriesData{
|
||||
{Value: 506, Name: "Sudah MCU : 506 Peserta"},
|
||||
{Value: 54, Name: "Belum MCU : 54 Peserta"},
|
||||
},
|
||||
Emphasis: struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
}{
|
||||
ItemStyle: struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
}{
|
||||
ShadowBlur: 10,
|
||||
ShadowOffsetX: 0,
|
||||
ShadowColor: "rgba(0, 0, 0, 0.5)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
return title, option, nil
|
||||
}
|
||||
|
||||
// Kepersertaan MCU Berdasarkan Jenis Kelamin -- MCU002
|
||||
func GetPieChartMcu002(code string, id int) (string, Piechart, error) {
|
||||
var title = "Kepesertaan MCU"
|
||||
option := Piechart{
|
||||
Title: struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
SubText: "Berdasarkan Jenis Kelamin",
|
||||
Left: "center",
|
||||
},
|
||||
Tooltip: struct {
|
||||
Trigger string `json:"trigger"`
|
||||
}{
|
||||
Trigger: "item",
|
||||
},
|
||||
Legend: struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
}{
|
||||
Top: "bottom",
|
||||
Left: "center",
|
||||
Orient: "vertical",
|
||||
|
||||
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
|
||||
// Top: "bottom",
|
||||
// Left: "center",
|
||||
// Orient: "horizontal",
|
||||
},
|
||||
Series: []Series{
|
||||
{
|
||||
Label: struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
}{
|
||||
Position: "inner",
|
||||
Formatter: "{d}%",
|
||||
},
|
||||
Name: "Access From",
|
||||
Type: "pie",
|
||||
Radius: []string{"20%", "50%"},
|
||||
ItemStyle: struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
}{
|
||||
BorderRadius: 10,
|
||||
BorderColor: "#fff",
|
||||
BorderWidth: 2,
|
||||
},
|
||||
Data: []SeriesData{
|
||||
{Value: 143, Name: "Laki-laki : 143 Peserta"},
|
||||
{Value: 114, Name: "Perempuan : 114 Peserta"},
|
||||
},
|
||||
Emphasis: struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
}{
|
||||
ItemStyle: struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
}{
|
||||
ShadowBlur: 10,
|
||||
ShadowOffsetX: 0,
|
||||
ShadowColor: "rgba(0, 0, 0, 0.5)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
return title, option, nil
|
||||
}
|
||||
|
||||
// Peserta MCU berdasarkan umur
|
||||
func GetPieChartMcu003(code string, id int) (string, Piechart, error) {
|
||||
var title = "Peserta MCU"
|
||||
option := Piechart{
|
||||
Title: struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
SubText: "Berdasarkan Umur",
|
||||
Left: "center",
|
||||
},
|
||||
Tooltip: struct {
|
||||
Trigger string `json:"trigger"`
|
||||
}{
|
||||
Trigger: "item",
|
||||
},
|
||||
Legend: struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
}{
|
||||
Top: "bottom",
|
||||
Left: "center",
|
||||
Orient: "vertical",
|
||||
|
||||
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
|
||||
// Top: "bottom",
|
||||
// Left: "center",
|
||||
// Orient: "horizontal",
|
||||
},
|
||||
Series: []Series{
|
||||
{
|
||||
Label: struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
}{
|
||||
Position: "inner",
|
||||
Formatter: "{d}%",
|
||||
},
|
||||
Name: "Access From",
|
||||
Type: "pie",
|
||||
Radius: []string{"20%", "50%"},
|
||||
ItemStyle: struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
}{
|
||||
BorderRadius: 10,
|
||||
BorderColor: "#fff",
|
||||
BorderWidth: 2,
|
||||
},
|
||||
Data: []SeriesData{
|
||||
{Value: 188, Name: "< 30 Tahun : 188 Peserta"},
|
||||
{Value: 194, Name: "30 - < 40 Tahun : 194 Peserta"},
|
||||
{Value: 123, Name: "40 - < 50 Tahun : 123 Peserta"},
|
||||
{Value: 55, Name: "≥ 50 Tahun : 55 Peserta"},
|
||||
},
|
||||
Emphasis: struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
}{
|
||||
ItemStyle: struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
}{
|
||||
ShadowBlur: 10,
|
||||
ShadowOffsetX: 0,
|
||||
ShadowColor: "rgba(0, 0, 0, 0.5)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
return title, option, nil
|
||||
}
|
||||
|
||||
// Status Index Masa Tubuh (BMI) -- MCU006
|
||||
func GetPieChartMcu006(code string, id int) (string, Piechart, error) {
|
||||
var title = "Status Index Masa Tubuh (BMI)"
|
||||
option := Piechart{
|
||||
Title: struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
SubText: "",
|
||||
Left: "center",
|
||||
},
|
||||
Tooltip: struct {
|
||||
Trigger string `json:"trigger"`
|
||||
}{
|
||||
Trigger: "item",
|
||||
},
|
||||
Legend: struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
}{
|
||||
Top: "bottom",
|
||||
Left: "center",
|
||||
Orient: "vertical",
|
||||
|
||||
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
|
||||
// Top: "bottom",
|
||||
// Left: "center",
|
||||
// Orient: "horizontal",
|
||||
},
|
||||
Series: []Series{
|
||||
{
|
||||
Label: struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
}{
|
||||
Position: "inner",
|
||||
Formatter: "{d}%",
|
||||
},
|
||||
Name: "Access From",
|
||||
Type: "pie",
|
||||
Radius: []string{"20%", "50%"},
|
||||
ItemStyle: struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
}{
|
||||
BorderRadius: 10,
|
||||
BorderColor: "#fff",
|
||||
BorderWidth: 2,
|
||||
},
|
||||
Data: []SeriesData{
|
||||
{Value: 19, Name: "Underweight : 19 Peserta"},
|
||||
{Value: 104, Name: "Normal : 104 Peserta"},
|
||||
{Value: 230, Name: "Obese 1 : 230 Peserta"},
|
||||
{Value: 99, Name: "Obese 2 : 99 Peserta"},
|
||||
},
|
||||
Emphasis: struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
}{
|
||||
ItemStyle: struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
}{
|
||||
ShadowBlur: 10,
|
||||
ShadowOffsetX: 0,
|
||||
ShadowColor: "rgba(0, 0, 0, 0.5)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return title, option, nil
|
||||
}
|
||||
|
||||
// Kriteria Hipertensi -- MCU007
|
||||
func GetPieChartMcu007(code string, id int) (string, Piechart, error) {
|
||||
var title = "Kriteria Hipertensi"
|
||||
option := Piechart{
|
||||
Title: struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
SubText: "",
|
||||
Left: "center",
|
||||
},
|
||||
Tooltip: struct {
|
||||
Trigger string `json:"trigger"`
|
||||
}{
|
||||
Trigger: "item",
|
||||
},
|
||||
Legend: struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
}{
|
||||
Top: "bottom",
|
||||
Left: "center",
|
||||
Orient: "vertical",
|
||||
|
||||
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
|
||||
// Top: "bottom",
|
||||
// Left: "center",
|
||||
// Orient: "horizontal",
|
||||
},
|
||||
Series: []Series{
|
||||
{
|
||||
Label: struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
}{
|
||||
Position: "inner",
|
||||
Formatter: "{d}%",
|
||||
},
|
||||
Name: "Access From",
|
||||
Type: "pie",
|
||||
Radius: []string{"20%", "50%"},
|
||||
ItemStyle: struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
}{
|
||||
BorderRadius: 10,
|
||||
BorderColor: "#fff",
|
||||
BorderWidth: 2,
|
||||
},
|
||||
Data: []SeriesData{
|
||||
{Value: 237, Name: "Normal : 237 Peserta"},
|
||||
{Value: 215, Name: "Prehipertensi : 215 Peserta"},
|
||||
{Value: 66, Name: "Hipertensi Grade I : 66 Peserta"},
|
||||
{Value: 33, Name: "Hipertensi Grade II : 33 Peserta"},
|
||||
},
|
||||
Emphasis: struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
}{
|
||||
ItemStyle: struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
}{
|
||||
ShadowBlur: 10,
|
||||
ShadowOffsetX: 0,
|
||||
ShadowColor: "rgba(0, 0, 0, 0.5)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return title, option, nil
|
||||
}
|
||||
|
||||
// Visus Jauh -- MCU008
|
||||
func GetPieChartMcu008(code string, id int) (string, Piechart, error) {
|
||||
var title = "Visus Jauh"
|
||||
option := Piechart{
|
||||
Title: struct {
|
||||
Text string `json:"text"`
|
||||
SubText string `json:"subtext"`
|
||||
Left string `json:"left"`
|
||||
}{
|
||||
Text: title,
|
||||
SubText: "",
|
||||
Left: "center",
|
||||
},
|
||||
Tooltip: struct {
|
||||
Trigger string `json:"trigger"`
|
||||
}{
|
||||
Trigger: "item",
|
||||
},
|
||||
Legend: struct {
|
||||
Top string `json:"top"`
|
||||
Left string `json:"left"`
|
||||
Orient string `json:"orient"`
|
||||
}{
|
||||
Top: "bottom",
|
||||
Left: "center",
|
||||
Orient: "vertical",
|
||||
|
||||
// KALAU BERTABRAKAN DGN ATASNYA SETTING PAKE DIBAWAH INI
|
||||
// Top: "bottom",
|
||||
// Left: "center",
|
||||
// Orient: "horizontal",
|
||||
},
|
||||
Series: []Series{
|
||||
{
|
||||
Label: struct {
|
||||
Position string `json:"position"`
|
||||
Formatter string `json:"formatter"`
|
||||
}{
|
||||
Position: "inner",
|
||||
Formatter: "{d}%",
|
||||
},
|
||||
Name: "Access From",
|
||||
Type: "pie",
|
||||
Radius: []string{"20%", "50%"},
|
||||
ItemStyle: struct {
|
||||
BorderRadius int `json:"borderRadius"`
|
||||
BorderColor string `json:"borderColor"`
|
||||
BorderWidth int `json:"borderWidth"`
|
||||
}{
|
||||
BorderRadius: 10,
|
||||
BorderColor: "#fff",
|
||||
BorderWidth: 2,
|
||||
},
|
||||
Data: []SeriesData{
|
||||
{Value: 237, Name: "Normal : 237 Peserta"},
|
||||
{Value: 194, Name: "Kelainan Refraksi : 194 Peserta"},
|
||||
{Value: 64, Name: "Kelainan Refraksi terkoreksi : 64 Peserta"},
|
||||
{Value: 56, Name: "Kelainan Refraksi tidak terkoreksi : 56 Peserta"},
|
||||
},
|
||||
Emphasis: struct {
|
||||
ItemStyle struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
} `json:"itemStyle"`
|
||||
}{
|
||||
ItemStyle: struct {
|
||||
ShadowBlur int `json:"shadowBlur"`
|
||||
ShadowOffsetX int `json:"shadowOffsetX"`
|
||||
ShadowColor string `json:"shadowColor"`
|
||||
}{
|
||||
ShadowBlur: 10,
|
||||
ShadowOffsetX: 0,
|
||||
ShadowColor: "rgba(0, 0, 0, 0.5)",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return title, option, nil
|
||||
}
|
||||
|
||||
// Kelainan MCU - MCU004
|
||||
func GetBarChartMcu004(code string, id int) (string, Barchart, error) {
|
||||
title := "Kelainan MCU"
|
||||
option := Barchart{}
|
||||
option.Title = struct {
|
||||
Text string "json:\"text\""
|
||||
}{title}
|
||||
option.Dataset = struct {
|
||||
Source [][]interface{} "json:\"source\""
|
||||
}{[][]interface{}{
|
||||
{"score", "amount", "product", "percentage"},
|
||||
{200, 447, "Body Mass Index"},
|
||||
{150, 314, "Pemeriksaan Mata"},
|
||||
{125, 314, "Fungsi Lemak"},
|
||||
{100, 254, "Autospirometri"},
|
||||
{90, 200, "Hematologi"},
|
||||
{80, 180, "ECG"},
|
||||
{75, 160, "Hiperuricemia"},
|
||||
{70, 125, "Tekanan Darah"},
|
||||
{60, 118, "Urine Lengkap"},
|
||||
{50, 87, "Fungsi Hati"},
|
||||
}}
|
||||
option.Grid.ContainLabel = true
|
||||
option.XAxis.Name = "amount"
|
||||
option.YAxis.Type = "category"
|
||||
option.VisualMap.Orient = "horizontal"
|
||||
option.VisualMap.Left = "center"
|
||||
option.VisualMap.Min = 10
|
||||
option.VisualMap.Max = 100
|
||||
option.VisualMap.Show = false
|
||||
option.VisualMap.Dimension = 0
|
||||
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
|
||||
option.Series = []struct {
|
||||
Label struct {
|
||||
Position string "json:\"position\""
|
||||
Show bool "json:\"show\""
|
||||
Formatter string "json:\"formatter\""
|
||||
} "json:\"label\""
|
||||
Type string "json:\"type\""
|
||||
Encode struct {
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
} "json:\"encode\""
|
||||
}{
|
||||
{Label: struct {
|
||||
Position string "json:\"position\""
|
||||
Show bool "json:\"show\""
|
||||
Formatter string "json:\"formatter\""
|
||||
}{Position: "right", Show: true, Formatter: "{@[3]} %"},
|
||||
Type: "bar", Encode: struct {
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
}{X: "amount", Y: "product"}},
|
||||
}
|
||||
|
||||
return title, option, nil
|
||||
|
||||
}
|
||||
|
||||
// Kelainan MCU - MCU004
|
||||
func GetBarChartMcu005(code string, id int) (string, Barchart, error) {
|
||||
title := "Kelainan Fisik"
|
||||
option := Barchart{}
|
||||
option.Title = struct {
|
||||
Text string "json:\"text\""
|
||||
}{title}
|
||||
option.Dataset = struct {
|
||||
Source [][]interface{} "json:\"source\""
|
||||
}{[][]interface{}{
|
||||
{"score", "amount", "product", "percentage"},
|
||||
{200, 400, "Obesitas Stage 1"},
|
||||
{150, 300, "Pre Hipertensi"},
|
||||
{133, 250, "Kelainan Refraksi"},
|
||||
{125, 180, "Overweight"},
|
||||
{100, 125, "Obesitas Stage 2"},
|
||||
{80, 100, "Hipertensi grade 1"},
|
||||
{70, 80, "Kel. Refrakti terkoreksi"},
|
||||
{60, 70, "Kel. Refrakti tidak terkoreksi"},
|
||||
{55, 55, "Hipertensi grade 2"},
|
||||
}}
|
||||
option.Grid.ContainLabel = true
|
||||
option.XAxis.Name = "amount"
|
||||
option.YAxis.Type = "category"
|
||||
option.VisualMap.Orient = "horizontal"
|
||||
option.VisualMap.Left = "center"
|
||||
option.VisualMap.Min = 10
|
||||
option.VisualMap.Max = 100
|
||||
option.VisualMap.Show = false
|
||||
option.VisualMap.Dimension = 0
|
||||
option.VisualMap.InRange.Color = []string{"#42aaf5", "#00eaf2", "#035bff"}
|
||||
option.Series = []struct {
|
||||
Label struct {
|
||||
Position string "json:\"position\""
|
||||
Show bool "json:\"show\""
|
||||
Formatter string "json:\"formatter\""
|
||||
} "json:\"label\""
|
||||
Type string "json:\"type\""
|
||||
Encode struct {
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
} "json:\"encode\""
|
||||
}{
|
||||
{Label: struct {
|
||||
Position string "json:\"position\""
|
||||
Show bool "json:\"show\""
|
||||
Formatter string "json:\"formatter\""
|
||||
}{Position: "right", Show: true, Formatter: "{@[3]} %"},
|
||||
Type: "bar", Encode: struct {
|
||||
X string "json:\"x\""
|
||||
Y string "json:\"y\""
|
||||
}{X: "amount", Y: "product"}},
|
||||
}
|
||||
|
||||
return title, option, nil
|
||||
|
||||
}
|
||||
func (su *ServicesPiechart) GetPieChart(code string, id int) (string, Piechart, error) {
|
||||
if code == "mcu001" {
|
||||
return GetPieChartMcu001(code, id)
|
||||
}
|
||||
|
||||
if code == "mcu002" {
|
||||
return GetPieChartMcu002(code, id)
|
||||
}
|
||||
|
||||
if code == "mcu003" {
|
||||
return GetPieChartMcu003(code, id)
|
||||
}
|
||||
|
||||
if code == "mcu006" {
|
||||
return GetPieChartMcu006(code, id)
|
||||
}
|
||||
|
||||
if code == "mcu007" {
|
||||
return GetPieChartMcu007(code, id)
|
||||
}
|
||||
|
||||
if code == "mcu008" {
|
||||
return GetPieChartMcu008(code, id)
|
||||
}
|
||||
|
||||
return "", Piechart{}, fmt.Errorf("code " + code + " not found")
|
||||
}
|
||||
func (su *ServicesPiechart) GetBarChart(code string, id int) (string, Barchart, error) {
|
||||
|
||||
if code == "mcu004" {
|
||||
return GetBarChartMcu004(code, id)
|
||||
}
|
||||
if code == "mcu005" {
|
||||
return GetBarChartMcu005(code, id)
|
||||
}
|
||||
|
||||
return "", Barchart{}, fmt.Errorf("code " + code + " not found")
|
||||
}
|
||||
71
services/employee.services.go
Normal file
71
services/employee.services.go
Normal file
@@ -0,0 +1,71 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/emarifer/go-templ-project-structure/db"
|
||||
)
|
||||
|
||||
func NewServicesEmployee(u Employee, uStore db.EmployeeStore) *ServicesEmployee {
|
||||
|
||||
return &ServicesEmployee{
|
||||
Employee: u,
|
||||
EmployeeStore: uStore,
|
||||
}
|
||||
}
|
||||
|
||||
type Employee struct {
|
||||
ID int `json:"id"`
|
||||
Employeename string `json:"Employeename"`
|
||||
Email string `json:"email"`
|
||||
CreatedAt time.Time `json:"created_at,omitempty"`
|
||||
}
|
||||
|
||||
type EmployeeService struct {
|
||||
EmployeeID int `json:"EmployeeID"`
|
||||
EmployeeTitle string `json:"EmployeeTitle"`
|
||||
EmployeeDescription string `json:"EmployeeDescription"`
|
||||
EmployeeStartDate string `json:"EmployeeStartDate"`
|
||||
EmployeeEndDate string `json:"EmployeeEndDate"`
|
||||
}
|
||||
|
||||
type ServicesEmployee struct {
|
||||
Employee Employee
|
||||
EmployeeStore db.EmployeeStore
|
||||
}
|
||||
|
||||
func (se *ServicesEmployee) GetEmployeeService() ([]EmployeeService, error) {
|
||||
|
||||
data := []EmployeeService{
|
||||
{
|
||||
EmployeeID: 1,
|
||||
EmployeeTitle: "MCU Calon Karyawan",
|
||||
EmployeeDescription: "Tanggal Pelaksanaan",
|
||||
EmployeeStartDate: "01/04/2024",
|
||||
EmployeeEndDate: "06/04/2024",
|
||||
},
|
||||
{
|
||||
EmployeeID: 2,
|
||||
EmployeeTitle: "MCU Karyawan",
|
||||
EmployeeDescription: "Tanggal Pelaksanaan",
|
||||
EmployeeStartDate: "01/04/2024",
|
||||
EmployeeEndDate: "06/04/2024",
|
||||
},
|
||||
{
|
||||
EmployeeID: 1,
|
||||
EmployeeTitle: "MCU Eselon 1",
|
||||
EmployeeDescription: "Tanggal Pelaksanaan",
|
||||
EmployeeStartDate: "01/04/2024",
|
||||
EmployeeEndDate: "06/04/2024",
|
||||
},
|
||||
{
|
||||
EmployeeID: 1,
|
||||
EmployeeTitle: "MCU Eselon 2",
|
||||
EmployeeDescription: "Tanggal Pelaksanaan",
|
||||
EmployeeStartDate: "01/04/2024",
|
||||
EmployeeEndDate: "06/04/2024",
|
||||
},
|
||||
}
|
||||
|
||||
return data, nil
|
||||
}
|
||||
@@ -40,6 +40,18 @@ type Promotion struct {
|
||||
PromotionLink string `json:"PromotionLink"`
|
||||
}
|
||||
|
||||
type FooterSubNav struct {
|
||||
FootSubNavID int `json:"FootSubNavID"`
|
||||
FootSubNavTitle string `json:"FootSubNavTitle"`
|
||||
FootSubNavLink string `json:"FootSubNavLink"`
|
||||
}
|
||||
|
||||
type FooterNav struct {
|
||||
FooterNavID int `json:"FooterNavID"`
|
||||
FooterNavTitle string `json:"FooterNavTitle"`
|
||||
FooteSubNav []FooterSubNav `json:"FooterSubNav,omitempty"`
|
||||
}
|
||||
|
||||
type ServicesLandingPage struct {
|
||||
LandingPage LandingPage
|
||||
LandingPageStore db.LandingPageStore
|
||||
@@ -121,6 +133,20 @@ func (su *ServicesLandingPage) GetClientService() ([]ClientService, error) {
|
||||
ClientServiceIcon: "jam:medical",
|
||||
ClientServiceLink: "/",
|
||||
},
|
||||
{
|
||||
ClientServiceID: 4,
|
||||
ClientServiceName: "Medical Check Up 2",
|
||||
ClientServiceDescription: "Supported by a professional medical, paramedical team, and as well as laboratory equipment ",
|
||||
ClientServiceIcon: "jam:medical",
|
||||
ClientServiceLink: "/",
|
||||
},
|
||||
{
|
||||
ClientServiceID: 5,
|
||||
ClientServiceName: "Medical Check Up 3",
|
||||
ClientServiceDescription: "Supported by a professional medical, paramedical team, and as well as laboratory equipment ",
|
||||
ClientServiceIcon: "jam:medical",
|
||||
ClientServiceLink: "/",
|
||||
},
|
||||
}
|
||||
|
||||
return data, nil
|
||||
@@ -175,6 +201,86 @@ func (su *ServicesLandingPage) GetPromotionList() ([]Promotion, error) {
|
||||
PromotionAsset: "../../asset-corporate-portal/media/landingpage/promotion_3.png",
|
||||
PromotionLink: "",
|
||||
},
|
||||
{
|
||||
PromotionID: 4,
|
||||
PromotionAsset: "../../asset-corporate-portal/media/landingpage/promotion_2.png",
|
||||
PromotionLink: "",
|
||||
},
|
||||
{
|
||||
PromotionID: 5,
|
||||
PromotionAsset: "../../asset-corporate-portal/media/landingpage/promotion_3.png",
|
||||
PromotionLink: "",
|
||||
},
|
||||
}
|
||||
|
||||
return data, nil
|
||||
}
|
||||
func (su *ServicesLandingPage) GetFooterNavList() ([]FooterNav, error) {
|
||||
data := []FooterNav{
|
||||
{
|
||||
FooterNavID: 1,
|
||||
FooterNavTitle: "Dashboard",
|
||||
FooteSubNav: []FooterSubNav{
|
||||
{
|
||||
FootSubNavID: 1,
|
||||
FootSubNavTitle: "Dashboard #1",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
{
|
||||
FootSubNavID: 2,
|
||||
FootSubNavTitle: "Dashboard #2",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
FooterNavID: 2,
|
||||
FooterNavTitle: "Benefit",
|
||||
FooteSubNav: []FooterSubNav{
|
||||
{
|
||||
FootSubNavID: 1,
|
||||
FootSubNavTitle: "Benefit #1",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
{
|
||||
FootSubNavID: 2,
|
||||
FootSubNavTitle: "Benefit #2",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
FooterNavID: 3,
|
||||
FooterNavTitle: "Finance & Claims",
|
||||
FooteSubNav: []FooterSubNav{
|
||||
{
|
||||
FootSubNavID: 1,
|
||||
FootSubNavTitle: "Finance & Claims #1",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
{
|
||||
FootSubNavID: 2,
|
||||
FootSubNavTitle: "Finance & Claims #2",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
FooterNavID: 4,
|
||||
FooterNavTitle: "Memberships",
|
||||
FooteSubNav: []FooterSubNav{
|
||||
{
|
||||
FootSubNavID: 1,
|
||||
FootSubNavTitle: "Memberships #1",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
{
|
||||
FootSubNavID: 2,
|
||||
FootSubNavTitle: "Memberships #2",
|
||||
FootSubNavLink: "/",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return data, nil
|
||||
|
||||
597
services/mastermenuusergroup.services.go
Normal file
597
services/mastermenuusergroup.services.go
Normal file
@@ -0,0 +1,597 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/db"
|
||||
)
|
||||
|
||||
func NewServicesMasterMenuUserGroup(u MasterMenu, uStore db.MasterMenuUserGroupStore) *ServicesMasterMenuUserGroup {
|
||||
|
||||
return &ServicesMasterMenuUserGroup{
|
||||
MasterMenu: u,
|
||||
MasterMenuUserGroupStore: uStore,
|
||||
}
|
||||
}
|
||||
|
||||
// MasterMenu struct
|
||||
type Breadcrumb struct {
|
||||
IDBreadcrumb string `json:"id_breadcrumb"`
|
||||
Name string `json:"name"`
|
||||
Url string `json:"url"`
|
||||
}
|
||||
|
||||
type ChildrenMenu struct {
|
||||
ChildrenParentID string `json:"children_parent_id"`
|
||||
ChildrenMenuID string `json:"children_menu_id"`
|
||||
ChildrenMenuName string `json:"children_menu_name"`
|
||||
ChildrenMenuURL string `json:"children_menu_url"`
|
||||
// Breadcrumb []Breadcrumb `json:"breadcrumb"`
|
||||
}
|
||||
|
||||
type MasterMenu struct {
|
||||
ID string `json:"id"`
|
||||
ParentMenuID string `json:"parent_menu_id"`
|
||||
ParentMenuName string `json:"parent_menu_name"`
|
||||
ParentUrl string `json:"parent_url"`
|
||||
ParentIcon string `json:"parent_icon"`
|
||||
Children []ChildrenMenu `json:"children"`
|
||||
}
|
||||
|
||||
type ServicesMasterMenuUserGroup struct {
|
||||
MasterMenu MasterMenu
|
||||
MasterMenuUserGroupStore db.MasterMenuUserGroupStore
|
||||
}
|
||||
|
||||
func (su *ServicesMasterMenuUserGroup) GetMasterMenus() ([]MasterMenu, error) {
|
||||
|
||||
// dummyBreadcrumb := []Breadcrumb{
|
||||
// {
|
||||
// Name: "Dashboard",
|
||||
// Url: "/client/dashboard",
|
||||
// },
|
||||
// {
|
||||
// Name: "Front Office",
|
||||
// Url: "/client/usermanagement",
|
||||
// },
|
||||
// }
|
||||
|
||||
dummyMenu := []MasterMenu{
|
||||
// 1. Dashboard
|
||||
{
|
||||
ID: "1",
|
||||
ParentMenuID: "0",
|
||||
ParentMenuName: "Dashboard",
|
||||
ParentUrl: "/client/md/dashboard",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "1",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Master User",
|
||||
ChildrenMenuURL: "/client/md/user",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 2. Front Office
|
||||
{
|
||||
ID: "2",
|
||||
ParentMenuID: "1",
|
||||
ParentMenuName: "Front Office",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "1",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Registrasi",
|
||||
ChildrenMenuURL: "/fo/registrasi",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 3. Station
|
||||
{
|
||||
ID: "3",
|
||||
ParentMenuID: "2",
|
||||
ParentMenuName: "Station",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "2",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Sample Station",
|
||||
ChildrenMenuURL: "/station/sample",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 4. Management MCU
|
||||
{
|
||||
ID: "4",
|
||||
ParentMenuID: "3",
|
||||
ParentMenuName: "Management MCU",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "3",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Setup MCU",
|
||||
ChildrenMenuURL: "/mcu/setup",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
{
|
||||
ChildrenParentID: "3",
|
||||
ChildrenMenuID: "2",
|
||||
ChildrenMenuName: "Pre-Registrasi",
|
||||
ChildrenMenuURL: "/mcu/preregister",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 5. Master Data
|
||||
{
|
||||
ID: "5",
|
||||
ParentMenuID: "4",
|
||||
ParentMenuName: "Master Data",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
// * Master User
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Master User",
|
||||
ChildrenMenuURL: "/client/md/user",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Master User Group
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "2",
|
||||
ChildrenMenuName: "Master User Group",
|
||||
ChildrenMenuURL: "/client/md/usergroup",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Master Corporate
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "3",
|
||||
ChildrenMenuName: "Corporate",
|
||||
ChildrenMenuURL: "/client/md/corp",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Test
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "4",
|
||||
ChildrenMenuName: "Test",
|
||||
ChildrenMenuURL: "/client/md/test",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Bahan
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "5",
|
||||
ChildrenMenuName: "Bahan",
|
||||
ChildrenMenuURL: "/client/md/bahan",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Sample Type
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "6",
|
||||
ChildrenMenuName: "Sample Type",
|
||||
ChildrenMenuURL: "/client/sample/type",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Sample Station
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "7",
|
||||
ChildrenMenuName: "Sample Station",
|
||||
ChildrenMenuURL: "/station/sample",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Result Non Lab
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "8",
|
||||
ChildrenMenuName: "Result Non Lab",
|
||||
ChildrenMenuURL: "/client/md/resultnonlab",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Template Fisik
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "9",
|
||||
ChildrenMenuName: "Template Fisik",
|
||||
ChildrenMenuURL: "/client/md/template-fisik",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Pasien
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "10",
|
||||
ChildrenMenuName: "Pasien",
|
||||
ChildrenMenuURL: "/client/md/pasien",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Dokter
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "11",
|
||||
ChildrenMenuName: "Dokter",
|
||||
ChildrenMenuURL: "/client/md/dokter",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Paket
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "12",
|
||||
ChildrenMenuName: "Paket",
|
||||
ChildrenMenuURL: "/client/md/paket",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Harga Single
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "13",
|
||||
ChildrenMenuName: "Harga Single",
|
||||
ChildrenMenuURL: "/client/md/hargasingle",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return dummyMenu, nil
|
||||
}
|
||||
|
||||
// func (su *ServicesMasterMenuUserGroup) GetAllMasterMenus() ([]MasterMenu, error) {
|
||||
// query := `SELECT id, MasterMenuname, email, created_at FROM MasterMenus ORDER BY created_at DESC`
|
||||
|
||||
// rows, err := su.MasterMenuUserGroupStore.Db.Query(query)
|
||||
// if err != nil {
|
||||
// return []MasterMenu{}, err
|
||||
// }
|
||||
// // We close the resource
|
||||
// defer rows.Close()
|
||||
|
||||
// MasterMenus := []MasterMenu{}
|
||||
// for rows.Next() {
|
||||
// rows.Scan(
|
||||
// &su.MasterMenu.ID,
|
||||
// &su.MasterMenu.MasterMenuname,
|
||||
// &su.MasterMenu.Email,
|
||||
// &su.MasterMenu.CreatedAt,
|
||||
// )
|
||||
|
||||
// MasterMenus = append(MasterMenus, su.MasterMenu)
|
||||
// }
|
||||
|
||||
// return MasterMenus, nil
|
||||
// }
|
||||
|
||||
// func (su *ServicesMasterMenuUserGroup) GetMasterMenuById(id int) (MasterMenu, error) {
|
||||
|
||||
// query := `SELECT id, MasterMenuname, email, created_at FROM MasterMenus
|
||||
// WHERE id = ?`
|
||||
|
||||
// stmt, err := su.MasterMenuUserGroupStore.Db.Prepare(query)
|
||||
// if err != nil {
|
||||
// return MasterMenu{}, err
|
||||
// }
|
||||
|
||||
// defer stmt.Close()
|
||||
|
||||
// su.MasterMenu.ID = id
|
||||
// err = stmt.QueryRow(
|
||||
// su.MasterMenu.ID,
|
||||
// ).Scan(
|
||||
// &su.MasterMenu.ID,
|
||||
// &su.MasterMenu.MasterMenuname,
|
||||
// &su.MasterMenu.Email,
|
||||
// &su.MasterMenu.CreatedAt,
|
||||
// )
|
||||
// if err != nil {
|
||||
// return MasterMenu{}, err
|
||||
// }
|
||||
|
||||
// return su.MasterMenu, nil
|
||||
// }
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/emarifer/go-templ-project-structure/db"
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
)
|
||||
|
||||
func NewServicesUser(u User, uStore db.UserStore) *ServicesUser {
|
||||
@@ -84,3 +85,13 @@ func ConverDateTime(tz string, dt time.Time) string {
|
||||
|
||||
return dt.In(loc).Format(time.RFC822Z)
|
||||
}
|
||||
|
||||
func GetUser() (models.User, error) {
|
||||
a := models.User{
|
||||
UserID: 1,
|
||||
Username: "andy",
|
||||
UserFullName: "Alfianto Andy P",
|
||||
UserPosition: "Software Developer",
|
||||
}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
@@ -78,3 +78,505 @@ func (su *ServicesXsample) GetXsampleById(id int) (Xsample, error) {
|
||||
|
||||
return su.Xsample, nil
|
||||
}
|
||||
|
||||
func (su *ServicesXsample) GetListMenus() ([]MasterMenu, error) {
|
||||
|
||||
// dummyBreadcrumb := []Breadcrumb{
|
||||
// {
|
||||
// Name: "Dashboard",
|
||||
// Url: "/client/dashboard",
|
||||
// },
|
||||
// {
|
||||
// Name: "Front Office",
|
||||
// Url: "/client/usermanagement",
|
||||
// },
|
||||
// }
|
||||
|
||||
dummyMenu := []MasterMenu{
|
||||
// 1. Dashboard
|
||||
{
|
||||
ID: "1",
|
||||
ParentMenuID: "0",
|
||||
ParentMenuName: "Dashboard",
|
||||
ParentUrl: "/client/md/dashboard",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "1",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Master User",
|
||||
ChildrenMenuURL: "/client/md/user",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 2. Front Office
|
||||
{
|
||||
ID: "2",
|
||||
ParentMenuID: "1",
|
||||
ParentMenuName: "Front Office",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "1",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Registrasi",
|
||||
ChildrenMenuURL: "/fo/registrasi",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 3. Station
|
||||
{
|
||||
ID: "3",
|
||||
ParentMenuID: "2",
|
||||
ParentMenuName: "Station",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "2",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Sample Station",
|
||||
ChildrenMenuURL: "/station/sample",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 4. Management MCU
|
||||
{
|
||||
ID: "4",
|
||||
ParentMenuID: "3",
|
||||
ParentMenuName: "Management MCU",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
{
|
||||
ChildrenParentID: "3",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Setup MCU",
|
||||
ChildrenMenuURL: "/mcu/setup",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
{
|
||||
ChildrenParentID: "3",
|
||||
ChildrenMenuID: "2",
|
||||
ChildrenMenuName: "Pre-Registrasi",
|
||||
ChildrenMenuURL: "/mcu/preregister",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// 5. Master Data
|
||||
{
|
||||
ID: "5",
|
||||
ParentMenuID: "4",
|
||||
ParentMenuName: "Master Data",
|
||||
ParentUrl: "#",
|
||||
ParentIcon: "",
|
||||
Children: []ChildrenMenu{
|
||||
// * Master User
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "1",
|
||||
ChildrenMenuName: "Master User",
|
||||
ChildrenMenuURL: "/client/md/user",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Master User Group
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "2",
|
||||
ChildrenMenuName: "Master User Group",
|
||||
ChildrenMenuURL: "/client/md/usergroup",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Master Corporate
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "3",
|
||||
ChildrenMenuName: "Corporate",
|
||||
ChildrenMenuURL: "/client/md/corp",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Test
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "4",
|
||||
ChildrenMenuName: "Test",
|
||||
ChildrenMenuURL: "/client/md/test",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Bahan
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "5",
|
||||
ChildrenMenuName: "Bahan",
|
||||
ChildrenMenuURL: "/client/md/bahan",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Sample Type
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "6",
|
||||
ChildrenMenuName: "Sample Type",
|
||||
ChildrenMenuURL: "/client/sample/type",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Sample Station
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "7",
|
||||
ChildrenMenuName: "Sample Station",
|
||||
ChildrenMenuURL: "/station/sample",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Result Non Lab
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "8",
|
||||
ChildrenMenuName: "Result Non Lab",
|
||||
ChildrenMenuURL: "/client/md/resultnonlab",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Template Fisik
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "9",
|
||||
ChildrenMenuName: "Template Fisik",
|
||||
ChildrenMenuURL: "/client/md/template-fisik",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Pasien
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "10",
|
||||
ChildrenMenuName: "Pasien",
|
||||
ChildrenMenuURL: "/client/md/pasien",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Dokter
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "11",
|
||||
ChildrenMenuName: "Dokter",
|
||||
ChildrenMenuURL: "/client/md/dokter",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Paket
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "12",
|
||||
ChildrenMenuName: "Paket",
|
||||
ChildrenMenuURL: "/client/md/paket",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
|
||||
// * Harga Single
|
||||
{
|
||||
ChildrenParentID: "4",
|
||||
ChildrenMenuID: "13",
|
||||
ChildrenMenuName: "Harga Single",
|
||||
ChildrenMenuURL: "/client/md/hargasingle",
|
||||
// Breadcrumb: []Breadcrumb{
|
||||
// {
|
||||
// IDBreadcrumb: "1",
|
||||
// Title: "Dashboard",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "2",
|
||||
// Title: "Master",
|
||||
// IsActive: "N",
|
||||
// },
|
||||
// {
|
||||
// IDBreadcrumb: "3",
|
||||
// Title: "User Group",
|
||||
// IsActive: "Y",
|
||||
// },
|
||||
// },
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
return dummyMenu, nil
|
||||
}
|
||||
|
||||
16
utils/generaterandomid.utils.go
Normal file
16
utils/generaterandomid.utils.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func GenerateRandomID(text string) string {
|
||||
seed := text + time.Now().String()
|
||||
hash := md5.Sum([]byte(seed))
|
||||
randomID := hex.EncodeToString(hash[:])
|
||||
randomID = strings.ReplaceAll(randomID, "-", "")
|
||||
return randomID
|
||||
}
|
||||
23
views/component/breadcrumbadmin/breadcrumbadmin.templ
Normal file
23
views/component/breadcrumbadmin/breadcrumbadmin.templ
Normal file
@@ -0,0 +1,23 @@
|
||||
package breadcrumadmin
|
||||
|
||||
templ MainBreadcrumbAdmin() {
|
||||
<div class="col-11">
|
||||
<h1 class="title text-black" style="margin-bottom: 0">
|
||||
PT. Sadhana Abiyasa Sampoerna
|
||||
</h1>
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb" style="margin-bottom: 0">
|
||||
<li class="breadcrumb-item"><a href="#">Dashboard</a></li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Employee Health Medical Analytic</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">PT. Sadhana Abiyasa Sampoerna</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current="page">
|
||||
Mcu Karyawan
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
}
|
||||
35
views/component/breadcrumbadmin/breadcrumbadmin_templ.go
Normal file
35
views/component/breadcrumbadmin/breadcrumbadmin_templ.go
Normal file
@@ -0,0 +1,35 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package breadcrumadmin
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
func MainBreadcrumbAdmin() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-11\"><h1 class=\"title text-black\" style=\"margin-bottom: 0\">PT. Sadhana Abiyasa Sampoerna\r</h1><nav aria-label=\"breadcrumb\"><ol class=\"breadcrumb\" style=\"margin-bottom: 0\"><li class=\"breadcrumb-item\"><a href=\"#\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"#\">Employee Health Medical Analytic</a></li><li class=\"breadcrumb-item\"><a href=\"#\">PT. Sadhana Abiyasa Sampoerna</a></li><li class=\"breadcrumb-item active\" aria-current=\"page\">Mcu Karyawan\r</li></ol></nav></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
30
views/component/chart/chart.templ
Normal file
30
views/component/chart/chart.templ
Normal file
@@ -0,0 +1,30 @@
|
||||
package chart
|
||||
|
||||
templ ShowChart(idDiv string, udata string) {
|
||||
<div id={ idDiv } class="mx-auto"></div>
|
||||
@GenerateChart(idDiv, udata)
|
||||
}
|
||||
|
||||
script GenerateChart(idDiv string, udata string) {
|
||||
htmx.onLoad(function(elt) {
|
||||
console.log("elt ",elt)
|
||||
var element = document.getElementById(idDiv);
|
||||
console.log("element ",element)
|
||||
if (element) {
|
||||
element.style.height = "400px";
|
||||
element.style.width = "100%";
|
||||
}
|
||||
|
||||
var myChart = {};
|
||||
var option = {};
|
||||
|
||||
// var myChart_001 = echarts.init(document.getElementById(idDiv));
|
||||
myChart[idDiv] = echarts.init(element);
|
||||
|
||||
// var option_001 = JSON.parse(udata);
|
||||
option[idDiv] = JSON.parse(udata);
|
||||
console.log("option ", option)
|
||||
// myChart_001.setOption(option_001);
|
||||
myChart[idDiv].setOption(option[idDiv]);
|
||||
});
|
||||
}
|
||||
82
views/component/chart/chart_templ.go
Normal file
82
views/component/chart/chart_templ.go
Normal file
@@ -0,0 +1,82 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package chart
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
func ShowChart(idDiv string, udata string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(idDiv)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\chart\chart.templ`, Line: 4, Col: 19}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"mx-auto\"></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = GenerateChart(idDiv, udata).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func GenerateChart(idDiv string, udata string) templ.ComponentScript {
|
||||
return templ.ComponentScript{
|
||||
Name: `__templ_GenerateChart_4c73`,
|
||||
Function: `function __templ_GenerateChart_4c73(idDiv, udata){htmx.onLoad(function(elt) {
|
||||
console.log("elt ",elt)
|
||||
var element = document.getElementById(idDiv);
|
||||
console.log("element ",element)
|
||||
if (element) {
|
||||
element.style.height = "400px";
|
||||
element.style.width = "100%";
|
||||
}
|
||||
|
||||
var myChart = {};
|
||||
var option = {};
|
||||
|
||||
// var myChart_001 = echarts.init(document.getElementById(idDiv));
|
||||
myChart[idDiv] = echarts.init(element);
|
||||
|
||||
// var option_001 = JSON.parse(udata);
|
||||
option[idDiv] = JSON.parse(udata);
|
||||
console.log("option ", option)
|
||||
// myChart_001.setOption(option_001);
|
||||
myChart[idDiv].setOption(option[idDiv]);
|
||||
});
|
||||
}`,
|
||||
Call: templ.SafeScript(`__templ_GenerateChart_4c73`, idDiv, udata),
|
||||
CallInline: templ.SafeScriptInline(`__templ_GenerateChart_4c73`, idDiv, udata),
|
||||
}
|
||||
}
|
||||
17
views/component/customtextfield/customtextfield.templ
Normal file
17
views/component/customtextfield/customtextfield.templ
Normal file
@@ -0,0 +1,17 @@
|
||||
package customtextfield
|
||||
|
||||
templ MainCustomTextField(inpLabelText,
|
||||
inpName,
|
||||
inpPlaceHolder,
|
||||
inpType string) {
|
||||
<div class="form-group">
|
||||
<label class="text-black" style="font-family: Poppins; font-weight: 600;">{ inpLabelText } </label>
|
||||
<input
|
||||
id={ inpName }
|
||||
name={ inpName }
|
||||
type={ inpType }
|
||||
placeholder={ inpPlaceHolder }
|
||||
class="form-control bg-field border-0"
|
||||
/>
|
||||
</div>
|
||||
}
|
||||
103
views/component/customtextfield/customtextfield_templ.go
Normal file
103
views/component/customtextfield/customtextfield_templ.go
Normal file
@@ -0,0 +1,103 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package customtextfield
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
func MainCustomTextField(inpLabelText,
|
||||
inpName,
|
||||
inpPlaceHolder,
|
||||
inpType string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"form-group\"><label class=\"text-black\" style=\"font-family: Poppins; font-weight: 600;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(inpLabelText)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 8, Col: 90}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</label> <input id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 10, Col: 15}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" name=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 11, Col: 17}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" type=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(inpType)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 12, Col: 17}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" placeholder=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(inpPlaceHolder)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfield\customtextfield.templ`, Line: 13, Col: 31}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"form-control bg-field border-0\"></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package customtextfieldsearch
|
||||
|
||||
templ MainCustomTextFieldSearch(
|
||||
inpName,
|
||||
inpPlaceHolder,
|
||||
inpType,
|
||||
hxPost,
|
||||
hxTrigger,
|
||||
hxTarget,
|
||||
hxIndicator string) {
|
||||
<input
|
||||
class="form-control bg-field border-0"
|
||||
type={ inpType }
|
||||
name={ inpName }
|
||||
id={ inpName }
|
||||
placeholder={ inpPlaceHolder }
|
||||
hx-post={ hxPost }
|
||||
hx-trigger={ hxTrigger }
|
||||
hx-target={ hxTarget }
|
||||
hx-indicator={ hxIndicator }
|
||||
/>
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package customtextfieldsearch
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
func MainCustomTextFieldSearch(
|
||||
inpName,
|
||||
inpPlaceHolder,
|
||||
inpType,
|
||||
hxPost,
|
||||
hxTrigger,
|
||||
hxTarget,
|
||||
hxIndicator string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<input class=\"form-control bg-field border-0\" type=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(inpType)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 13, Col: 22}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" name=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 14, Col: 22}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" id=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(inpName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 15, Col: 20}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" placeholder=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(inpPlaceHolder)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 16, Col: 36}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-post=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(hxPost)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 17, Col: 24}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-trigger=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var7 string
|
||||
templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(hxTrigger)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 18, Col: 30}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-target=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(hxTarget)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 19, Col: 28}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" hx-indicator=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var9 string
|
||||
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(hxIndicator)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\customtextfieldsearch\customtextfieldsearch.templ`, Line: 20, Col: 34}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
74
views/component/navbar/navbar.templ
Normal file
74
views/component/navbar/navbar.templ
Normal file
@@ -0,0 +1,74 @@
|
||||
package navbar
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/sidebarmaster"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
)
|
||||
|
||||
templ Navbar(dataUser models.User) {
|
||||
<div id="kt_header" class="header header-fixed ">
|
||||
<!--begin::Container-->
|
||||
<div class="container-fluid d-flex align-items-stretch justify-content-between">
|
||||
<!--begin::Header Menu Wrapper-->
|
||||
<div class="header-menu-wrapper header-menu-wrapper-left" id="kt_header_menu_wrapper"></div>
|
||||
<!--end::Header Menu Wrapper-->
|
||||
<!--begin::Topbar-->
|
||||
<div class="topbar">
|
||||
<!--begin::User-->
|
||||
<div class="topbar-item">
|
||||
<div
|
||||
class="btn btn-icon btn-icon-mobile w-auto btn-clean d-flex align-items-center btn-lg px-2"
|
||||
id="kt_quick_user_toggle"
|
||||
>
|
||||
<span
|
||||
class="text-muted font-weight-bold font-size-base d-none d-md-inline mr-1"
|
||||
>Hi,</span>
|
||||
<span
|
||||
class="text-dark-50 font-weight-bolder font-size-base d-none d-md-inline mr-3"
|
||||
>{ dataUser.Username }</span>
|
||||
<span class="bg-primary-transparent p-3" style="border-radius: 50%; width: 40px; height: 40px;">
|
||||
<span class="iconify text-primary" data-icon="gravity-ui:person"></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::User-->
|
||||
</div>
|
||||
<!--end::Topbar-->
|
||||
</div>
|
||||
<!--end::Container-->
|
||||
</div>
|
||||
}
|
||||
|
||||
templ NavbarMenu(datamenu []services.MasterMenu) {
|
||||
<div class="aside-menu-wrapper flex-column-fluid" id="kt_aside_menu_wrapper">
|
||||
<!--begin::Menu Container-->
|
||||
<div
|
||||
id="kt_aside_menu"
|
||||
class="aside-menu my-4 "
|
||||
data-menu-vertical="1"
|
||||
data-menu-scroll="1"
|
||||
data-menu-dropdown-timeout="500"
|
||||
>
|
||||
<!--begin::Menu Nav-->
|
||||
<ul class="menu-nav ">
|
||||
for index, d := range datamenu {
|
||||
if index == 0 {
|
||||
// @MenuDashboard(d.ParentMenuName, d.ParentUrl)
|
||||
@sidebarmaster.MenuDashboard(d.ParentMenuName, d.ParentUrl)
|
||||
<li class="menu-section ">
|
||||
<h4 class="menu-text">Menu</h4>
|
||||
<i class="menu-icon ki ki-bold-more-hor icon-md"></i>
|
||||
</li>
|
||||
}
|
||||
if index+1 < len(datamenu) {
|
||||
// @ListMenuNavbar(datamenu[index+1].ParentMenuName, d.Children)
|
||||
@sidebarmaster.ListMenuNavbar(datamenu[index+1].ParentMenuName, datamenu[index+1].Children)
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
<!--end::Menu Nav-->
|
||||
</div>
|
||||
<!--end::Menu Container-->
|
||||
</div>
|
||||
}
|
||||
112
views/component/navbar/navbar_templ.go
Normal file
112
views/component/navbar/navbar_templ.go
Normal file
@@ -0,0 +1,112 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package navbar
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/sidebarmaster"
|
||||
)
|
||||
|
||||
func Navbar(dataUser models.User) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"kt_header\" class=\"header header-fixed \"><!--begin::Container--><div class=\"container-fluid d-flex align-items-stretch justify-content-between\"><!--begin::Header Menu Wrapper--><div class=\"header-menu-wrapper header-menu-wrapper-left\" id=\"kt_header_menu_wrapper\"></div><!--end::Header Menu Wrapper--><!--begin::Topbar--><div class=\"topbar\"><!--begin::User--><div class=\"topbar-item\"><div class=\"btn btn-icon btn-icon-mobile w-auto btn-clean d-flex align-items-center btn-lg px-2\" id=\"kt_quick_user_toggle\"><span class=\"text-muted font-weight-bold font-size-base d-none d-md-inline mr-1\">Hi,</span> <span class=\"text-dark-50 font-weight-bolder font-size-base d-none d-md-inline mr-3\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.Username)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\navbar\navbar.templ`, Line: 29, Col: 26}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span> <span class=\"bg-primary-transparent p-3\" style=\"border-radius: 50%; width: 40px; height: 40px;\"><span class=\"iconify text-primary\" data-icon=\"gravity-ui:person\"></span></span></div></div><!--end::User--></div><!--end::Topbar--></div><!--end::Container--></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func NavbarMenu(datamenu []services.MasterMenu) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"aside-menu-wrapper flex-column-fluid\" id=\"kt_aside_menu_wrapper\"><!--begin::Menu Container--><div id=\"kt_aside_menu\" class=\"aside-menu my-4 \" data-menu-vertical=\"1\" data-menu-scroll=\"1\" data-menu-dropdown-timeout=\"500\"><!--begin::Menu Nav--><ul class=\"menu-nav \">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for index, d := range datamenu {
|
||||
if index == 0 {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = sidebarmaster.MenuDashboard(d.ParentMenuName, d.ParentUrl).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" <li class=\"menu-section \"><h4 class=\"menu-text\">Menu</h4><i class=\"menu-icon ki ki-bold-more-hor icon-md\"></i></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if index+1 < len(datamenu) {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = sidebarmaster.ListMenuNavbar(datamenu[index+1].ParentMenuName, datamenu[index+1].Children).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</ul><!--end::Menu Nav--></div><!--end::Menu Container--></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package sidebaruserprofile
|
||||
|
||||
import "github.com/emarifer/go-templ-project-structure/models"
|
||||
|
||||
templ Navbaruserprofile(dataUser models.User) {
|
||||
<div id="kt_quick_user" class="offcanvas offcanvas-right p-10">
|
||||
<!--begin::Header-->
|
||||
<div class="offcanvas-header d-flex align-items-center justify-content-between pb-5">
|
||||
<h3 class="font-weight-bold m-0 text-black">
|
||||
User Profile
|
||||
// <small class="text-muted font-size-sm ml-2">12 messages</small>
|
||||
</h3>
|
||||
<a href="#" class="btn btn-xs btn-icon btn-light btn-hover-primary" id="kt_quick_user_close">
|
||||
<i class="ki ki-close icon-xs text-muted"></i>
|
||||
</a>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Content-->
|
||||
<div class="offcanvas-content pr-5 mr-n5">
|
||||
<!--begin::Header-->
|
||||
@ProfileHeader(dataUser)
|
||||
<!--end::Header-->
|
||||
<!--begin::Separator-->
|
||||
<div class="separator separator-dashed my-7"></div>
|
||||
<!--end::Separator-->
|
||||
<!--begin::Notifications-->
|
||||
<div>
|
||||
<!--begin:Heading-->
|
||||
<h5 class="mb-5">
|
||||
Recent Notifications
|
||||
</h5>
|
||||
<!--end:Heading-->
|
||||
<!--begin::Item-->
|
||||
@NotificationCard()
|
||||
<!--end::Item-->
|
||||
</div>
|
||||
<!--end::Notifications-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ProfileHeader(dataUser models.User) {
|
||||
<div class="d-flex align-items-center mt-5">
|
||||
<div class="symbol symbol-100 mr-5 p-2 bg-primary-transparent">
|
||||
// <div class="symbol-label" style="background-image:url('/assets/media/users/300_21.jpg')"></div>
|
||||
// <i class="symbol-badge bg-success"></i>
|
||||
<span class="iconify symbol-label bg-primary-transparent text-primary" data-icon="gravity-ui:person"></span>
|
||||
</div>
|
||||
<div class="d-flex flex-column">
|
||||
<a href="#" class="font-weight-bold font-size-h5 text-dark-75 text-hover-primary">
|
||||
{ dataUser.UserFullName }
|
||||
</a>
|
||||
<div class="text-muted mt-1">
|
||||
{ dataUser.UserPosition }
|
||||
</div>
|
||||
<div class="navi mt-2">
|
||||
<a href="#" class="btn btn-sm btn-light-primary font-weight-bolder py-2 px-5">Sign Out</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ NotificationCard() {
|
||||
<div class="d-flex align-items-center bg-light-warning rounded p-5 gutter-b">
|
||||
<span class="svg-icon svg-icon-warning mr-5">
|
||||
<span
|
||||
class="svg-icon svg-icon-lg"
|
||||
>
|
||||
<!--begin::Svg Icon | path:/assets/media/svg/icons/Home/Library.svg-->
|
||||
<span class="iconify" data-icon="material-symbols:notifications-active-outline-rounded"></span>
|
||||
</span>
|
||||
</span>
|
||||
<div class="d-flex flex-column flex-grow-1 mr-2">
|
||||
<a href="#" class="font-weight-normal text-dark-75 text-hover-primary font-size-lg mb-1">
|
||||
Another
|
||||
purpose persuade
|
||||
</a>
|
||||
<span class="text-muted font-size-sm">Due in 2 Days</span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package sidebaruserprofile
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import "github.com/emarifer/go-templ-project-structure/models"
|
||||
|
||||
func Navbaruserprofile(dataUser models.User) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"kt_quick_user\" class=\"offcanvas offcanvas-right p-10\"><!--begin::Header--><div class=\"offcanvas-header d-flex align-items-center justify-content-between pb-5\"><h3 class=\"font-weight-bold m-0 text-black\">User Profile\r</h3><a href=\"#\" class=\"btn btn-xs btn-icon btn-light btn-hover-primary\" id=\"kt_quick_user_close\"><i class=\"ki ki-close icon-xs text-muted\"></i></a></div><!--end::Header--><!--begin::Content--><div class=\"offcanvas-content pr-5 mr-n5\"><!--begin::Header-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = ProfileHeader(dataUser).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Header--><!--begin::Separator--><div class=\"separator separator-dashed my-7\"></div><!--end::Separator--><!--begin::Notifications--><div><!--begin:Heading--><h5 class=\"mb-5\">Recent Notifications\r</h5><!--end:Heading--><!--begin::Item-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = NotificationCard().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Item--></div><!--end::Notifications--></div><!--end::Content--></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ProfileHeader(dataUser models.User) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex align-items-center mt-5\"><div class=\"symbol symbol-100 mr-5 p-2 bg-primary-transparent\"><span class=\"iconify symbol-label bg-primary-transparent text-primary\" data-icon=\"gravity-ui:person\"></span></div><div class=\"d-flex flex-column\"><a href=\"#\" class=\"font-weight-bold font-size-h5 text-dark-75 text-hover-primary\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.UserFullName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 52, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</a><div class=\"text-muted mt-1\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(dataUser.UserPosition)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebar_user_profile\sidebar_user_profile.templ`, Line: 55, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"navi mt-2\"><a href=\"#\" class=\"btn btn-sm btn-light-primary font-weight-bolder py-2 px-5\">Sign Out</a></div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func NotificationCard() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex align-items-center bg-light-warning rounded p-5 gutter-b\"><span class=\"svg-icon svg-icon-warning mr-5\"><span class=\"svg-icon svg-icon-lg\"><!--begin::Svg Icon | path:/assets/media/svg/icons/Home/Library.svg--><span class=\"iconify\" data-icon=\"material-symbols:notifications-active-outline-rounded\"></span></span></span><div class=\"d-flex flex-column flex-grow-1 mr-2\"><a href=\"#\" class=\"font-weight-normal text-dark-75 text-hover-primary font-size-lg mb-1\">Another\r purpose persuade\r</a> <span class=\"text-muted font-size-sm\">Due in 2 Days</span></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
102
views/component/sidebarmaster/sidebarmaster.templ
Normal file
102
views/component/sidebarmaster/sidebarmaster.templ
Normal file
@@ -0,0 +1,102 @@
|
||||
package sidebarmaster
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
)
|
||||
|
||||
templ MenuDashboard(ParentMenuName string, ParentMenuUrl string) {
|
||||
<li class="menu-item menu-item-active" aria-haspopup="true">
|
||||
<a
|
||||
href={ templ.SafeURL(ParentMenuUrl) }
|
||||
class="menu-link "
|
||||
>
|
||||
<span
|
||||
class="svg-icon menu-icon"
|
||||
>
|
||||
<!--begin::Svg Icon | path:/assets/media/svg/icons/Design/Layers.svg-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="24px"
|
||||
height="24px"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<polygon points="0 0 24 0 24 24 0 24"></polygon>
|
||||
<path
|
||||
d="M12.9336061,16.072447 L19.36,10.9564761 L19.5181585,10.8312381 C20.1676248,10.3169571 20.2772143,9.3735535 19.7629333,8.72408713 C19.6917232,8.63415859 19.6104327,8.55269514 19.5206557,8.48129411 L12.9336854,3.24257445 C12.3871201,2.80788259 11.6128799,2.80788259 11.0663146,3.24257445 L4.47482784,8.48488609 C3.82645598,9.00054628 3.71887192,9.94418071 4.23453211,10.5925526 C4.30500305,10.6811601 4.38527899,10.7615046 4.47382636,10.8320511 L4.63,10.9564761 L11.0659024,16.0730648 C11.6126744,16.5077525 12.3871218,16.5074963 12.9336061,16.072447 Z"
|
||||
fill="#000000"
|
||||
fill-rule="nonzero"
|
||||
></path>
|
||||
<path
|
||||
d="M11.0563554,18.6706981 L5.33593024,14.122919 C4.94553994,13.8125559 4.37746707,13.8774308 4.06710397,14.2678211 C4.06471678,14.2708238 4.06234874,14.2738418 4.06,14.2768747 L4.06,14.2768747 C3.75257288,14.6738539 3.82516916,15.244888 4.22214834,15.5523151 C4.22358765,15.5534297 4.2250303,15.55454 4.22647627,15.555646 L11.0872776,20.8031356 C11.6250734,21.2144692 12.371757,21.2145375 12.909628,20.8033023 L19.7677785,15.559828 C20.1693192,15.2528257 20.2459576,14.6784381 19.9389553,14.2768974 C19.9376429,14.2751809 19.9363245,14.2734691 19.935,14.2717619 L19.935,14.2717619 C19.6266937,13.8743807 19.0546209,13.8021712 18.6572397,14.1104775 C18.654352,14.112718 18.6514778,14.1149757 18.6486172,14.1172508 L12.9235044,18.6705218 C12.377022,19.1051477 11.6029199,19.1052208 11.0563554,18.6706981 Z"
|
||||
fill="#000000"
|
||||
opacity="0.3"
|
||||
></path>
|
||||
</g>
|
||||
</svg><!--end::Svg Icon-->
|
||||
</span><span class="menu-text">{ ParentMenuName }</span>
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
|
||||
templ ListMenuChildren(ChildrenMenuURL string, ChildrenMenuName string) {
|
||||
<li class="menu-item" aria-haspopup="true">
|
||||
<a href={ templ.SafeURL(ChildrenMenuURL) } class="menu-link">
|
||||
<i class="menu-bullet menu-bullet-line"><span></span></i>
|
||||
<span class="menu-text">{ ChildrenMenuName }</span>
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
|
||||
templ ListMenuNavbar(ParentMenuName string, datamenuchildren []services.ChildrenMenu) {
|
||||
<li class="menu-item menu-item-submenu" aria-haspopup="true" data-menu-toggle="hover">
|
||||
<a
|
||||
href="javascript:;"
|
||||
class="menu-link menu-toggle"
|
||||
>
|
||||
<span
|
||||
class="svg-icon menu-icon"
|
||||
>
|
||||
<!--begin::Svg Icon | path:/assets/media/svg/icons/Shopping/Barcode-read.svg-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="24px"
|
||||
height="24px"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<rect x="0" y="0" width="24" height="24"></rect>
|
||||
<path
|
||||
d="M7,3 L17,3 C19.209139,3 21,4.790861 21,7 C21,9.209139 19.209139,11 17,11 L7,11 C4.790861,11 3,9.209139 3,7 C3,4.790861 4.790861,3 7,3 Z M7,9 C8.1045695,9 9,8.1045695 9,7 C9,5.8954305 8.1045695,5 7,5 C5.8954305,5 5,5.8954305 5,7 C5,8.1045695 5.8954305,9 7,9 Z"
|
||||
fill="#000000"
|
||||
></path>
|
||||
<path
|
||||
d="M7,13 L17,13 C19.209139,13 21,14.790861 21,17 C21,19.209139 19.209139,21 17,21 L7,21 C4.790861,21 3,19.209139 3,17 C3,14.790861 4.790861,13 7,13 Z M17,19 C18.1045695,19 19,18.1045695 19,17 C19,15.8954305 18.1045695,15 17,15 C15.8954305,15 15,15.8954305 15,17 C15,18.1045695 15.8954305,19 17,19 Z"
|
||||
fill="#000000"
|
||||
opacity="0.3"
|
||||
></path>
|
||||
</g>
|
||||
</svg><!--end::Svg Icon-->
|
||||
</span><span class="menu-text">{ ParentMenuName }</span><i
|
||||
class="menu-arrow"
|
||||
></i>
|
||||
</a>
|
||||
<div class="menu-submenu ">
|
||||
<i class="menu-arrow"></i>
|
||||
<ul class="menu-subnav">
|
||||
<li class="menu-item menu-item-parent" aria-haspopup="true">
|
||||
<span
|
||||
class="menu-link"
|
||||
><span class="menu-text">{ ParentMenuName }</span></span>
|
||||
</li>
|
||||
for _, dx := range datamenuchildren {
|
||||
@ListMenuChildren(dx.ChildrenMenuURL, dx.ChildrenMenuName)
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
}
|
||||
167
views/component/sidebarmaster/sidebarmaster_templ.go
Normal file
167
views/component/sidebarmaster/sidebarmaster_templ.go
Normal file
@@ -0,0 +1,167 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package sidebarmaster
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
)
|
||||
|
||||
func MenuDashboard(ParentMenuName string, ParentMenuUrl string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"menu-item menu-item-active\" aria-haspopup=\"true\"><a href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 templ.SafeURL = templ.SafeURL(ParentMenuUrl)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var2)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"menu-link \"><span class=\"svg-icon menu-icon\"><!--begin::Svg Icon | path:/assets/media/svg/icons/Design/Layers.svg--><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><polygon points=\"0 0 24 0 24 24 0 24\"></polygon> <path d=\"M12.9336061,16.072447 L19.36,10.9564761 L19.5181585,10.8312381 C20.1676248,10.3169571 20.2772143,9.3735535 19.7629333,8.72408713 C19.6917232,8.63415859 19.6104327,8.55269514 19.5206557,8.48129411 L12.9336854,3.24257445 C12.3871201,2.80788259 11.6128799,2.80788259 11.0663146,3.24257445 L4.47482784,8.48488609 C3.82645598,9.00054628 3.71887192,9.94418071 4.23453211,10.5925526 C4.30500305,10.6811601 4.38527899,10.7615046 4.47382636,10.8320511 L4.63,10.9564761 L11.0659024,16.0730648 C11.6126744,16.5077525 12.3871218,16.5074963 12.9336061,16.072447 Z\" fill=\"#000000\" fill-rule=\"nonzero\"></path> <path d=\"M11.0563554,18.6706981 L5.33593024,14.122919 C4.94553994,13.8125559 4.37746707,13.8774308 4.06710397,14.2678211 C4.06471678,14.2708238 4.06234874,14.2738418 4.06,14.2768747 L4.06,14.2768747 C3.75257288,14.6738539 3.82516916,15.244888 4.22214834,15.5523151 C4.22358765,15.5534297 4.2250303,15.55454 4.22647627,15.555646 L11.0872776,20.8031356 C11.6250734,21.2144692 12.371757,21.2145375 12.909628,20.8033023 L19.7677785,15.559828 C20.1693192,15.2528257 20.2459576,14.6784381 19.9389553,14.2768974 C19.9376429,14.2751809 19.9363245,14.2734691 19.935,14.2717619 L19.935,14.2717619 C19.6266937,13.8743807 19.0546209,13.8021712 18.6572397,14.1104775 C18.654352,14.112718 18.6514778,14.1149757 18.6486172,14.1172508 L12.9235044,18.6705218 C12.377022,19.1051477 11.6029199,19.1052208 11.0563554,18.6706981 Z\" fill=\"#000000\" opacity=\"0.3\"></path></g></svg><!--end::Svg Icon--></span><span class=\"menu-text\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(ParentMenuName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 39, Col: 50}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></a></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ListMenuChildren(ChildrenMenuURL string, ChildrenMenuName string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"menu-item\" aria-haspopup=\"true\"><a href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 templ.SafeURL = templ.SafeURL(ChildrenMenuURL)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var5)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\" class=\"menu-link\"><i class=\"menu-bullet menu-bullet-line\"><span></span></i> <span class=\"menu-text\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var6 string
|
||||
templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(ChildrenMenuName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 48, Col: 45}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></a></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ListMenuNavbar(ParentMenuName string, datamenuchildren []services.ChildrenMenu) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var7 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var7 == nil {
|
||||
templ_7745c5c3_Var7 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li class=\"menu-item menu-item-submenu\" aria-haspopup=\"true\" data-menu-toggle=\"hover\"><a href=\"javascript:;\" class=\"menu-link menu-toggle\"><span class=\"svg-icon menu-icon\"><!--begin::Svg Icon | path:/assets/media/svg/icons/Shopping/Barcode-read.svg--><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><rect x=\"0\" y=\"0\" width=\"24\" height=\"24\"></rect> <path d=\"M7,3 L17,3 C19.209139,3 21,4.790861 21,7 C21,9.209139 19.209139,11 17,11 L7,11 C4.790861,11 3,9.209139 3,7 C3,4.790861 4.790861,3 7,3 Z M7,9 C8.1045695,9 9,8.1045695 9,7 C9,5.8954305 8.1045695,5 7,5 C5.8954305,5 5,5.8954305 5,7 C5,8.1045695 5.8954305,9 7,9 Z\" fill=\"#000000\"></path> <path d=\"M7,13 L17,13 C19.209139,13 21,14.790861 21,17 C21,19.209139 19.209139,21 17,21 L7,21 C4.790861,21 3,19.209139 3,17 C3,14.790861 4.790861,13 7,13 Z M17,19 C18.1045695,19 19,18.1045695 19,17 C19,15.8954305 18.1045695,15 17,15 C15.8954305,15 15,15.8954305 15,17 C15,18.1045695 15.8954305,19 17,19 Z\" fill=\"#000000\" opacity=\"0.3\"></path></g></svg><!--end::Svg Icon--></span><span class=\"menu-text\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(ParentMenuName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 84, Col: 50}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span><i class=\"menu-arrow\"></i></a><div class=\"menu-submenu \"><i class=\"menu-arrow\"></i><ul class=\"menu-subnav\"><li class=\"menu-item menu-item-parent\" aria-haspopup=\"true\"><span class=\"menu-link\"><span class=\"menu-text\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var9 string
|
||||
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(ParentMenuName)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\sidebarmaster\sidebarmaster.templ`, Line: 94, Col: 46}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></span></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, dx := range datamenuchildren {
|
||||
templ_7745c5c3_Err = ListMenuChildren(dx.ChildrenMenuURL, dx.ChildrenMenuName).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</ul></div></li>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
25
views/component/table/table.templ
Normal file
25
views/component/table/table.templ
Normal file
@@ -0,0 +1,25 @@
|
||||
package tablecomponent
|
||||
|
||||
templ Table(thName []string, thWidth []string, trComponent templ.Component, pagination templ.Component) {
|
||||
if len(thName) != len(thWidth) {
|
||||
<div>length array thname berbeda dengan array thwidth</div>
|
||||
} else {
|
||||
<div>
|
||||
<table class="table table-hover table-borderless">
|
||||
<thead>
|
||||
<tr class="rounded-lg bg-header-table">
|
||||
for i, item := range thName {
|
||||
<th scope="col" width={ thWidth[i] }>{ item }</th>
|
||||
}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@trComponent
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
@pagination
|
||||
</div>
|
||||
}
|
||||
}
|
||||
94
views/component/table/table_templ.go
Normal file
94
views/component/table/table_templ.go
Normal file
@@ -0,0 +1,94 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package tablecomponent
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
func Table(thName []string, thWidth []string, trComponent templ.Component, pagination templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if len(thName) != len(thWidth) {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div>length array thname berbeda dengan array thwidth</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
} else {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><table class=\"table table-hover table-borderless\"><thead><tr class=\"rounded-lg bg-header-table\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for i, item := range thName {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<th scope=\"col\" width=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(thWidth[i])
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\table\table.templ`, Line: 12, Col: 41}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(item)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\component\table\table.templ`, Line: 12, Col: 50}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</th>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</tr></thead> <tbody>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = trComponent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</tbody></table></div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = pagination.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
121
views/employee/employee.templ
Normal file
121
views/employee/employee.templ
Normal file
@@ -0,0 +1,121 @@
|
||||
package employee
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
"github.com/emarifer/go-templ-project-structure/views/under_development"
|
||||
)
|
||||
|
||||
templ MainEmployee(cardServiceComponent templ.Component) {
|
||||
<div class="wrapper-custom">
|
||||
<!-- Navbar Start -->
|
||||
<nav
|
||||
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
|
||||
>
|
||||
<a class="navbar-brand" href="#">
|
||||
<img
|
||||
src="/asset-corporate-portal/media/landingpage/logo.png"
|
||||
width="126"
|
||||
height="40"
|
||||
class="d-inline-block align-top"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</a>
|
||||
<img
|
||||
src="/asset-corporate-portal/media/logo/foto.png"
|
||||
alt="..."
|
||||
class="item-foto rounded-circle"
|
||||
/>
|
||||
</nav>
|
||||
<!-- Navbar End -->
|
||||
<div class="d-block d-lg-none d-xl-none">
|
||||
@under_development.UnderDevelopment()
|
||||
</div>
|
||||
<div class="d-none d-lg-block">
|
||||
<!--begin::Page Heading-->
|
||||
@HeadingEmployee("PT. Sadhana Abiyasa Sampoerna")
|
||||
<!--end::Page Heading-->
|
||||
<!-- content -->
|
||||
<div class="align-items-center pt-15 flex-column">
|
||||
<div class="bg-field rounded">
|
||||
<div class="content-page">
|
||||
<!-- card -->
|
||||
@cardServiceComponent
|
||||
<!-- end card -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end content -->
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ CssEmployee() {
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
|
||||
.navbar-lp {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
.title {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 15px;
|
||||
/* font-size: 1vw; */
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.custom-card-lp {
|
||||
border-radius: 24px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.wrapper-custom {
|
||||
/* background: #1B1D1F; */
|
||||
padding-left: 10vw;
|
||||
padding-right: 10vw;
|
||||
}
|
||||
|
||||
.media-left-icon {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.items-content {
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
.content-page {
|
||||
padding-top: 24px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
.item-foto {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
.heading {
|
||||
padding-top: 40px;
|
||||
}
|
||||
.card:hover {
|
||||
background-color: rgba(197, 200, 211, 0.5);
|
||||
}
|
||||
</style>
|
||||
}
|
||||
|
||||
templ JsEmployee() {
|
||||
}
|
||||
|
||||
templ ShowEmployee(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
@layout.PlaygroundLayout(title, css, js) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
147
views/employee/employee_templ.go
Normal file
147
views/employee/employee_templ.go
Normal file
@@ -0,0 +1,147 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package employee
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
"github.com/emarifer/go-templ-project-structure/views/under_development"
|
||||
)
|
||||
|
||||
func MainEmployee(cardServiceComponent templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"wrapper-custom\"><!-- Navbar Start --><nav class=\"navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between\"><a class=\"navbar-brand\" href=\"#\"><img src=\"/asset-corporate-portal/media/landingpage/logo.png\" width=\"126\" height=\"40\" class=\"d-inline-block align-top\" alt=\"Your Brand\"></a> <img src=\"/asset-corporate-portal/media/logo/foto.png\" alt=\"...\" class=\"item-foto rounded-circle\"></nav><!-- Navbar End --><div class=\"d-block d-lg-none d-xl-none\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = under_development.UnderDevelopment().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"d-none d-lg-block\"><!--begin::Page Heading-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = HeadingEmployee("PT. Sadhana Abiyasa Sampoerna").Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Page Heading--><!-- content --><div class=\"align-items-center pt-15 flex-column\"><div class=\"bg-field rounded\"><div class=\"content-page\"><!-- card -->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = cardServiceComponent.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- end card --></div></div></div><!-- end content --></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func CssEmployee() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n\r\n .navbar-lp {\r\n padding-top: 40px;\r\n padding-bottom: 40px;\r\n }\r\n\r\n .title {\r\n /* color: #FFF; */\r\n font-family: Poppins;\r\n font-size: 15px;\r\n /* font-size: 1vw; */\r\n font-style: normal;\r\n font-weight: 700;\r\n }\r\n\r\n .custom-card-lp {\r\n border-radius: 24px;\r\n border: 1px solid #d9d9d9;\r\n margin-top: 40px;\r\n }\r\n\r\n .wrapper-custom {\r\n /* background: #1B1D1F; */\r\n padding-left: 10vw;\r\n padding-right: 10vw;\r\n }\r\n\r\n .media-left-icon {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n\r\n .items-content {\r\n padding: 24px;\r\n margin-bottom: 24px;\r\n }\r\n .content-page {\r\n padding-top: 24px;\r\n padding-left: 24px;\r\n padding-right: 24px;\r\n padding-bottom: 24px;\r\n }\r\n .item-foto {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n .heading {\r\n padding-top: 40px;\r\n }\r\n .card:hover {\r\n background-color: rgba(197, 200, 211, 0.5);\r\n }\r\n </style>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func JsEmployee() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ShowEmployee(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var5 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
60
views/employee/employeecomponent.templ
Normal file
60
views/employee/employeecomponent.templ
Normal file
@@ -0,0 +1,60 @@
|
||||
package employee
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
)
|
||||
|
||||
templ CardService(title string, description string, startdate string, enddate string) {
|
||||
<a href="">
|
||||
<div class="items-content card shadow">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="col-7">
|
||||
<h3 class="text-black">{ title }</h3>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde">{ description }</span>
|
||||
</div>
|
||||
<div class="col-md col-lg text-right">
|
||||
<span class="text-black font-weight-bolde">{ startdate } - { enddate }</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
|
||||
templ ListCardService(cardData []services.EmployeeService) {
|
||||
for _, d := range cardData {
|
||||
@CardService(d.EmployeeTitle, d.EmployeeDescription, d.EmployeeStartDate, d.EmployeeEndDate)
|
||||
}
|
||||
}
|
||||
|
||||
templ HeadingEmployee(title string) {
|
||||
<div class="heading d-flex justify-content-between">
|
||||
<div class="align-items-center flex-wrap">
|
||||
<!--begin::Page Title-->
|
||||
<h5 class="text-dark font-weight-bold my-1 mr-5">
|
||||
{ title }
|
||||
</h5>
|
||||
<!--end::Page Title-->
|
||||
<!--begin::Breadcrumb-->
|
||||
<ul
|
||||
class="breadcrumb breadcrumb-transparent font-weight-bold p-0 my-2 font-size-sm"
|
||||
>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="" class="text-muted">Dashboard</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="" class="text-muted">Employee Health Medical Analytic</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--end::Breadcrumb-->
|
||||
</div>
|
||||
<div class="d-flex align-items-center">
|
||||
<!--begin::Actions-->
|
||||
<a href="#" class="btn btn-primary font-weight-bolder btn-lg">
|
||||
<i class="fas fa-filter"></i> Filter
|
||||
</a>
|
||||
<!--end::Actions-->
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
154
views/employee/employeecomponent_templ.go
Normal file
154
views/employee/employeecomponent_templ.go
Normal file
@@ -0,0 +1,154 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package employee
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
)
|
||||
|
||||
func CardService(title string, description string, startdate string, enddate string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<a href=\"\"><div class=\"items-content card shadow\"><div class=\"row d-flex align-items-center\"><div class=\"col-7\"><h3 class=\"text-black\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 12, Col: 35}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h3></div><div class=\"col-md col-lg text-right\"><span class=\"text-black font-weight-bolde\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(description)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 15, Col: 61}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></div><div class=\"col-md col-lg text-right\"><span class=\"text-black font-weight-bolde\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(startdate)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 18, Col: 59}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(" - ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(enddate)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 18, Col: 73}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</span></div></div></div></a>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ListCardService(cardData []services.EmployeeService) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var6 == nil {
|
||||
templ_7745c5c3_Var6 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
for _, d := range cardData {
|
||||
templ_7745c5c3_Err = CardService(d.EmployeeTitle, d.EmployeeDescription, d.EmployeeStartDate, d.EmployeeEndDate).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func HeadingEmployee(title string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var7 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var7 == nil {
|
||||
templ_7745c5c3_Var7 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"heading d-flex justify-content-between\"><div class=\"align-items-center flex-wrap\"><!--begin::Page Title--><h5 class=\"text-dark font-weight-bold my-1 mr-5\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\employee\employeecomponent.templ`, Line: 36, Col: 11}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h5><!--end::Page Title--><!--begin::Breadcrumb--><ul class=\"breadcrumb breadcrumb-transparent font-weight-bold p-0 my-2 font-size-sm\"><li class=\"breadcrumb-item\"><a href=\"\" class=\"text-muted\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"\" class=\"text-muted\">Employee Health Medical Analytic</a></li></ul><!--end::Breadcrumb--></div><div class=\"d-flex align-items-center\"><!--begin::Actions--><a href=\"#\" class=\"btn btn-primary font-weight-bolder btn-lg\"><i class=\"fas fa-filter\"></i> Filter\r</a><!--end::Actions--></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
132
views/landingpage/footer.templ
Normal file
132
views/landingpage/footer.templ
Normal file
@@ -0,0 +1,132 @@
|
||||
package landingpage
|
||||
|
||||
import "github.com/emarifer/go-templ-project-structure/services"
|
||||
|
||||
templ FooterContact() {
|
||||
<div class="text-white d-flex flex-row mb-3">
|
||||
<!-- style="display: flex; flex-direction: row; color: white;align-items: start; margin-bottom: 24px;" -->
|
||||
<div class="mr-3 mt-1">
|
||||
<i
|
||||
class="fas fa-map-marker-alt marker footer-icon text-warning"
|
||||
></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
// <p class="footer-sub-title text-grey">
|
||||
// { alamat }
|
||||
// </p>
|
||||
<p class="footer-sub-title text-grey">
|
||||
Jl. Cipaku I No.5, RT.2/RW.4, Petogogan, Kec. Kby. Baru, Kota
|
||||
Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12170
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-row">
|
||||
<div class="mr-3 mt-1">
|
||||
<i class="fas fa-phone footer-icon text-warning"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
// for _, d := range phone {
|
||||
// <p class="footer-sub-title text-grey">{ d }</p>
|
||||
// }
|
||||
<p class="footer-sub-title text-grey">021-7392345</p>
|
||||
<p class="footer-sub-title text-grey">021-2702525</p>
|
||||
<p class="footer-sub-title text-grey">021-7255080</p>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ FooterNav(title string, data []services.FooterSubNav) {
|
||||
<div class="col-md col-lg mb-5">
|
||||
<h4 class="footer-title text-white mb-6">{ title }</h4>
|
||||
for _, d := range data {
|
||||
<div>
|
||||
<a class="footer-sub-title text-grey" href={ templ.SafeURL(d.FootSubNavLink) }>{ d.FootSubNavTitle }</a>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
templ FooterSection(navlist []services.FooterNav) {
|
||||
<footer class="wrapper-custom bg-black pb-25 pt-25 mt-25">
|
||||
// HP
|
||||
<div class="d-xs-block d-sm-block d-md-none">
|
||||
<div class="row mb-5">
|
||||
<div class="col-md col-lg">
|
||||
<img
|
||||
src="asset-corporate-portal/media/landingpage/logo.png"
|
||||
class="logo-footer"
|
||||
width="126"
|
||||
height="40"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
@FooterContact()
|
||||
</div>
|
||||
<div class="mt-5">
|
||||
for _, d := range navlist {
|
||||
@FooterNav(d.FooterNavTitle, d.FooteSubNav)
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// End HP
|
||||
|
||||
// Tablet
|
||||
<div class="d-none d-md-block d-lg-none">
|
||||
<div class="row mb-5">
|
||||
<div class="col-md col-lg">
|
||||
<img
|
||||
src="asset-corporate-portal/media/landingpage/logo.png"
|
||||
class="logo-footer"
|
||||
width="126"
|
||||
height="40"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
@FooterContact()
|
||||
</div>
|
||||
<div class="col-md col-lg">
|
||||
for _, d := range navlist {
|
||||
@FooterNav(d.FooterNavTitle, d.FooteSubNav)
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// End Tablet
|
||||
|
||||
// Dekstop
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="row mb-5">
|
||||
<div class="col-md-12 col-lg">
|
||||
<img
|
||||
src="asset-corporate-portal/media/landingpage/logo.png"
|
||||
class="logo-footer"
|
||||
width="126"
|
||||
height="40"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
@FooterContact()
|
||||
</div>
|
||||
for _, d := range navlist {
|
||||
@FooterNav(d.FooterNavTitle, d.FooteSubNav)
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
// End Dekstop
|
||||
|
||||
<div class="garis bg-grey"></div>
|
||||
<div class="row mt-4">
|
||||
<div class="col-md-6">
|
||||
<p class="footer-sub-title text-grey">
|
||||
© Copyright 2024. Organized PT SADHANA ABIYASA SAMPOERNA (Privacy
|
||||
Policy)
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6 text-right">
|
||||
<p class="footer-icons">
|
||||
<a href="#" class="mr-3"><i class="fab fa-whatsapp"></i></a>
|
||||
<a href="#" class="mr-3"><i class="fab fa-facebook"></i></a>
|
||||
<a href="#"><i class="fab fa-instagram"></i></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
}
|
||||
184
views/landingpage/footer_templ.go
Normal file
184
views/landingpage/footer_templ.go
Normal file
@@ -0,0 +1,184 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package landingpage
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import "github.com/emarifer/go-templ-project-structure/services"
|
||||
|
||||
func FooterContact() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"text-white d-flex flex-row mb-3\"><!-- style=\"display: flex; flex-direction: row; color: white;align-items: start; margin-bottom: 24px;\" --><div class=\"mr-3 mt-1\"><i class=\"fas fa-map-marker-alt marker footer-icon text-warning\"></i></div><div class=\"flex-grow-1\"><p class=\"footer-sub-title text-grey\">Jl. Cipaku I No.5, RT.2/RW.4, Petogogan, Kec. Kby. Baru, Kota\r Jakarta Selatan, Daerah Khusus Ibukota Jakarta 12170\r</p></div></div><div class=\"d-flex flex-row\"><div class=\"mr-3 mt-1\"><i class=\"fas fa-phone footer-icon text-warning\"></i></div><div class=\"flex-grow-1\"><p class=\"footer-sub-title text-grey\">021-7392345</p><p class=\"footer-sub-title text-grey\">021-2702525</p><p class=\"footer-sub-title text-grey\">021-7255080</p></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func FooterNav(title string, data []services.FooterSubNav) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-md col-lg mb-5\"><h4 class=\"footer-title text-white mb-6\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\footer.templ`, Line: 40, Col: 56}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h4>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range data {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div><a class=\"footer-sub-title text-grey\" href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var4 templ.SafeURL = templ.SafeURL(d.FootSubNavLink)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var4)))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var5 string
|
||||
templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(d.FootSubNavTitle)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\footer.templ`, Line: 43, Col: 114}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</a></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func FooterSection(navlist []services.FooterNav) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var6 == nil {
|
||||
templ_7745c5c3_Var6 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<footer class=\"wrapper-custom bg-black pb-25 pt-25 mt-25\"><div class=\"d-xs-block d-sm-block d-md-none\"><div class=\"row mb-5\"><div class=\"col-md col-lg\"><img src=\"asset-corporate-portal/media/landingpage/logo.png\" class=\"logo-footer\" width=\"126\" height=\"40\" alt=\"Your Brand\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = FooterContact().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"mt-5\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range navlist {
|
||||
templ_7745c5c3_Err = FooterNav(d.FooterNavTitle, d.FooteSubNav).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div><div class=\"d-none d-md-block d-lg-none\"><div class=\"row mb-5\"><div class=\"col-md col-lg\"><img src=\"asset-corporate-portal/media/landingpage/logo.png\" class=\"logo-footer\" width=\"126\" height=\"40\" alt=\"Your Brand\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = FooterContact().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-md col-lg\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range navlist {
|
||||
templ_7745c5c3_Err = FooterNav(d.FooterNavTitle, d.FooteSubNav).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div><div class=\"d-none d-lg-block\"><div class=\"row mb-5\"><div class=\"col-md-12 col-lg\"><img src=\"asset-corporate-portal/media/landingpage/logo.png\" class=\"logo-footer\" width=\"126\" height=\"40\" alt=\"Your Brand\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = FooterContact().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range navlist {
|
||||
templ_7745c5c3_Err = FooterNav(d.FooterNavTitle, d.FooteSubNav).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><div class=\"garis bg-grey\"></div><div class=\"row mt-4\"><div class=\"col-md-6\"><p class=\"footer-sub-title text-grey\">© Copyright 2024. Organized PT SADHANA ABIYASA SAMPOERNA (Privacy\r Policy)\r</p></div><div class=\"col-md-6 text-right\"><p class=\"footer-icons\"><a href=\"#\" class=\"mr-3\"><i class=\"fab fa-whatsapp\"></i></a> <a href=\"#\" class=\"mr-3\"><i class=\"fab fa-facebook\"></i></a> <a href=\"#\"><i class=\"fab fa-instagram\"></i></a></p></div></div></footer>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
@@ -5,54 +5,51 @@ import (
|
||||
)
|
||||
|
||||
templ MainLandingPage(medicalServiceComponent templ.Component, listAdvantageComponent templ.Component, listPromotion templ.Component, footer templ.Component) {
|
||||
<div class="d-block d-lg-none d-xl-none p-10 justify-content-center h1">Under development</div>
|
||||
<div class="d-none d-lg-block">
|
||||
<div class="wrapper-custom mb-25">
|
||||
<!-- Navbar Start -->
|
||||
<nav
|
||||
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
|
||||
>
|
||||
<a class="navbar-brand" href="#">
|
||||
<img
|
||||
src="../../asset-corporate-portal/media/landingpage/logo.png"
|
||||
width="126"
|
||||
height="40"
|
||||
class="d-inline-block align-top"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</a>
|
||||
<button type="button" class="btn btn-lg btn-primary btn-pill">
|
||||
<span class="title">Login</span>
|
||||
</button>
|
||||
</nav>
|
||||
<!-- Navbar End -->
|
||||
<!-- jumbotron START -->
|
||||
<!-- <div class="jumbotron jumbotron-lp d-none d-lg-block"> -->
|
||||
@HeaderCard()
|
||||
<!-- jumbotron END -->
|
||||
<!-- Our Medical Service START -->
|
||||
<div class="row">
|
||||
@HeaderSection("Our Medical Services", "Discover excellence in healthcare at Our Medical Services. From diagnosis to treatment, our dedicated team provides personalized care for your well-being.")
|
||||
</div>
|
||||
@medicalServiceComponent
|
||||
<!-- Our Medical Service END -->
|
||||
<!-- Why Westerindo START belum fix di ukuran < 1400 -->
|
||||
<div class="container p-0 mt-5 ">
|
||||
<div class="row">
|
||||
@HeaderSection("Why Westerindo", "With a dedicated team of professionals we’re committed to providing medical attention tailored to your needs, ensuring a journey to optimal health and vitality.")
|
||||
</div>
|
||||
@listAdvantageComponent
|
||||
</div>
|
||||
<!-- Why Westerindo END -->
|
||||
<!-- Promotion START -->
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
@HeaderSection("Promotions", "Seize This Opportunity to Enhance Your Health")
|
||||
</div>
|
||||
@listPromotion
|
||||
</div>
|
||||
<!-- Promotion END -->
|
||||
<div class="wrapper-custom mb-25">
|
||||
<!-- Navbar Start -->
|
||||
<nav
|
||||
class="navbar navbar-expand-sm navbar-expand-lg navbar-lp justify-content-between"
|
||||
>
|
||||
<a class="navbar-brand" href="#">
|
||||
<img
|
||||
src="/asset-corporate-portal/media/landingpage/logo.png"
|
||||
width="126"
|
||||
height="40"
|
||||
class="d-inline-block align-top"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</a>
|
||||
<button type="button" class="btn btn-lg btn-primary btn-pill">
|
||||
<span class="title">Login</span>
|
||||
</button>
|
||||
</nav>
|
||||
<!-- Navbar End -->
|
||||
<!-- jumbotron START -->
|
||||
<!-- <div class="jumbotron jumbotron-lp d-none d-lg-block"> -->
|
||||
@HeaderCard()
|
||||
<!-- jumbotron END -->
|
||||
<!-- Our Medical Service START -->
|
||||
<div class="row">
|
||||
@HeaderSection("Our Medical Services", "Discover excellence in healthcare at Our Medical Services. From diagnosis to treatment, our dedicated team provides personalized care for your well-being.")
|
||||
</div>
|
||||
@medicalServiceComponent
|
||||
<!-- Our Medical Service END -->
|
||||
<!-- Why Westerindo START belum fix di ukuran < 1400 -->
|
||||
<div class="container p-0 mt-5 ">
|
||||
<div class="row">
|
||||
@HeaderSection("Why Westerindo", "With a dedicated team of professionals we’re committed to providing medical attention tailored to your needs, ensuring a journey to optimal health and vitality.")
|
||||
</div>
|
||||
@listAdvantageComponent
|
||||
</div>
|
||||
<!-- Why Westerindo END -->
|
||||
<!-- Promotion START -->
|
||||
<div class="container mt-4">
|
||||
<div class="row">
|
||||
@HeaderSection("Promotions", "Seize This Opportunity to Enhance Your Health")
|
||||
</div>
|
||||
@listPromotion
|
||||
</div>
|
||||
<!-- Promotion END -->
|
||||
<!-- footer START -->
|
||||
@footer
|
||||
<!-- footer END -->
|
||||
@@ -60,20 +57,30 @@ templ MainLandingPage(medicalServiceComponent templ.Component, listAdvantageComp
|
||||
}
|
||||
|
||||
templ CssLandingPage() {
|
||||
<div>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Public Sans:300,400,500,600,700"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,600,700"
|
||||
/>
|
||||
<style>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/publicsans.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/roboto.css"
|
||||
/>
|
||||
<!-- slick -->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="assets/css/slick/slick.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
href="assets/css/slick/slick-theme.css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
@@ -99,6 +106,24 @@ templ CssLandingPage() {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.title-jumbotron-sm {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 32px;
|
||||
/* font-size: 3vw; */
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.title-jumbotron-md {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
font-size: 42px;
|
||||
/* font-size: 3vw; */
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.title-jumbotron {
|
||||
/* color: #FFF; */
|
||||
font-family: Poppins;
|
||||
@@ -249,11 +274,77 @@ templ CssLandingPage() {
|
||||
/* background: #C3C4C5; */
|
||||
height: 0.2px;
|
||||
}
|
||||
.card-footer {
|
||||
background-color: transparent !important;
|
||||
border: none;
|
||||
}
|
||||
.slick-prev:before,
|
||||
.slick-next:before {
|
||||
color: var(--primarybg);
|
||||
}
|
||||
.img-header {
|
||||
object-fit: contain;
|
||||
}
|
||||
.underdev {
|
||||
font-family: "Public Sans";
|
||||
font-size: 64px;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
line-height: normal;
|
||||
}
|
||||
.underdevsub {
|
||||
font-family: "Public Sans";
|
||||
font-size: 26px;
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
}
|
||||
</style>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ JsLandingPage() {
|
||||
<!-- SCRIPT -->
|
||||
<script type="text/javascript" src="assets/js/slick/slick.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
// lg
|
||||
$(".responsive-lg").slick({
|
||||
dots: false,
|
||||
autoplay: true,
|
||||
autoplaySpeed: 2000,
|
||||
infinite: true,
|
||||
lazyLoad: "ondemand",
|
||||
slidesToShow: 3,
|
||||
slidesToScroll: 3,
|
||||
nextArrow: '<button type="button" class="slick-next">Next</button>',
|
||||
prevArrow:
|
||||
'<button type="button" class="slick-prev">Previous</button>',
|
||||
});
|
||||
|
||||
// md
|
||||
$(".responsive-md").slick({
|
||||
dots: false,
|
||||
autoplay: true,
|
||||
autoplaySpeed: 2000,
|
||||
infinite: true,
|
||||
lazyLoad: "ondemand",
|
||||
slidesToShow: 2,
|
||||
slidesToScroll: 2,
|
||||
});
|
||||
|
||||
// sm
|
||||
$(".responsive-sm").slick({
|
||||
dots: false,
|
||||
autoplay: true,
|
||||
autoplaySpeed: 2000,
|
||||
infinite: true,
|
||||
lazyLoad: "ondemand",
|
||||
slidesToShow: 1,
|
||||
slidesToScroll: 1,
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- SCRIPT -->
|
||||
}
|
||||
|
||||
templ ShowLandingPage(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -5,8 +5,9 @@ import (
|
||||
)
|
||||
|
||||
templ MedicalService(title string, desciption string, icon string, link string) {
|
||||
<div class="col-md-4">
|
||||
<div class="card custom-card-lp">
|
||||
<div class="col-lg-4">
|
||||
<!-- 1 -->
|
||||
<div class="card custom-card-lp mr-6">
|
||||
<div class="card-body">
|
||||
<div class="icon-container bg-primary-transparent">
|
||||
<span
|
||||
@@ -18,6 +19,8 @@ templ MedicalService(title string, desciption string, icon string, link string)
|
||||
<p class="card-text sub-title-fs-12">
|
||||
{ desciption }
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<a href={ templ.SafeURL(link) } class="link-learn-more text-primary">
|
||||
Learn More
|
||||
<span
|
||||
@@ -31,12 +34,20 @@ templ MedicalService(title string, desciption string, icon string, link string)
|
||||
}
|
||||
|
||||
templ ListMedicalService(medserData []services.ClientService) {
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
for _, d := range medserData {
|
||||
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
|
||||
}
|
||||
</div>
|
||||
<div class="row responsive-sm d-xs-block d-sm-block d-md-none">
|
||||
for _, d := range medserData {
|
||||
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
|
||||
}
|
||||
</div>
|
||||
<div class="row responsive-md d-none d-md-block d-lg-none">
|
||||
for _, d := range medserData {
|
||||
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
|
||||
}
|
||||
</div>
|
||||
<div class="row responsive-lg d-none d-lg-block">
|
||||
for _, d := range medserData {
|
||||
@MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink)
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -72,7 +83,7 @@ templ ListAdvantage(adData []services.AdvantageClient) {
|
||||
<div class="row mt-5">
|
||||
<div class="col-md-6">
|
||||
<img
|
||||
src="../../asset-corporate-portal/media/landingpage/why_westerindo_right.png"
|
||||
src="/asset-corporate-portal/media/landingpage/why_westerindo_right.png"
|
||||
alt="Your Brand"
|
||||
class="align-top w-100 h-100 pt-4 pb-4"
|
||||
/>
|
||||
@@ -86,7 +97,76 @@ templ ListAdvantage(adData []services.AdvantageClient) {
|
||||
}
|
||||
|
||||
templ HeaderCard() {
|
||||
<div class="jumbotron bg-primary">
|
||||
// Hp
|
||||
<div class="jumbotron bg-primary d-xs-block d-sm-block d-md-none">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 mb-3 d-flex justify-content-sm-end">
|
||||
<div class="d-flex m-1 align-items-center">
|
||||
<img
|
||||
src="/asset-corporate-portal/media/landingpage/jumbotron_left.png"
|
||||
class="img-fluid w-100 h-100 img-header"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 d-flex flex-column">
|
||||
<div class="mb-3">
|
||||
<h1 class="title-jumbotron-sm text-white">
|
||||
Invest in Your Well-being with Our Comprehensive Medical
|
||||
Check-Up
|
||||
</h1>
|
||||
<p class="sub-title-jumbotron text-white">
|
||||
Elevate your health journey with our thorough medical
|
||||
assessments, empowering you to take proactive steps towards a
|
||||
healthier, happier life.
|
||||
</p>
|
||||
<button type="button" class="btn btn-lg btn-pill bg-white">
|
||||
<span class="title-get-started">Get Started</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="mt-auto"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// End Hp
|
||||
// Tablet
|
||||
<div class="jumbotron bg-primary d-none d-md-block d-lg-none">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-3 d-flex justify-content-md-end">
|
||||
<div class="d-flex m-1 align-items-center">
|
||||
<img
|
||||
src="/asset-corporate-portal/media/landingpage/jumbotron_left.png"
|
||||
class="img-fluid w-100 h-100 img-header"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 d-flex flex-column">
|
||||
<div class="mb-3">
|
||||
<h1 class="title-jumbotron-md text-white">
|
||||
Invest in Your Well-being with Our Comprehensive Medical
|
||||
Check-Up
|
||||
</h1>
|
||||
<p class="sub-title-jumbotron text-white">
|
||||
Elevate your health journey with our thorough medical
|
||||
assessments, empowering you to take proactive steps towards a
|
||||
healthier, happier life.
|
||||
</p>
|
||||
<button type="button" class="btn btn-lg btn-pill bg-white">
|
||||
<span class="title-get-started">Get Started</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="mt-auto"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// End Tablet
|
||||
// Dekstop
|
||||
<div class="jumbotron bg-primary d-none d-lg-block">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-8 d-flex flex-column">
|
||||
@@ -115,8 +195,8 @@ templ HeaderCard() {
|
||||
" -->
|
||||
<div class="d-flex m-1o align-items-center">
|
||||
<img
|
||||
src="../asset-corporate-portal/media/landingpage/jumbotron_left.png"
|
||||
class="img-fluid w-100 h-100"
|
||||
src="/asset-corporate-portal/media/landingpage/jumbotron_left.png"
|
||||
class="img-fluid w-100 h-100 img-header"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
@@ -124,6 +204,7 @@ templ HeaderCard() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
// End Dekstop
|
||||
}
|
||||
|
||||
templ Promotion(prm services.Promotion) {
|
||||
@@ -137,7 +218,17 @@ templ Promotion(prm services.Promotion) {
|
||||
}
|
||||
|
||||
templ ListPromotion(prm []services.Promotion) {
|
||||
<div class="row mt-4 mb-2">
|
||||
<div class="row responsive-sm d-xs-block d-sm-block d-md-none">
|
||||
for _, d := range prm {
|
||||
@Promotion(d)
|
||||
}
|
||||
</div>
|
||||
<div class="row responsive-md d-none d-md-block d-lg-none">
|
||||
for _, d := range prm {
|
||||
@Promotion(d)
|
||||
}
|
||||
</div>
|
||||
<div class="row responsive-lg d-none d-lg-block d-xl-block">
|
||||
for _, d := range prm {
|
||||
@Promotion(d)
|
||||
}
|
||||
|
||||
@@ -27,14 +27,14 @@ func MedicalService(title string, desciption string, icon string, link string) t
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-md-4\"><div class=\"card custom-card-lp\"><div class=\"card-body\"><div class=\"icon-container bg-primary-transparent\"><span class=\"iconify text-primary w-20 h-20\" data-icon=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"col-lg-4\"><!-- 1 --><div class=\"card custom-card-lp mr-6\"><div class=\"card-body\"><div class=\"icon-container bg-primary-transparent\"><span class=\"iconify text-primary w-20 h-20\" data-icon=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(icon)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 14, Col: 22}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 15, Col: 22}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -47,7 +47,7 @@ func MedicalService(title string, desciption string, icon string, link string) t
|
||||
var templ_7745c5c3_Var3 string
|
||||
templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 17, Col: 46}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 18, Col: 46}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -60,13 +60,13 @@ func MedicalService(title string, desciption string, icon string, link string) t
|
||||
var templ_7745c5c3_Var4 string
|
||||
templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(desciption)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 19, Col: 17}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 20, Col: 17}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</p><a href=\"")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</p></div><div class=\"card-footer\"><a href=\"")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -99,7 +99,7 @@ func ListMedicalService(medserData []services.ClientService) templ.Component {
|
||||
templ_7745c5c3_Var6 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"container\"><div class=\"row\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row responsive-sm d-xs-block d-sm-block d-md-none\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -109,7 +109,27 @@ func ListMedicalService(medserData []services.ClientService) templ.Component {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-md d-none d-md-block d-lg-none\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range medserData {
|
||||
templ_7745c5c3_Err = MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-lg d-none d-lg-block\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range medserData {
|
||||
templ_7745c5c3_Err = MedicalService(d.ClientServiceName, d.ClientServiceDescription, d.ClientServiceIcon, d.ClientServiceLink).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -140,7 +160,7 @@ func HeaderSection(title string, desc string) templ.Component {
|
||||
var templ_7745c5c3_Var8 string
|
||||
templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 45, Col: 46}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 56, Col: 46}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -153,7 +173,7 @@ func HeaderSection(title string, desc string) templ.Component {
|
||||
var templ_7745c5c3_Var9 string
|
||||
templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(desc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 47, Col: 9}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 58, Col: 9}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -190,7 +210,7 @@ func Advantage(title string, desc string) templ.Component {
|
||||
var templ_7745c5c3_Var11 string
|
||||
templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 62, Col: 51}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 73, Col: 51}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -203,7 +223,7 @@ func Advantage(title string, desc string) templ.Component {
|
||||
var templ_7745c5c3_Var12 string
|
||||
templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(desc)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 64, Col: 11}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 75, Col: 11}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -233,7 +253,7 @@ func ListAdvantage(adData []services.AdvantageClient) templ.Component {
|
||||
templ_7745c5c3_Var13 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row mt-5\"><div class=\"col-md-6\"><img src=\"../../asset-corporate-portal/media/landingpage/why_westerindo_right.png\" alt=\"Your Brand\" class=\"align-top w-100 h-100 pt-4 pb-4\"></div><div class=\"col-md-6 d-flex flex-column\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row mt-5\"><div class=\"col-md-6\"><img src=\"/asset-corporate-portal/media/landingpage/why_westerindo_right.png\" alt=\"Your Brand\" class=\"align-top w-100 h-100 pt-4 pb-4\"></div><div class=\"col-md-6 d-flex flex-column\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -267,7 +287,7 @@ func HeaderCard() templ.Component {
|
||||
templ_7745c5c3_Var14 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"jumbotron bg-primary\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-8 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div><div class=\"col-md-4 d-flex justify-content-md-end\"><!-- style=\"\r\n flex: 2;\r\n margin: 10px;\r\n display: flex;\r\n align-items: center;\r\n \" --><div class=\"d-flex m-1o align-items-center\"><img src=\"../asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100\" alt=\"Your Brand\"></div></div></div></div></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"jumbotron bg-primary d-xs-block d-sm-block d-md-none\"><div class=\"container\"><div class=\"row\"><div class=\"col-sm-12 mb-3 d-flex justify-content-sm-end\"><div class=\"d-flex m-1 align-items-center\"><img src=\"/asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div><div class=\"col-sm-12 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron-sm text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div></div></div></div><div class=\"jumbotron bg-primary d-none d-md-block d-lg-none\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-12 mb-3 d-flex justify-content-md-end\"><div class=\"d-flex m-1 align-items-center\"><img src=\"/asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div><div class=\"col-md-12 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron-md text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div></div></div></div><div class=\"jumbotron bg-primary d-none d-lg-block\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-8 d-flex flex-column\"><div class=\"mb-3\"><h1 class=\"title-jumbotron text-white\">Invest in Your Well-being with Our Comprehensive Medical\r Check-Up\r</h1><p class=\"sub-title-jumbotron text-white\">Elevate your health journey with our thorough medical\r assessments, empowering you to take proactive steps towards a\r healthier, happier life.\r</p><button type=\"button\" class=\"btn btn-lg btn-pill bg-white\"><span class=\"title-get-started\">Get Started</span></button></div><div class=\"mt-auto\"></div></div><div class=\"col-md-4 d-flex justify-content-md-end\"><!-- style=\"\r\n flex: 2;\r\n margin: 10px;\r\n display: flex;\r\n align-items: center;\r\n \" --><div class=\"d-flex m-1o align-items-center\"><img src=\"/asset-corporate-portal/media/landingpage/jumbotron_left.png\" class=\"img-fluid w-100 h-100 img-header\" alt=\"Your Brand\"></div></div></div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -298,7 +318,7 @@ func Promotion(prm services.Promotion) templ.Component {
|
||||
var templ_7745c5c3_Var16 string
|
||||
templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(prm.PromotionAsset)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 132, Col: 27}
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\landingpage\medicalservice.templ`, Line: 213, Col: 27}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
@@ -328,7 +348,27 @@ func ListPromotion(prm []services.Promotion) templ.Component {
|
||||
templ_7745c5c3_Var17 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row mt-4 mb-2\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"row responsive-sm d-xs-block d-sm-block d-md-none\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range prm {
|
||||
templ_7745c5c3_Err = Promotion(d).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-md d-none d-md-block d-lg-none\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
for _, d := range prm {
|
||||
templ_7745c5c3_Err = Promotion(d).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"row responsive-lg d-none d-lg-block d-xl-block\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ templ Base(title string) {
|
||||
/>
|
||||
<meta name="google" content="notranslate"/>
|
||||
<link rel="shortcut icon" href="/img/templ.png" type="image/png"/>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.4.10/dist/full.min.css" rel="stylesheet" type="text/css"/>
|
||||
// <script src="https://cdn.tailwindcss.com"></script>
|
||||
// <link href="https://cdn.jsdelivr.net/npm/daisyui@4.4.10/dist/full.min.css" rel="stylesheet" type="text/css"/>
|
||||
<link rel="stylesheet" href="/css/styles.css"/>
|
||||
<title>Project Structure Demo { title }</title>
|
||||
<script src="https://unpkg.com/htmx.org@1.9.9" integrity="sha384-QFjmbokDn2DjBjq+fM+8LUIVrAgqcNW2s0PjAxHETgRn9l4fvX31ZxDxvwQnyMOX" crossorigin="anonymous"></script>
|
||||
|
||||
@@ -23,7 +23,7 @@ func Base(title string) templ.Component {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><html lang=\"en\" data-theme=\"dark\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><meta name=\"description\" content=\"Go/Echo+Templ: User List App as an example of a project structured in layers, use of 'Templ' Template language and frontend with HTMx technology\"><meta name=\"google\" content=\"notranslate\"><link rel=\"shortcut icon\" href=\"/img/templ.png\" type=\"image/png\"><script src=\"https://cdn.tailwindcss.com\"></script><link href=\"https://cdn.jsdelivr.net/npm/daisyui@4.4.10/dist/full.min.css\" rel=\"stylesheet\" type=\"text/css\"><link rel=\"stylesheet\" href=\"/css/styles.css\"><title>Project Structure Demo ")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><html lang=\"en\" data-theme=\"dark\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><meta name=\"description\" content=\"Go/Echo+Templ: User List App as an example of a project structured in layers, use of 'Templ' Template language and frontend with HTMx technology\"><meta name=\"google\" content=\"notranslate\"><link rel=\"shortcut icon\" href=\"/img/templ.png\" type=\"image/png\"><link rel=\"stylesheet\" href=\"/css/styles.css\"><title>Project Structure Demo ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ templ CanvasLayout(title string, css templ.Component, js templ.Component) {
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<base href="../"/>
|
||||
<base href="/"/>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Company Portal | { title }</title>
|
||||
<meta name="description" content="Company Portal"/>
|
||||
@@ -28,7 +28,7 @@ templ CanvasLayout(title string, css templ.Component, js templ.Component) {
|
||||
<!--begin::Fonts-->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<!--end::Fonts-->
|
||||
<!--begin::Page Custom Styles(used by this page)-->
|
||||
@@ -94,78 +94,9 @@ templ CanvasLayout(title string, css templ.Component, js templ.Component) {
|
||||
<!--begin::Main-->
|
||||
{ children... }
|
||||
<!--end::Main-->
|
||||
<script>
|
||||
var HOST_URL =
|
||||
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
|
||||
</script>
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script>
|
||||
var KTAppSettings = {
|
||||
breakpoints: {
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
xl: 1200,
|
||||
xxl: 1400,
|
||||
},
|
||||
colors: {
|
||||
theme: {
|
||||
base: {
|
||||
white: "#ffffff",
|
||||
primary: "#3699FF",
|
||||
secondary: "#E5EAEE",
|
||||
success: "#1BC5BD",
|
||||
info: "#8950FC",
|
||||
warning: "#FFA800",
|
||||
danger: "#F64E60",
|
||||
light: "#E4E6EF",
|
||||
dark: "#181C32",
|
||||
},
|
||||
light: {
|
||||
white: "#ffffff",
|
||||
primary: "#E1F0FF",
|
||||
secondary: "#EBEDF3",
|
||||
success: "#C9F7F5",
|
||||
info: "#EEE5FF",
|
||||
warning: "#FFF4DE",
|
||||
danger: "#FFE2E5",
|
||||
light: "#F3F6F9",
|
||||
dark: "#D6D6E0",
|
||||
},
|
||||
inverse: {
|
||||
white: "#ffffff",
|
||||
primary: "#ffffff",
|
||||
secondary: "#3F4254",
|
||||
success: "#ffffff",
|
||||
info: "#ffffff",
|
||||
warning: "#ffffff",
|
||||
danger: "#ffffff",
|
||||
light: "#464E5F",
|
||||
dark: "#ffffff",
|
||||
},
|
||||
},
|
||||
gray: {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32",
|
||||
},
|
||||
},
|
||||
"font-family": "Poppins",
|
||||
};
|
||||
</script>
|
||||
<!-- iconify -->
|
||||
<script
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
|
||||
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
|
||||
crossorigin="anonymous"
|
||||
referrerpolicy="no-referrer"
|
||||
></script>
|
||||
<script src="asset-corporate-portal/js/ktappsetting.js"></script>
|
||||
<!-- iconify -->
|
||||
<script src="assets/js/iconify/iconify.min.js"></script>
|
||||
<!--end::Global Config-->
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
|
||||
@@ -23,7 +23,7 @@ func CanvasLayout(title string, css templ.Component, js templ.Component) templ.C
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"../\"><meta charset=\"utf-8\"><title>Company Portal | ")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"/\"><meta charset=\"utf-8\"><title>Company Portal | ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -36,7 +36,7 @@ func CanvasLayout(title string, css templ.Component, js templ.Component) templ.C
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -52,7 +52,7 @@ func CanvasLayout(title string, css templ.Component, js templ.Component) templ.C
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script>\r\n var HOST_URL =\r\n \"https://preview.keenthemes.com/metronic/theme/html/tools/preview\";\r\n </script><!--begin::Global Config(global config for global JS scripts)--><script>\r\n var KTAppSettings = {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#3699FF\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#8950FC\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#E4E6EF\",\r\n dark: \"#181C32\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#E1F0FF\",\r\n secondary: \"#EBEDF3\",\r\n success: \"#C9F7F5\",\r\n info: \"#EEE5FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#3F4254\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n \"gray-100\": \"#F3F6F9\",\r\n \"gray-200\": \"#EBEDF3\",\r\n \"gray-300\": \"#E4E6EF\",\r\n \"gray-400\": \"#D1D3E0\",\r\n \"gray-500\": \"#B5B5C3\",\r\n \"gray-600\": \"#7E8299\",\r\n \"gray-700\": \"#5E6278\",\r\n \"gray-800\": \"#3F4254\",\r\n \"gray-900\": \"#181C32\",\r\n },\r\n },\r\n \"font-family\": \"Poppins\",\r\n };\r\n </script><!-- iconify --><script src=\"https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js\" integrity=\"sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle-->")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script src=\"asset-corporate-portal/js/ktappsetting.js\"></script><!-- iconify --><script src=\"assets/js/iconify/iconify.min.js\"></script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
237
views/layout/layout_corporate.templ
Normal file
237
views/layout/layout_corporate.templ
Normal file
@@ -0,0 +1,237 @@
|
||||
package layout
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/navbar"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/sidebar_user_profile"
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
)
|
||||
|
||||
// LAYOUT PLAYGROUND
|
||||
templ CorporateLayout(title string, css templ.Component, js templ.Component, datamenu []services.MasterMenu, dataUser models.User) {
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Template Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme
|
||||
Author: KeenThemes
|
||||
Website: http://www.keenthemes.com/
|
||||
Contact: support@keenthemes.com
|
||||
Follow: www.twitter.com/keenthemes
|
||||
Dribbble: www.dribbble.com/keenthemes
|
||||
Like: www.facebook.com/keenthemes
|
||||
Purchase: https://1.envato.market/EA4JP
|
||||
Renew Support: https://1.envato.market/EA4JP
|
||||
License: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.
|
||||
-->
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<base href="/"/>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Company Portal | { title }</title>
|
||||
<meta name="description" content="Company Portal"/>
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||||
/>
|
||||
<!--begin::Fonts-->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<!--end::Fonts-->
|
||||
<!--begin::Page Custom Styles(used by this page)-->
|
||||
<link
|
||||
href="assets/css/pages/login/login-1.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!--end::Page Custom Styles-->
|
||||
<!--begin::Global Theme Styles(used by all pages)-->
|
||||
<link
|
||||
href="assets/plugins/global/plugins.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/plugins/custom/prismjs/prismjs.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css"/>
|
||||
<!--end::Global Theme Styles-->
|
||||
<!--begin::Layout Themes(used by all pages)-->
|
||||
<link
|
||||
href="assets/css/themes/layout/header/base/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/header/menu/light.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/brand/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<link
|
||||
href="assets/css/themes/layout/aside/dark.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
<!--end::Layout Themes-->
|
||||
<link
|
||||
rel="shortcut icon"
|
||||
href="asset-corporate-portal/media/logo/logo-small.jpg"
|
||||
/>
|
||||
<!--end::Layout Themes SAS-->
|
||||
<link
|
||||
href="asset-corporate-portal/css/sas.bundle.css"
|
||||
rel="stylesheet"
|
||||
type="text/css"
|
||||
/>
|
||||
@css
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
<!--begin::Body-->
|
||||
<body
|
||||
id="kt_body"
|
||||
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading bg-white"
|
||||
>
|
||||
// htmx
|
||||
<script src="assets/js/htmx/htmx.min.js"></script>
|
||||
<!--start::Navbar Mobile-->
|
||||
<div id="kt_header_mobile" class="header-mobile align-items-center header-mobile-fixed ">
|
||||
<!--begin::Logo-->
|
||||
<a href="index.html">
|
||||
<img alt="Logo" src="asset-corporate-portal/media/logo/logo.png" style="object-fit: contain;height: 4vh;"/>
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Toolbar-->
|
||||
<div class="d-flex align-items-center">
|
||||
<!--begin::Aside Mobile Toggle-->
|
||||
<button class="btn p-0 burger-icon burger-icon-left" id="kt_aside_mobile_toggle">
|
||||
<span></span>
|
||||
</button>
|
||||
<!--end::Aside Mobile Toggle-->
|
||||
<!--begin::Topbar Mobile Toggle-->
|
||||
<button class="btn btn-hover-text-primary p-0 ml-2" id="kt_header_mobile_topbar_toggle">
|
||||
<span class="svg-icon svg-icon-xl">
|
||||
<!--begin::Svg Icon | path:/assets/media/svg/icons/General/User.svg-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="24px"
|
||||
height="24px"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<polygon points="0 0 24 0 24 24 0 24"></polygon>
|
||||
<path
|
||||
d="M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z"
|
||||
fill="#000000"
|
||||
fill-rule="nonzero"
|
||||
opacity="0.3"
|
||||
></path>
|
||||
<path
|
||||
d="M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z"
|
||||
fill="#000000"
|
||||
fill-rule="nonzero"
|
||||
></path>
|
||||
</g>
|
||||
</svg><!--end::Svg Icon-->
|
||||
</span>
|
||||
</button>
|
||||
<!--end::Topbar Mobile Toggle-->
|
||||
</div>
|
||||
<!--end::Toolbar-->
|
||||
</div>
|
||||
<!--start::Navbar Mobile-->
|
||||
<!--start::Navbar Laptop With Sidebar-->
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<!--begin::Page-->
|
||||
<div class="d-flex flex-row flex-column-fluid page">
|
||||
<!--begin::Aside-->
|
||||
<div class="aside aside-left aside-fixed d-flex flex-column flex-row-auto" id="kt_aside">
|
||||
<!--begin::Brand-->
|
||||
<div class="brand flex-column-auto " id="kt_brand">
|
||||
<!--begin::Logo-->
|
||||
<a href="index.html" class="brand-logo" style="">
|
||||
<img alt="Logo" class="img-fluid" src="asset-corporate-portal/media/logo/logo.png"/>
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Toggle-->
|
||||
<button class="brand-toggle btn btn-sm px-0" id="kt_aside_toggle">
|
||||
<span
|
||||
class="svg-icon svg-icon svg-icon-xl"
|
||||
>
|
||||
<!--begin::Svg Icon | path:/assets/media/svg/icons/Navigation/Angle-double-left.svg-->
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="24px"
|
||||
height="24px"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
>
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<polygon points="0 0 24 0 24 24 0 24"></polygon>
|
||||
<path
|
||||
d="M5.29288961,6.70710318 C4.90236532,6.31657888 4.90236532,5.68341391 5.29288961,5.29288961 C5.68341391,4.90236532 6.31657888,4.90236532 6.70710318,5.29288961 L12.7071032,11.2928896 C13.0856821,11.6714686 13.0989277,12.281055 12.7371505,12.675721 L7.23715054,18.675721 C6.86395813,19.08284 6.23139076,19.1103429 5.82427177,18.7371505 C5.41715278,18.3639581 5.38964985,17.7313908 5.76284226,17.3242718 L10.6158586,12.0300721 L5.29288961,6.70710318 Z"
|
||||
fill="#000000"
|
||||
fill-rule="nonzero"
|
||||
transform="translate(8.999997, 11.999999) scale(-1, 1) translate(-8.999997, -11.999999) "
|
||||
></path>
|
||||
<path
|
||||
d="M10.7071009,15.7071068 C10.3165766,16.0976311 9.68341162,16.0976311 9.29288733,15.7071068 C8.90236304,15.3165825 8.90236304,14.6834175 9.29288733,14.2928932 L15.2928873,8.29289322 C15.6714663,7.91431428 16.2810527,7.90106866 16.6757187,8.26284586 L22.6757187,13.7628459 C23.0828377,14.1360383 23.1103407,14.7686056 22.7371482,15.1757246 C22.3639558,15.5828436 21.7313885,15.6103465 21.3242695,15.2371541 L16.0300699,10.3841378 L10.7071009,15.7071068 Z"
|
||||
fill="#000000"
|
||||
fill-rule="nonzero"
|
||||
opacity="0.3"
|
||||
transform="translate(15.999997, 11.999999) scale(-1, 1) rotate(-270.000000) translate(-15.999997, -11.999999) "
|
||||
></path>
|
||||
</g>
|
||||
</svg><!--end::Svg Icon-->
|
||||
</span>
|
||||
</button>
|
||||
<!--end::Toolbar-->
|
||||
</div>
|
||||
<!--end::Brand-->
|
||||
<!--begin::Aside Menu-->
|
||||
@navbar.NavbarMenu(datamenu)
|
||||
<!--end::Aside Menu-->
|
||||
</div>
|
||||
<!--end::Aside-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="d-flex flex-column flex-row-fluid wrapper" id="kt_wrapper">
|
||||
<!--begin::Header-->
|
||||
@navbar.Navbar(dataUser)
|
||||
<!--end::Header-->
|
||||
<!--begin::Content-->
|
||||
<div class="container-fluid">
|
||||
{ children... }
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Page-->
|
||||
</div>
|
||||
<!--end::Navbar Laptop With Sidebar-->
|
||||
@sidebaruserprofile.Navbaruserprofile(dataUser)
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script src="asset-corporate-portal/js/ktappsetting.js"></script>
|
||||
<!--end::Global Config-->
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
|
||||
<script src="assets/js/scripts.bundle.js"></script>
|
||||
<!--end::Global Theme Bundle-->
|
||||
<script src="assets/js/iconify/iconify.min.js"></script>
|
||||
@js
|
||||
<!--end::Page Scripts-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
}
|
||||
104
views/layout/layout_corporate_templ.go
Normal file
104
views/layout/layout_corporate_templ.go
Normal file
@@ -0,0 +1,104 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package layout
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/navbar"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/sidebar_user_profile"
|
||||
)
|
||||
|
||||
// LAYOUT PLAYGROUND
|
||||
func CorporateLayout(title string, css templ.Component, js templ.Component, datamenu []services.MasterMenu, dataUser models.User) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"/\"><meta charset=\"utf-8\"><title>Company Portal | ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\layout\layout_corporate.templ`, Line: 30, Col: 34}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = css.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</head><!--end::Head--><!--begin::Body--><body id=\"kt_body\" class=\"header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading bg-white\"><script src=\"assets/js/htmx/htmx.min.js\"></script><!--start::Navbar Mobile--><div id=\"kt_header_mobile\" class=\"header-mobile align-items-center header-mobile-fixed \"><!--begin::Logo--><a href=\"index.html\"><img alt=\"Logo\" src=\"asset-corporate-portal/media/logo/logo.png\" style=\"object-fit: contain;height: 4vh;\"></a><!--end::Logo--><!--begin::Toolbar--><div class=\"d-flex align-items-center\"><!--begin::Aside Mobile Toggle--><button class=\"btn p-0 burger-icon burger-icon-left\" id=\"kt_aside_mobile_toggle\"><span></span></button><!--end::Aside Mobile Toggle--><!--begin::Topbar Mobile Toggle--><button class=\"btn btn-hover-text-primary p-0 ml-2\" id=\"kt_header_mobile_topbar_toggle\"><span class=\"svg-icon svg-icon-xl\"><!--begin::Svg Icon | path:/assets/media/svg/icons/General/User.svg--><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><polygon points=\"0 0 24 0 24 24 0 24\"></polygon> <path d=\"M12,11 C9.790861,11 8,9.209139 8,7 C8,4.790861 9.790861,3 12,3 C14.209139,3 16,4.790861 16,7 C16,9.209139 14.209139,11 12,11 Z\" fill=\"#000000\" fill-rule=\"nonzero\" opacity=\"0.3\"></path> <path d=\"M3.00065168,20.1992055 C3.38825852,15.4265159 7.26191235,13 11.9833413,13 C16.7712164,13 20.7048837,15.2931929 20.9979143,20.2 C21.0095879,20.3954741 20.9979143,21 20.2466999,21 C16.541124,21 11.0347247,21 3.72750223,21 C3.47671215,21 2.97953825,20.45918 3.00065168,20.1992055 Z\" fill=\"#000000\" fill-rule=\"nonzero\"></path></g></svg><!--end::Svg Icon--></span></button><!--end::Topbar Mobile Toggle--></div><!--end::Toolbar--></div><!--start::Navbar Mobile--><!--start::Navbar Laptop With Sidebar--><div class=\"d-flex flex-column flex-root\"><!--begin::Page--><div class=\"d-flex flex-row flex-column-fluid page\"><!--begin::Aside--><div class=\"aside aside-left aside-fixed d-flex flex-column flex-row-auto\" id=\"kt_aside\"><!--begin::Brand--><div class=\"brand flex-column-auto \" id=\"kt_brand\"><!--begin::Logo--><a href=\"index.html\" class=\"brand-logo\" style=\"\"><img alt=\"Logo\" class=\"img-fluid\" src=\"asset-corporate-portal/media/logo/logo.png\"></a><!--end::Logo--><!--begin::Toggle--><button class=\"brand-toggle btn btn-sm px-0\" id=\"kt_aside_toggle\"><span class=\"svg-icon svg-icon svg-icon-xl\"><!--begin::Svg Icon | path:/assets/media/svg/icons/Navigation/Angle-double-left.svg--><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\" version=\"1.1\"><g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><polygon points=\"0 0 24 0 24 24 0 24\"></polygon> <path d=\"M5.29288961,6.70710318 C4.90236532,6.31657888 4.90236532,5.68341391 5.29288961,5.29288961 C5.68341391,4.90236532 6.31657888,4.90236532 6.70710318,5.29288961 L12.7071032,11.2928896 C13.0856821,11.6714686 13.0989277,12.281055 12.7371505,12.675721 L7.23715054,18.675721 C6.86395813,19.08284 6.23139076,19.1103429 5.82427177,18.7371505 C5.41715278,18.3639581 5.38964985,17.7313908 5.76284226,17.3242718 L10.6158586,12.0300721 L5.29288961,6.70710318 Z\" fill=\"#000000\" fill-rule=\"nonzero\" transform=\"translate(8.999997, 11.999999) scale(-1, 1) translate(-8.999997, -11.999999) \"></path> <path d=\"M10.7071009,15.7071068 C10.3165766,16.0976311 9.68341162,16.0976311 9.29288733,15.7071068 C8.90236304,15.3165825 8.90236304,14.6834175 9.29288733,14.2928932 L15.2928873,8.29289322 C15.6714663,7.91431428 16.2810527,7.90106866 16.6757187,8.26284586 L22.6757187,13.7628459 C23.0828377,14.1360383 23.1103407,14.7686056 22.7371482,15.1757246 C22.3639558,15.5828436 21.7313885,15.6103465 21.3242695,15.2371541 L16.0300699,10.3841378 L10.7071009,15.7071068 Z\" fill=\"#000000\" fill-rule=\"nonzero\" opacity=\"0.3\" transform=\"translate(15.999997, 11.999999) scale(-1, 1) rotate(-270.000000) translate(-15.999997, -11.999999) \"></path></g></svg><!--end::Svg Icon--></span></button><!--end::Toolbar--></div><!--end::Brand--><!--begin::Aside Menu-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = navbar.NavbarMenu(datamenu).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Aside Menu--></div><!--end::Aside--><!--begin::Wrapper--><div class=\"d-flex flex-column flex-row-fluid wrapper\" id=\"kt_wrapper\"><!--begin::Header-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = navbar.Navbar(dataUser).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Header--><!--begin::Content--><div class=\"container-fluid\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><!--end::Content--></div><!--end::Wrapper--></div><!--end::Page--></div><!--end::Navbar Laptop With Sidebar-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = sidebaruserprofile.Navbaruserprofile(dataUser).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--begin::Global Config(global config for global JS scripts)--><script src=\"asset-corporate-portal/js/ktappsetting.js\"></script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle--><script src=\"assets/js/iconify/iconify.min.js\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = js.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Page Scripts--></body><!--end::Body--></html>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
@@ -18,7 +18,7 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<base href="../"/>
|
||||
<base href="/"/>
|
||||
<meta charset="utf-8"/>
|
||||
<title>Company Portal | { title }</title>
|
||||
<meta name="description" content="Company Portal"/>
|
||||
@@ -29,7 +29,7 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
|
||||
<!--begin::Fonts-->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<!--end::Fonts-->
|
||||
<!--begin::Page Custom Styles(used by this page)-->
|
||||
@@ -92,86 +92,19 @@ templ PlaygroundLayout(title string, css templ.Component, js templ.Component) {
|
||||
id="kt_body"
|
||||
class="header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading"
|
||||
>
|
||||
// htmx
|
||||
<script src="assets/js/htmx/htmx.min.js"></script>
|
||||
<!--begin::Main-->
|
||||
{ children... }
|
||||
<!--end::Main-->
|
||||
<script>
|
||||
var HOST_URL =
|
||||
"https://preview.keenthemes.com/metronic/theme/html/tools/preview";
|
||||
</script>
|
||||
<!--begin::Global Config(global config for global JS scripts)-->
|
||||
<script>
|
||||
var KTAppSettings = {
|
||||
breakpoints: {
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
xl: 1200,
|
||||
xxl: 1400,
|
||||
},
|
||||
colors: {
|
||||
theme: {
|
||||
base: {
|
||||
white: "#ffffff",
|
||||
primary: "#3699FF",
|
||||
secondary: "#E5EAEE",
|
||||
success: "#1BC5BD",
|
||||
info: "#8950FC",
|
||||
warning: "#FFA800",
|
||||
danger: "#F64E60",
|
||||
light: "#E4E6EF",
|
||||
dark: "#181C32",
|
||||
},
|
||||
light: {
|
||||
white: "#ffffff",
|
||||
primary: "#E1F0FF",
|
||||
secondary: "#EBEDF3",
|
||||
success: "#C9F7F5",
|
||||
info: "#EEE5FF",
|
||||
warning: "#FFF4DE",
|
||||
danger: "#FFE2E5",
|
||||
light: "#F3F6F9",
|
||||
dark: "#D6D6E0",
|
||||
},
|
||||
inverse: {
|
||||
white: "#ffffff",
|
||||
primary: "#ffffff",
|
||||
secondary: "#3F4254",
|
||||
success: "#ffffff",
|
||||
info: "#ffffff",
|
||||
warning: "#ffffff",
|
||||
danger: "#ffffff",
|
||||
light: "#464E5F",
|
||||
dark: "#ffffff",
|
||||
},
|
||||
},
|
||||
gray: {
|
||||
"gray-100": "#F3F6F9",
|
||||
"gray-200": "#EBEDF3",
|
||||
"gray-300": "#E4E6EF",
|
||||
"gray-400": "#D1D3E0",
|
||||
"gray-500": "#B5B5C3",
|
||||
"gray-600": "#7E8299",
|
||||
"gray-700": "#5E6278",
|
||||
"gray-800": "#3F4254",
|
||||
"gray-900": "#181C32",
|
||||
},
|
||||
},
|
||||
"font-family": "Poppins",
|
||||
};
|
||||
</script>
|
||||
<script src="asset-corporate-portal/js/ktappsetting.js"></script>
|
||||
<!--end::Global Config-->
|
||||
<!--begin::Global Theme Bundle(used by all pages)-->
|
||||
<script src="assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="assets/plugins/custom/prismjs/prismjs.bundle.js"></script>
|
||||
<script src="assets/js/scripts.bundle.js"></script>
|
||||
<!--end::Global Theme Bundle-->
|
||||
<script
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"
|
||||
integrity="sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA=="
|
||||
crossorigin="anonymous"
|
||||
referrerpolicy="no-referrer"
|
||||
></script>
|
||||
<script src="assets/js/iconify/iconify.min.js"></script>
|
||||
@js
|
||||
<!--end::Page Scripts-->
|
||||
</body>
|
||||
|
||||
@@ -24,7 +24,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"../\"><meta charset=\"utf-8\"><title>Company Portal | ")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!doctype html><!--\r\n\t\tTemplate Name: Metronic - Bootstrap 4 HTML, React, Angular 9 & VueJS Admin Dashboard Theme\r\n\t\tAuthor: KeenThemes\r\n\t\tWebsite: http://www.keenthemes.com/\r\n\t\tContact: support@keenthemes.com\r\n\t\tFollow: www.twitter.com/keenthemes\r\n\t\tDribbble: www.dribbble.com/keenthemes\r\n\t\tLike: www.facebook.com/keenthemes\r\n\t\tPurchase: https://1.envato.market/EA4JP\r\n\t\tRenew Support: https://1.envato.market/EA4JP\r\n\t\tLicense: You must have a valid license purchased only from themeforest(the above link) in order to legally use the theme for your project.\r\n\t\t--><html lang=\"en\"><!--begin::Head--><head><base href=\"/\"><meta charset=\"utf-8\"><title>Company Portal | ")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -37,7 +37,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</title><meta name=\"description\" content=\"Company Portal\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"><!--begin::Fonts--><link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><!--end::Fonts--><!--begin::Page Custom Styles(used by this page)--><link href=\"assets/css/pages/login/login-1.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Page Custom Styles--><!--begin::Global Theme Styles(used by all pages)--><link href=\"assets/plugins/global/plugins.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/plugins/custom/prismjs/prismjs.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/style.bundle.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Global Theme Styles--><!--begin::Layout Themes(used by all pages)--><link href=\"assets/css/themes/layout/header/base/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/header/menu/light.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/brand/dark.css\" rel=\"stylesheet\" type=\"text/css\"><link href=\"assets/css/themes/layout/aside/dark.css\" rel=\"stylesheet\" type=\"text/css\"><!--end::Layout Themes--><link rel=\"shortcut icon\" href=\"asset-corporate-portal/media/logo/logo-small.jpg\"><!--end::Layout Themes SAS--><link href=\"asset-corporate-portal/css/sas.bundle.css\" rel=\"stylesheet\" type=\"text/css\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -45,7 +45,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</head><!--end::Head--><!--begin::Body--><body id=\"kt_body\" class=\"header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading\"><!--begin::Main-->")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</head><!--end::Head--><!--begin::Body--><body id=\"kt_body\" class=\"header-fixed header-mobile-fixed subheader-enabled subheader-fixed subheader-mobile-fixed aside-enabled aside-fixed aside-minimize-hoverable page-loading\"><script src=\"assets/js/htmx/htmx.min.js\"></script><!--begin::Main-->")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -53,7 +53,7 @@ func PlaygroundLayout(title string, css templ.Component, js templ.Component) tem
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script>\r\n var HOST_URL =\r\n \"https://preview.keenthemes.com/metronic/theme/html/tools/preview\";\r\n </script><!--begin::Global Config(global config for global JS scripts)--><script>\r\n var KTAppSettings = {\r\n breakpoints: {\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400,\r\n },\r\n colors: {\r\n theme: {\r\n base: {\r\n white: \"#ffffff\",\r\n primary: \"#3699FF\",\r\n secondary: \"#E5EAEE\",\r\n success: \"#1BC5BD\",\r\n info: \"#8950FC\",\r\n warning: \"#FFA800\",\r\n danger: \"#F64E60\",\r\n light: \"#E4E6EF\",\r\n dark: \"#181C32\",\r\n },\r\n light: {\r\n white: \"#ffffff\",\r\n primary: \"#E1F0FF\",\r\n secondary: \"#EBEDF3\",\r\n success: \"#C9F7F5\",\r\n info: \"#EEE5FF\",\r\n warning: \"#FFF4DE\",\r\n danger: \"#FFE2E5\",\r\n light: \"#F3F6F9\",\r\n dark: \"#D6D6E0\",\r\n },\r\n inverse: {\r\n white: \"#ffffff\",\r\n primary: \"#ffffff\",\r\n secondary: \"#3F4254\",\r\n success: \"#ffffff\",\r\n info: \"#ffffff\",\r\n warning: \"#ffffff\",\r\n danger: \"#ffffff\",\r\n light: \"#464E5F\",\r\n dark: \"#ffffff\",\r\n },\r\n },\r\n gray: {\r\n \"gray-100\": \"#F3F6F9\",\r\n \"gray-200\": \"#EBEDF3\",\r\n \"gray-300\": \"#E4E6EF\",\r\n \"gray-400\": \"#D1D3E0\",\r\n \"gray-500\": \"#B5B5C3\",\r\n \"gray-600\": \"#7E8299\",\r\n \"gray-700\": \"#5E6278\",\r\n \"gray-800\": \"#3F4254\",\r\n \"gray-900\": \"#181C32\",\r\n },\r\n },\r\n \"font-family\": \"Poppins\",\r\n };\r\n </script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle--><script src=\"https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js\" integrity=\"sha512-lYMiwcB608+RcqJmP93CMe7b4i9G9QK1RbixsNu4PzMRJMsqr/bUrkXUuFzCNsRUo3IXNUr5hz98lINURv5CNA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!--end::Main--><script src=\"asset-corporate-portal/js/ktappsetting.js\"></script><!--end::Global Config--><!--begin::Global Theme Bundle(used by all pages)--><script src=\"assets/plugins/global/plugins.bundle.js\"></script><script src=\"assets/plugins/custom/prismjs/prismjs.bundle.js\"></script><script src=\"assets/js/scripts.bundle.js\"></script><!--end::Global Theme Bundle--><script src=\"assets/js/iconify/iconify.min.js\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ templ CssLogin() {
|
||||
}
|
||||
|
||||
templ JsLogin() {
|
||||
<script src="../../asset-corporate-portal/js/login-general.js"></script>
|
||||
<script src="/asset-corporate-portal/js/login-general.js"></script>
|
||||
}
|
||||
|
||||
templ ShowLogin(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
|
||||
@@ -107,7 +107,7 @@ func JsLogin() templ.Component {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"../../asset-corporate-portal/js/login-general.js\"></script>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"/asset-corporate-portal/js/login-general.js\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ templ AsideLeft() {
|
||||
class="d-flex bgi-no-repeat flex-row-fluid justify-content-center align-items-end"
|
||||
>
|
||||
<img
|
||||
src="../../asset-corporate-portal/media/login/login-company-vector.png"
|
||||
src="/asset-corporate-portal/media/login/login-company-vector.png"
|
||||
class="img-fluid"
|
||||
style="height: 55vh; width: 55vh"
|
||||
/>
|
||||
@@ -40,7 +40,7 @@ templ FormSignin() {
|
||||
<!--begin::Title-->
|
||||
<div class="d-flex justify-content-center mb-5">
|
||||
<img
|
||||
src="../../asset-corporate-portal/media/logo/logo.png"
|
||||
src="/asset-corporate-portal/media/logo/logo.png"
|
||||
alt=""
|
||||
style="height: 103px"
|
||||
/>
|
||||
@@ -225,7 +225,7 @@ templ ForgotPassword() {
|
||||
<!--begin::Title-->
|
||||
<div class="d-flex justify-content-center mb-5">
|
||||
<img
|
||||
src="../../asset-corporate-portal/media/logo/logo.png"
|
||||
src="/asset-corporate-portal/media/logo/logo.png"
|
||||
alt=""
|
||||
style="height: 103px"
|
||||
/>
|
||||
|
||||
@@ -23,7 +23,7 @@ func AsideLeft() templ.Component {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"login-aside d-flex flex-column flex-row-auto bg-primary\"><!--begin::Aside Top--><div class=\"d-flex flex-column-auto flex-column pt-lg-40 pt-15 px-10\"><!--begin::Aside header--><div class=\"aside-title mb-5\">Empowering Your Workforce's Health\r</div><!--end::Aside header--><!--begin::Aside title--><div class=\"aside-subtitle\">Discover peace of mind and prioritize your health with our\r comprehensive medical check-up packages\r</div><!--end::Aside title--></div><!--end::Aside Top--><!--begin::Aside Bottom--><div class=\"d-flex bgi-no-repeat flex-row-fluid justify-content-center align-items-end\"><img src=\"../../asset-corporate-portal/media/login/login-company-vector.png\" class=\"img-fluid\" style=\"height: 55vh; width: 55vh\"></div><!--end::Aside Bottom--></div>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"login-aside d-flex flex-column flex-row-auto bg-primary\"><!--begin::Aside Top--><div class=\"d-flex flex-column-auto flex-column pt-lg-40 pt-15 px-10\"><!--begin::Aside header--><div class=\"aside-title mb-5\">Empowering Your Workforce's Health\r</div><!--end::Aside header--><!--begin::Aside title--><div class=\"aside-subtitle\">Discover peace of mind and prioritize your health with our\r comprehensive medical check-up packages\r</div><!--end::Aside title--></div><!--end::Aside Top--><!--begin::Aside Bottom--><div class=\"d-flex bgi-no-repeat flex-row-fluid justify-content-center align-items-end\"><img src=\"/asset-corporate-portal/media/login/login-company-vector.png\" class=\"img-fluid\" style=\"height: 55vh; width: 55vh\"></div><!--end::Aside Bottom--></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -47,7 +47,7 @@ func FormSignin() templ.Component {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_signin_form\"><!--begin::Title--><div class=\"d-flex justify-content-center mb-5\"><img src=\"../../asset-corporate-portal/media/logo/logo.png\" alt=\"\" style=\"height: 103px\"></div><div class=\"pt-2\"><h3 class=\"d-flex justify-content-center title-company text-dark\">Welcome to Corporate Portal\r</h3></div><div class=\"pb-10 pt-0\"><h3 class=\"subtitle-company\" style=\"color: #a7a8bb\">Sign in to access your account\r</h3></div><!--begin::Title--><!--begin::Form group--><div class=\"form-group\"><label class=\"font-size-h6 font-weight-bolder text-dark\">Email</label> <input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg\" type=\"text\" name=\"username\" autocomplete=\"off\" placeholder=\"Enter your email\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><div class=\"d-flex justify-content-between mt-n5\"><label class=\"font-size-h6 font-weight-bolder text-dark pt-5\">Password</label></div><div class=\"input-group\"><!-- form-control form-control-solid --><input class=\"h-auto form-control form-control-solid py-7 px-6 rounded-lg rounded-right-0\" type=\"password\" name=\"password\" id=\"user-password\" autocomplete=\"off\" placeholder=\"Enter your password\"><div class=\"input-group-append\"><span class=\"input-group-text rounded-lg rounded-left-0\" style=\"border: 0\"><!-- far fa-eye-slash --><a class=\"btn\" role=\"button\" id=\"btn-show\"><i class=\"far fa-eye-slash\" id=\"password-icon\"></i></a></span></div></div></div><div class=\"d-flex justify-content-end\"><a href=\"javascript:;\" class=\"font-size-h6 font-weight-bolder text-hover-primary mb-5 text-primary\" id=\"kt_login_forgot\">Forgot Password ?\r</a></div><!--end::Form group--><!--begin::Action--><div class=\"pb-lg-0 pb-5 pt-5\"><button type=\"button\" id=\"kt_login_signin_submit\" class=\"btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary\">Sign In\r</button></div><!--end::Action--></form>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_signin_form\"><!--begin::Title--><div class=\"d-flex justify-content-center mb-5\"><img src=\"/asset-corporate-portal/media/logo/logo.png\" alt=\"\" style=\"height: 103px\"></div><div class=\"pt-2\"><h3 class=\"d-flex justify-content-center title-company text-dark\">Welcome to Corporate Portal\r</h3></div><div class=\"pb-10 pt-0\"><h3 class=\"subtitle-company\" style=\"color: #a7a8bb\">Sign in to access your account\r</h3></div><!--begin::Title--><!--begin::Form group--><div class=\"form-group\"><label class=\"font-size-h6 font-weight-bolder text-dark\">Email</label> <input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg\" type=\"text\" name=\"username\" autocomplete=\"off\" placeholder=\"Enter your email\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group\"><div class=\"d-flex justify-content-between mt-n5\"><label class=\"font-size-h6 font-weight-bolder text-dark pt-5\">Password</label></div><div class=\"input-group\"><!-- form-control form-control-solid --><input class=\"h-auto form-control form-control-solid py-7 px-6 rounded-lg rounded-right-0\" type=\"password\" name=\"password\" id=\"user-password\" autocomplete=\"off\" placeholder=\"Enter your password\"><div class=\"input-group-append\"><span class=\"input-group-text rounded-lg rounded-left-0\" style=\"border: 0\"><!-- far fa-eye-slash --><a class=\"btn\" role=\"button\" id=\"btn-show\"><i class=\"far fa-eye-slash\" id=\"password-icon\"></i></a></span></div></div></div><div class=\"d-flex justify-content-end\"><a href=\"javascript:;\" class=\"font-size-h6 font-weight-bolder text-hover-primary mb-5 text-primary\" id=\"kt_login_forgot\">Forgot Password ?\r</a></div><!--end::Form group--><!--begin::Action--><div class=\"pb-lg-0 pb-5 pt-5\"><button type=\"button\" id=\"kt_login_signin_submit\" class=\"btn btn-block font-weight-bolder text-white font-size-h6 px-8 py-4 my-3 mr-3 mt-5 btn-primary\">Sign In\r</button></div><!--end::Action--></form>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
@@ -95,7 +95,7 @@ func ForgotPassword() templ.Component {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_forgot_form\"><!--begin::Title--><div class=\"d-flex justify-content-center mb-5\"><img src=\"../../asset-corporate-portal/media/logo/logo.png\" alt=\"\" style=\"height: 103px\"></div><div class=\"pb-13 pt-lg-0 pt-5\"><h3 class=\"font-weight-bolder text-dark font-size-h4 font-size-h1-lg\">Forgotten Password ?\r</h3><p class=\"text-muted font-weight-bold font-size-h4\">Enter your email to reset your password\r</p></div><!--end::Title--><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"email\" placeholder=\"Email\" name=\"email\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group d-flex flex-wrap pb-lg-0\"><button type=\"button\" id=\"kt_login_forgot_submit\" class=\"btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-submit\">Submit\r</button> <button type=\"button\" id=\"kt_login_forgot_cancel\" class=\"btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-cancel\">Cancel\r</button></div><!--end::Form group--></form>")
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<form class=\"form\" novalidate=\"novalidate\" id=\"kt_login_forgot_form\"><!--begin::Title--><div class=\"d-flex justify-content-center mb-5\"><img src=\"/asset-corporate-portal/media/logo/logo.png\" alt=\"\" style=\"height: 103px\"></div><div class=\"pb-13 pt-lg-0 pt-5\"><h3 class=\"font-weight-bolder text-dark font-size-h4 font-size-h1-lg\">Forgotten Password ?\r</h3><p class=\"text-muted font-weight-bold font-size-h4\">Enter your email to reset your password\r</p></div><!--end::Title--><!--begin::Form group--><div class=\"form-group\"><input class=\"form-control form-control-solid h-auto py-7 px-6 rounded-lg font-size-h6\" type=\"email\" placeholder=\"Email\" name=\"email\" autocomplete=\"off\"></div><!--end::Form group--><!--begin::Form group--><div class=\"form-group d-flex flex-wrap pb-lg-0\"><button type=\"button\" id=\"kt_login_forgot_submit\" class=\"btn btn-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-submit\">Submit\r</button> <button type=\"button\" id=\"kt_login_forgot_cancel\" class=\"btn btn-light-primary font-weight-bolder font-size-h6 px-8 py-4 my-3 btn-block btn-cancel\">Cancel\r</button></div><!--end::Form group--></form>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
|
||||
117
views/mastermenuusergroup/mastermenuusergroup.templ
Normal file
117
views/mastermenuusergroup/mastermenuusergroup.templ
Normal file
@@ -0,0 +1,117 @@
|
||||
package mastermenuusergroup
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/breadcrumbadmin"
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/table"
|
||||
)
|
||||
|
||||
// "github.com/emarifer/go-templ-project-structure/views/component/sidebar_user_profile"
|
||||
templ ContentMasterMenuUserGroup() {
|
||||
<div class="container-fluid">
|
||||
<div class="row align-items-center mb-10">
|
||||
<div class="col-md-10 col-sm-12 p-0 ">
|
||||
@breadcrumadmin.MainBreadcrumbAdmin()
|
||||
</div>
|
||||
<div class="col-md-2 d-none d-lg-block d-xl-block d-md-block d-sm-none">
|
||||
// <div class="d-block align-items-center">
|
||||
<div class="d-flex justify-content-end">
|
||||
<button type="button" class="btn btn-primary">Add New</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-2 d-block d-lg-none d-xl-none d-md-none d-sm-block justify-content-center px-5">
|
||||
<button type="button" class="btn btn-primary btn-block">Add New</button>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@tablecomponent.Table([]string{"KODE", "USERGROUP", "AKSI"}, []string{"40%", "40%", "20%"}, TableRow(), Pagination())
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ TableRow() {
|
||||
<tr>
|
||||
<td>001</td>
|
||||
<td>Admin</td>
|
||||
<td>
|
||||
<div class="row px-5 d-flex justify-content-around">
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2">Edit</button>
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2">Hapus</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>002</td>
|
||||
<td>Tes</td>
|
||||
<td>
|
||||
<div class="row px-5 d-flex justify-content-around">
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2">Edit</button>
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2">Hapus</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
templ Pagination() {
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap">
|
||||
<div class="d-flex flex-wrap py-2 mr-3">
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-double-arrow-back icon-xs"></i></a>
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-arrow-back icon-xs"></i></a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">...</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">23</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light btn-hover-primary active mr-2 my-1">24</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">25</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">26</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">27</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">28</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">...</a>
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-arrow-next icon-xs"></i></a>
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-double-arrow-next icon-xs"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ CssMasterMenuUserGroup() {
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/publicsans.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/roboto.css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
#div-chart {
|
||||
/* overflow-x: scroll; */
|
||||
margin: 40px 10vw 40px 10vw;
|
||||
}
|
||||
.title {
|
||||
font-size:20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
#title {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
</style>
|
||||
}
|
||||
|
||||
templ JsMasterMenuUserGroup() {
|
||||
}
|
||||
|
||||
templ ShowMasterMenuUserGroup(title string, cmp templ.Component, css templ.Component, js templ.Component, dataMenu []services.MasterMenu, dataUser models.User) {
|
||||
@layout.CorporateLayout(title, css, js, dataMenu, dataUser) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
191
views/mastermenuusergroup/mastermenuusergroup_templ.go
Normal file
191
views/mastermenuusergroup/mastermenuusergroup_templ.go
Normal file
@@ -0,0 +1,191 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package mastermenuusergroup
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/breadcrumbadmin"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/table"
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
)
|
||||
|
||||
// "github.com/emarifer/go-templ-project-structure/views/component/sidebar_user_profile"
|
||||
func ContentMasterMenuUserGroup() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"container-fluid\"><div class=\"row align-items-center mb-10\"><div class=\"col-md-10 col-sm-12 p-0 \">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = breadcrumadmin.MainBreadcrumbAdmin().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-md-2 d-none d-lg-block d-xl-block d-md-block d-sm-none\"><div class=\"d-flex justify-content-end\"><button type=\"button\" class=\"btn btn-primary\">Add New</button></div></div><div class=\"col-md-2 d-block d-lg-none d-xl-none d-md-none d-sm-block justify-content-center px-5\"><button type=\"button\" class=\"btn btn-primary btn-block\">Add New</button></div></div><div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecomponent.Table([]string{"KODE", "USERGROUP", "AKSI"}, []string{"40%", "40%", "20%"}, TableRow(), Pagination()).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func TableRow() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<tr><td>001</td><td>Admin</td><td><div class=\"row px-5 d-flex justify-content-around\"><button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2\">Edit</button> <button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2\">Hapus</button></div></td></tr><tr><td>002</td><td>Tes</td><td><div class=\"row px-5 d-flex justify-content-around\"><button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2\">Edit</button> <button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2\">Hapus</button></div></td></tr>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func Pagination() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-between align-items-center flex-wrap\"><div class=\"d-flex flex-wrap py-2 mr-3\"><a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-double-arrow-back icon-xs\"></i></a> <a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-arrow-back icon-xs\"></i></a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">...</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">23</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light btn-hover-primary active mr-2 my-1\">24</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">25</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">26</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">27</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">28</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">...</a> <a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-arrow-next icon-xs\"></i></a> <a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-double-arrow-next icon-xs\"></i></a></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func CssMasterMenuUserGroup() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n #div-chart {\r\n /* overflow-x: scroll; */\r\n margin: 40px 10vw 40px 10vw;\r\n }\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n #title {\r\n font-weight: 600;\r\n }\r\n \r\n</style>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func JsMasterMenuUserGroup() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ShowMasterMenuUserGroup(title string, cmp templ.Component, css templ.Component, js templ.Component, dataMenu []services.MasterMenu, dataUser models.User) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var6 == nil {
|
||||
templ_7745c5c3_Var6 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var7 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.CorporateLayout(title, css, js, dataMenu, dataUser).Render(templ.WithChildren(ctx, templ_7745c5c3_Var7), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
131
views/mcu/kelainan_global/kelainan_global.templ
Normal file
131
views/mcu/kelainan_global/kelainan_global.templ
Normal file
@@ -0,0 +1,131 @@
|
||||
package kelainanglobal
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
|
||||
)
|
||||
|
||||
templ MainKelainanGlobal(divMcu string, dataMcu string, divFisik string, dataFisik string) {
|
||||
<div id="div-chart">
|
||||
@HeaderKelainanGlobal()
|
||||
<div class="d-flex flex-column flex-root bg-white mt-25">
|
||||
<!-- begin::Navbar -->
|
||||
<div class="d-flex justify-content-center ">
|
||||
<h3 class="mb-3 title">Data Persentase Kelainan Global</h3>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 text-center mb-10">
|
||||
@chart.ShowChart(divMcu, dataMcu)
|
||||
</div>
|
||||
<div class="col-12 text-center">
|
||||
@chart.ShowChart(divFisik, dataFisik)
|
||||
</div>
|
||||
</div>
|
||||
<!-- end::Navbar -->
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ CssKelainanGlobal() {
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/publicsans.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/roboto.css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
#div-chart {
|
||||
/* overflow-x: scroll; */
|
||||
margin: 40px 10vw 40px 10vw;
|
||||
}
|
||||
.title {
|
||||
font-size:20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
#title {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
</style>
|
||||
}
|
||||
|
||||
templ JsKelainanGlobal() {
|
||||
// echart
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
}
|
||||
|
||||
templ HeaderKelainanGlobal() {
|
||||
<!-- breadcrumb & icon tanya START -->
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<h1 class="title text-black" style="margin-bottom: 0">
|
||||
PT. Sadhana Abiyasa Sampoerna
|
||||
</h1>
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb" style="margin-bottom: 0">
|
||||
<li class="breadcrumb-item"><a href="#">Dashboard</a></li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Employee Health Medical Analytic</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">PT. Sadhana Abiyasa Sampoerna</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current="page">
|
||||
Mcu Karyawan
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-1 align-content-center">
|
||||
<!-- align-content-center -->
|
||||
<div class="d-flex justify-content-end">
|
||||
<a href="#">
|
||||
<i class="fas fa-info-circle text-primary"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- breadcrumb & icon tanya END -->
|
||||
<div class="mt-10">
|
||||
<ul class="nav nav-tabs nav-tabs-line">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_1">Peserta</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_2">Kelainan global</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_3">Kelainan Lab</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_4">kelainan Non Lab</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_5">kelainan Fisik</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_6">Kesimpulan & Saran</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#kt_tab_pane_7">Daftar Peserta</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ShowKelainanGlobal(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
@layout.PlaygroundLayout(title, css, js) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
175
views/mcu/kelainan_global/kelainan_global_templ.go
Normal file
175
views/mcu/kelainan_global/kelainan_global_templ.go
Normal file
@@ -0,0 +1,175 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package kelainanglobal
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
)
|
||||
|
||||
func MainKelainanGlobal(divMcu string, dataMcu string, divFisik string, dataFisik string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"div-chart\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = HeaderKelainanGlobal().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex flex-column flex-root bg-white mt-25\"><!-- begin::Navbar --><div class=\"d-flex justify-content-center \"><h3 class=\"mb-3 title\">Data Persentase Kelainan Global</h3></div><div class=\"row justify-content-center\"><div class=\"col-12 text-center mb-10\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = chart.ShowChart(divMcu, dataMcu).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-12 text-center\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = chart.ShowChart(divFisik, dataFisik).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div><!-- end::Navbar --></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func CssKelainanGlobal() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n #div-chart {\r\n /* overflow-x: scroll; */\r\n margin: 40px 10vw 40px 10vw;\r\n }\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n #title {\r\n font-weight: 600;\r\n }\r\n \r\n</style>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func JsKelainanGlobal() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"assets/js/echarts-js/echart.min.js\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func HeaderKelainanGlobal() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- breadcrumb & icon tanya START --><div class=\"row\"><div class=\"col-11\"><h1 class=\"title text-black\" style=\"margin-bottom: 0\">PT. Sadhana Abiyasa Sampoerna\r</h1><nav aria-label=\"breadcrumb\"><ol class=\"breadcrumb\" style=\"margin-bottom: 0\"><li class=\"breadcrumb-item\"><a href=\"#\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"#\">Employee Health Medical Analytic</a></li><li class=\"breadcrumb-item\"><a href=\"#\">PT. Sadhana Abiyasa Sampoerna</a></li><li class=\"breadcrumb-item active\" aria-current=\"page\">Mcu Karyawan\r</li></ol></nav></div><div class=\"col-1 align-content-center\"><!-- align-content-center --><div class=\"d-flex justify-content-end\"><a href=\"#\"><i class=\"fas fa-info-circle text-primary\"></i></a></div></div></div><!-- breadcrumb & icon tanya END --><div class=\"mt-10\"><ul class=\"nav nav-tabs nav-tabs-line\"><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_1\">Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_2\">Kelainan global</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_3\">Kelainan Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_4\">kelainan Non Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_5\">kelainan Fisik</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_6\">Kesimpulan & Saran</a></li><li class=\"nav-item\"><a class=\"nav-link active\" data-toggle=\"tab\" href=\"#kt_tab_pane_7\">Daftar Peserta</a></li></ul></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ShowKelainanGlobal(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var6 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
0
views/mcu/peserta/bagian.txt
Normal file
0
views/mcu/peserta/bagian.txt
Normal file
132
views/mcu/peserta/mcupeserta.templ
Normal file
132
views/mcu/peserta/mcupeserta.templ
Normal file
@@ -0,0 +1,132 @@
|
||||
package mcupeserta
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
|
||||
)
|
||||
|
||||
templ MainMcuPeserta(divPesertaMcu string, dataPesertaMcu string, divKepesertaanMcu string, dataKepesertaanMcu string, divPesertaMcuUmur string, dataPesertaMcuUmur string) {
|
||||
<div id="div-chart">
|
||||
@HeaderMcuPeserta()
|
||||
<div class="d-flex flex-column flex-root bg-white mt-25">
|
||||
<div class="d-flex justify-content-center ">
|
||||
<h3 class="mb-3 title">Data Kepesertaan MCU</h3>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 text-center mb-10">
|
||||
@chart.ShowChart(divPesertaMcu, dataPesertaMcu)
|
||||
</div>
|
||||
<div class="col-12 text-center mb-10">
|
||||
@chart.ShowChart(divKepesertaanMcu, dataKepesertaanMcu)
|
||||
</div>
|
||||
<div class="col-12 text-center">
|
||||
@chart.ShowChart(divPesertaMcuUmur, dataPesertaMcuUmur)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ CssMcuPeserta() {
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/publicsans.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/roboto.css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
#div-chart {
|
||||
/* overflow-x: scroll; */
|
||||
margin: 40px 10vw 40px 10vw;
|
||||
}
|
||||
.title {
|
||||
font-size:20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
#title {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
</style>
|
||||
}
|
||||
|
||||
templ JsMcuPeserta() {
|
||||
// echart
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
}
|
||||
|
||||
templ HeaderMcuPeserta() {
|
||||
<!-- breadcrumb & icon tanya START -->
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<h1 class="title text-black" style="margin-bottom: 0">
|
||||
PT. Sadhana Abiyasa Sampoerna
|
||||
</h1>
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb" style="margin-bottom: 0">
|
||||
<li class="breadcrumb-item"><a href="#">Dashboard</a></li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">Employee Health Medical Analytic</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item">
|
||||
<a href="#">PT. Sadhana Abiyasa Sampoerna</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active" aria-current="page">
|
||||
Mcu Karyawan
|
||||
</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-1 align-content-center">
|
||||
<!-- align-content-center -->
|
||||
<div class="d-flex justify-content-end">
|
||||
<a href="#">
|
||||
<i class="fas fa-info-circle text-primary"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- breadcrumb & icon tanya END -->
|
||||
<div class="mt-10">
|
||||
<ul class="nav nav-tabs nav-tabs-line">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#kt_tab_pane_1">Peserta</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_2">Kelainan global</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_3">Kelainan Lab</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_4">kelainan Non Lab</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_5">kelainan Fisik</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_6">Kesimpulan & Saran</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#kt_tab_pane_7">Daftar Peserta</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ShowMcuPeserta(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
@layout.PlaygroundLayout(title, css, js) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
183
views/mcu/peserta/mcupeserta_templ.go
Normal file
183
views/mcu/peserta/mcupeserta_templ.go
Normal file
@@ -0,0 +1,183 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package mcupeserta
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
)
|
||||
|
||||
func MainMcuPeserta(divPesertaMcu string, dataPesertaMcu string, divKepesertaanMcu string, dataKepesertaanMcu string, divPesertaMcuUmur string, dataPesertaMcuUmur string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div id=\"div-chart\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = HeaderMcuPeserta().Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex flex-column flex-root bg-white mt-25\"><div class=\"d-flex justify-content-center \"><h3 class=\"mb-3 title\">Data Kepesertaan MCU</h3></div><div class=\"row justify-content-center\"><div class=\"col-12 text-center mb-10\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = chart.ShowChart(divPesertaMcu, dataPesertaMcu).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-12 text-center mb-10\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = chart.ShowChart(divKepesertaanMcu, dataKepesertaanMcu).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div><div class=\"col-12 text-center\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = chart.ShowChart(divPesertaMcuUmur, dataPesertaMcuUmur).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func CssMcuPeserta() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n #div-chart {\r\n /* overflow-x: scroll; */\r\n margin: 40px 10vw 40px 10vw;\r\n }\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n #title {\r\n font-weight: 600;\r\n }\r\n \r\n</style>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func JsMcuPeserta() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"assets/js/echarts-js/echart.min.js\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func HeaderMcuPeserta() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- breadcrumb & icon tanya START --><div class=\"row\"><div class=\"col-11\"><h1 class=\"title text-black\" style=\"margin-bottom: 0\">PT. Sadhana Abiyasa Sampoerna\r</h1><nav aria-label=\"breadcrumb\"><ol class=\"breadcrumb\" style=\"margin-bottom: 0\"><li class=\"breadcrumb-item\"><a href=\"#\">Dashboard</a></li><li class=\"breadcrumb-item\"><a href=\"#\">Employee Health Medical Analytic</a></li><li class=\"breadcrumb-item\"><a href=\"#\">PT. Sadhana Abiyasa Sampoerna</a></li><li class=\"breadcrumb-item active\" aria-current=\"page\">Mcu Karyawan\r</li></ol></nav></div><div class=\"col-1 align-content-center\"><!-- align-content-center --><div class=\"d-flex justify-content-end\"><a href=\"#\"><i class=\"fas fa-info-circle text-primary\"></i></a></div></div></div><!-- breadcrumb & icon tanya END --><div class=\"mt-10\"><ul class=\"nav nav-tabs nav-tabs-line\"><li class=\"nav-item\"><a class=\"nav-link active\" data-toggle=\"tab\" href=\"#kt_tab_pane_1\">Peserta</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_2\">Kelainan global</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_3\">Kelainan Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_4\">kelainan Non Lab</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_5\">kelainan Fisik</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_6\">Kesimpulan & Saran</a></li><li class=\"nav-item\"><a class=\"nav-link\" data-toggle=\"tab\" href=\"#kt_tab_pane_7\">Daftar Peserta</a></li></ul></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ShowMcuPeserta(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var6 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var6), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
59
views/piechart/piechart.templ
Normal file
59
views/piechart/piechart.templ
Normal file
@@ -0,0 +1,59 @@
|
||||
package piechart
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
|
||||
)
|
||||
|
||||
templ MainPieChart(idDiv string, udata string) {
|
||||
<!-- title -->
|
||||
<div class="row justify-content-center mb-3 mt-3">
|
||||
<div class="col-lg-8 col-xxl-8 col-md-10 text-center">
|
||||
<p class="title">Data Kepesertaan MCU</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- title -->
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 col-xxl-8 col-md-10 text-center" style="margin-bottom: 40px;">
|
||||
@chart.ShowChart(idDiv, udata)
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ CssPieChart() {
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/poppins.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/publicsans.css"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="assets/css/googlefont/roboto.css"
|
||||
/>
|
||||
<style>
|
||||
body {
|
||||
background-color: white;
|
||||
/* padding-right: 100px;
|
||||
padding-left: 100px; */
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size:20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
}
|
||||
|
||||
templ JsPieChart() {
|
||||
// echart
|
||||
<script src="assets/js/echarts-js/echart.min.js"></script>
|
||||
}
|
||||
|
||||
templ ShowPieChart(title string, cmp templ.Component, css templ.Component, js templ.Component) {
|
||||
@layout.PlaygroundLayout(title, css, js) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
135
views/piechart/piechart_templ.go
Normal file
135
views/piechart/piechart_templ.go
Normal file
@@ -0,0 +1,135 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package piechart
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
chart "github.com/emarifer/go-templ-project-structure/views/component/chart"
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
)
|
||||
|
||||
func MainPieChart(idDiv string, udata string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<!-- title --><div class=\"row justify-content-center mb-3 mt-3\"><div class=\"col-lg-8 col-xxl-8 col-md-10 text-center\"><p class=\"title\">Data Kepesertaan MCU</p></div></div><!-- title --><div class=\"row justify-content-center\"><div class=\"col-lg-8 col-xxl-8 col-md-10 text-center\" style=\"margin-bottom: 40px;\">")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = chart.ShowChart(idDiv, udata).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func CssPieChart() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var2 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var2 == nil {
|
||||
templ_7745c5c3_Var2 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<link rel=\"stylesheet\" href=\"assets/css/googlefont/poppins.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/publicsans.css\"><link rel=\"stylesheet\" href=\"assets/css/googlefont/roboto.css\"><style>\r\n body {\r\n background-color: white;\r\n /* padding-right: 100px;\r\n padding-left: 100px; */\r\n }\r\n\r\n .title {\r\n font-size:20px;\r\n font-weight: bold;\r\n }\r\n </style>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func JsPieChart() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<script src=\"assets/js/echarts-js/echart.min.js\"></script>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ShowPieChart(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var5 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var5), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
17
views/under_development/under_development.templ
Normal file
17
views/under_development/under_development.templ
Normal file
@@ -0,0 +1,17 @@
|
||||
package under_development
|
||||
|
||||
templ UnderDevelopment() {
|
||||
<div class="d-flex justify-content-center text-center flex-column mt-20">
|
||||
<div class="text-primary underdev">Site Under Development</div>
|
||||
<div class="text-disabled underdevsub mb-10">
|
||||
"Stay Tuned, We're Building Excitement!"
|
||||
</div>
|
||||
<div>
|
||||
<img
|
||||
src="/asset-corporate-portal/media/under_development/under_development.png"
|
||||
class="img-fluid"
|
||||
alt="Your Brand"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
35
views/under_development/under_development_templ.go
Normal file
35
views/under_development/under_development_templ.go
Normal file
@@ -0,0 +1,35 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package under_development
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
func UnderDevelopment() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-center text-center flex-column mt-20\"><div class=\"text-primary underdev\">Site Under Development</div><div class=\"text-disabled underdevsub mb-10\">\"Stay Tuned, We're Building Excitement!\"\r</div><div><img src=\"/asset-corporate-portal/media/under_development/under_development.png\" class=\"img-fluid\" alt=\"Your Brand\"></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
67
views/xsample/coba.templ
Normal file
67
views/xsample/coba.templ
Normal file
@@ -0,0 +1,67 @@
|
||||
package xsample
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/table"
|
||||
)
|
||||
|
||||
templ Coba(title string) {
|
||||
<div>{ title }</div>
|
||||
@tablecomponent.Table([]string{"kode", "user group", "aksi"}, []string{"40%", "40%", "20%"}, tr(), pagination())
|
||||
}
|
||||
|
||||
templ CssCoba() {
|
||||
}
|
||||
|
||||
templ JsCoba() {
|
||||
}
|
||||
|
||||
templ tr() {
|
||||
<tr>
|
||||
<td>001</td>
|
||||
<td>Admin</td>
|
||||
<td>
|
||||
<div class="row px-5 d-flex justify-content-around">
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2">Edit</button>
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2">Hapus</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>002</td>
|
||||
<td>Tes</td>
|
||||
<td>
|
||||
<div class="row px-5 d-flex justify-content-around">
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2">Edit</button>
|
||||
<button type="button" class="col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2">Hapus</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
templ pagination() {
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap">
|
||||
<div class="d-flex flex-wrap py-2 mr-3">
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-double-arrow-back icon-xs"></i></a>
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-arrow-back icon-xs"></i></a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">...</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">23</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light btn-hover-primary active mr-2 my-1">24</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">25</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">26</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">27</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">28</a>
|
||||
<a href="#" class="btn btn-icon btn-sm border-0 btn-light mr-2 my-1">...</a>
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-arrow-next icon-xs"></i></a>
|
||||
<a href="#" class="btn btn-icon btn-sm btn-light mr-2 my-1"><i class="ki ki-bold-double-arrow-next icon-xs"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ ShowCoba(title string, cmp templ.Component, css templ.Component, js templ.Component, dataMenu []services.MasterMenu, dataUser models.User) {
|
||||
@layout.CorporateLayout(title, css, js, dataMenu, dataUser) {
|
||||
@cmp
|
||||
}
|
||||
}
|
||||
186
views/xsample/coba_templ.go
Normal file
186
views/xsample/coba_templ.go
Normal file
@@ -0,0 +1,186 @@
|
||||
// Code generated by templ - DO NOT EDIT.
|
||||
|
||||
// templ: version: v0.2.663
|
||||
package xsample
|
||||
|
||||
//lint:file-ignore SA4006 This context is only used if a nested component is present.
|
||||
|
||||
import "github.com/a-h/templ"
|
||||
import "context"
|
||||
import "io"
|
||||
import "bytes"
|
||||
|
||||
import (
|
||||
"github.com/emarifer/go-templ-project-structure/models"
|
||||
"github.com/emarifer/go-templ-project-structure/services"
|
||||
"github.com/emarifer/go-templ-project-structure/views/component/table"
|
||||
"github.com/emarifer/go-templ-project-structure/views/layout"
|
||||
)
|
||||
|
||||
func Coba(title string) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var1 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var1 == nil {
|
||||
templ_7745c5c3_Var1 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
var templ_7745c5c3_Var2 string
|
||||
templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(title)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\xsample\coba.templ`, Line: 11, Col: 13}
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2))
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
templ_7745c5c3_Err = tablecomponent.Table([]string{"kode", "user group", "aksi"}, []string{"40%", "40%", "20%"}, tr(), pagination()).Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func CssCoba() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var3 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var3 == nil {
|
||||
templ_7745c5c3_Var3 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func JsCoba() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var4 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var4 == nil {
|
||||
templ_7745c5c3_Var4 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func tr() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var5 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var5 == nil {
|
||||
templ_7745c5c3_Var5 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<tr><td>001</td><td>Admin</td><td><div class=\"row px-5 d-flex justify-content-around\"><button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2\">Edit</button> <button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2\">Hapus</button></div></td></tr><tr><td>002</td><td>Tes</td><td><div class=\"row px-5 d-flex justify-content-around\"><button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-tosca mb-2\">Edit</button> <button type=\"button\" class=\"col-12 col-sm-12 col-md-12 col-lg-5 col-xl-5 col-xxl-5 btn btn-light-danger mb-2\">Hapus</button></div></td></tr>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func pagination() templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var6 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var6 == nil {
|
||||
templ_7745c5c3_Var6 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<div class=\"d-flex justify-content-between align-items-center flex-wrap\"><div class=\"d-flex flex-wrap py-2 mr-3\"><a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-double-arrow-back icon-xs\"></i></a> <a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-arrow-back icon-xs\"></i></a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">...</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">23</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light btn-hover-primary active mr-2 my-1\">24</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">25</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">26</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">27</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">28</a> <a href=\"#\" class=\"btn btn-icon btn-sm border-0 btn-light mr-2 my-1\">...</a> <a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-arrow-next icon-xs\"></i></a> <a href=\"#\" class=\"btn btn-icon btn-sm btn-light mr-2 my-1\"><i class=\"ki ki-bold-double-arrow-next icon-xs\"></i></a></div></div>")
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
|
||||
func ShowCoba(title string, cmp templ.Component, css templ.Component, js templ.Component, dataMenu []services.MasterMenu, dataUser models.User) templ.Component {
|
||||
return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
ctx = templ.InitializeContext(ctx)
|
||||
templ_7745c5c3_Var7 := templ.GetChildren(ctx)
|
||||
if templ_7745c5c3_Var7 == nil {
|
||||
templ_7745c5c3_Var7 = templ.NopComponent
|
||||
}
|
||||
ctx = templ.ClearChildren(ctx)
|
||||
templ_7745c5c3_Var8 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
|
||||
templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
templ_7745c5c3_Buffer = templ.GetBuffer()
|
||||
defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
|
||||
}
|
||||
templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
templ_7745c5c3_Err = layout.CorporateLayout(title, css, js, dataMenu, dataUser).Render(templ.WithChildren(ctx, templ_7745c5c3_Var8), templ_7745c5c3_Buffer)
|
||||
if templ_7745c5c3_Err != nil {
|
||||
return templ_7745c5c3_Err
|
||||
}
|
||||
if !templ_7745c5c3_IsBuffer {
|
||||
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W)
|
||||
}
|
||||
return templ_7745c5c3_Err
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user