REvize
This commit is contained in:
parent
316d242297
commit
8b3e047831
|
|
@ -1,17 +0,0 @@
|
||||||
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");
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,87 @@
|
||||||
|
const {Application} = require("../core/server");
|
||||||
|
const Joi = require("joi");
|
||||||
|
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");
|
||||||
|
|
||||||
|
|
||||||
|
Application.get("/catalogs", MiddlewareAuth,CatalogPage);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function CatalogPage(request, response)
|
||||||
|
{
|
||||||
|
response.render("panel/catalogs");
|
||||||
|
}
|
||||||
|
|
||||||
|
Application.post("/catalog/list", MiddlewareAuth, express.urlencoded({extended: true}), CatalogsList);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function CatalogsList(request, response)
|
||||||
|
{
|
||||||
|
let start = request.body.start ?? 0;
|
||||||
|
let length = request.body.length ?? 100;
|
||||||
|
let term = request.body.search?.value ?? null;
|
||||||
|
let count = await countCatalogs(request.session.user_id, term);
|
||||||
|
let data = await getCatalogs(request.session.user_id,start,length, term);
|
||||||
|
response.json({
|
||||||
|
"draw": request.body.draw | 0,
|
||||||
|
"recordsTotal": count,
|
||||||
|
"recordsFiltered" : count,
|
||||||
|
"length": 0,
|
||||||
|
"data": data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Application.post("/catalog/store", MiddlewareAuth, PostDataProcess(), CatalogStore);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function CatalogStore(request, response)
|
||||||
|
{
|
||||||
|
const error = catalogStoreValidation(request.body);
|
||||||
|
|
||||||
|
if(error)
|
||||||
|
{
|
||||||
|
return response.status(400).json({
|
||||||
|
status: "fail",
|
||||||
|
message: error.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
await createCatalog(
|
||||||
|
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"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function catalogStoreValidation(body)
|
||||||
|
{
|
||||||
|
const schema = Joi.object({
|
||||||
|
id: Joi.number().min(1),
|
||||||
|
name: Joi.string().min(3).max(200).required().error(new Error('Adı en az 3 karakter ve zorunludur')),
|
||||||
|
score: Joi.number().min(1).allow('', null).error(new Error('Soyadı formatı hatalı')),
|
||||||
|
description: Joi.string().allow('', null)
|
||||||
|
});
|
||||||
|
const {error} = schema.validate(body);
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,163 @@
|
||||||
|
const {Application} = require("../core/server");
|
||||||
|
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 express = require("express");
|
||||||
|
|
||||||
|
|
||||||
|
Application.get("/panel", MiddlewareAuth,PanelPage);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function PanelPage(request, response)
|
||||||
|
{
|
||||||
|
response.render("panel/panel");
|
||||||
|
}
|
||||||
|
|
||||||
|
Application.post("/user/profile", MiddlewareAuth,ApiUserProfile);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function ApiUserProfile(request, response)
|
||||||
|
{
|
||||||
|
let name = request.session.user.name;
|
||||||
|
let surname = request.session.user.surname;
|
||||||
|
|
||||||
|
response.json({
|
||||||
|
status: "active",
|
||||||
|
name,
|
||||||
|
surname
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Application.get("/students", MiddlewareAuth,StudentsPage);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function StudentsPage(request, response)
|
||||||
|
{
|
||||||
|
response.render("panel/students");
|
||||||
|
}
|
||||||
|
|
||||||
|
Application.post("/students/store", MiddlewareAuth, PostDataProcess(), StudentStore);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function StudentStore(request, response)
|
||||||
|
{
|
||||||
|
const error = studentStoreValidation(request.body);
|
||||||
|
|
||||||
|
if(error)
|
||||||
|
{
|
||||||
|
return response.status(400).json({
|
||||||
|
status: "fail",
|
||||||
|
message: error.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
await createStudent(
|
||||||
|
request.session.user_id,
|
||||||
|
request.body.name,
|
||||||
|
request.body.surname,
|
||||||
|
request.body.studentno,
|
||||||
|
request.body.email,
|
||||||
|
request.body.gender,
|
||||||
|
request.body.birthdate || null,
|
||||||
|
request.body.description
|
||||||
|
);
|
||||||
|
return response.status(200).json({
|
||||||
|
status: "success"
|
||||||
|
});
|
||||||
|
}catch(err){
|
||||||
|
console.log(err)
|
||||||
|
return response.status(500).json({
|
||||||
|
status: "fail"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Application.post("/students/update", MiddlewareAuth, PostDataProcess(), StudentUpdate);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function StudentUpdate(request, response)
|
||||||
|
{
|
||||||
|
const error = studentStoreValidation(request.body);
|
||||||
|
|
||||||
|
if(error)
|
||||||
|
{
|
||||||
|
return response.status(400).json({
|
||||||
|
status: "fail",
|
||||||
|
message: error.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
await updateStudent(
|
||||||
|
request.body.id,
|
||||||
|
request.session.user_id,
|
||||||
|
request.body.name,
|
||||||
|
request.body.surname,
|
||||||
|
request.body.studentno,
|
||||||
|
request.body.email,
|
||||||
|
request.body.gender,
|
||||||
|
request.body.birthdate || null,
|
||||||
|
request.body.description
|
||||||
|
);
|
||||||
|
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);
|
||||||
|
/**
|
||||||
|
* @param {import("express").Request} request
|
||||||
|
* @param {import("express").Response} response
|
||||||
|
*/
|
||||||
|
async function StudentList(request, response)
|
||||||
|
{
|
||||||
|
let start = request.body.start ?? 0;
|
||||||
|
let length = request.body.length ?? 100;
|
||||||
|
let term = request.body.search?.value ?? null;
|
||||||
|
let count = await countStudents(request.session.user_id, term);
|
||||||
|
let data = await getStudents(request.session.user_id,start,length, term);
|
||||||
|
response.json({
|
||||||
|
"draw": request.body.draw | 0,
|
||||||
|
"recordsTotal": count,
|
||||||
|
"recordsFiltered" : count,
|
||||||
|
"data": data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function studentStoreValidation(body)
|
||||||
|
{
|
||||||
|
const schema = Joi.object({
|
||||||
|
id: Joi.number().min(1),
|
||||||
|
name: Joi.string().min(3).max(200).required().error(new Error('Adı en az 3 karakter ve zorunludur')),
|
||||||
|
surname: Joi.string().max(200).allow('', null).error(new Error('Soyadı formatı hatalı')),
|
||||||
|
studentno: Joi.string().max(200).allow('', null).error(new Error('Numara formatı hatalı')),
|
||||||
|
email: Joi.string().email().max(200).allow('', null).error(new Error('E-posta adresi geçersiz')),
|
||||||
|
birthdate: Joi.date().iso().allow('', null).error(new Error('Doğum tarihi geçersiz')),
|
||||||
|
gender: Joi.string().valid('male', 'female', 'Belirtilmemiş').allow('', null).error(new Error('Cinsiyet seçimi hatalı')),
|
||||||
|
description: Joi.string().allow('', null)
|
||||||
|
});
|
||||||
|
const {error} = schema.validate(body);
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
@ -5,7 +5,10 @@ const storage = multer.memoryStorage();
|
||||||
|
|
||||||
const upload = multer({
|
const upload = multer({
|
||||||
storage: storage,
|
storage: storage,
|
||||||
limits: { fileSize: 5 * 1024 * 1024 } // Örn: Max 5MB sınırı
|
limits: {
|
||||||
|
fileSize: 5 * 1024 * 1024,
|
||||||
|
fieldNameSize: 200
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
exports.PostDataProcess = () => upload.none();
|
exports.PostDataProcess = () => upload.none();
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
const crypto = require("node:crypto");
|
||||||
|
const DB = require("./connection");
|
||||||
|
|
||||||
|
|
||||||
|
exports.createCatalog = createCatalog;
|
||||||
|
exports.getCatalogs = getCatalogs;
|
||||||
|
exports.countCatalogs = countCatalogs;
|
||||||
|
exports.updateCatalog = updateCatalog;
|
||||||
|
|
||||||
|
async function createCatalog(
|
||||||
|
owner_id,
|
||||||
|
name,
|
||||||
|
score,
|
||||||
|
description
|
||||||
|
)
|
||||||
|
{
|
||||||
|
const [id] = await DB.table("events")
|
||||||
|
.insert({
|
||||||
|
owner_id,
|
||||||
|
name,
|
||||||
|
score,
|
||||||
|
description
|
||||||
|
})
|
||||||
|
.returning("id");
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
async function updateCatalog(
|
||||||
|
id,
|
||||||
|
owner_id,
|
||||||
|
name,
|
||||||
|
score,
|
||||||
|
description
|
||||||
|
)
|
||||||
|
{
|
||||||
|
await DB.table("events")
|
||||||
|
.where("id",id)
|
||||||
|
.where("owner_id", owner_id)
|
||||||
|
.update({
|
||||||
|
name,
|
||||||
|
score,
|
||||||
|
description
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async function getCatalogs(
|
||||||
|
owner_id,
|
||||||
|
offset,
|
||||||
|
limit,
|
||||||
|
searchTerm
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return await DB.table("events")
|
||||||
|
.where("owner_id",owner_id)
|
||||||
|
.whereNull("deleted_at")
|
||||||
|
.where("name","like",`%${searchTerm ?? ""}%`)
|
||||||
|
.limit(limit)
|
||||||
|
.offset(offset);
|
||||||
|
}
|
||||||
|
async function countCatalogs(owner_id, searchTerm)
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
await DB.table("events")
|
||||||
|
.where("owner_id",owner_id)
|
||||||
|
.whereNull("deleted_at")
|
||||||
|
.where("name","like",`%${searchTerm ?? ""}%`)
|
||||||
|
.count("id as total")
|
||||||
|
.first()
|
||||||
|
).total;
|
||||||
|
}
|
||||||
|
|
@ -11,7 +11,7 @@ exports.up = function(knex) {
|
||||||
table.string("studentno").nullable();
|
table.string("studentno").nullable();
|
||||||
table.string("email").nullable();
|
table.string("email").nullable();
|
||||||
table.string("gender").nullable();
|
table.string("gender").nullable();
|
||||||
table.dateTime("bithdate").nullable();
|
table.dateTime("birthdate").nullable();
|
||||||
table.text("description").nullable();
|
table.text("description").nullable();
|
||||||
|
|
||||||
table.dateTime("created_at").defaultTo(knex.fn.now());;
|
table.dateTime("created_at").defaultTo(knex.fn.now());;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
const crypto = require("node:crypto");
|
||||||
|
const DB = require("./connection");
|
||||||
|
|
||||||
|
|
||||||
|
exports.createStudent = createStudent;
|
||||||
|
exports.getStudents = getStudents;
|
||||||
|
exports.countStudents = countStudents;
|
||||||
|
exports.updateStudent = updateStudent;
|
||||||
|
|
||||||
|
async function createStudent(
|
||||||
|
owner_id,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
|
studentno,
|
||||||
|
email,
|
||||||
|
gender,
|
||||||
|
birthdate,
|
||||||
|
description
|
||||||
|
)
|
||||||
|
{
|
||||||
|
const [id] = await DB.table("students")
|
||||||
|
.insert({
|
||||||
|
owner_id,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
|
studentno,
|
||||||
|
email,
|
||||||
|
gender,
|
||||||
|
birthdate,
|
||||||
|
description
|
||||||
|
})
|
||||||
|
.returning("id");
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
async function updateStudent(
|
||||||
|
id,
|
||||||
|
owner_id,
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
|
studentno,
|
||||||
|
email,
|
||||||
|
gender,
|
||||||
|
birthdate,
|
||||||
|
description
|
||||||
|
)
|
||||||
|
{
|
||||||
|
await DB.table("students")
|
||||||
|
.where("id",id)
|
||||||
|
.where("owner_id", owner_id)
|
||||||
|
.update({
|
||||||
|
name,
|
||||||
|
surname,
|
||||||
|
studentno,
|
||||||
|
email,
|
||||||
|
gender,
|
||||||
|
birthdate,
|
||||||
|
description
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async function getStudents(
|
||||||
|
owner_id,
|
||||||
|
offset,
|
||||||
|
limit,
|
||||||
|
searchTerm
|
||||||
|
)
|
||||||
|
{
|
||||||
|
return await DB.table("students")
|
||||||
|
.where("owner_id",owner_id)
|
||||||
|
.whereNull("deleted_at")
|
||||||
|
.where("name","like",`%${searchTerm ?? ""}%`)
|
||||||
|
.limit(limit)
|
||||||
|
.offset(offset);
|
||||||
|
}
|
||||||
|
async function countStudents(owner_id, searchTerm)
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
await DB.table("students")
|
||||||
|
.where("owner_id",owner_id)
|
||||||
|
.whereNull("deleted_at")
|
||||||
|
.where("name","like",`%${searchTerm ?? ""}%`)
|
||||||
|
.count("id as total")
|
||||||
|
.first()
|
||||||
|
).total;
|
||||||
|
}
|
||||||
3
index.js
3
index.js
|
|
@ -5,5 +5,6 @@ require("./core/static");
|
||||||
require("./database/session");
|
require("./database/session");
|
||||||
|
|
||||||
require("./controllers/auth");
|
require("./controllers/auth");
|
||||||
require("./controllers/backend");
|
require("./controllers/students");
|
||||||
|
require("./controllers/catalog");
|
||||||
require("./controllers/fallback");
|
require("./controllers/fallback");
|
||||||
|
|
@ -12108,19 +12108,6 @@ nav .app-logo .profile-menu-dropdown .dropdown-menu {
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
transform: translate(32px, -70px) !important;
|
|
||||||
}
|
|
||||||
nav .app-logo .profile-menu-dropdown .dropdown-menu:before {
|
|
||||||
content: "";
|
|
||||||
width: 15px;
|
|
||||||
height: 15px;
|
|
||||||
background: rgba(var(--white), 1);
|
|
||||||
border-left: 1px solid rgba(var(--secondary), 0.4);
|
|
||||||
border-bottom: 1px solid rgba(var(--secondary), 0.4);
|
|
||||||
position: absolute;
|
|
||||||
top: 73px;
|
|
||||||
left: -8px;
|
|
||||||
transform: rotate(45deg);
|
|
||||||
}
|
}
|
||||||
nav .app-nav {
|
nav .app-nav {
|
||||||
height: calc(100% - 162px);
|
height: calc(100% - 162px);
|
||||||
|
|
@ -12665,7 +12652,7 @@ div .semi-nav ~ footer {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
transition: var(--app-transition);
|
transition: var(--app-transition);
|
||||||
box-shadow: var(--box-shadow);
|
/*box-shadow: var(--box-shadow);*/
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.app-wrapper .app-content .container-xxl {
|
.app-wrapper .app-content .container-xxl {
|
||||||
|
|
@ -34725,9 +34712,9 @@ body.dark nav .app-logo .logo img {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@media screen and (max-width: 576px) {
|
@media screen and (max-width: 576px) {
|
||||||
nav .app-logo .profile-menu-dropdown .dropdown-menu {
|
/*nav .app-logo .profile-menu-dropdown .dropdown-menu {
|
||||||
transform: translate(-28px, -70px) !important;
|
transform: translate(-28px, -70px) !important;
|
||||||
}
|
}*/
|
||||||
nav .app-logo .profile-menu-dropdown .dropdown-menu:before {
|
nav .app-logo .profile-menu-dropdown .dropdown-menu:before {
|
||||||
left: auto;
|
left: auto;
|
||||||
right: -8px;
|
right: -8px;
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
<%-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,273 @@
|
||||||
|
<%-include("../partials/header.ejs") %>
|
||||||
|
<%-include("../partials/sidebar.ejs") %>
|
||||||
|
<div class="app-content">
|
||||||
|
<%-include("../partials/navbar.ejs") %>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!-- Breadcrumb start -->
|
||||||
|
<div class="row m-1">
|
||||||
|
<div class="col-12">
|
||||||
|
<h4 class="main-title">Puan Kataloğu</h4>
|
||||||
|
<p>
|
||||||
|
Öğrencileri değerlendireceğiniz kategorileri belirleyin
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card ">
|
||||||
|
<div class="card-header ">
|
||||||
|
<div class="d-flex flex-row flex-1">
|
||||||
|
<h5 class="flex-fill">
|
||||||
|
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">
|
||||||
|
<i class="fa fa-plus"></i>
|
||||||
|
Puan Kataloğu ekle
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-0">
|
||||||
|
<div class="app-datatable-default overflow-auto">
|
||||||
|
<table class="table display app-data-table default-data-table" id="cataloglist"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
<div aria-hidden="true" class="modal fade" id="add_student" 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;">
|
||||||
|
<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="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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-outline-success" type="submit" form="catalogaveform">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 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;">
|
||||||
|
<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">
|
||||||
|
</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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-outline-success" type="submit" form="studentupdateform">Güncelle</button>
|
||||||
|
<button class="btn btn-light-secondary" data-bs-dismiss="modal" type="button">Kapat</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
let dataTable;
|
||||||
|
$(function(){
|
||||||
|
dataTable = $("#cataloglist").DataTable({
|
||||||
|
serverSide: true,
|
||||||
|
processing: true,
|
||||||
|
autoWidth: false,
|
||||||
|
ajax: {
|
||||||
|
url: "/catalog/list",
|
||||||
|
method:"post"
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
width: "1%",
|
||||||
|
title: "#",
|
||||||
|
data: null,
|
||||||
|
render: function (data, type, row, meta) {
|
||||||
|
return meta.row + 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Adı Soyadı",
|
||||||
|
data: null,
|
||||||
|
name: "fullname",
|
||||||
|
render: function (data, row) {
|
||||||
|
return `${data.name} ${data.surname || ''}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: "1%",
|
||||||
|
title: "İşlemler",
|
||||||
|
data: null,
|
||||||
|
orderable: false, // İşlemlere göre sıralama yapılamasın
|
||||||
|
render: function (data) {
|
||||||
|
return `
|
||||||
|
<div class="btn-group d-flex flex-row flex-nowrap" role="group">
|
||||||
|
<button class="btn btn-sm btn-outline-primary text-nowrap" onclick="updateModal(this)" title="Düzenle">
|
||||||
|
<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">
|
||||||
|
<i class="fa fa-trash"></i>
|
||||||
|
Sil
|
||||||
|
</button>
|
||||||
|
</div>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"language": {
|
||||||
|
"url": "https://cdn.datatables.net/plug-ins/1.13.6/i18n/tr.json"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
async function saveStudent(form)
|
||||||
|
{
|
||||||
|
blockui("#add_student .modal-content");
|
||||||
|
$.ajax({
|
||||||
|
url: "/catalog/store",
|
||||||
|
type: "post",
|
||||||
|
data: new FormData(form),
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function(response) {
|
||||||
|
dataTable.ajax.reload(null, false);
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
error: function(err) {
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function updateStudent(form)
|
||||||
|
{
|
||||||
|
blockui("#update_student .modal-content");
|
||||||
|
$.ajax({
|
||||||
|
url: "/catalog/update",
|
||||||
|
type: "post",
|
||||||
|
data: new FormData(form),
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function(response) {
|
||||||
|
dataTable.ajax.reload(null, false);
|
||||||
|
$("#update_student").modal("hide");
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
error: function(err) {
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateModal(tr)
|
||||||
|
{
|
||||||
|
let data = dataTable.row($(tr).closest('tr')).data();
|
||||||
|
|
||||||
|
$("#update_student form").get(0).reset();
|
||||||
|
$("#update_student [name='id']").val(data.id);
|
||||||
|
|
||||||
|
$("#update_student form input,#update_student form textarea").each(function(){
|
||||||
|
let name = this.name;
|
||||||
|
$(this).val(data[name]);
|
||||||
|
});
|
||||||
|
$("#update_student 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");
|
||||||
|
}
|
||||||
|
function blockui(ui)
|
||||||
|
{
|
||||||
|
$(blockui.id = ui).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()
|
||||||
|
{
|
||||||
|
$(blockui.id).unblock()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<%-include("../partials/footer.ejs") %>
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
<%-include("../partials/header.ejs") %>
|
||||||
|
<%-include("../partials/sidebar.ejs") %>
|
||||||
|
<div class="app-content">
|
||||||
|
<%-include("../partials/navbar.ejs") %>
|
||||||
|
<main>
|
||||||
|
<h1>Merhaba</h1>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<%-include("../partials/footer.ejs") %>
|
||||||
|
|
@ -0,0 +1,297 @@
|
||||||
|
<%-include("../partials/header.ejs") %>
|
||||||
|
<%-include("../partials/sidebar.ejs") %>
|
||||||
|
<div class="app-content">
|
||||||
|
<%-include("../partials/navbar.ejs") %>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!-- Breadcrumb start -->
|
||||||
|
<div class="row m-1">
|
||||||
|
<div class="col-12">
|
||||||
|
<h4 class="main-title">Sisteme Kayıtlı Öğrenciler</h4>
|
||||||
|
<p>
|
||||||
|
Öğrenciler ekleyebilir, düzenleyebilir ve silebilirsiniz
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card ">
|
||||||
|
<div class="card-header ">
|
||||||
|
<div class="d-flex flex-row flex-1">
|
||||||
|
<h5 class="flex-fill">
|
||||||
|
Öğrenciler
|
||||||
|
</h5>
|
||||||
|
<div class="flex-min">
|
||||||
|
<button class="btn btn-success" data-bs-target="#add_student" data-bs-toggle="modal" type="button">
|
||||||
|
<i class="fa fa-plus"></i>
|
||||||
|
Öğrenci ekle
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-0">
|
||||||
|
<div class="app-datatable-default overflow-auto">
|
||||||
|
<table class="table display app-data-table default-data-table" id="studentslist"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
<div aria-hidden="true" class="modal fade" id="add_student" tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-dialog-centered modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title">Yeni Öğrenci 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="studentsaveform" onsubmit="saveStudent(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>
|
||||||
|
<input type="text" class="form-control" name="name" placeholder="Öğrencinin 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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-outline-success" type="submit" form="studentsaveform">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 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;">
|
||||||
|
<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">
|
||||||
|
</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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-outline-success" type="submit" form="studentupdateform">Güncelle</button>
|
||||||
|
<button class="btn btn-light-secondary" data-bs-dismiss="modal" type="button">Kapat</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
let dataTable;
|
||||||
|
$(function(){
|
||||||
|
dataTable = $("#studentslist").DataTable({
|
||||||
|
serverSide: true,
|
||||||
|
processing: true,
|
||||||
|
autoWidth: false,
|
||||||
|
ajax: {
|
||||||
|
url: "/students/list",
|
||||||
|
method:"post"
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
width: "1%",
|
||||||
|
title: "#",
|
||||||
|
data: null,
|
||||||
|
render: function (data, type, row, meta) {
|
||||||
|
return meta.row + 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Adı Soyadı",
|
||||||
|
data: null,
|
||||||
|
name: "fullname",
|
||||||
|
render: function (data, row) {
|
||||||
|
return `${data.name} ${data.surname || ''}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
width: "1%",
|
||||||
|
title: "İşlemler",
|
||||||
|
data: null,
|
||||||
|
orderable: false, // İşlemlere göre sıralama yapılamasın
|
||||||
|
render: function (data) {
|
||||||
|
return `
|
||||||
|
<div class="btn-group d-flex flex-row flex-nowrap" role="group">
|
||||||
|
<button class="btn btn-sm btn-outline-primary text-nowrap" onclick="updateModal(this)" title="Düzenle">
|
||||||
|
<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">
|
||||||
|
<i class="fa fa-trash"></i>
|
||||||
|
Sil
|
||||||
|
</button>
|
||||||
|
</div>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"language": {
|
||||||
|
"url": "https://cdn.datatables.net/plug-ins/1.13.6/i18n/tr.json"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
async function saveStudent(form)
|
||||||
|
{
|
||||||
|
blockui("#add_student .modal-content");
|
||||||
|
$.ajax({
|
||||||
|
url: "/students/store",
|
||||||
|
type: "post",
|
||||||
|
data: new FormData(form),
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function(response) {
|
||||||
|
dataTable.ajax.reload(null, false);
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
error: function(err) {
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function updateStudent(form)
|
||||||
|
{
|
||||||
|
blockui("#update_student .modal-content");
|
||||||
|
$.ajax({
|
||||||
|
url: "/students/update",
|
||||||
|
type: "post",
|
||||||
|
data: new FormData(form),
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
success: function(response) {
|
||||||
|
dataTable.ajax.reload(null, false);
|
||||||
|
$("#update_student").modal("hide");
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
error: function(err) {
|
||||||
|
ublockui();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateModal(tr)
|
||||||
|
{
|
||||||
|
let data = dataTable.row($(tr).closest('tr')).data();
|
||||||
|
|
||||||
|
$("#update_student form").get(0).reset();
|
||||||
|
$("#update_student [name='id']").val(data.id);
|
||||||
|
|
||||||
|
$("#update_student form input,#update_student form textarea").each(function(){
|
||||||
|
let name = this.name;
|
||||||
|
$(this).val(data[name]);
|
||||||
|
});
|
||||||
|
$("#update_student 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");
|
||||||
|
}
|
||||||
|
function blockui(ui)
|
||||||
|
{
|
||||||
|
$(blockui.id = ui).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()
|
||||||
|
{
|
||||||
|
$(blockui.id).unblock()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<%-include("../partials/footer.ejs") %>
|
||||||
|
|
@ -5,14 +5,13 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div id="customizer"></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/datatable/jquery.dataTables.min.js"></script>
|
||||||
<script src="/assets/vendor/phosphor/phosphor.js"></script>
|
<script src="/assets/vendor/phosphor/phosphor.js"></script>
|
||||||
<script src="/assets/vendor/bootstrap/bootstrap.bundle.min.js"></script>
|
<script src="/assets/vendor/bootstrap/bootstrap.bundle.min.js"></script>
|
||||||
<script src="/assets/vendor/phosphor/phosphor.js"></script>
|
<script src="/assets/vendor/phosphor/phosphor.js"></script>
|
||||||
<script src="/assets/vendor/simplebar/simplebar.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/script.js"></script>
|
||||||
<script src="/assets/js/customizer.js"></script>
|
<script src="/assets/vendor/datatable/jquery.dataTables.min.js"></script>
|
||||||
|
<script src="/assets/vendor/block-ui/jquery.blockUI.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -20,6 +20,8 @@
|
||||||
<link href="/assets/vendor/simplebar/simplebar.css" rel="stylesheet" type="text/css">
|
<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/style.css" rel="stylesheet" type="text/css">
|
||||||
<link href="/assets/css/responsive.css" rel="stylesheet" type="text/css">
|
<link href="/assets/css/responsive.css" rel="stylesheet" type="text/css">
|
||||||
|
<script src="/assets/vendor/datatable/jquery-3.5.1.js"></script>
|
||||||
|
<link href="/assets/vendor/datatable/jquery.dataTables.min.css" rel="stylesheet" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="app-wrapper">
|
<div class="app-wrapper">
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
<nav>
|
<nav>
|
||||||
<div class="app-logo">
|
<div class="app-logo">
|
||||||
<a class="logo d-inline-block" href="index.html">
|
<a class="d-inline-block py-2 px-3" href="index.html">
|
||||||
<img alt="#" src="../assets/images/logo/1.png">
|
<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
|
||||||
|
</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<span class="bg-light-primary toggle-semi-nav d-flex-center">
|
<span class="bg-light-primary toggle-semi-nav d-flex-center">
|
||||||
|
|
@ -9,484 +12,73 @@
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div class="d-flex align-items-center nav-profile p-3">
|
<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">
|
<span class="h-45 w-45 d-flex-center b-r-10 position-relative bg-danger m-auto d-none">
|
||||||
<img alt="avatar" class="img-fluid b-r-10" src="../assets/images/avatar/woman.jpg">
|
<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 class="position-absolute top-0 end-0 p-1 bg-success border border-light rounded-circle"></span>
|
||||||
</span>
|
</span>
|
||||||
<div class="flex-grow-1 ps-2">
|
<div class="flex-grow-1 ps-2">
|
||||||
<h6 class="text-primary mb-0"> Ninfa Monaldo</h6>
|
<h6 class="text-primary mb-0 profile-username"></h6>
|
||||||
<p class="text-muted f-s-12 mb-0">Web Developer</p>
|
<p class="text-muted f-s-12 mb-0 profile-usersurname"></p>
|
||||||
</div>
|
</div>
|
||||||
|
<script>
|
||||||
|
$(function(){
|
||||||
<div class="dropdown profile-menu-dropdown">
|
$.ajax({
|
||||||
<a aria-expanded="false" data-bs-auto-close="true" data-bs-placement="top" data-bs-toggle="dropdown"
|
url: "/user/profile",
|
||||||
role="button">
|
method: "post",
|
||||||
<i class="ti ti-settings fs-5"></i>
|
success:data => {
|
||||||
</a>
|
$(".profile-username").text(data.name);
|
||||||
<ul class="dropdown-menu">
|
$(".profile-usersurname").text(data.surname);
|
||||||
<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>
|
</script>
|
||||||
</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>
|
</div>
|
||||||
<div class="app-nav" id="app-simple-bar">
|
<div class="app-nav" id="app-simple-bar">
|
||||||
<ul class="main-nav p-0 mt-2">
|
<ul class="main-nav p-0 mt-2">
|
||||||
|
<li class="menu-title no-sub">
|
||||||
|
<a href="/">
|
||||||
|
Anasayfa
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
<li class="menu-title">
|
<li class="menu-title">
|
||||||
<span>Dashboard</span>
|
<span>Panel</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>
|
||||||
|
|
||||||
<li class="no-sub">
|
<li class="no-sub">
|
||||||
<a href="mailto:teqlathemes@gmail.com">
|
<a href="/students">
|
||||||
<svg stroke="currentColor" stroke-width="1.5">
|
<svg stroke="currentColor" stroke-width="1.5">
|
||||||
<use xlink:href="../assets/svg/_sprite.svg#chat-bubble"></use>
|
|
||||||
</svg>
|
</svg>
|
||||||
Support
|
Öğrenciler
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="no-sub">
|
||||||
|
<a href="/catalogs">
|
||||||
|
<svg stroke="currentColor" stroke-width="1.5">
|
||||||
|
</svg>
|
||||||
|
Puan Katalogu
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="no-sub">
|
||||||
|
<a href="/catalogs">
|
||||||
|
<svg stroke="currentColor" stroke-width="1.5">
|
||||||
|
</svg>
|
||||||
|
Geçmiş İşlemler
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="menu-title"><span>Hesap</span></li>
|
||||||
|
<li class="no-sub">
|
||||||
|
<a href="/profile">
|
||||||
|
<svg stroke="currentColor" stroke-width="1.5">
|
||||||
|
</svg>
|
||||||
|
Hesap Ayarları
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="no-sub bg-danger text-danger">
|
||||||
|
<a href="/profile">
|
||||||
|
<svg stroke="currentColor" stroke-width="1.5">
|
||||||
|
</svg>
|
||||||
|
Çıkış yap
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue