Zen
This commit is contained in:
parent
4e1f8d574b
commit
316d242297
|
|
@ -9,7 +9,7 @@ Application.get("/login", LoginPage);
|
|||
Application.get("/register", RegisterPage);
|
||||
|
||||
|
||||
///Application.post("/login", Login);
|
||||
Application.post("/login", PostDataProcess(), Login);
|
||||
Application.post("/register", PostDataProcess(), Register);
|
||||
|
||||
/**
|
||||
|
|
@ -18,11 +18,15 @@ Application.post("/register", PostDataProcess(), Register);
|
|||
*/
|
||||
async function LoginPage(request, response)
|
||||
{
|
||||
if(typeof request.session.authendicated == "boolean" && request.session.authendicated == true)
|
||||
{
|
||||
response.redirect(307,"/panel");
|
||||
}else{
|
||||
response.render("login");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
|
|
@ -39,15 +43,7 @@ async function RegisterPage(request, response)
|
|||
*/
|
||||
async function Register(request, response)
|
||||
{
|
||||
const schema = Joi.object({
|
||||
name: Joi.string().min(2).max(30).required().error(new Error('Ad zorunludur ve 2 ile 30 karakter arasında olmalıdır.')),
|
||||
surname: Joi.string().min(2).max(30).required().error(new Error('Soyad zorunludur ve 2 ile 30 karakter arasında olmalıdır.')),
|
||||
email: Joi.string().email().required().error(new Error('Geçerli bir e-posta adresi giriniz.')),
|
||||
password: Joi.string().min(6).max(20).required().error(new Error('Şifre zorunludur ve en az 6 karakter olmalıdır.')),
|
||||
passwordverif: Joi.any().equal(Joi.ref("password")).required().error(new Error('Şifreler eşleşmiyor.'))
|
||||
});
|
||||
|
||||
const {error} = schema.validate(request.body);
|
||||
const error = registerValidation(request.body);
|
||||
|
||||
if(error)
|
||||
{
|
||||
|
|
@ -80,12 +76,112 @@ async function Register(request, response)
|
|||
});
|
||||
}
|
||||
|
||||
request.session.authendicated = true;
|
||||
request.session.user_id = userid;
|
||||
request.session.user = await User.getUser(userid);
|
||||
await loginUser(request,userid);
|
||||
|
||||
return response.status(200).json({
|
||||
status: "success",
|
||||
message: "Kayıt işlemi başarılı, hesabınıza giriş yapabilirsiniz"
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
*/
|
||||
async function Login(request, response)
|
||||
{
|
||||
const error = loginValidation(request.body);
|
||||
|
||||
if(error)
|
||||
{
|
||||
return response.status(400).json({
|
||||
status: "fail",
|
||||
message: error.message
|
||||
});
|
||||
}
|
||||
|
||||
let findedUser = await User.checkUser(
|
||||
request.body.email,
|
||||
request.body.password
|
||||
);
|
||||
|
||||
if(findedUser == null)
|
||||
{
|
||||
return response.status(400).json({
|
||||
status: "fail",
|
||||
message: "E-posta adresiniz veya şifreniz hatalı. Lütfen bilgilerinizi kontrol edip tekrar deneyiniz."
|
||||
});
|
||||
}
|
||||
|
||||
await loginUser(request,findedUser.id);
|
||||
|
||||
return response.status(200).json({
|
||||
status: "success",
|
||||
message: "Kayıt işlemi başarılı, hesabınıza giriş yapabilirsiniz"
|
||||
});
|
||||
}
|
||||
|
||||
function registerValidation(body)
|
||||
{
|
||||
const schema = Joi.object({
|
||||
name: Joi.string()
|
||||
.min(2).max(30).required()
|
||||
.error(new Error('Ad zorunludur ve 2 ile 30 karakter arasında olmalıdır.')),
|
||||
surname: Joi.string()
|
||||
.min(2).max(30).required()
|
||||
.error(new Error('Soyad zorunludur ve 2 ile 30 karakter arasında olmalıdır.')),
|
||||
email: Joi.string()
|
||||
.email()
|
||||
.required()
|
||||
.error(new Error('Geçerli bir e-posta adresi giriniz.')),
|
||||
password: Joi.string()
|
||||
.min(6).max(20).required()
|
||||
.error(new Error('Şifre zorunludur ve en az 6 karakter olmalıdır.')),
|
||||
passwordverif: Joi.any()
|
||||
.equal(Joi.ref("password")).required()
|
||||
.error(new Error('Şifreler eşleşmiyor'))
|
||||
});
|
||||
|
||||
const {error} = schema.validate(body);
|
||||
return error;
|
||||
}
|
||||
|
||||
function loginValidation(body)
|
||||
{
|
||||
const schema = Joi.object({
|
||||
email: Joi.string()
|
||||
.email()
|
||||
.required()
|
||||
.error(new Error('Geçerli bir e-posta adresi giriniz.')),
|
||||
password: Joi.string()
|
||||
.min(6).max(20).required()
|
||||
.error(new Error('Şifre zorunludur ve en az 6 karakter olmalıdır.'))
|
||||
});
|
||||
const {error} = schema.validate(body);
|
||||
return error;
|
||||
}
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
*/
|
||||
async function loginUser(request,userId)
|
||||
{
|
||||
request.session.authendicated = true;
|
||||
request.session.user_id = userId;
|
||||
request.session.user = await User.getUser(userId);
|
||||
request.session.save();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
*/
|
||||
function MiddlewareAuth(request, response, next)
|
||||
{
|
||||
if(typeof request.session.authendicated == "boolean" && request.session.authendicated == true)
|
||||
{
|
||||
next()
|
||||
}else{
|
||||
response.redirect(307,"/login");
|
||||
}
|
||||
}
|
||||
|
||||
exports.MiddlewareAuth = MiddlewareAuth;
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
const {Application} = require("../core/server");
|
||||
const Joi = require("joi");
|
||||
const { PostDataProcess } = require("../core/postdata");
|
||||
const User = require("../database/user");
|
||||
const { MiddlewareAuth } = require("./auth");
|
||||
|
||||
|
||||
Application.get("/panel", MiddlewareAuth,PanelPage);
|
||||
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
*/
|
||||
async function PanelPage(request, response)
|
||||
{
|
||||
response.render("panel");
|
||||
}
|
||||
|
|
@ -3,10 +3,11 @@ const session = require('express-session');
|
|||
const {ConnectSessionKnexStore} = require('connect-session-knex');
|
||||
const {Application} = require("../core/server");
|
||||
|
||||
Application.set('trust proxy', 1);
|
||||
|
||||
const store = new ConnectSessionKnexStore({
|
||||
knex: DB,
|
||||
tablename: 'sessions',
|
||||
sidfieldname: 'sid',
|
||||
createtable: true,
|
||||
clearInterval: 1000 * 60 * 60 // Süresi dolmuş sessionları temizleme aralığı (1 saat)
|
||||
});
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ const DB = require("./connection");
|
|||
exports.createUser = createUser;
|
||||
exports.hasUser = hasUser;
|
||||
exports.getUser = getUser;
|
||||
exports.checkUser = checkUser;
|
||||
|
||||
async function createUser(
|
||||
name,
|
||||
|
|
@ -28,14 +29,27 @@ async function hasUser(email)
|
|||
let data = await DB.table("users")
|
||||
.select("id")
|
||||
.where("email",email)
|
||||
.whereNull("deleted_at")
|
||||
.first();
|
||||
return data != null;
|
||||
}
|
||||
async function checkUser(email,password)
|
||||
{
|
||||
password = sha256(password);
|
||||
let data = await DB.table("users")
|
||||
.select("id")
|
||||
.where("email",email)
|
||||
.where("password",password)
|
||||
.whereNull("deleted_at")
|
||||
.first();
|
||||
return data;
|
||||
}
|
||||
async function getUser(id)
|
||||
{
|
||||
return await DB.table("users")
|
||||
.where("id",id)
|
||||
.first();getUser
|
||||
.whereNull("deleted_at")
|
||||
.first();
|
||||
}
|
||||
|
||||
function sha256(key)
|
||||
|
|
|
|||
2
index.js
2
index.js
|
|
@ -5,5 +5,5 @@ require("./core/static");
|
|||
require("./database/session");
|
||||
|
||||
require("./controllers/auth");
|
||||
|
||||
require("./controllers/backend");
|
||||
require("./controllers/fallback");
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
function sendAjax(form)
|
||||
{
|
||||
blockui();
|
||||
let formData = new FormData(form);
|
||||
$.ajax({
|
||||
url: "/login",
|
||||
type: "POST",
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function(response) {
|
||||
ublockui();
|
||||
if(response.status == "success")
|
||||
{
|
||||
window.location = "/login";
|
||||
}else{
|
||||
$("#validationError").text(response.message);
|
||||
}
|
||||
},
|
||||
error: function(err) {
|
||||
ublockui();
|
||||
$("#validationError").text(err.responseJSON.message);
|
||||
},
|
||||
});
|
||||
return false;
|
||||
}
|
||||
function blockui()
|
||||
{
|
||||
$('.login-form-container').block({
|
||||
message: '<div class="loader-container-box"><div class="loader"></div></div>',
|
||||
//timeout: 13000,
|
||||
overlayCSS: {
|
||||
backgroundColor: 'rgba(var(--dark), 0.8)',
|
||||
opacity: 0.8,
|
||||
borderRadius: 'var(--app-border-radius)',
|
||||
cursor: 'wait'
|
||||
},
|
||||
css: {
|
||||
border: 0,
|
||||
padding: 0,
|
||||
backgroundColor: 'transparent'
|
||||
}
|
||||
});
|
||||
}
|
||||
function ublockui()
|
||||
{
|
||||
$('.login-form-container').unblock()
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
function sendAjax(form)
|
||||
{
|
||||
blockui();
|
||||
let formData = new FormData(form);
|
||||
$.ajax({
|
||||
url: "/register",
|
||||
type: "POST",
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function(response) {
|
||||
ublockui();
|
||||
if(response.status == "success")
|
||||
{
|
||||
window.location = "/login";
|
||||
}else{
|
||||
$("#validationError").text(response.message);
|
||||
}
|
||||
},
|
||||
error: function(err) {
|
||||
ublockui();
|
||||
$("#validationError").text(err.responseJSON.message);
|
||||
},
|
||||
});
|
||||
return false;
|
||||
}
|
||||
function blockui()
|
||||
{
|
||||
$('.login-form-container').block({
|
||||
message: '<div class="loader-container-box"><div class="loader"></div></div>',
|
||||
//timeout: 13000,
|
||||
overlayCSS: {
|
||||
backgroundColor: 'rgba(var(--dark), 0.8)',
|
||||
opacity: 0.8,
|
||||
borderRadius: 'var(--app-border-radius)',
|
||||
cursor: 'wait'
|
||||
},
|
||||
css: {
|
||||
border: 0,
|
||||
padding: 0,
|
||||
backgroundColor: 'transparent'
|
||||
}
|
||||
});
|
||||
}
|
||||
function ublockui()
|
||||
{
|
||||
$('.login-form-container').unblock()
|
||||
}
|
||||
|
|
@ -135,10 +135,6 @@ $contactListbox.on("click", function () {
|
|||
|
||||
function resize() {
|
||||
$nav.removeClass('semi-nav');
|
||||
if ($window.width() < 768) {
|
||||
} else if ($window.width() < 1199) {
|
||||
$nav.addClass('semi-nav');
|
||||
}
|
||||
}
|
||||
$(function () {
|
||||
resize();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<%-include("../partials/header.ejs") %>
|
||||
<%-include("../partials/authheader.ejs") %>
|
||||
<div class="error-container p-0">
|
||||
<div class="container">
|
||||
<div>
|
||||
|
|
@ -21,4 +21,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<%-include("../partials/footer.ejs") %>
|
||||
<%-include("../partials/authfooter.ejs") %>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<%-include("./partials/header.ejs") %>
|
||||
<%-include("./partials/authheader.ejs") %>
|
||||
<div class="">
|
||||
<main class="w-100 p-0">
|
||||
<div class="container-fluid">
|
||||
|
|
@ -11,20 +11,23 @@
|
|||
</a>
|
||||
</div>
|
||||
<div class="form_container">
|
||||
<form class="app-form" method="post" action="/login" enctype="multipart/form-data">
|
||||
<form class="app-form" method="post" action="/login" enctype="multipart/form-data" onsubmit="sendAjax(this);return false">
|
||||
<div class="mb-3 text-center">
|
||||
<h3>Hesabınıza Giriş yapın</h3>
|
||||
<p>
|
||||
EkoEtki: Doğadaki izinizi ölçen, çevresel farkındalığı puanlayan akıllı ekolojik karne sistemidir
|
||||
</p>
|
||||
</div>
|
||||
<div class="mt-1">
|
||||
<span class="text-danger" id="validationError"></span>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="emailId">E-Posta Adresiniz</label>
|
||||
<input class="form-control" type="email" id="emailId" autocomplete="email">
|
||||
<input class="form-control" type="email" id="emailId" name="email" autocomplete="email">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="password">Şifreniz</label>
|
||||
<input class="form-control" placeholder="Şifreniz" type="password" min="6" max="20" required name="password" autocomplete="current-password">
|
||||
<input class="form-control" placeholder="Şifreniz" type="password" name="password" min="6" max="20" required name="password" autocomplete="current-password">
|
||||
</div>
|
||||
<div>
|
||||
<button class="btn btn-primary w-100" type="submit">Giriş Yap</button>
|
||||
|
|
@ -38,4 +41,6 @@
|
|||
</div>
|
||||
</main>
|
||||
</div>
|
||||
<%-include("./partials/footer.ejs") %>
|
||||
<script src="/app/login.js"></script>
|
||||
<script src="/assets/vendor/block-ui/jquery.blockUI.js"></script>
|
||||
<%-include("./partials/authfooter.ejs") %>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<%-include("./partials/header.ejs") %>
|
||||
|
||||
<div class="app-wrapper default">
|
||||
<%-include("./partials/sidebar.ejs") %>
|
||||
<div class="app-content">
|
||||
<%-include("./partials/navbar.ejs") %>
|
||||
</div>
|
||||
<main>
|
||||
<h1>Merhaba</h1>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<%-include("./partials/footer.ejs") %>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
</div>
|
||||
<script src="/assets/vendor/bootstrap/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="tr">
|
||||
<head>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
<meta content="la-themes" name="author">
|
||||
<link href="/favicon.png" rel="icon" type="image/x-icon">
|
||||
<link href="/favicon.png" rel="shortcut icon" type="image/x-icon">
|
||||
<title>Ekoetki</title>
|
||||
<link href="../assets/vendor/fontawesome/css/all.css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com" rel="preconnect">
|
||||
<link crossorigin href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap" rel="stylesheet">
|
||||
<link href="/assets/vendor/tabler-icons/tabler-icons.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/vendor/bootstrap/bootstrap.min.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/style.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/responsive.css" rel="stylesheet" type="text/css">
|
||||
<script src="/assets/js/jquery-3.6.3.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="app-wrapper d-block">
|
||||
|
|
@ -1,4 +1,18 @@
|
|||
</div>
|
||||
<div class="go-top">
|
||||
<span class="progress-value">
|
||||
<i class="ti ti-arrow-up"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div id="customizer"></div>
|
||||
<script src="/assets/vendor/datatable/jquery-3.5.1.js"></script>
|
||||
<script src="/assets/vendor/datatable/jquery.dataTables.min.js"></script>
|
||||
<script src="/assets/vendor/phosphor/phosphor.js"></script>
|
||||
<script src="/assets/vendor/bootstrap/bootstrap.bundle.min.js"></script>
|
||||
<script src="/assets/vendor/phosphor/phosphor.js"></script>
|
||||
<script src="/assets/vendor/simplebar/simplebar.js"></script>
|
||||
<script src="/assets/js/data_table.js"></script>
|
||||
<script src="/assets/js/script.js"></script>
|
||||
<script src="/assets/js/customizer.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -17,6 +17,12 @@
|
|||
<link href="/assets/css/style.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/responsive.css" rel="stylesheet" type="text/css">
|
||||
<script src="/assets/js/jquery-3.6.3.min.js"></script>
|
||||
<link href="/assets/vendor/simplebar/simplebar.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/style.css" rel="stylesheet" type="text/css">
|
||||
<link href="/assets/css/responsive.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="app-wrapper d-block">
|
||||
<div class="app-wrapper">
|
||||
<div class="loader-wrapper">
|
||||
<div class="loader_24"></div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,473 @@
|
|||
<header class="header-main">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-8 col-sm-6 d-flex align-items-center header-left p-0">
|
||||
<span class="header-toggle ">
|
||||
<i class="ph ph-squares-four"></i>
|
||||
</span>
|
||||
|
||||
<div class="header-searchbar w-100">
|
||||
<form action="data_table.html#" class="mx-sm-3 app-form app-icon-form ">
|
||||
<div class="position-relative">
|
||||
<input aria-label="Search" class="form-control" placeholder="Search..." type="search">
|
||||
<i class="ti ti-search text-dark"></i>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-4 col-sm-6 d-flex align-items-center justify-content-end header-right p-0">
|
||||
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="header-language">
|
||||
<div class="flex-shrink-0 dropdown" id="lang_selector">
|
||||
<a aria-expanded="false" class="d-block head-icon ps-0" data-bs-toggle="dropdown" href="data_table.html#">
|
||||
<div class="lang-flag lang-en ">
|
||||
<span class="flag rounded-circle overflow-hidden">
|
||||
<i class="flag-icon flag-icon-usa flag-icon-squared rounded-circle f-s-20"></i>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
<ul class="dropdown-menu language-dropdown header-card border-0">
|
||||
<li class="lang lang-en selected dropdown-item p-2" data-bs-placement="top" data-bs-toggle="tooltip" title="US">
|
||||
<span class="d-flex align-items-center">
|
||||
<i class="flag-icon flag-icon-usa flag-icon-squared rounded-circle f-s-20"></i>
|
||||
<span class="ps-2">US</span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="lang lang-pt dropdown-item p-2" title="FR">
|
||||
<span class="d-flex align-items-center">
|
||||
<i class="flag-icon flag-icon-fra flag-icon-squared rounded-circle f-s-20"></i>
|
||||
<span class="ps-2">France</span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="lang lang-es dropdown-item p-2" title="UK">
|
||||
<span class="d-flex align-items-center">
|
||||
<i class="flag-icon flag-icon-gbr flag-icon-squared rounded-circle f-s-20"></i>
|
||||
<span class="ps-2">UK</span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="lang lang-es dropdown-item p-2" title="IT">
|
||||
<span class="d-flex align-items-center">
|
||||
<i class="flag-icon flag-icon-ita flag-icon-squared rounded-circle f-s-20"></i>
|
||||
<span class="ps-2">Italy</span>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="header-apps">
|
||||
<a aria-controls="appscanvasRights" class="d-block head-icon bg-light-dark rounded-circle f-s-22 p-2" data-bs-target="#appscanvasRights" data-bs-toggle="offcanvas" href="data_table.html#" role="button">
|
||||
<i class="ph ph-bounding-box"></i>
|
||||
|
||||
</a>
|
||||
|
||||
<div aria-labelledby="appscanvasRightsLabel" class="offcanvas offcanvas-end header-apps-canvas" id="appscanvasRights" tabindex="-1">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="appscanvasRightsLabel">Shortcut</h5>
|
||||
<div class="app-dropdown flex-shrink-0">
|
||||
<a aria-expanded="false" class=" p-1" data-bs-auto-close="outside" data-bs-toggle="dropdown" href="data_table.html#" role="button">
|
||||
<i class="ph-bold ph-faders-horizontal f-s-20"></i>
|
||||
|
||||
|
||||
</a>
|
||||
<ul class="dropdown-menu mb-3">
|
||||
<li class="dropdown-item">
|
||||
<a href="setting.html" target="_blank">
|
||||
Privacy Settings
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<a href="setting.html" target="_blank">
|
||||
Account Settings
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<a href="setting.html" target="_blank">
|
||||
Accessibility
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-divider"></li>
|
||||
<li class="dropdown-item border-0">
|
||||
<a aria-expanded="false" data-bs-toggle="dropdown" href="data_table.html#" role="button">
|
||||
More Settings
|
||||
</a>
|
||||
<ul class="dropdown-menu sub-menu">
|
||||
<li class="dropdown-item">
|
||||
<a href="setting.html" target="_blank">
|
||||
Backup and Restore
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<a href="setting.html" target="_blank">
|
||||
<span>Data Usage</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<a href="setting.html" target="_blank">
|
||||
<span>Theme</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item d-flex align-items-center justify-content-between">
|
||||
<a href="data_table.html#">
|
||||
<p class="mb-0">Notification</p>
|
||||
</a>
|
||||
<div class="flex-shrink-0">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input form-check-primary" id="notificationSwitch" type="checkbox">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="offcanvas-body app-scroll">
|
||||
<div class="row row-cols-3 g-2">
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-primary w-100 rounded-3 py-3 px-2 " href="product.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-shopping-bag-open f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">E-shop</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-danger w-100 rounded-3 py-3 px-2 " href="email.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-envelope f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Email</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-success w-100 rounded-3 py-3 px-2 " href="chat.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-chat-circle-text f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Chat</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-warning w-100 rounded-3 py-3 px-2 " href="project_app.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-projector-screen-chart f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Project</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-info w-100 rounded-3 py-3 px-2 " href="invoice.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-scroll f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Invoice</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-dark w-100 rounded-3 py-3 px-2 " href="blog.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-notebook f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Blog</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-danger w-100 rounded-3 py-3 px-2 " href="calendar.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-calendar f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Calender</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-warning w-100 rounded-3 py-3 px-2 " href="file_manager.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-folder-open f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark txt-ellipsis-1">File
|
||||
Manager</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-primary w-100 rounded-3 py-3 px-2 " href="gallery.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-google-photos-logo f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Gallery</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-success w-100 rounded-3 py-3 px-2 " href="profile.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-users-three f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Profile</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="text-light-secondary w-100 rounded-3 py-3 px-2 " href="kanban_board.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-selection-foreground f-s-30"></i>
|
||||
</span>
|
||||
<p class="mb-0 f-w-500 text-dark">Task Board</p>
|
||||
</a>
|
||||
</div>
|
||||
<div class="d-flex-center text-center">
|
||||
<a class="d-flex-center text-light-secondary w-100 h-100 rounded-3 p-2 dashed-1-secondary" href="kanban_board.html" target="_blank">
|
||||
<span>
|
||||
<i class="ph-light ph-plus f-s-30"></i>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="header-cart">
|
||||
<a aria-controls="cartcanvasRight" class="d-block head-icon position-relative bg-light-dark rounded-circle f-s-22 p-2" data-bs-target="#cartcanvasRight" data-bs-toggle="offcanvas" href="data_table.html#" role="button">
|
||||
<i class="ph ph-shopping-cart-simple"></i>
|
||||
<span class="position-absolute translate-middle badge rounded-pill bg-danger badge-notification">4</span>
|
||||
</a>
|
||||
<div aria-labelledby="cartcanvasRightLabel" class="offcanvas offcanvas-end header-cart-canvas" id="cartcanvasRight" tabindex="-1">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="cartcanvasRightLabel">Cart</h5>
|
||||
<button aria-label="Close" class="btn-close" data-bs-dismiss="offcanvas" type="button"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body app-scroll p-0">
|
||||
<div class="head-container">
|
||||
<div class="head-box">
|
||||
<span class="b-1-light bg-light-primary h-45 w-45 d-flex-center b-r-6">
|
||||
<img alt="cart" class="img-fluid p-1" src="../assets/images/header/cart/01.png">
|
||||
</span>
|
||||
|
||||
<div class="flex-grow-1 ms-2">
|
||||
<a class="mb-0 f-w-600 f-s-16" href="product_details.html" target="_blank"> Backpacks (3<i class="ti ti-star-filled text-warning f-s-12"></i>)
|
||||
</a>
|
||||
<div>
|
||||
<span class="text-dark"><span class="text-secondary f-w-400">size</span> : M</span>
|
||||
<span class="text-dark ms-2"><span class="text-secondary f-w-400">color</span> :Pink</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<p class="text-muted f-w-500 mb-0">$600.50 x 1</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="head-box">
|
||||
<span class="b-1-light bg-light-primary h-45 w-45 d-flex-center b-r-6">
|
||||
<img alt="cart" class="img-fluid p-1" src="../assets/images/header/cart/05.png">
|
||||
</span>
|
||||
<div class="flex-grow-1 ms-2">
|
||||
<a class="mb-0 f-w-600 f-s-16" href="product_details.html" target="_blank"> Women's Watch (4<i class="ti ti-star-filled text-warning f-s-12"></i>)</a>
|
||||
<div>
|
||||
<span class="text-dark"><span class="text-secondary f-w-400">size</span> : S</span>
|
||||
<span class="text-dark ms-2"><span class="text-secondary f-w-400">color</span> :Rose Gold</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<p class="text-muted f-w-500 mb-0">$519.10 x 2</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="head-box">
|
||||
<span class="b-1-light bg-light-primary h-45 w-45 d-flex-center b-r-6">
|
||||
<img alt="cart" class="img-fluid p-1" src="../assets/images/header/cart/04.png">
|
||||
</span>
|
||||
<div class="flex-grow-1 ms-2">
|
||||
<a class="mb-0 f-w-600 f-s-16" href="product_details.html" target="_blank">Sandals (5 <i class="ti ti-star-filled text-warning f-s-12"></i>)</a>
|
||||
<div>
|
||||
<span class="text-dark"><span class="text-secondary f-w-400">size</span> : 8</span>
|
||||
<span class="text-dark ms-2"><span class="text-secondary f-w-400">color</span> :White</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<p class="text-muted f-w-500 mb-0">$390 x 2</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="head-box ">
|
||||
<span class="b-1-light bg-light-primary h-45 w-45 d-flex-center b-r-6">
|
||||
<img alt="cart" class="img-fluid p-1" src="../assets/images/header/cart/03.png">
|
||||
</span>
|
||||
<div class="flex-grow-1 ms-2">
|
||||
<a class="mb-0 f-w-600 f-s-16" href="product_details.html" target="_blank"> Jackets (3<i class="ti ti-star-filled text-warning f-s-12"></i>)</a>
|
||||
<div>
|
||||
<span class="text-dark"><span class="text-secondary f-w-400">size</span> : XL</span>
|
||||
<span class="text-dark ms-2"><span class="text-secondary f-w-400">color</span> :Blue</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<p class="text-muted f-w-500 mb-0">$300.00 x 2</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="head-box ">
|
||||
<span class="b-1-light bg-light-primary h-45 w-45 d-flex-center b-r-6">
|
||||
<img alt="cart" class="img-fluid p-1" src="../assets/images/header/cart/02.png">
|
||||
</span>
|
||||
<div class="flex-grow-1 ms-2">
|
||||
<a class="mb-0 f-w-600 f-s-16" href="product_details.html" target="_blank"> Shoes (3<i class="ti ti-star-filled text-warning f-s-12"></i>)</a>
|
||||
<div>
|
||||
<span class="text-dark"><span class="text-secondary f-w-400">size</span> : 9</span>
|
||||
<span class="text-dark ms-2"><span class="text-secondary f-w-400">color</span> :White</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<p class="text-muted f-w-500 mb-0">$450.00 x 1</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hidden-massage py-4 px-3">
|
||||
|
||||
<div>
|
||||
<i class="ph-duotone ph-shopping-bag-open f-s-50 text-primary"></i>
|
||||
<h6 class="mb-0">Your Cart is Empty</h6>
|
||||
<p class="text-secondary mb-0">Add some items :)</p>
|
||||
<a class="btn btn-light-primary btn-xs mt-2" href="product_details.html">Shop
|
||||
Now</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="offcanvas-footer">
|
||||
<div class="head-box-footer p-3">
|
||||
<div class="mb-4">
|
||||
<h6 class="text-muted f-w-600">Total <span class="float-end text-primary">$3,468.00</span></h6>
|
||||
</div>
|
||||
<div class="header-cart-btn">
|
||||
<a class="btn btn-primary" href="cart.html" role="button" target="_blank">
|
||||
<i class="ti ti-eye"></i> View Cart</a>
|
||||
<a class="btn btn-success" href="checkout.html" role="button" target="_blank">
|
||||
Checkout <i class="ti ti-shopping-cart"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="header-dark">
|
||||
<div class="sun-logo head-icon bg-light-dark rounded-circle f-s-22 p-2">
|
||||
<i class="ph ph-moon-stars"></i>
|
||||
</div>
|
||||
<div class="moon-logo head-icon bg-light-dark rounded-circle f-s-22 p-2">
|
||||
<i class="ph ph-sun-dim"></i>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="header-notification">
|
||||
<a aria-controls="notificationcanvasRight" class="d-block head-icon position-relative bg-light-dark rounded-circle f-s-22 p-2" data-bs-target="#notificationcanvasRight" data-bs-toggle="offcanvas" href="data_table.html#" role="button">
|
||||
<i class="ph ph-bell"></i>
|
||||
<span class="position-absolute translate-middle p-1 bg-primary border border-light rounded-circle animate__animated animate__fadeIn animate__infinite animate__slower"></span>
|
||||
</a>
|
||||
<div aria-labelledby="notificationcanvasRightLabel" class="offcanvas offcanvas-end header-notification-canvas" id="notificationcanvasRight" tabindex="-1">
|
||||
<div class="offcanvas-header">
|
||||
<h5 class="offcanvas-title" id="notificationcanvasRightLabel">
|
||||
Notification</h5>
|
||||
<button aria-label="Close" class="btn-close" data-bs-dismiss="offcanvas" type="button"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body app-scroll p-0">
|
||||
<div class="head-container">
|
||||
<div class="notification-message head-box">
|
||||
|
||||
<div class="message-content-box flex-grow-1 pe-2">
|
||||
|
||||
<a class="f-s-15 text-dark mb-0" href="read_email.html"><span class="f-w-500 text-dark">Gene Hart</span> wants to
|
||||
edit <span class="f-w-500 text-dark">Report.doc</span></a>
|
||||
<div>
|
||||
<a class="d-inline-block f-w-500 text-success me-1" href="data_table.html#">Approve</a>
|
||||
<a class="d-inline-block f-w-500 text-danger" href="data_table.html#">Deny</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<div>
|
||||
<span class="badge text-light-primary"> sep 23 </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="notification-message head-box">
|
||||
|
||||
<div class="message-content-box flex-grow-1 pe-2">
|
||||
<a class="f-s-15 text-dark mb-0" href="read_email.html">Hey
|
||||
<span class="f-w-500 text-dark">Emery McKenzie</span>,
|
||||
get ready: Your order from <span class="f-w-500 text-dark">@Shopper.com</span></a>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<div>
|
||||
<span class="badge text-light-primary"> sep 23 </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="notification-message head-box">
|
||||
<div class="message-content-box flex-grow-1 pe-2">
|
||||
<a class="f-s-15 text-dark mb-0" href="read_email.html"><span class="f-w-500 text-dark">Simon Young</span> shared
|
||||
a file called <span class="f-w-500 text-dark">Dropdown.pdf</span></a>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<div>
|
||||
<span class="badge text-light-primary"> 30 min</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="notification-message head-box">
|
||||
<div class="message-content-box flex-grow-1 pe-2">
|
||||
<a class="f-s-15 text-dark mb-0" href="read_email.html"><span class="f-w-500 text-dark">Becky G. Hayes</span> has
|
||||
added a comment to <span class="f-w-500 text-dark">Final_Report.pdf</span></a>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<div>
|
||||
<span class="badge text-light-primary"> 45 min</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="notification-message head-box">
|
||||
<div class="message-content-box flex-grow-1 pe-2">
|
||||
<a class="f-s-15 text-dark mb-0 " href="read_email.html"><span class="f-w-600 text-dark">@Romaine</span>
|
||||
invited you to a meeting
|
||||
</a>
|
||||
<div>
|
||||
<a class="d-inline-block f-w-500 text-success me-1" href="data_table.html#">Join</a>
|
||||
<a class="d-inline-block f-w-500 text-danger" href="data_table.html#">Decline</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="text-end">
|
||||
<i class="ph ph-trash f-s-18 text-danger close-btn"></i>
|
||||
<div>
|
||||
<span class="badge text-light-primary"> 1 hour ago </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hidden-massage py-4 px-3">
|
||||
<div>
|
||||
<i class="ph-duotone ph-bell-ringing f-s-50 text-primary"></i>
|
||||
</div>
|
||||
<div>
|
||||
<h6 class="mb-0">Notification Not Found</h6>
|
||||
<p class="text-dark">When you have any notifications added
|
||||
here,will
|
||||
appear here.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
|
@ -0,0 +1,498 @@
|
|||
<nav>
|
||||
<div class="app-logo">
|
||||
<a class="logo d-inline-block" href="index.html">
|
||||
<img alt="#" src="../assets/images/logo/1.png">
|
||||
</a>
|
||||
|
||||
<span class="bg-light-primary toggle-semi-nav d-flex-center">
|
||||
<i class="ti ti-chevron-right"></i>
|
||||
</span>
|
||||
|
||||
<div class="d-flex align-items-center nav-profile p-3">
|
||||
<span class="h-45 w-45 d-flex-center b-r-10 position-relative bg-danger m-auto">
|
||||
<img alt="avatar" class="img-fluid b-r-10" src="../assets/images/avatar/woman.jpg">
|
||||
<span class="position-absolute top-0 end-0 p-1 bg-success border border-light rounded-circle"></span>
|
||||
</span>
|
||||
<div class="flex-grow-1 ps-2">
|
||||
<h6 class="text-primary mb-0"> Ninfa Monaldo</h6>
|
||||
<p class="text-muted f-s-12 mb-0">Web Developer</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="dropdown profile-menu-dropdown">
|
||||
<a aria-expanded="false" data-bs-auto-close="true" data-bs-placement="top" data-bs-toggle="dropdown"
|
||||
role="button">
|
||||
<i class="ti ti-settings fs-5"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="dropdown-item">
|
||||
<a class="f-w-500" href="profile.html" target="_blank">
|
||||
<i class="ph-duotone ph-user-circle pe-1 f-s-20"></i> Profile Details
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<a class="f-w-500" href="setting.html" target="_blank">
|
||||
<i class="ph-duotone ph-gear pe-1 f-s-20"></i> Settings
|
||||
</a>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<div>
|
||||
<a class="f-w-500" href="data_table.html#">
|
||||
<i class="ph-duotone ph-detective pe-1 f-s-20"></i> Incognito
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex-shrink-0">
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input form-check-primary" id="incognitoSwitch"
|
||||
type="checkbox">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="dropdown-item">
|
||||
<a class="mb-0 text-secondary f-w-500" href="sign_up.html" target="_blank">
|
||||
<i class="ph-bold ph-plus pe-1 f-s-20"></i> Add account
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="app-divider-v dotted py-1"></li>
|
||||
|
||||
<li class="dropdown-item">
|
||||
<a class="mb-0 text-danger" href="sign_in.html" target="_blank">
|
||||
<i class="ph-duotone ph-sign-out pe-1 f-s-20"></i> Log Out
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-nav" id="app-simple-bar">
|
||||
<ul class="main-nav p-0 mt-2">
|
||||
<li class="menu-title">
|
||||
<span>Dashboard</span>
|
||||
</li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#dashboard">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#home"></use>
|
||||
</svg>
|
||||
dashboard
|
||||
<span class="badge bg-danger badge-dashboard badge-notification ms-2">New</span>
|
||||
|
||||
</a>
|
||||
<ul class="collapse" id="dashboard">
|
||||
<li><a href="index.html">Ecommerce</a></li>
|
||||
<li><a href="project_dashboard.html">Project</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#apps">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#stack"></use>
|
||||
</svg>
|
||||
Apps
|
||||
</a>
|
||||
<ul class="collapse" id="apps">
|
||||
<li><a href="calendar.html">Calender</a></li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#Profile-page">
|
||||
Profile
|
||||
</a>
|
||||
<ul class="collapse" id="Profile-page">
|
||||
<li><a href="profile.html">Profile</a></li>
|
||||
<li><a href="setting.html">Setting</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#projects-page">
|
||||
Projects Page
|
||||
</a>
|
||||
<ul class="collapse" id="projects-page">
|
||||
<li><a href="project_app.html">projects</a></li>
|
||||
<li><a href="project_details.html">projects Details</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="to_do.html">To-Do</a></li>
|
||||
<li><a href="team.html">Team</a></li>
|
||||
<li><a href="api.html">API</a></li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#ticket-page">
|
||||
Ticket
|
||||
</a>
|
||||
<ul class="collapse" id="ticket-page">
|
||||
<li><a href="ticket.html">Ticket</a></li>
|
||||
<li><a href="ticket_details.html">Ticket Details</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#email-page">
|
||||
Email Page
|
||||
</a>
|
||||
<ul class="collapse" id="email-page">
|
||||
<li><a href="email.html"> Email</a></li>
|
||||
<li><a href="read_email.html">Read Email</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#e-shop">
|
||||
E-shop
|
||||
</a>
|
||||
<ul class="collapse" id="e-shop">
|
||||
<li><a href="cart.html">Cart</a></li>
|
||||
<li><a href="product.html">Product</a></li>
|
||||
<li><a href="add_product.html">Add Product</a></li>
|
||||
<li><a href="product_details.html">Product-Details</a></li>
|
||||
<li><a href="product_list.html">Product list</a></li>
|
||||
<li><a href="orders.html">Orders</a></li>
|
||||
<li><a href="orders_details.html">Orders Details</a></li>
|
||||
<li><a href="orders_list.html">Orders List</a></li>
|
||||
<li><a href="checkout.html">Check out</a></li>
|
||||
<li><a href="wishlist.html">Wishlist</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="invoice.html">Invoice</a></li>
|
||||
<li><a href="chat.html">Chat</a></li>
|
||||
<li><a href="file_manager.html">File manager</a></li>
|
||||
<li><a href="bookmark.html">Bookmark</a></li>
|
||||
<li><a href="kanban_board.html">Kanban board</a></li>
|
||||
<li><a href="timeline.html">Timeline</a></li>
|
||||
<li><a href="faq.html">FAQS</a></li>
|
||||
<li><a href="pricing.html">Pricing</a></li>
|
||||
<li><a href="gallery.html">Gallery</a></li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#blog-page">
|
||||
Blog Page
|
||||
</a>
|
||||
<ul class="collapse" id="blog-page">
|
||||
<li><a href="blog.html">Blog</a></li>
|
||||
<li><a href="blog_read_more.html">Blog Details</a></li>
|
||||
<li><a href="add_blog.html">Add Blog</a></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="no-sub">
|
||||
<a href="widget.html">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#squares"></use>
|
||||
</svg>
|
||||
Widgets
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="menu-title"><span>Component</span></li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#ui-kits">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#briefcase"></use>
|
||||
</svg>
|
||||
UI kits
|
||||
</a>
|
||||
<ul class="collapse" id="ui-kits">
|
||||
<li><a href="cheatsheet.html">Cheatsheet</a></li>
|
||||
<li><a href="alert.html">Alert</a></li>
|
||||
<li><a href="badges.html">Badges</a></li>
|
||||
<li><a href="buttons.html">Buttons</a></li>
|
||||
<li><a href="cards.html">Cards</a></li>
|
||||
<li><a href="dropdown.html">Dropdown</a></li>
|
||||
<li><a href="grid.html">Grid</a></li>
|
||||
<li><a href="avatar.html">Avatar</a></li>
|
||||
<li><a href="tabs.html">Tabs</a></li>
|
||||
<li><a href="accordions.html">Accordions</a></li>
|
||||
<li><a href="progress.html">Progress</a></li>
|
||||
<li><a href="notifications.html">Notifications</a></li>
|
||||
<li><a href="list.html">Lists</a></li>
|
||||
<li><a href="helper_classes.html">Helper Classes</a></li>
|
||||
<li><a href="background.html">Background</a></li>
|
||||
<li><a href="divider.html">Divider</a></li>
|
||||
<li><a href="ribbons.html">Ribbons</a></li>
|
||||
<li><a href="editor.html">Editor </a></li>
|
||||
<li><a href="collapse.html">Collapse</a></li>
|
||||
<li><a href="footer-page.html">Footer</a></li>
|
||||
<li><a href="shadow.html">Shadow</a></li>
|
||||
<li><a href="wrapper.html">Wrapper</a></li>
|
||||
<li><a href="bullet.html">Bullet</a></li>
|
||||
<li><a href="placeholder.html">Placeholder</a></li>
|
||||
<li><a href="alignment.html">Alignment Thing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#advance-ui">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#briefcase-advance"></use>
|
||||
</svg>
|
||||
Advance UI
|
||||
<span class=" badge rounded-pill bg-warning badge-notification ms-2">
|
||||
12+
|
||||
<span class="visually-hidden">unread messages</span>
|
||||
</span>
|
||||
</a>
|
||||
<ul class="collapse" id="advance-ui">
|
||||
<li><a href="modals.html">Modals</a></li>
|
||||
<li><a href="offcanvas.html">Offcanvas Toggle</a></li>
|
||||
<li><a href="sweetalert.html">Sweat Alert</a></li>
|
||||
<li><a href="scrollbar.html">Scrollbar</a></li>
|
||||
<li><a href="spinners.html">Spinners</a></li>
|
||||
<li><a href="animation.html">Animation</a></li>
|
||||
<li><a href="video_embed.html">Video Embed</a></li>
|
||||
<li><a href="tour.html">Tour</a></li>
|
||||
<li><a href="slick.html">Slider</a></li>
|
||||
<li><a href="bootstrap_slider.html">Bootstrap Slider</a></li>
|
||||
<li><a href="scrollpy.html">Scrollpy</a></li>
|
||||
<li><a href="tooltips_popovers.html">Tooltip & Popovers</a></li>
|
||||
<li><a href="ratings.html">Rating</a></li>
|
||||
<li><a href="prismjs.html">Prismjs</a></li>
|
||||
<li><a href="count_down.html">Count Down</a></li>
|
||||
<li><a href="count_up.html"> Count up </a></li>
|
||||
<li><a href="draggable.html">Draggable</a></li>
|
||||
<li><a href="tree-view.html">Tree View</a></li>
|
||||
<li><a href="block_ui.html">Block Ui </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#icons">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#gift"></use>
|
||||
</svg>
|
||||
Icons
|
||||
</a>
|
||||
<ul class="collapse" id="icons">
|
||||
<li><a href="fontawesome.html">Fontawesome</a></li>
|
||||
<li><a href="flag_icons.html">Flag</a></li>
|
||||
<li><a href="tabler-icons.html">Tabler</a></li>
|
||||
<li><a href="weather_icon.html">Weather</a></li>
|
||||
<li><a href="animated_icon.html">Animated</a></li>
|
||||
<li><a href="iconoir_icon.html">Iconoir</a></li>
|
||||
<li><a href="phosphor.html">Phosphor</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="no-sub">
|
||||
<a href="misc.html">
|
||||
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#rectangle"></use>
|
||||
</svg>
|
||||
Misc
|
||||
</a>
|
||||
</li>
|
||||
<li class="menu-title"><span>Map & Charts </span></li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#maps">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#location"></use>
|
||||
</svg>
|
||||
Map
|
||||
</a>
|
||||
<ul class="collapse" id="maps">
|
||||
<li><a href="google-map.html">Google Maps</a></li>
|
||||
<li><a href="leaflet-map.html">Leaflet map</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#chart">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#chart"></use>
|
||||
</svg>
|
||||
Chart
|
||||
</a>
|
||||
<ul class="collapse" id="chart">
|
||||
<li><a href="chart_js.html">Chart js</a></li>
|
||||
|
||||
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#apexcharts-page">
|
||||
Apexcharts
|
||||
</a>
|
||||
<ul class="collapse" id="apexcharts-page">
|
||||
<li><a href="line.html">Line</a></li>
|
||||
<li><a href="area_charts.html">Area</a></li>
|
||||
<li><a href="column.html">Column</a></li>
|
||||
<li><a href="bar.html">Bar</a></li>
|
||||
<li><a href="mixed.html">Mixed</a></li>
|
||||
<li><a href="timeline_range_charts.html">Timeline & Range-Bars</a></li>
|
||||
<li><a href="candlestick_charts.html">Candlestick</a></li>
|
||||
<li><a href="boxplot.html">Boxplot</a></li>
|
||||
<li><a href="bubble.html">Bubble</a></li>
|
||||
<li><a href="scatter.html">Scatter</a></li>
|
||||
<li><a href="heatmap.html">Heatmap</a></li>
|
||||
<li><a href="treemap.html">Treemap</a></li>
|
||||
<li><a href="pie_charts.html">Pie</a></li>
|
||||
<li><a href="radial_bar.html">Radial bar</a></li>
|
||||
<li><a href="radar_chart.html">Radar</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="menu-title"><span>Table & forms </span></li>
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#table">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#table"></use>
|
||||
</svg>
|
||||
Table
|
||||
</a>
|
||||
<ul class="collapse" id="table">
|
||||
<li><a href="basic_table.html">BasicTable</a></li>
|
||||
<li><a href="data_table.html">Data Table</a></li>
|
||||
<li><a href="list_table.html">List Js</a></li>
|
||||
<li><a href="advance_table.html">Advance Table</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#forms">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#wallet"></use>
|
||||
</svg>
|
||||
Forms elements
|
||||
</a>
|
||||
<ul class="collapse" id="forms">
|
||||
<li><a href="form_validation.html">Form Validation</a></li>
|
||||
<li><a href="base_inputs.html">Base Input</a></li>
|
||||
<li><a href="checkbox_radio.html">Checkbox & Radio</a></li>
|
||||
<li><a href="input_groups.html">Input Groups</a></li>
|
||||
<li><a href="input_masks.html">Input Masks</a></li>
|
||||
<li><a href="floating_labels.html">Floating Labels</a></li>
|
||||
<li><a href="date_picker.html">Datetimepicker</a></li>
|
||||
<li><a href="touch_spin.html">Touch spin</a></li>
|
||||
<li><a href="select.html">Select2</a></li>
|
||||
<li><a href="switch.html">Switch</a></li>
|
||||
<li><a href="range_slider.html">Range Slider</a></li>
|
||||
<li><a href="typeahead.html">Typeahead</a></li>
|
||||
<li><a href="textarea.html">Textarea</a></li>
|
||||
<li><a href="clipboard.html">Clipboard</a></li>
|
||||
<li><a href="file_upload.html">File Upload</a></li>
|
||||
<li><a href="dual_list_boxes.html">Dual List Boxes</a></li>
|
||||
<li><a href="default_forms.html">Default Forms</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#ready_to_use">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#newspaper"></use>
|
||||
</svg>
|
||||
Ready to use
|
||||
<span class="badge text-bg-success badge-notification ms-2">2</span>
|
||||
</a>
|
||||
<ul class="collapse" id="ready_to_use">
|
||||
<li><a href="form_wizards.html">Form wizards</a></li>
|
||||
<li><a href="form_wizard_1.html">Form wizards 1</a></li>
|
||||
<li><a href="form_wizard_2.html">Form wizards 2</a></li>
|
||||
<li><a href="ready_to_use_form.html">Ready To Use Form</a></li>
|
||||
<li><a href="ready_to_use_table.html">Ready To Use Tables</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="menu-title"><span>Pages</span></li>
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#auth_pages">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#window"></use>
|
||||
</svg>
|
||||
Auth Pages
|
||||
</a>
|
||||
<ul class="collapse" id="auth_pages">
|
||||
<li><a href="sign_in.html">Sign In</a></li>
|
||||
<li><a href="sign_in_1.html">Sign In with Bg-image</a></li>
|
||||
<li><a href="sign_up.html">Sign Up</a></li>
|
||||
<li><a href="sign_up_1.html">Sign Up with Bg-image</a></li>
|
||||
<li><a href="password_reset.html">Password Reset</a></li>
|
||||
<li><a href="password_reset_1.html">Password Reset with Bg-image</a></li>
|
||||
<li><a href="password_create.html">Password Create</a></li>
|
||||
<li><a href="password_create_1.html">Password Create with Bg-image</a></li>
|
||||
<li><a href="lock_screen.html">Lock Screen</a></li>
|
||||
<li><a href="lock_screen_1.html">Lock Screen with Bg-image</a></li>
|
||||
<li><a href="two_step_verification.html">Two-Step Verification</a></li>
|
||||
<li><a href="two_step_verification_1.html">Two-Step Verification with Bg-image</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#error_pages">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#exclamation-circle"></use>
|
||||
</svg>
|
||||
Error Pages
|
||||
</a>
|
||||
<ul class="collapse" id="error_pages">
|
||||
<li><a href="error_400.html">Bad Request </a></li>
|
||||
<li><a href="error_403.html">Forbidden </a></li>
|
||||
<li><a href="error_404.html">Not Found</a></li>
|
||||
<li><a href="error_500.html">Internal Server</a></li>
|
||||
<li><a href="error_503.html">Service Unavailable</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#other_pages">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#document"></use>
|
||||
</svg>
|
||||
Other Pages
|
||||
</a>
|
||||
<ul class="collapse" id="other_pages">
|
||||
<li><a href="blank.html">Blank</a></li>
|
||||
<li><a href="maintenance.html">Maintenance</a></li>
|
||||
<li><a href="landing.html">Landing Page</a></li>
|
||||
<li><a href="coming_soon.html">Coming Soon</a></li>
|
||||
<li><a href="sitemap.html">Sitemap</a></li>
|
||||
<li><a href="privacy_policy.html">Privacy Policy</a></li>
|
||||
<li><a href="terms_condition.html">Terms & Condition</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="menu-title"><span>Others</span></li>
|
||||
|
||||
<li>
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#level">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#arrow-down"></use>
|
||||
</svg>
|
||||
2 level
|
||||
</a>
|
||||
<ul class="collapse" id="level">
|
||||
<li><a href="data_table.html#">Blank</a></li>
|
||||
<li class="another-level">
|
||||
<a aria-expanded="false" data-bs-toggle="collapse" href="data_table.html#level2">
|
||||
Another level
|
||||
</a>
|
||||
<ul class="collapse" id="level2">
|
||||
<li><a href="blank.html">Blank</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<li class="no-sub">
|
||||
<a href="https://phpstack-1384472-5121645.cloudwaysapps.com/document/html/ki-admin/index.html">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#document-text"></use>
|
||||
</svg>
|
||||
Document
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="no-sub">
|
||||
<a href="mailto:teqlathemes@gmail.com">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
<use xlink:href="../assets/svg/_sprite.svg#chat-bubble"></use>
|
||||
</svg>
|
||||
Support
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="menu-navs">
|
||||
<span class="menu-previous"><i class="ti ti-chevron-left"></i></span>
|
||||
<span class="menu-next"><i class="ti ti-chevron-right"></i></span>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<%-include("./partials/header.ejs") %>
|
||||
<%-include("./partials/authheader.ejs") %>
|
||||
<div class="">
|
||||
<main class="w-100 p-0">
|
||||
<div class="container-fluid">
|
||||
|
|
@ -53,55 +53,6 @@
|
|||
</div>
|
||||
</main>
|
||||
</div>
|
||||
<script>
|
||||
function sendAjax(form)
|
||||
{
|
||||
blockui();
|
||||
let formData = new FormData(form);
|
||||
$.ajax({
|
||||
url: "/register",
|
||||
type: "POST",
|
||||
data: formData,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
success: function(response) {
|
||||
ublockui();
|
||||
if(response.status == "success")
|
||||
{
|
||||
window.location = "/login";
|
||||
}else{
|
||||
$("#validationError").text(response.message);
|
||||
}
|
||||
},
|
||||
error: function(err) {
|
||||
ublockui();
|
||||
$("#validationError").text(err.responseJSON.message);
|
||||
},
|
||||
});
|
||||
return false;
|
||||
}
|
||||
function blockui()
|
||||
{
|
||||
$('.login-form-container').block({
|
||||
message: '<div class="loader-container-box"><div class="loader"></div></div>',
|
||||
//timeout: 13000,
|
||||
overlayCSS: {
|
||||
backgroundColor: 'rgba(var(--dark), 0.8)',
|
||||
opacity: 0.8,
|
||||
borderRadius: 'var(--app-border-radius)',
|
||||
cursor: 'wait'
|
||||
},
|
||||
css: {
|
||||
border: 0,
|
||||
padding: 0,
|
||||
backgroundColor: 'transparent'
|
||||
}
|
||||
});
|
||||
}
|
||||
function ublockui()
|
||||
{
|
||||
$('.login-form-container').unblock()
|
||||
}
|
||||
</script>
|
||||
<script src="/app/register.js"></script>
|
||||
<script src="/assets/vendor/block-ui/jquery.blockUI.js"></script>
|
||||
<%-include("./partials/footer.ejs") %>
|
||||
<%-include("./partials/authfooter.ejs") %>
|
||||
Loading…
Reference in New Issue