Revize
This commit is contained in:
parent
8b3e047831
commit
324368f7df
|
|
@ -4,7 +4,7 @@ const { PostDataProcess } = require("../core/postdata");
|
|||
const User = require("../database/user");
|
||||
const { MiddlewareAuth } = require("./auth");
|
||||
const express = require("express");
|
||||
const { countCatalogs, getCatalogs, createCatalog } = require("../database/catalog");
|
||||
const { countCatalogs, getCatalogs, createCatalog, updateCatalog, deleteCatalogs } = require("../database/catalog");
|
||||
|
||||
|
||||
Application.get("/catalogs", MiddlewareAuth,CatalogPage);
|
||||
|
|
@ -38,6 +38,42 @@ async function CatalogsList(request, response)
|
|||
});
|
||||
}
|
||||
|
||||
Application.post("/catalog/update", MiddlewareAuth, PostDataProcess(), CatalogUpdate);
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
*/
|
||||
async function CatalogUpdate(request, response)
|
||||
{
|
||||
const error = catalogStoreValidation(request.body);
|
||||
|
||||
if(error)
|
||||
{
|
||||
return response.status(400).json({
|
||||
status: "fail",
|
||||
message: error.message
|
||||
});
|
||||
}
|
||||
|
||||
try{
|
||||
await updateCatalog(
|
||||
request.body.id,
|
||||
request.session.user_id,
|
||||
request.body.name,
|
||||
request.body.score,
|
||||
request.body.description
|
||||
);
|
||||
return response.status(200).json({
|
||||
status: "success"
|
||||
});
|
||||
}catch(err){
|
||||
console.log(err)
|
||||
return response.status(500).json({
|
||||
status: "fail"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Application.post("/catalog/store", MiddlewareAuth, PostDataProcess(), CatalogStore);
|
||||
/**
|
||||
|
|
@ -84,4 +120,27 @@ function catalogStoreValidation(body)
|
|||
});
|
||||
const {error} = schema.validate(body);
|
||||
return error;
|
||||
}
|
||||
|
||||
Application.post("/catalogs/destroy", MiddlewareAuth, express.urlencoded({extended: true}), CatalogDestroy);
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
*/
|
||||
async function CatalogDestroy(request, response)
|
||||
{
|
||||
try{
|
||||
await deleteCatalogs(
|
||||
request.session.user_id,
|
||||
request.body.id ?? -1
|
||||
);
|
||||
return response.status(200).json({
|
||||
status: "success"
|
||||
});
|
||||
}catch(err){
|
||||
console.log(err)
|
||||
return response.status(500).json({
|
||||
status: "fail"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ const Joi = require("joi");
|
|||
const { PostDataProcess } = require("../core/postdata");
|
||||
const User = require("../database/user");
|
||||
const { MiddlewareAuth } = require("./auth");
|
||||
const { createStudent, getStudents, countStudents, updateStudent } = require("../database/student");
|
||||
const { createStudent, getStudents, countStudents, updateStudent, deleteStudent } = require("../database/student");
|
||||
const express = require("express");
|
||||
|
||||
|
||||
|
|
@ -123,6 +123,28 @@ async function StudentUpdate(request, response)
|
|||
});
|
||||
}
|
||||
}
|
||||
Application.post("/students/destroy", MiddlewareAuth, express.urlencoded({extended: true}), StudentDestroy);
|
||||
/**
|
||||
* @param {import("express").Request} request
|
||||
* @param {import("express").Response} response
|
||||
*/
|
||||
async function StudentDestroy(request, response)
|
||||
{
|
||||
try{
|
||||
await deleteStudent(
|
||||
request.session.user_id,
|
||||
request.body.id ?? -1
|
||||
);
|
||||
return response.status(200).json({
|
||||
status: "success"
|
||||
});
|
||||
}catch(err){
|
||||
console.log(err)
|
||||
return response.status(500).json({
|
||||
status: "fail"
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Application.post("/students/list", MiddlewareAuth, express.urlencoded({extended: true}), StudentList);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ exports.createCatalog = createCatalog;
|
|||
exports.getCatalogs = getCatalogs;
|
||||
exports.countCatalogs = countCatalogs;
|
||||
exports.updateCatalog = updateCatalog;
|
||||
exports.deleteCatalogs = deleteCatalogs;
|
||||
|
||||
async function createCatalog(
|
||||
owner_id,
|
||||
|
|
@ -42,9 +43,6 @@ async function updateCatalog(
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
async function getCatalogs(
|
||||
owner_id,
|
||||
offset,
|
||||
|
|
@ -69,4 +67,16 @@ async function countCatalogs(owner_id, searchTerm)
|
|||
.count("id as total")
|
||||
.first()
|
||||
).total;
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteCatalogs(owner_id, id)
|
||||
{
|
||||
await DB.table("events")
|
||||
.where("owner_id",owner_id)
|
||||
.where("id",id)
|
||||
.update({
|
||||
deleted_at: DB.fn.now()
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ exports.createStudent = createStudent;
|
|||
exports.getStudents = getStudents;
|
||||
exports.countStudents = countStudents;
|
||||
exports.updateStudent = updateStudent;
|
||||
exports.deleteStudent = deleteStudent;
|
||||
|
||||
|
||||
async function createStudent(
|
||||
owner_id,
|
||||
|
|
@ -85,4 +87,13 @@ async function countStudents(owner_id, searchTerm)
|
|||
.count("id as total")
|
||||
.first()
|
||||
).total;
|
||||
}
|
||||
async function deleteStudent(owner_id, id)
|
||||
{
|
||||
await DB.table("students")
|
||||
.where("owner_id",owner_id)
|
||||
.where("id",id)
|
||||
.update({
|
||||
deleted_at: DB.fn.now()
|
||||
});
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
Puan Kataloğu listesi
|
||||
</h5>
|
||||
<div class="flex-min">
|
||||
<button class="btn btn-success" data-bs-target="#add_student" data-bs-toggle="modal" type="button">
|
||||
<button class="btn btn-success" data-bs-target="#add_catalog" data-bs-toggle="modal" type="button">
|
||||
<i class="fa fa-plus"></i>
|
||||
Puan Kataloğu ekle
|
||||
</button>
|
||||
|
|
@ -41,78 +41,54 @@
|
|||
</div>
|
||||
</main>
|
||||
</div>
|
||||
<div aria-hidden="true" class="modal fade" id="add_student" tabindex="-1">
|
||||
<div aria-hidden="true" class="modal fade" id="add_catalog" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Yeni Katalog Ekle</h5>
|
||||
<button aria-label="Close" class="btn-close m-0 fs-5" data-bs-dismiss="modal" type="button"></button>
|
||||
</div>
|
||||
<form class="modal-body" id="catalogaveform" onsubmit="saveStudent(this);return false;">
|
||||
<form class="modal-body" id="catalogsaveform" onsubmit="saveCatalog(this);return false;">
|
||||
<div class="row app-form">
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Adı <small class="text-danger">*</small></label>
|
||||
<label class="form-label">Aktivite Adı <small class="text-danger">*</small></label>
|
||||
<input type="text" class="form-control" name="name" placeholder="Aktivite Adı" required min="3">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Puanı</label>
|
||||
<input type="number" class="form-control" name="score" placeholder="Skor değeri" min="0" step="1" required>
|
||||
<label class="form-label">Puanı <small class="text-danger">*</small></label>
|
||||
<input type="number" class="form-control" name="score" placeholder="Skor değeri" min="0" step="1" value="10" required>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-outline-success" type="submit" form="catalogaveform">Kaydet</button>
|
||||
<button class="btn btn-outline-success" type="submit" form="catalogsaveform">Kaydet</button>
|
||||
<button class="btn btn-light-secondary" data-bs-dismiss="modal" type="button">Kapat</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div aria-hidden="true" class="modal fade" id="update_student" tabindex="-1">
|
||||
<div aria-hidden="true" class="modal fade" id="update_catalog" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Öğrenci güncelle</h5>
|
||||
<button aria-label="Close" class="btn-close m-0 fs-5" data-bs-dismiss="modal" type="button"></button>
|
||||
</div>
|
||||
<form class="modal-body" id="studentupdateform" onsubmit="updateStudent(this);return false;">
|
||||
<form class="modal-body" id="catalogupdateform" onsubmit="updateCatalog(this);return false;">
|
||||
<input type="hidden" name="id">
|
||||
<div class="row app-form">
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Adı <small class="text-danger">*</small></label>
|
||||
<input type="text" class="form-control" name="name" placeholder="Öğrencinin adı" required min="3">
|
||||
<label class="form-label">Aktivite Adı <small class="text-danger">*</small></label>
|
||||
<input type="text" class="form-control" name="name" placeholder="Aktivite Adı" required min="3">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Soyadı</label>
|
||||
<input type="text" class="form-control" name="surname" placeholder="Öğrencinin Soyadı">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Numarası</label>
|
||||
<input type="text" class="form-control" name="studentno" placeholder="Öğrencinin Numarası">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">E-Posta Adresi</label>
|
||||
<input type="email" class="form-control" name="email" placeholder="Öğrencinin E-Posta Adresi">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Doğum Tarihi</label>
|
||||
<input type="date" class="form-control" name="birthdate" placeholder="Öğrencinin E-Posta Adresi">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label class="form-label">Cinsiyeti</label>
|
||||
<select name="gender" class="form-control">
|
||||
<option>Belirtilmemiş</option>
|
||||
<option value="male">Erkek</option>
|
||||
<option value="female">Kadın</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-12 mt-3">
|
||||
<label class="form-label">Açıklama</label>
|
||||
<textarea name="description" class="form-control" placeholder="Öğrenci hakkında"></textarea>
|
||||
<label class="form-label">Puanı <small class="text-danger">*</small></label>
|
||||
<input type="number" class="form-control" name="score" placeholder="Skor değeri" min="0" step="1" value="10" required>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-outline-success" type="submit" form="studentupdateform">Güncelle</button>
|
||||
<button class="btn btn-outline-success" type="submit" form="catalogupdateform">Güncelle</button>
|
||||
<button class="btn btn-light-secondary" data-bs-dismiss="modal" type="button">Kapat</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -139,32 +115,14 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
title: "Adı Soyadı",
|
||||
data: null,
|
||||
name: "fullname",
|
||||
render: function (data, row) {
|
||||
return `${data.name} ${data.surname || ''}`;
|
||||
}
|
||||
title: "Katalog Adı",
|
||||
data: "name",
|
||||
name: "name"
|
||||
},
|
||||
{
|
||||
title: "Öğrenci No",
|
||||
data: "studentno",
|
||||
name: "studentno"
|
||||
},
|
||||
{
|
||||
title: "Cinsiyet",
|
||||
data: "gender",
|
||||
name: "gender",
|
||||
render: function (data) {
|
||||
if (data === 'male') return 'Erkek';
|
||||
if (data === 'female') return 'Kadın';
|
||||
return 'Belirtilmemiş';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "E-Posta",
|
||||
data: "email",
|
||||
name: "email"
|
||||
title: "Skor",
|
||||
data: "score",
|
||||
name: "score"
|
||||
},
|
||||
{
|
||||
width: "1%",
|
||||
|
|
@ -178,7 +136,7 @@
|
|||
<i class="fa fa-edit"></i>
|
||||
Düzenle
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-danger text-nowrap" onclick="deleteStudent(${data.id})" title="Sil">
|
||||
<button class="btn btn-sm btn-outline-danger text-nowrap" onclick="deleteCatalog(${data.id})" title="Sil">
|
||||
<i class="fa fa-trash"></i>
|
||||
Sil
|
||||
</button>
|
||||
|
|
@ -191,9 +149,9 @@
|
|||
}
|
||||
});
|
||||
});
|
||||
async function saveStudent(form)
|
||||
async function saveCatalog(form)
|
||||
{
|
||||
blockui("#add_student .modal-content");
|
||||
blockui("#add_catalog .modal-content");
|
||||
$.ajax({
|
||||
url: "/catalog/store",
|
||||
type: "post",
|
||||
|
|
@ -202,6 +160,7 @@
|
|||
contentType: false,
|
||||
success: function(response) {
|
||||
dataTable.ajax.reload(null, false);
|
||||
$("#add_catalog").modal("hide");
|
||||
ublockui();
|
||||
},
|
||||
error: function(err) {
|
||||
|
|
@ -209,9 +168,29 @@
|
|||
},
|
||||
});
|
||||
}
|
||||
async function updateStudent(form)
|
||||
async function deleteCatalog(id)
|
||||
{
|
||||
blockui("#update_student .modal-content");
|
||||
if(confirm("Kaydı silmek istediğinize emin misiniz?"))
|
||||
{
|
||||
$.ajax({
|
||||
url: "/catalogs/destroy",
|
||||
type: "post",
|
||||
data: {
|
||||
id
|
||||
},
|
||||
success: function(response) {
|
||||
dataTable.ajax.reload(null, false);
|
||||
ublockui();
|
||||
},
|
||||
error: function(err) {
|
||||
ublockui();
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
async function updateCatalog(form)
|
||||
{
|
||||
blockui("#update_catalog .modal-content");
|
||||
$.ajax({
|
||||
url: "/catalog/update",
|
||||
type: "post",
|
||||
|
|
@ -220,7 +199,7 @@
|
|||
contentType: false,
|
||||
success: function(response) {
|
||||
dataTable.ajax.reload(null, false);
|
||||
$("#update_student").modal("hide");
|
||||
$("#update_catalog").modal("hide");
|
||||
ublockui();
|
||||
},
|
||||
error: function(err) {
|
||||
|
|
@ -233,19 +212,19 @@
|
|||
{
|
||||
let data = dataTable.row($(tr).closest('tr')).data();
|
||||
|
||||
$("#update_student form").get(0).reset();
|
||||
$("#update_student [name='id']").val(data.id);
|
||||
$("#update_catalog form").get(0).reset();
|
||||
$("#update_catalog [name='id']").val(data.id);
|
||||
|
||||
$("#update_student form input,#update_student form textarea").each(function(){
|
||||
$("#update_catalog form input,#update_catalog form textarea").each(function(){
|
||||
let name = this.name;
|
||||
$(this).val(data[name]);
|
||||
});
|
||||
$("#update_student form select").each(function(){
|
||||
$("#update_catalog form select").each(function(){
|
||||
let name = this.name;
|
||||
$(this).find("option:selected").removeAttr("selected");
|
||||
$(this).find(`option[value="${data[name]}"]`).attr("selected","selected");
|
||||
});
|
||||
$("#update_student").modal("show");
|
||||
$("#update_catalog").modal("show");
|
||||
}
|
||||
function blockui(ui)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -226,6 +226,7 @@
|
|||
contentType: false,
|
||||
success: function(response) {
|
||||
dataTable.ajax.reload(null, false);
|
||||
$("#add_student").modal("hide");
|
||||
ublockui();
|
||||
},
|
||||
error: function(err) {
|
||||
|
|
@ -233,6 +234,26 @@
|
|||
},
|
||||
});
|
||||
}
|
||||
async function deleteStudent(id)
|
||||
{
|
||||
if(confirm("Kaydı silmek istediğinize emin misiniz?"))
|
||||
{
|
||||
$.ajax({
|
||||
url: "/students/destroy",
|
||||
type: "post",
|
||||
data: {
|
||||
id
|
||||
},
|
||||
success: function(response) {
|
||||
dataTable.ajax.reload(null, false);
|
||||
ublockui();
|
||||
},
|
||||
error: function(err) {
|
||||
ublockui();
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
async function updateStudent(form)
|
||||
{
|
||||
blockui("#update_student .modal-content");
|
||||
|
|
|
|||
|
|
@ -5,353 +5,11 @@
|
|||
<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>
|
||||
|
|
@ -360,112 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<nav>
|
||||
<div class="app-logo">
|
||||
<a class="d-inline-block py-2 px-3" href="index.html">
|
||||
<a class="d-inline-block py-2 px-3" class="text-success" href="/">
|
||||
<img alt="#" src="/logo.png" style="max-height: 50px;vertical-align: middle">
|
||||
<span style="font-size: 2em; vertical-align: middle; letter-spacing: 3px;">
|
||||
YeşilSkor
|
||||
|
|
@ -59,13 +59,13 @@
|
|||
Puan Katalogu
|
||||
</a>
|
||||
</li>
|
||||
<li class="no-sub">
|
||||
<!--li class="no-sub">
|
||||
<a href="/catalogs">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
</svg>
|
||||
Geçmiş İşlemler
|
||||
</a>
|
||||
</li>
|
||||
</li-->
|
||||
<li class="menu-title"><span>Hesap</span></li>
|
||||
<li class="no-sub">
|
||||
<a href="/profile">
|
||||
|
|
@ -74,8 +74,8 @@
|
|||
Hesap Ayarları
|
||||
</a>
|
||||
</li>
|
||||
<li class="no-sub bg-danger text-danger">
|
||||
<a href="/profile">
|
||||
<li class="no-sub text-danger">
|
||||
<a href="/profile" class=" text-danger">
|
||||
<svg stroke="currentColor" stroke-width="1.5">
|
||||
</svg>
|
||||
Çıkış yap
|
||||
|
|
|
|||
Loading…
Reference in New Issue