first commit
|
@ -0,0 +1,47 @@
|
|||
RewriteEngine On
|
||||
RewriteRule ^sitemap.xml$ sitemap.php [L]
|
||||
RewriteRule ^sitemap-post.xml$ sitemap-post.php [L]
|
||||
RewriteRule ^sitemap-page.xml$ sitemap-page.php [L]
|
||||
|
||||
RewriteCond %{HTTPS} off
|
||||
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||
|
||||
RewriteBase /
|
||||
|
||||
# # Redirect dari URL lama ke URL baru tanpa page/
|
||||
RewriteRule ^page/(.*)$ /$1 [R=301,L]
|
||||
|
||||
# # Rewrite agar tetap mengakses folder di dalam /page/
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*)$ page/$1/ [L]
|
||||
|
||||
# BEGIN cPanel-generated php ini directives, do not edit
|
||||
# Manual editing of this file may result in unexpected behavior.
|
||||
# To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
|
||||
# For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
|
||||
<IfModule php8_module>
|
||||
php_flag display_errors Off
|
||||
php_value max_execution_time 30
|
||||
php_value max_input_time 60
|
||||
php_value max_input_vars 1000
|
||||
php_value memory_limit 128M
|
||||
php_value post_max_size 8M
|
||||
php_value session.gc_maxlifetime 1440
|
||||
php_value session.save_path "/var/cpanel/php/sessions/ea-php80"
|
||||
php_value upload_max_filesize 7M
|
||||
php_flag zlib.output_compression Off
|
||||
</IfModule>
|
||||
<IfModule lsapi_module>
|
||||
php_flag display_errors Off
|
||||
php_value max_execution_time 30
|
||||
php_value max_input_time 60
|
||||
php_value max_input_vars 1000
|
||||
php_value memory_limit 128M
|
||||
php_value post_max_size 8M
|
||||
php_value session.gc_maxlifetime 1440
|
||||
php_value session.save_path "/var/cpanel/php/sessions/ea-php80"
|
||||
php_value upload_max_filesize 7M
|
||||
php_flag zlib.output_compression Off
|
||||
</IfModule>
|
||||
# END cPanel-generated php ini directives, do not edit
|
|
@ -0,0 +1,16 @@
|
|||
; cPanel-generated php ini directives, do not edit
|
||||
; Manual editing of this file may result in unexpected behavior.
|
||||
; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
|
||||
; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
|
||||
|
||||
[PHP]
|
||||
display_errors = Off
|
||||
max_execution_time = 30
|
||||
max_input_time = 60
|
||||
max_input_vars = 1000
|
||||
memory_limit = 128M
|
||||
post_max_size = 8M
|
||||
session.gc_maxlifetime = 1440
|
||||
session.save_path = "/var/cpanel/php/sessions/ea-php80"
|
||||
upload_max_filesize = 7M
|
||||
zlib.output_compression = Off
|
|
@ -0,0 +1,135 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$id_user = $_SESSION['user_id']; // Ambil dari sesi login
|
||||
$judul = $_POST['judul'];
|
||||
$konten = $_POST['konten'];
|
||||
$kategori = $_POST['kategori'];
|
||||
$meta_deskripsi = $_POST['meta_deskripsi'];
|
||||
$meta_keyword = $_POST['meta_keyword'];
|
||||
$tanggal = date("Y-m-d H:i:s");
|
||||
|
||||
$_SESSION['old_input'] = [
|
||||
'judul' => $judul,
|
||||
'konten' => $konten,
|
||||
'kategori' => $kategori,
|
||||
'meta_deskripsi' => $meta_deskripsi,
|
||||
'meta_keyword' => $meta_keyword,
|
||||
];
|
||||
|
||||
// Generate slug dari judul dengan memastikan unik
|
||||
function generateUniqueSlug($conn, $judul) {
|
||||
// Buat slug dasar dari judul
|
||||
$slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $judul), '-'));
|
||||
$originalSlug = $slug;
|
||||
$counter = 1;
|
||||
|
||||
// Cek apakah slug sudah ada di database
|
||||
$sql = "SELECT COUNT(*) AS count FROM detail_artikel WHERE slug = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("s", $slug);
|
||||
|
||||
while (true) {
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
$row = $result->fetch_assoc();
|
||||
|
||||
// Jika slug sudah ada, tambahkan angka di belakangnya
|
||||
if ($row['count'] > 0) {
|
||||
$slug = $originalSlug . '-' . $counter;
|
||||
$counter++;
|
||||
} else {
|
||||
break; // Keluar dari loop jika slug sudah unik
|
||||
}
|
||||
}
|
||||
|
||||
return $slug;
|
||||
}
|
||||
|
||||
$slug = generateUniqueSlug($conn, $judul);
|
||||
|
||||
// **Upload Gambar**
|
||||
$gambarNama = "";
|
||||
if (!empty($_FILES['gambar']['name']) && $_FILES['gambar']['size'] > 0) {
|
||||
$gambarTmp = $_FILES['gambar']['tmp_name'];
|
||||
$gambarNama = time() . "_" . basename($_FILES['gambar']['name']);
|
||||
$targetDir = "../../uploads/artikel/";
|
||||
$targetFile = $targetDir . $gambarNama;
|
||||
|
||||
// Cek format gambar
|
||||
$ext = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
|
||||
$allowedExt = ['jpg', 'jpeg', 'png', 'gif'];
|
||||
if (!in_array($ext, $allowedExt)) {
|
||||
$_SESSION['error'] = "Format gambar tidak valid! Gunakan JPG, JPEG, PNG, atau GIF.";
|
||||
header("Location: ../artikel/tambah.php");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Pindahkan file
|
||||
if (!move_uploaded_file($gambarTmp, $targetFile)) {
|
||||
$_SESSION['error'] = "Gagal mengunggah gambar!";
|
||||
header("Location: ../artikel");
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
// **Cek apakah artikel sudah ada untuk id_user**
|
||||
$cekArtikel = "SELECT id_artikel FROM artikel WHERE id_user = ?";
|
||||
$stmt = $conn->prepare($cekArtikel);
|
||||
$stmt->bind_param("i", $id_user);
|
||||
$stmt->execute();
|
||||
$stmt->bind_result($id_artikel);
|
||||
$stmt->fetch();
|
||||
$stmt->close();
|
||||
|
||||
if (!$id_artikel) {
|
||||
// **Buat artikel baru**
|
||||
$sqlArtikel = "INSERT INTO artikel (id_user) VALUES (?)";
|
||||
$stmt = $conn->prepare($sqlArtikel);
|
||||
$stmt->bind_param("i", $id_user);
|
||||
if ($stmt->execute()) {
|
||||
$id_artikel = $stmt->insert_id;
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal menyimpan artikel!";
|
||||
header("Location: ../artikel");
|
||||
exit();
|
||||
}
|
||||
$stmt->close();
|
||||
}
|
||||
|
||||
// **Buat SEO baru setiap kali artikel baru**
|
||||
$sqlSeo = "INSERT INTO seo_artikel (katakunci_seo, deskripsi_seo) VALUES (?, ?)";
|
||||
$stmt = $conn->prepare($sqlSeo);
|
||||
$stmt->bind_param("ss", $meta_keyword, $meta_deskripsi);
|
||||
if ($stmt->execute()) {
|
||||
$id_seo_artikel = $stmt->insert_id;
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal menyimpan data SEO!";
|
||||
header("Location: ../artikel");
|
||||
exit();
|
||||
}
|
||||
$stmt->close();
|
||||
|
||||
// **Simpan ke tabel detail_artikel**
|
||||
$sqlDetail = "INSERT INTO detail_artikel (id_artikel, id_seo_artikel, judul_artikel, deskripsi_artikel, gambar_artikel, kategori, tanggal, slug)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
|
||||
$stmt = $conn->prepare($sqlDetail);
|
||||
$stmt->bind_param("iissssss", $id_artikel, $id_seo_artikel, $judul, $konten, $gambarNama, $kategori, $tanggal, $slug);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
$_SESSION['success'] = "Data Artikel berhasil ditambahkan!";
|
||||
unset($_SESSION['old_input']);
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal menyimpan detail artikel!";
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
|
||||
header("Location: ../artikel");
|
||||
exit();
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
if (isset($_GET['id'])) {
|
||||
$id_artikel = $_GET['id'];
|
||||
|
||||
// Ambil informasi terkait artikel
|
||||
$sql = "SELECT gambar_artikel, id_seo_artikel FROM detail_artikel WHERE id_detail_artikel = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("i", $id_artikel);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
|
||||
if ($result->num_rows > 0) {
|
||||
$data = $result->fetch_assoc();
|
||||
$gambar = $data['gambar_artikel'];
|
||||
$id_seo_artikel = $data['id_seo_artikel'];
|
||||
|
||||
// Hapus gambar dari folder jika ada
|
||||
if (!empty($gambar) && file_exists("../../uploads/artikel/" . $gambar)) {
|
||||
unlink("../../uploads/artikel/" . $gambar);
|
||||
}
|
||||
|
||||
// Hapus data dari `detail_artikel`
|
||||
$sqlDeleteDetail = "DELETE FROM detail_artikel WHERE id_detail_artikel = ?";
|
||||
$stmt = $conn->prepare($sqlDeleteDetail);
|
||||
$stmt->bind_param("i", $id_artikel);
|
||||
$stmt->execute();
|
||||
|
||||
// Hapus data dari `seo_artikel`
|
||||
$sqlDeleteSeo = "DELETE FROM seo_artikel WHERE id_seo_artikel = ?";
|
||||
$stmt = $conn->prepare($sqlDeleteSeo);
|
||||
$stmt->bind_param("i", $id_seo_artikel);
|
||||
$stmt->execute();
|
||||
|
||||
$_SESSION['success'] = "Artikel berhasil dihapus!";
|
||||
} else {
|
||||
$_SESSION['error'] = "Artikel tidak ditemukan!";
|
||||
}
|
||||
} else {
|
||||
$_SESSION['error'] = "ID Artikel tidak valid!";
|
||||
}
|
||||
|
||||
header("Location: ../artikel");
|
||||
exit();
|
||||
?>
|
|
@ -0,0 +1,312 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
$query = "SELECT id_detail_artikel, judul_artikel, kategori, DATE_FORMAT(tanggal, '%d-%m-%Y') as tanggal FROM detail_artikel";
|
||||
$result = mysqli_query($conn, $query);
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Kelola Artikel | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Kelola Artikel</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Artikel</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
<div class="d-flex justify-content-end">
|
||||
<a href="tambah.php" class="btn btn-primary mb-3">
|
||||
<i class="bi bi-plus-circle"></i> Tambahkan Artikel
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Table with stripped rows -->
|
||||
<div class="table-responsive">
|
||||
<table class="table datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No.</th>
|
||||
<th>Judul</th>
|
||||
<th>Kategori</th>
|
||||
<th data-type="date" data-format="YYYY/DD/MM">Tanggal Publish</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$no = 1;
|
||||
while ($row = mysqli_fetch_assoc($result)) :
|
||||
?>
|
||||
<tr>
|
||||
<td><?= $no++; ?></td>
|
||||
<td><?= htmlspecialchars($row['judul_artikel']); ?></td>
|
||||
<td><?= htmlspecialchars($row['kategori']); ?></td>
|
||||
<td><?= $row['tanggal']; ?></td>
|
||||
<td>
|
||||
<a href="update.php?id=<?= $row['id_detail_artikel']; ?>" class="btn btn-sm btn-primary mt-1"><i class="bi bi-pencil-square mt-1"></i></a>
|
||||
<button class="btn btn-sm btn-danger mt-1" data-bs-toggle="modal" data-bs-target="#confirmDeleteModal" data-id="<?= $row['id_detail_artikel']; ?>">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="confirmDeleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteModalLabel">Konfirmasi Hapus</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin menghapus artikel ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="" id="deleteConfirmBtn" class="btn btn-danger">Hapus</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Table with stripped rows -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var deleteModal = document.getElementById('confirmDeleteModal');
|
||||
deleteModal.addEventListener('show.bs.modal', function(event) {
|
||||
var button = event.relatedTarget; // Tombol yang diklik
|
||||
var id = button.getAttribute('data-id'); // Ambil ID produk
|
||||
var deleteLink = document.getElementById('deleteConfirmBtn');
|
||||
deleteLink.href = "deleteartikel.php?id=" + id; // Set href untuk hapus
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
if (isset($_GET['q'])) {
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header('Access-Control-Allow-Methods: GET, POST');
|
||||
header('Access-Control-Allow-Headers: Content-Type');
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$query = urlencode($_GET['q']);
|
||||
$url = "https://suggestqueries.google.com/complete/search?client=firefox&q={$query}";
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
echo $response;
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,346 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Tambahkan Artikel | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Tambahkan Artikel</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Artikel</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
|
||||
<form action="addartikel.php" method="POST" enctype="multipart/form-data">
|
||||
<!-- Judul Artikel -->
|
||||
<div class="mb-3">
|
||||
<label for="judul" class="form-label">Judul Artikel<span class="text-danger">*</span></label>
|
||||
<input type="text" id="judul" name="judul" class="form-control" value="<?= isset($_SESSION['old_input']['judul']) ? htmlspecialchars($_SESSION['old_input']['judul']) : '' ?>" required>
|
||||
</div>
|
||||
|
||||
<!-- Form Editor -->
|
||||
<div class="mb-3">
|
||||
<label for="konten" class="form-label">Konten Artikel<span class="text-danger">*</span></label>
|
||||
<textarea id="konten" name="konten" class="form-control"><?= isset($_SESSION['old_input']['konten']) ? htmlspecialchars($_SESSION['old_input']['konten']) : '' ?></textarea>
|
||||
<script src="https://cdn.ckeditor.com/4.22.1/standard/ckeditor.js"></script>
|
||||
<script>
|
||||
CKEDITOR.replace('konten');
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Gambar -->
|
||||
<div class="mb-3">
|
||||
<label for="gambar" class="form-label">Unggah Gambar<span class="text-danger">*</span></label>
|
||||
<input type="file" id="gambar" name="gambar" accept="image/*" class="form-control" required>
|
||||
</div>
|
||||
|
||||
<!-- Kategori Dropdown -->
|
||||
<div class="mb-3">
|
||||
<label for="kategori" class="form-label">Pilih Kategori<span class="text-danger">*</span></label>
|
||||
<select id="kategori" name="kategori" class="form-control" required>
|
||||
<option value="" disabled>-- Pilih Kategori --</option>
|
||||
<option value="tutorial" <?= (isset($_SESSION['old_input']['kategori']) && $_SESSION['old_input']['kategori'] == 'tutorial') ? 'selected' : '' ?>>Tutorial</option>
|
||||
<option value="informasi" <?= (isset($_SESSION['old_input']['kategori']) && $_SESSION['old_input']['kategori'] == 'informasi') ? 'selected' : '' ?>>Informasi</option>
|
||||
<option value="lainnya" <?= (isset($_SESSION['old_input']['kategori']) && $_SESSION['old_input']['kategori'] == 'lainnya') ? 'selected' : '' ?>>Lainnya</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Meta Deskripsi -->
|
||||
<div class="mb-3">
|
||||
<label for="meta_deskripsi" class="form-label">Meta Deskripsi<span class="text-danger">*</span></label>
|
||||
<textarea id="meta_deskripsi" name="meta_deskripsi" class="form-control" rows="2" required><?= isset($_SESSION['old_input']['meta_deskripsi']) ? htmlspecialchars($_SESSION['old_input']['meta_deskripsi']) : '' ?></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Meta Keyword -->
|
||||
<div class="mb-3">
|
||||
<label for="meta_keyword" class="form-label">Meta Kata Kunci<span class="text-danger">*</span></label>
|
||||
<input type="text" id="meta_keyword" name="meta_keyword" class="form-control" required
|
||||
value="<?= isset($_SESSION['old_input']['meta_keyword']) ? htmlspecialchars($_SESSION['old_input']['meta_keyword']) : '' ?>">
|
||||
<ul id="suggestions" class="list-group mt-2"></ul>
|
||||
<small class="text-muted">Pisahkan dengan koma, contoh: teknologi, berita, tutorial</small>
|
||||
</div>
|
||||
|
||||
<!-- Tombol Submit -->
|
||||
<div class="d-flex justify-content-end">
|
||||
<button type="submit" class="btn btn-primary me-2"><i class="bi bi-check-circle"></i> Simpan</button>
|
||||
<a href="../artikel/" class="btn btn-secondary me-2"><i class="bi bi-x-circle"></i> Batal</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<!-- Place the following <script> and <textarea> tags your HTML's <body> -->
|
||||
<script>
|
||||
CKEDITOR.replace('konten', {
|
||||
height: 300, // Sesuaikan tinggi editor
|
||||
toolbar: [
|
||||
{ name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike'] },
|
||||
{ name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent'] },
|
||||
{ name: 'insert', items: ['Image', 'Table', 'Link'] },
|
||||
{ name: 'styles', items: ['Font', 'FontSize', 'TextColor', 'BGColor'] },
|
||||
{ name: 'tools', items: ['Maximize'] }
|
||||
]
|
||||
});
|
||||
|
||||
document.getElementById('meta_keyword').addEventListener('input', function () {
|
||||
let inputField = this;
|
||||
let suggestionsList = document.getElementById('suggestions');
|
||||
if (!suggestionsList) return;
|
||||
|
||||
let values = inputField.value.split(',').map(v => v.trim());
|
||||
let query = values.pop(); // Ambil kata terakhir untuk dijadikan query
|
||||
|
||||
if (query.length < 2) {
|
||||
suggestionsList.innerHTML = '';
|
||||
return;
|
||||
}
|
||||
|
||||
fetch(`proxy.php?q=${query}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
let suggestions = data[1] || [];
|
||||
suggestionsList.innerHTML = '';
|
||||
|
||||
suggestions.forEach(item => {
|
||||
let li = document.createElement('li');
|
||||
li.classList.add('list-group-item');
|
||||
li.textContent = item;
|
||||
li.style.cursor = 'pointer';
|
||||
|
||||
li.addEventListener('click', function () {
|
||||
values.push(item); // Ganti kata terakhir dengan saran yang dipilih
|
||||
inputField.value = values.join(', ') + ', '; // Gabungkan kembali dengan koma
|
||||
suggestionsList.innerHTML = '';
|
||||
});
|
||||
|
||||
suggestionsList.appendChild(li);
|
||||
});
|
||||
})
|
||||
.catch(error => console.error('Error:', error));
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,368 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
if (isset($_GET['id'])) {
|
||||
$id_artikel = $_GET['id'];
|
||||
|
||||
// Ambil data artikel berdasarkan ID
|
||||
$query = "SELECT da.*, sa.katakunci_seo, sa.deskripsi_seo
|
||||
FROM detail_artikel da
|
||||
JOIN seo_artikel sa ON da.id_seo_artikel = sa.id_seo_artikel
|
||||
WHERE da.id_detail_artikel = '$id_artikel'";
|
||||
|
||||
$result = mysqli_query($conn, $query);
|
||||
$row = mysqli_fetch_assoc($result);
|
||||
|
||||
if (!$row) {
|
||||
echo "Artikel tidak ditemukan!";
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
echo "ID artikel tidak tersedia!";
|
||||
exit;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Memperbarui Artikel | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Memperbarui Artikel</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Artikel</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
|
||||
<form action="updateartikel.php" method="POST" enctype="multipart/form-data">
|
||||
<input type="hidden" name="id" id="id" value="<?= $row['id_detail_artikel']; ?>">
|
||||
|
||||
<!-- Judul Artikel -->
|
||||
<div class="mb-3">
|
||||
<label for="judul" class="form-label">Judul Artikel<span class="text-danger">*</span></label>
|
||||
<input type="text" id="judul" name="judul" class="form-control" value="<?= htmlspecialchars($row['judul_artikel']); ?>" required>
|
||||
</div>
|
||||
|
||||
<!-- Form Editor -->
|
||||
<div class="mb-3">
|
||||
<label for="konten" class="form-label">Konten Artikel<span class="text-danger">*</span></label>
|
||||
<textarea id="konten" name="konten" class="form-control" required><?= htmlspecialchars($row['deskripsi_artikel']); ?></textarea>
|
||||
<script src="https://cdn.ckeditor.com/4.22.1/standard/ckeditor.js"></script>
|
||||
<script>
|
||||
CKEDITOR.replace('konten');
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<!-- Gambar -->
|
||||
<div class="mb-3">
|
||||
<label for="gambar" class="form-label">Unggah Gambar</label>
|
||||
<input type="file" id="gambar" name="gambar" accept="image/*" class="form-control">
|
||||
<small class="text-muted">Kosongkan jika tidak ingin mengganti gambar.</small>
|
||||
</div>
|
||||
|
||||
<!-- Kategori Dropdown -->
|
||||
<div class="mb-3">
|
||||
<label for="kategori" class="form-label">Pilih Kategori<span class="text-danger">*</span></label>
|
||||
<select id="kategori" name="kategori" class="form-control" required>
|
||||
<option value="" disabled>-- Pilih Kategori --</option>
|
||||
<option value="tutorial" <?= ($row['kategori'] == 'tutorial') ? 'selected' : ''; ?>>Tutorial</option>
|
||||
<option value="informasi" <?= ($row['kategori'] == 'informasi') ? 'selected' : ''; ?>>Informasi</option>
|
||||
<option value="lainnya" <?= ($row['kategori'] == 'lainnya') ? 'selected' : ''; ?>>Lainnya</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Meta Deskripsi -->
|
||||
<div class="mb-3">
|
||||
<label for="meta_deskripsi" class="form-label">Meta Deskripsi<span class="text-danger">*</span></label>
|
||||
<textarea id="meta_deskripsi" name="meta_deskripsi" class="form-control" rows="2" required><?= htmlspecialchars($row['deskripsi_seo']); ?></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Meta Keyword -->
|
||||
<div class="mb-3">
|
||||
<label for="meta_keyword" class="form-label">Meta Kata Kunci<span class="text-danger">*</span></label>
|
||||
<input type="text" id="meta_keyword" name="meta_keyword" class="form-control" value="<?= htmlspecialchars($row['katakunci_seo']); ?>" required>
|
||||
<ul id="suggestions" class="list-group mt-2"></ul>
|
||||
<small class="text-muted">Pisahkan dengan koma, contoh: teknologi, berita, tutorial</small>
|
||||
</div>
|
||||
|
||||
<!-- Tombol Submit -->
|
||||
<div class="d-flex justify-content-end">
|
||||
<button type="submit" class="btn btn-primary me-2"><i class="bi bi-check-circle"></i> Simpan</button>
|
||||
<a href="../artikel/" class="btn btn-secondary me-2"><i class="bi bi-x-circle"></i> Batal</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<!-- Place the following <script> and <textarea> tags your HTML's <body> -->
|
||||
<script>
|
||||
CKEDITOR.replace('konten', {
|
||||
height: 300, // Sesuaikan tinggi editor
|
||||
toolbar: [
|
||||
{ name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike'] },
|
||||
{ name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent'] },
|
||||
{ name: 'insert', items: ['Image', 'Table', 'Link'] },
|
||||
{ name: 'styles', items: ['Font', 'FontSize', 'TextColor', 'BGColor'] },
|
||||
{ name: 'tools', items: ['Maximize'] }
|
||||
]
|
||||
});
|
||||
|
||||
document.getElementById('meta_keyword').addEventListener('input', function () {
|
||||
let inputField = this;
|
||||
let suggestionsList = document.getElementById('suggestions');
|
||||
if (!suggestionsList) return;
|
||||
|
||||
let values = inputField.value.split(',').map(v => v.trim());
|
||||
let query = values.pop(); // Ambil kata terakhir untuk dijadikan query
|
||||
|
||||
if (query.length < 2) {
|
||||
suggestionsList.innerHTML = '';
|
||||
return;
|
||||
}
|
||||
|
||||
fetch(`proxy.php?q=${query}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
let suggestions = data[1] || [];
|
||||
suggestionsList.innerHTML = '';
|
||||
|
||||
suggestions.forEach(item => {
|
||||
let li = document.createElement('li');
|
||||
li.classList.add('list-group-item');
|
||||
li.textContent = item;
|
||||
li.style.cursor = 'pointer';
|
||||
|
||||
li.addEventListener('click', function () {
|
||||
values.push(item); // Ganti kata terakhir dengan saran yang dipilih
|
||||
inputField.value = values.join(', ') + ', '; // Gabungkan kembali dengan koma
|
||||
suggestionsList.innerHTML = '';
|
||||
});
|
||||
|
||||
suggestionsList.appendChild(li);
|
||||
});
|
||||
})
|
||||
.catch(error => console.error('Error:', error));
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,102 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
$id = $_POST['id']; // ID artikel
|
||||
$judul = $_POST['judul'];
|
||||
$konten = $_POST['konten'];
|
||||
$kategori = $_POST['kategori'];
|
||||
$meta_deskripsi = $_POST['meta_deskripsi'];
|
||||
$meta_keyword = $_POST['meta_keyword'];
|
||||
|
||||
// Generate slug dari judul
|
||||
function buatSlug($text) {
|
||||
$text = strtolower($text);
|
||||
$text = preg_replace('/[^a-z0-9]+/i', '-', $text);
|
||||
$text = trim($text, '-');
|
||||
return $text;
|
||||
}
|
||||
|
||||
$slug = buatSlug($judul);
|
||||
|
||||
// Cek apakah slug sudah ada di database
|
||||
$slug_check = $slug;
|
||||
$counter = 1;
|
||||
while (true) {
|
||||
$querySlug = "SELECT id_detail_artikel FROM detail_artikel WHERE slug = ? AND id_detail_artikel != ?";
|
||||
$stmt = $conn->prepare($querySlug);
|
||||
$stmt->bind_param("si", $slug_check, $id);
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
|
||||
if ($stmt->num_rows == 0) {
|
||||
break; // Slug unik
|
||||
} else {
|
||||
$slug_check = $slug . '-' . $counter;
|
||||
$counter++;
|
||||
}
|
||||
}
|
||||
$slug = $slug_check;
|
||||
$stmt->close();
|
||||
|
||||
// Ambil id_seo_artikel dari detail_artikel
|
||||
$querySeo = "SELECT id_seo_artikel, gambar_artikel FROM detail_artikel WHERE id_detail_artikel = ?";
|
||||
$stmt = $conn->prepare($querySeo);
|
||||
$stmt->bind_param("i", $id);
|
||||
$stmt->execute();
|
||||
$stmt->bind_result($id_seo_artikel, $gambar_lama);
|
||||
$stmt->fetch();
|
||||
$stmt->close();
|
||||
|
||||
// Update SEO Artikel
|
||||
$querySeoUpdate = "UPDATE seo_artikel SET katakunci_seo=?, deskripsi_seo=? WHERE id_seo_artikel=?";
|
||||
$stmt = $conn->prepare($querySeoUpdate);
|
||||
$stmt->bind_param("ssi", $meta_keyword, $meta_deskripsi, $id_seo_artikel);
|
||||
$stmt->execute();
|
||||
$stmt->close();
|
||||
|
||||
// Periksa apakah ada gambar baru
|
||||
if ($_FILES['gambar']['name']) {
|
||||
$gambar_baru = $_FILES['gambar']['name'];
|
||||
$gambar_tmp = $_FILES['gambar']['tmp_name'];
|
||||
$path_upload = "../../uploads/artikel/" . $gambar_baru;
|
||||
|
||||
// **VALIDASI FORMAT GAMBAR**
|
||||
$allowed_types = ['image/jpeg', 'image/jpg', 'image/png'];
|
||||
$file_mime = mime_content_type($gambar_tmp);
|
||||
|
||||
if (!in_array($file_mime, $allowed_types)) {
|
||||
$_SESSION['error'] = "Format gambar tidak valid! Gunakan JPG, JPEG, atau PNG.";
|
||||
header("Location: ../artikel/update.php?id=$id");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Hapus gambar lama jika ada
|
||||
if ($gambar_lama && file_exists("../../uploads/artikel/" . $gambar_lama)) {
|
||||
unlink("../../uploads/artikel/" . $gambar_lama);
|
||||
}
|
||||
|
||||
// Pindahkan gambar baru ke folder
|
||||
move_uploaded_file($gambar_tmp, $path_upload);
|
||||
} else {
|
||||
$gambar_baru = $gambar_lama; // Jika tidak ada gambar baru, gunakan yang lama
|
||||
}
|
||||
|
||||
// Update Detail Artikel
|
||||
$query = "UPDATE detail_artikel SET judul_artikel=?, slug=?, deskripsi_artikel=?, kategori=?, gambar_artikel=? WHERE id_detail_artikel =?";
|
||||
$stmt = $conn->prepare($query);
|
||||
$stmt->bind_param("sssssi", $judul, $slug, $konten, $kategori, $gambar_baru, $id);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
$_SESSION['success'] = "Artikel berhasil diperbarui!";
|
||||
header("Location: ../artikel");
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal memperbarui artikel!";
|
||||
header("Location: ../artikel");
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$conn->close();
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
session_start();
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
$_SESSION['error'] = "Anda harus login terlebih dahulu!";
|
||||
header("Location: ../login");
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($_SESSION['role'] !== 'admin') {
|
||||
exit();
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,335 @@
|
|||
<?php
|
||||
include 'auth.php';
|
||||
include '../koneksi.php';
|
||||
|
||||
// Total Semua
|
||||
$queryUsersTotal = "SELECT COUNT(*) AS total_users FROM users WHERE status = 'active' AND role = 'user'";
|
||||
$resultUsersTotal = mysqli_query($conn, $queryUsersTotal);
|
||||
$rowUsersTotal = mysqli_fetch_assoc($resultUsersTotal);
|
||||
$totalUsers = $rowUsersTotal['total_users'];
|
||||
|
||||
// 7 Hari Terakhir
|
||||
$queryUsersThisWeek = "SELECT COUNT(*) AS total_this_week FROM users WHERE status = 'active' AND role = 'user' AND created_at >= CURDATE() - INTERVAL 7 DAY";
|
||||
$resultUsersThisWeek = mysqli_query($conn, $queryUsersThisWeek);
|
||||
$rowUsersThisWeek = mysqli_fetch_assoc($resultUsersThisWeek);
|
||||
$totalUsersThisWeek = $rowUsersThisWeek['total_this_week'];
|
||||
|
||||
// 7 Hari Sebelumnya
|
||||
$queryUsersLastWeek = "SELECT COUNT(*) AS total_last_week FROM users WHERE status = 'active' AND role = 'user' AND created_at >= CURDATE() - INTERVAL 14 DAY AND created_at < CURDATE() - INTERVAL 7 DAY";
|
||||
$resultUsersLastWeek = mysqli_query($conn, $queryUsersLastWeek);
|
||||
$rowUsersLastWeek = mysqli_fetch_assoc($resultUsersLastWeek);
|
||||
$totalUsersLastWeek = $rowUsersLastWeek['total_last_week'];
|
||||
|
||||
// Hitung persentase perubahan
|
||||
$changeUsers = $totalUsersLastWeek > 0 ? (($totalUsersThisWeek - $totalUsersLastWeek) / $totalUsersLastWeek) * 100 : 0;
|
||||
$iconUsers = $changeUsers >= 0 ? "bi-arrow-up text-success" : "bi-arrow-down text-danger";
|
||||
$changeUsers = number_format(abs($changeUsers), 1);
|
||||
|
||||
// ========================== LANDING PAGE ==========================
|
||||
$queryLandingPageTotal = "SELECT COUNT(*) AS total_landingpage FROM landingpage";
|
||||
$resultLandingPageTotal = mysqli_query($conn, $queryLandingPageTotal);
|
||||
$rowLandingPageTotal = mysqli_fetch_assoc($resultLandingPageTotal);
|
||||
$totalLandingPage = $rowLandingPageTotal['total_landingpage'];
|
||||
|
||||
$queryLandingPageThisWeek = "SELECT COUNT(*) AS total_this_week FROM landingpage WHERE created_at >= CURDATE() - INTERVAL 7 DAY";
|
||||
$resultLandingPageThisWeek = mysqli_query($conn, $queryLandingPageThisWeek);
|
||||
$rowLandingPageThisWeek = mysqli_fetch_assoc($resultLandingPageThisWeek);
|
||||
$totalLandingPageThisWeek = $rowLandingPageThisWeek['total_this_week'];
|
||||
|
||||
$queryLandingPageLastWeek = "SELECT COUNT(*) AS total_last_week FROM landingpage WHERE created_at >= CURDATE() - INTERVAL 14 DAY AND created_at < CURDATE() - INTERVAL 7 DAY";
|
||||
$resultLandingPageLastWeek = mysqli_query($conn, $queryLandingPageLastWeek);
|
||||
$rowLandingPageLastWeek = mysqli_fetch_assoc($resultLandingPageLastWeek);
|
||||
$totalLandingPageLastWeek = $rowLandingPageLastWeek['total_last_week'];
|
||||
|
||||
$changeLandingPage = $totalLandingPageLastWeek > 0 ? (($totalLandingPageThisWeek - $totalLandingPageLastWeek) / $totalLandingPageLastWeek) * 100 : 0;
|
||||
$iconLandingPage = $changeLandingPage >= 0 ? "bi-arrow-up text-success" : "bi-arrow-down text-danger";
|
||||
$changeLandingPage = number_format(abs($changeLandingPage), 1);
|
||||
|
||||
// ========================== ARTIKEL ==========================
|
||||
$queryArtikelTotal = "SELECT COUNT(*) AS total_artikel FROM detail_artikel";
|
||||
$resultArtikelTotal = mysqli_query($conn, $queryArtikelTotal);
|
||||
$rowArtikelTotal = mysqli_fetch_assoc($resultArtikelTotal);
|
||||
$totalArtikel = $rowArtikelTotal['total_artikel'];
|
||||
|
||||
$queryArtikelThisWeek = "SELECT COUNT(*) AS total_this_week FROM detail_artikel WHERE created_at >= CURDATE() - INTERVAL 7 DAY";
|
||||
$resultArtikelThisWeek = mysqli_query($conn, $queryArtikelThisWeek);
|
||||
$rowArtikelThisWeek = mysqli_fetch_assoc($resultArtikelThisWeek);
|
||||
$totalArtikelThisWeek = $rowArtikelThisWeek['total_this_week'];
|
||||
|
||||
$queryArtikelLastWeek = "SELECT COUNT(*) AS total_last_week FROM detail_artikel WHERE created_at >= CURDATE() - INTERVAL 14 DAY AND created_at < CURDATE() - INTERVAL 7 DAY";
|
||||
$resultArtikelLastWeek = mysqli_query($conn, $queryArtikelLastWeek);
|
||||
$rowArtikelLastWeek = mysqli_fetch_assoc($resultArtikelLastWeek);
|
||||
$totalArtikelLastWeek = $rowArtikelLastWeek['total_last_week'];
|
||||
|
||||
$changeArtikel = $totalArtikelLastWeek > 0 ? (($totalArtikelThisWeek - $totalArtikelLastWeek) / $totalArtikelLastWeek) * 100 : 0;
|
||||
$iconArtikel = $changeArtikel >= 0 ? "bi-arrow-up text-success" : "bi-arrow-down text-danger";
|
||||
$changeArtikel = number_format(abs($changeArtikel), 1);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Halaman Dashboard | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../assets/img/favicon.png" rel="icon">
|
||||
<link href="../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../assets/template/css/style.css" rel="stylesheet">
|
||||
<link href="../assets/css/custom.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="update-profile">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Halaman Dashboard</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="/">Beranda</a></li>
|
||||
<li class="breadcrumb-item active">Dashboard</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section dashboard">
|
||||
<div class="row g-0 g-md-3">
|
||||
|
||||
<!-- Pengguna Aktif Card -->
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="card border-0 shadow-sm p-4 d-flex flex-row align-items-center rounded-4">
|
||||
<div class="icon-container bg-primary text-white rounded-3 d-flex align-items-center justify-content-center">
|
||||
<i class="bi bi-people fs-3"></i>
|
||||
</div>
|
||||
<div class="ms-3">
|
||||
<h6 class="text-secondary mb-1">Pengguna Aktif</h6>
|
||||
<h4 class="fw-bold text-dark"><?php echo $totalUsers; ?></h4>
|
||||
<span class="text-success fw-semibold"><i class="bi bi-arrow-up"></i> <?php echo $changeUsers; ?>% (7 hari terakhir)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Landing Page Dibuat Card -->
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="card border-0 shadow-sm p-4 d-flex flex-row align-items-center rounded-4">
|
||||
<div class="icon-container bg-success text-white rounded-3 d-flex align-items-center justify-content-center">
|
||||
<i class="bi bi-journal-richtext fs-3"></i>
|
||||
</div>
|
||||
<div class="ms-3">
|
||||
<h6 class="text-secondary mb-1">Landing Page Dibuat</h6>
|
||||
<h4 class="fw-bold text-dark"><?php echo $totalLandingPage; ?></h4>
|
||||
<span class="text-success fw-semibold"><i class="bi bi-arrow-up"></i> <?php echo $changeLandingPage; ?>% (7 hari terakhir)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Artikel Card -->
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="card border-0 shadow-sm p-4 d-flex flex-row align-items-center rounded-4">
|
||||
<div class="icon-container bg-warning text-white rounded-3 d-flex align-items-center justify-content-center">
|
||||
<i class="bi bi-newspaper fs-3"></i>
|
||||
</div>
|
||||
<div class="ms-3">
|
||||
<h6 class="text-secondary mb-1">Artikel</h6>
|
||||
<h4 class="fw-bold text-dark"><?php echo $totalArtikel; ?></h4>
|
||||
<span class="text-danger fw-semibold"><i class="bi bi-arrow-down"></i> <?php echo $changeArtikel; ?>% (7 hari terakhir)</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../assets/template/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,87 @@
|
|||
<?php
|
||||
session_start();
|
||||
include '../../koneksi.php'; // Koneksi ke database
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header("Location: ../../login/"); // Redirect ke login jika belum login
|
||||
exit();
|
||||
}
|
||||
|
||||
if (isset($_GET['id'])) {
|
||||
$id_landingpage = mysqli_real_escape_string($conn, $_GET['id']);
|
||||
|
||||
// Cek apakah slug ada di database
|
||||
$query = "SELECT id_user, slug_url FROM landingpage WHERE id_landingpage = '$id_landingpage'";
|
||||
$result = mysqli_query($conn, $query);
|
||||
|
||||
if ($result && mysqli_num_rows($result) > 0) {
|
||||
$row = mysqli_fetch_assoc($result);
|
||||
$id_user = $row['id_user'];
|
||||
$slug = $row['slug_url'];
|
||||
|
||||
// Update status user menjadi 'disabled'
|
||||
$delete_landingpage_query = "DELETE FROM landingpage WHERE slug_url = '$slug'";
|
||||
|
||||
// Update status user menjadi 'disabled'
|
||||
$update_query = "UPDATE users SET status = 'disabled' WHERE id_user = '$id_user'";
|
||||
|
||||
//delete gambar landingpage
|
||||
$assetsQuery = "SELECT gambar_utama, gambar_tentang, gambar_keunggulan FROM landingpage WHERE id_user = '$id_user'";
|
||||
$assetsResult = mysqli_query($conn, $assetsQuery);
|
||||
|
||||
if ($assetsResult && mysqli_num_rows($assetsResult) > 0) {
|
||||
while ($row = mysqli_fetch_assoc($assetsResult)) {
|
||||
$assetsPaths = [
|
||||
"../../uploads/assets/" . $row['gambar_utama'],
|
||||
"../../uploads/assets/" . $row['gambar_tentang'],
|
||||
"../../uploads/assets/" . $row['gambar_keunggulan']
|
||||
];
|
||||
|
||||
// Hapus file jika ada
|
||||
foreach ($assetsPaths as $path) {
|
||||
if (file_exists($path) && is_file($path)) {
|
||||
unlink($path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Hapus data dari tabel landingpage berdasarkan id_landingpage
|
||||
$delete_landingpage_query = "DELETE FROM landingpage WHERE id_landingpage = '$id_landingpage'";
|
||||
|
||||
if (mysqli_query($conn, $update_query) && mysqli_query($conn, $delete_landingpage_query)) {
|
||||
$folder_path = "../../page/" . $slug;
|
||||
if (is_dir($folder_path)) {
|
||||
deleteFolder($folder_path);
|
||||
}
|
||||
|
||||
$_SESSION['success'] = "Data Landing page berhasil dinonaktifkan!";
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal menonaktifkan landing page!";
|
||||
}
|
||||
} else {
|
||||
$_SESSION['error'] = "Landing page tidak ditemukan!";
|
||||
}
|
||||
} else {
|
||||
$_SESSION['error'] = "Slug tidak valid!";
|
||||
}
|
||||
|
||||
header("Location: ../landingpage");
|
||||
exit();
|
||||
|
||||
function deleteFolder($folder) {
|
||||
if (!is_dir($folder)) return;
|
||||
|
||||
$files = array_diff(scandir($folder), array('.', '..'));
|
||||
foreach ($files as $file) {
|
||||
$filePath = "$folder/$file";
|
||||
if (is_dir($filePath)) {
|
||||
deleteFolder($filePath);
|
||||
} else {
|
||||
unlink($filePath);
|
||||
}
|
||||
}
|
||||
rmdir($folder);
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,325 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
users.nama_lengkap,
|
||||
datausaha.nama_usaha,
|
||||
seo.judul_seo,
|
||||
landingpage.slug_url,
|
||||
landingpage.id_landingpage
|
||||
FROM landingpage
|
||||
JOIN users ON users.id_user = landingpage.id_user
|
||||
LEFT JOIN datausaha ON users.id_user = datausaha.id_user
|
||||
LEFT JOIN seo ON users.id_user = seo.id_user
|
||||
WHERE landingpage.slug_url IS NOT NULL AND landingpage.slug_url != ''";
|
||||
|
||||
$result = mysqli_query($conn, $query);
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Kelola Landing Page | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Kelola Landing Page</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Landing Page</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
<!-- Table with stripped rows -->
|
||||
<div class="table-responsive">
|
||||
<table class="table datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No.</th>
|
||||
<th>Nama Pemilik</th>
|
||||
<th>Nama Usaha</th>
|
||||
<th>Judul Landing Page</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php if (mysqli_num_rows($result) > 0): ?>
|
||||
<?php $no = 1; ?>
|
||||
<?php while ($row = mysqli_fetch_assoc($result)): ?>
|
||||
<tr>
|
||||
<td><?= $no++; ?></td>
|
||||
<td><?= htmlspecialchars($row['nama_lengkap']); ?></td>
|
||||
<td><?= htmlspecialchars($row['nama_usaha']); ?></td>
|
||||
<td><?= htmlspecialchars($row['judul_seo']); ?></td>
|
||||
<td>
|
||||
<a target="_blank" href="../../<?= urlencode($row['slug_url']); ?>" class="btn btn-primary btn-sm mt-1">
|
||||
<i class="bi bi-eye"></i>
|
||||
</a>
|
||||
<button class="btn btn-danger btn-sm mt-1" data-bs-toggle="modal" data-bs-target="#confirmDeleteModal" data-id="<?= $row['id_landingpage']; ?>">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endwhile; ?>
|
||||
<?php else: ?>
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">Data tidak ditemukan</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="confirmDeleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteModalLabel">Konfirmasi Nonaktif</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin menonaktifkan landingpage ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="" id="deleteConfirmBtn" class="btn btn-danger">Nonaktifkan</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- End Table with stripped rows -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var deleteModal = document.getElementById('confirmDeleteModal');
|
||||
deleteModal.addEventListener('show.bs.modal', function(event) {
|
||||
var button = event.relatedTarget; // Tombol yang diklik
|
||||
var id = button.getAttribute('data-id'); // Ambil ID produk
|
||||
var deleteLink = document.getElementById('deleteConfirmBtn');
|
||||
deleteLink.href = "delete.php?id=" + id; // Set href untuk hapus
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
session_start();
|
||||
session_destroy(); // Hapus semua sesi
|
||||
|
||||
$_SESSION['success'] = "Anda berhasil keluar halaman!";
|
||||
header("Location: ../login");
|
||||
exit();
|
||||
?>
|
|
@ -0,0 +1,69 @@
|
|||
<?php
|
||||
session_start();
|
||||
include '../../koneksi.php'; // Koneksi ke database
|
||||
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
header("Location: ../../login/"); // Redirect ke login jika belum login
|
||||
exit();
|
||||
}
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$nama_lengkap = mysqli_real_escape_string($conn, $_POST['namalengkap']);
|
||||
$email = mysqli_real_escape_string($conn, $_POST['email']);
|
||||
$no_wa = mysqli_real_escape_string($conn, $_POST['no_wa']);
|
||||
$password = $_POST['password'];
|
||||
$status = "active";
|
||||
$role = "user";
|
||||
|
||||
$_SESSION['old_input'] = [
|
||||
'namalengkap' => $nama_lengkap,
|
||||
'email' => $email,
|
||||
'no_wa' => $no_wa,
|
||||
];
|
||||
|
||||
// Validasi jika email sudah terdaftar
|
||||
$checkEmail = "SELECT * FROM users WHERE email = '$email'";
|
||||
$result = mysqli_query($conn, $checkEmail);
|
||||
|
||||
if (mysqli_num_rows($result) > 0) {
|
||||
$_SESSION['error'] = "Email sudah terdaftar!";
|
||||
header("Location: ../pengguna/tambah.php");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi Nomor WhatsApp (harus angka dan panjang 10-15 karakter)
|
||||
if (!preg_match('/^[0-9]{10,15}$/', $no_wa)) {
|
||||
$_SESSION['error'] = "Nomor WhatsApp harus terdiri dari 10-15 digit angka!";
|
||||
header("Location: ../pengguna/tambah.php");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi Password (minimal 8 karakter)
|
||||
if (strlen($password) < 8) {
|
||||
$_SESSION['error'] = "Password harus memiliki minimal 8 karakter!";
|
||||
header("Location: ../pengguna/tambah.php");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Hash password untuk keamanan
|
||||
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
|
||||
|
||||
// Insert ke database
|
||||
$query = "INSERT INTO users (nama_lengkap, email, no_hp, password, status, role)
|
||||
VALUES ('$nama_lengkap', '$email', '$no_wa', '$hashed_password', '$status', '$role')";
|
||||
|
||||
if (mysqli_query($conn, $query)) {
|
||||
$_SESSION['success'] = "Data User berhasil ditambahkan!";
|
||||
unset($_SESSION['old_input']);
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal menambahkan user!";
|
||||
}
|
||||
|
||||
header("Location: ../pengguna/");
|
||||
exit();
|
||||
} else {
|
||||
$_SESSION['error'] = "Akses tidak diizinkan!";
|
||||
header("Location: ../pengguna/");
|
||||
exit();
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,115 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
// Pastikan ID tersedia
|
||||
if (isset($_GET['id'])) {
|
||||
$id_user = mysqli_real_escape_string($conn, $_GET['id']);
|
||||
|
||||
// Ambil slug_url dari landingpage berdasarkan id_user
|
||||
$slugQuery = "SELECT slug_url FROM landingpage WHERE id_user = '$id_user'";
|
||||
$slugResult = mysqli_query($conn, $slugQuery);
|
||||
|
||||
if ($slugResult && mysqli_num_rows($slugResult) > 0) {
|
||||
while ($row = mysqli_fetch_assoc($slugResult)) {
|
||||
$slug_url = $row['slug_url'];
|
||||
$folderPath = "../../page/$slug_url";
|
||||
|
||||
// Hapus folder jika ada
|
||||
if (is_dir($folderPath)) {
|
||||
deleteFolder($folderPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteFolder($folder) {
|
||||
if (!is_dir($folder)) return;
|
||||
|
||||
$files = array_diff(scandir($folder), ['.', '..']);
|
||||
foreach ($files as $file) {
|
||||
$filePath = "$folder/$file";
|
||||
is_dir($filePath) ? deleteFolder($filePath) : unlink($filePath);
|
||||
}
|
||||
rmdir($folder);
|
||||
}
|
||||
|
||||
// delete gambar produk
|
||||
$imageQuery = "SELECT gambar_produk FROM detail_produk WHERE id_produk IN (SELECT id_produk FROM produk WHERE id_user = '$id_user')";
|
||||
$imageResult = mysqli_query($conn, $imageQuery);
|
||||
|
||||
if ($imageResult && mysqli_num_rows($imageResult) > 0) {
|
||||
while ($imgRow = mysqli_fetch_assoc($imageResult)) {
|
||||
$imagePath = "../../uploads/produk/" . $imgRow['gambar_produk'];
|
||||
if (file_exists($imagePath) && is_file($imagePath)) {
|
||||
unlink($imagePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//delete gambar produk
|
||||
$assetsQuery = "SELECT gambar_utama, gambar_tentang, gambar_keunggulan FROM landingpage WHERE id_user = '$id_user'";
|
||||
$assetsResult = mysqli_query($conn, $assetsQuery);
|
||||
|
||||
if ($assetsResult && mysqli_num_rows($assetsResult) > 0) {
|
||||
while ($row = mysqli_fetch_assoc($assetsResult)) {
|
||||
$assetsPaths = [
|
||||
"../../uploads/assets/" . $row['gambar_utama'],
|
||||
"../../uploads/assets/" . $row['gambar_tentang'],
|
||||
"../../uploads/assets/" . $row['gambar_keunggulan']
|
||||
];
|
||||
|
||||
// Hapus file jika ada
|
||||
foreach ($assetsPaths as $path) {
|
||||
if (file_exists($path) && is_file($path)) {
|
||||
unlink($path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_GET['id'])) {
|
||||
$id_user = mysqli_real_escape_string($conn, $_GET['id']);
|
||||
|
||||
// Hapus data terkait berdasarkan id_user
|
||||
$deleteQueries = [
|
||||
"DELETE FROM detail_produk WHERE id_produk IN (SELECT id_produk FROM produk WHERE id_user = '$id_user')",
|
||||
"DELETE FROM produk WHERE id_user = '$id_user'",
|
||||
|
||||
"DELETE FROM detail_testimoni WHERE id_testimoni IN (SELECT id_testimoni FROM testimoni WHERE id_user = '$id_user')",
|
||||
"DELETE FROM testimoni WHERE id_user = '$id_user'",
|
||||
|
||||
"DELETE FROM detail_keunggulan WHERE id_keunggulan IN (SELECT id_keunggulan FROM keunggulan WHERE id_user = '$id_user')",
|
||||
"DELETE FROM keunggulan WHERE id_user = '$id_user'",
|
||||
|
||||
"DELETE FROM seo WHERE id_user = '$id_user'",
|
||||
"DELETE FROM datausaha WHERE id_user = '$id_user'",
|
||||
"DELETE FROM landingpage WHERE id_user = '$id_user'",
|
||||
|
||||
"DELETE FROM users WHERE id_user = '$id_user'"
|
||||
];
|
||||
|
||||
$allDeleted = true;
|
||||
|
||||
// Eksekusi semua query
|
||||
foreach ($deleteQueries as $query) {
|
||||
if (!mysqli_query($conn, $query)) {
|
||||
$allDeleted = false;
|
||||
$_SESSION['error'] = "Gagal menghapus data: " . mysqli_error($conn);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($allDeleted) {
|
||||
$_SESSION['success'] = "Pengguna dan data terkait berhasil dihapus!";
|
||||
}
|
||||
|
||||
// Redirect kembali ke halaman pengguna
|
||||
header("Location: ../pengguna/");
|
||||
exit;
|
||||
} else {
|
||||
$_SESSION['error'] = "ID pengguna tidak ditemukan!";
|
||||
header("Location: ../pengguna/");
|
||||
exit;
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,314 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
$query = "SELECT id_user, nama_lengkap, email, no_hp FROM users";
|
||||
$result = mysqli_query($conn, $query);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Kelola Data Pengguna | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed collapsed" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Kelola Data Pengguna</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Pengguna</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
<div class="d-flex justify-content-end">
|
||||
<a href="tambah.php" class="btn btn-primary mb-3">
|
||||
<i class="bi bi-plus-circle"></i> Tambahkan Pengguna
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Table with stripped rows -->
|
||||
<div class="table-responsive">
|
||||
<table class="table datatable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No.</th>
|
||||
<th>Nama Lengkap</th>
|
||||
<th>Email</th>
|
||||
<th>No. WhatsApp</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php if (mysqli_num_rows($result) > 0): ?>
|
||||
<?php $no = 1; ?>
|
||||
<?php while ($row = mysqli_fetch_assoc($result)): ?>
|
||||
<tr>
|
||||
<td><?= $no++; ?></td>
|
||||
<td><?= htmlspecialchars($row['nama_lengkap']); ?></td>
|
||||
<td><?= htmlspecialchars($row['email']); ?></td>
|
||||
<td>+62<?= htmlspecialchars($row['no_hp']); ?></td>
|
||||
<td>
|
||||
<a href="update.php?id=<?= $row['id_user']; ?>" class="btn btn-primary btn-sm mt-1"><i class="bi bi-pencil-square"></i></a>
|
||||
<button class="btn btn-danger btn-sm mt-1" data-bs-toggle="modal" data-bs-target="#confirmDeleteModal" data-id="<?= $row['id_user']; ?>">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button> </td>
|
||||
</tr>
|
||||
<?php endwhile; ?>
|
||||
<?php else: ?>
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">Data tidak ditemukan</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- End Table with stripped rows -->
|
||||
|
||||
<div class="modal fade" id="confirmDeleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteModalLabel">Konfirmasi Hapus</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin menghapus akun ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="" id="deleteConfirmBtn" class="btn btn-danger">Hapus</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var deleteModal = document.getElementById('confirmDeleteModal');
|
||||
deleteModal.addEventListener('show.bs.modal', function(event) {
|
||||
var button = event.relatedTarget; // Tombol yang diklik
|
||||
var id = button.getAttribute('data-id'); // Ambil ID produk
|
||||
var deleteLink = document.getElementById('deleteConfirmBtn');
|
||||
deleteLink.href = "deleteuser.php?id=" + id; // Set href untuk hapus
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,292 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Tambahkan Data Pengguna | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Tambahkan Data Pengguna</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Pengguna</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
|
||||
<form action="adduser.php" method="POST" enctype="multipart/form-data">
|
||||
<div class="mb-3">
|
||||
<label for="namalengkap" class="form-label">Nama Lengkap<span class="text-danger">*</span></label>
|
||||
<input type="text" id="namalengkap" name="namalengkap" class="form-control" required
|
||||
value="<?= isset($_SESSION['old_input']['namalengkap']) ? htmlspecialchars($_SESSION['old_input']['namalengkap']) : '' ?>">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email<span class="text-danger">*</span></label>
|
||||
<input type="email" id="email" name="email" class="form-control" required
|
||||
value="<?= isset($_SESSION['old_input']['email']) ? htmlspecialchars($_SESSION['old_input']['email']) : '' ?>">
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="no_wa" class="form-label">No. WhatsApp<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">+62</span>
|
||||
<input type="number" id="no_wa" name="no_wa" class="form-control" placeholder="857..." maxlength="13" required
|
||||
value="<?= isset($_SESSION['old_input']['no_wa']) ? htmlspecialchars($_SESSION['old_input']['no_wa']) : '' ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="password" class="form-label">Kata Sandi<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="password" name="password" class="form-control" required>
|
||||
<span class="input-group-text" onclick="togglePassword('password', 'togglePasswordIcon')" style="cursor: pointer;">
|
||||
<i class="fa fa-eye" id="togglePasswordIcon"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tombol Submit -->
|
||||
<div class="d-flex justify-content-end">
|
||||
<button type="submit" class="btn btn-primary me-2"><i class="bi bi-check-circle"></i> Simpan</button>
|
||||
<a href="../pengguna/" class="btn btn-secondary me-2"><i class="bi bi-x-circle"></i> Batal</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
|
||||
<script>
|
||||
function togglePassword(inputId, iconId) {
|
||||
const input = document.getElementById(inputId);
|
||||
const icon = document.getElementById(iconId);
|
||||
const isPassword = input.type === 'password';
|
||||
input.type = isPassword ? 'text' : 'password';
|
||||
icon.classList.toggle('fa-eye');
|
||||
icon.classList.toggle('fa-eye-slash');
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,319 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
$id_user = $_GET['id'] ?? '';
|
||||
|
||||
$query = "SELECT * FROM users WHERE id_user = '$id_user'";
|
||||
$result = mysqli_query($conn, $query);
|
||||
$user = mysqli_fetch_assoc($result);
|
||||
|
||||
if (!$user) {
|
||||
$_SESSION['error'] = "User tidak ditemukan!";
|
||||
header("Location: ../pengguna/");
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Memperbarui Data Pengguna | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center collapsed" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Memperbarui Data Pengguna</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Pengguna</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mt-3">
|
||||
|
||||
<form action="updateuser.php" method="POST" enctype="multipart/form-data">
|
||||
<input type="hidden" name="id" value="<?= $user['id_user']; ?>">
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="namalengkap" class="form-label">Nama Lengkap<span class="text-danger">*</span></label>
|
||||
<input type="text" id="namalengkap" name="namalengkap" class="form-control" value="<?= htmlspecialchars($user['nama_lengkap']); ?>" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="email" class="form-label">Email<span class="text-danger">*</span></label>
|
||||
<input type="email" id="email" name="email" class="form-control" value="<?= htmlspecialchars($user['email']); ?>" required>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="no_wa" class="form-label">No. WhatsApp<span class="text-danger">*</span></label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">+62</span>
|
||||
<input type="number" id="no_wa" name="no_wa" class="form-control" placeholder="81234567890" maxlength="13" value="<?= htmlspecialchars($user['no_hp']); ?>" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="role" class="form-label">Peran</label>
|
||||
<select id="role" name="role" class="form-select">
|
||||
<option value="user" <?= $user['role'] == 'user' ? 'selected' : ''; ?>>User</option>
|
||||
<option value="admin" <?= $user['role'] == 'admin' ? 'selected' : ''; ?>>Admin</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="status" class="form-label">Status</label>
|
||||
<select id="status" name="status" class="form-select">
|
||||
<option value="active" <?= $user['status'] == 'active' ? 'selected' : ''; ?>>Active</option>
|
||||
<option value="disabled" <?= $user['status'] == 'disabled' ? 'selected' : ''; ?>>Disabled</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="password" class="form-label">Kata Sandi</label>
|
||||
<div class="input-group">
|
||||
<input type="password" id="password" name="password" class="form-control">
|
||||
<span class="input-group-text" onclick="togglePassword('password', 'togglePasswordIcon')" style="cursor: pointer;">
|
||||
<i class="fa fa-eye" id="togglePasswordIcon"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tombol Submit -->
|
||||
<div class="d-flex justify-content-end">
|
||||
<button type="submit" class="btn btn-primary me-2"><i class="bi bi-check-circle"></i> Simpan</button>
|
||||
<a href="../pengguna/" class="btn btn-secondary me-2"><i class="bi bi-x-circle"></i> Batal</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
|
||||
<script>
|
||||
function togglePassword(inputId, iconId) {
|
||||
const input = document.getElementById(inputId);
|
||||
const icon = document.getElementById(iconId);
|
||||
const isPassword = input.type === 'password';
|
||||
input.type = isPassword ? 'text' : 'password';
|
||||
icon.classList.toggle('fa-eye');
|
||||
icon.classList.toggle('fa-eye-slash');
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$id = $_POST['id'];
|
||||
$nama_lengkap = mysqli_real_escape_string($conn, $_POST['namalengkap']);
|
||||
$email = mysqli_real_escape_string($conn, $_POST['email']);
|
||||
$no_wa = mysqli_real_escape_string($conn, $_POST['no_wa']);
|
||||
|
||||
// Simpan input lama jika terjadi error
|
||||
$_SESSION['old_input'] = $_POST;
|
||||
|
||||
// Cek apakah email sudah digunakan oleh user lain
|
||||
$checkEmail = "SELECT id_user FROM users WHERE email = '$email' AND id_user != '$id'";
|
||||
$resultEmail = mysqli_query($conn, $checkEmail);
|
||||
if (mysqli_num_rows($resultEmail) > 0) {
|
||||
$_SESSION['error'] = "Email sudah digunakan oleh pengguna lain!";
|
||||
header("Location: ../pengguna/update.php?id=$id");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi No. WhatsApp (harus 10-15 digit angka)
|
||||
if (!preg_match('/^[0-9]{10,15}$/', $no_wa)) {
|
||||
$_SESSION['error'] = "Nomor WhatsApp harus terdiri dari 10-15 digit angka!";
|
||||
header("Location: ../pengguna/update.php?id=$id");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi Password (jika diisi, minimal 8 karakter)
|
||||
if (!empty($_POST['password']) && strlen($_POST['password']) < 8) {
|
||||
$_SESSION['error'] = "Password harus memiliki minimal 8 karakter!";
|
||||
header("Location: ../pengguna/update.php?id=$id");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Query awal tanpa status, role, dan password
|
||||
$query = "UPDATE users SET
|
||||
nama_lengkap = '$nama_lengkap',
|
||||
email = '$email',
|
||||
no_hp = '$no_wa'";
|
||||
|
||||
// Jika role diisi, update
|
||||
if (!empty($_POST['role'])) {
|
||||
$role = mysqli_real_escape_string($conn, $_POST['role']);
|
||||
$query .= ", role = '$role'";
|
||||
}
|
||||
|
||||
// Jika status diisi, update
|
||||
if (!empty($_POST['status'])) {
|
||||
$status = mysqli_real_escape_string($conn, $_POST['status']);
|
||||
$query .= ", status = '$status'";
|
||||
}
|
||||
|
||||
// Jika password diisi, update dengan hash
|
||||
if (!empty($_POST['password'])) {
|
||||
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
|
||||
$query .= ", password = '$password'";
|
||||
}
|
||||
|
||||
$query .= " WHERE id_user = '$id'";
|
||||
|
||||
// Eksekusi query
|
||||
if (mysqli_query($conn, $query)) {
|
||||
$_SESSION['success'] = "Data pengguna berhasil diperbarui!";
|
||||
unset($_SESSION['old_input']); // Hapus old input setelah sukses
|
||||
} else {
|
||||
$_SESSION['error'] = "Gagal memperbarui data: " . mysqli_error($conn);
|
||||
}
|
||||
|
||||
// Redirect kembali ke halaman pengguna
|
||||
header("Location: ../pengguna/");
|
||||
exit;
|
||||
}
|
||||
?>
|
|
@ -0,0 +1,396 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
$user_id = $_SESSION['user_id'];
|
||||
|
||||
// 🔹 Ambil data dari users berdasarkan user_id
|
||||
$sql = "SELECT * FROM users WHERE id_user = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("i", $user_id); // Mengikat parameter user_id sebagai integer
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
$row = $result->fetch_assoc(); // Mengambil hasil query sebagai array asosiasi
|
||||
|
||||
if ($result->num_rows > 0) {
|
||||
$nama_lengkap = $row['nama_lengkap'];
|
||||
$email = $row['email']; //
|
||||
$no_hp = $row['no_hp'];
|
||||
|
||||
} else {
|
||||
echo "User tidak ditemukan.";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
|
||||
<title>Update Profile | Admin</title>
|
||||
<meta content="" name="description">
|
||||
<meta content="" name="keywords">
|
||||
<meta name="robots" content="noindex">
|
||||
|
||||
<!-- Favicons -->
|
||||
<link href="../../assets/img/favicon.png" rel="icon">
|
||||
<link href="../../assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Nunito:300,300i,400,400i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
||||
|
||||
<!-- Vendor CSS Files -->
|
||||
<link href="../../assets/template/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.snow.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/quill/quill.bubble.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/remixicon/remixicon.css" rel="stylesheet">
|
||||
<link href="../../assets/template/vendor/simple-datatables/style.css" rel="stylesheet">
|
||||
|
||||
<!-- Template Main CSS File -->
|
||||
<link href="../../assets/template/css/style.css" rel="stylesheet">
|
||||
|
||||
<!-- =======================================================
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
======================================================== -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<!-- ======= Header ======= -->
|
||||
<header id="header" class="header fixed-top d-flex align-items-center">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<a href="/" class="logo d-flex align-items-center">
|
||||
<img src="../../assets/img/logo.png" alt="">
|
||||
<span class="d-none d-lg-block">Portal UMKM</span>
|
||||
</a>
|
||||
<i class="bi bi-list toggle-sidebar-btn"></i>
|
||||
</div><!-- End Logo -->
|
||||
|
||||
<nav class="header-nav ms-auto">
|
||||
<ul class="d-flex align-items-center">
|
||||
|
||||
<li class="nav-item dropdown pe-3">
|
||||
|
||||
<a class="nav-link nav-profile d-flex align-items-center pe-0" href="#" data-bs-toggle="dropdown">
|
||||
<span class="fw-semibold dropdown-toggle ps-2">Hai, <?php echo $_SESSION['nama_lengkap']; ?>!</span>
|
||||
</a><!-- End Profile Iamge Icon -->
|
||||
|
||||
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-arrow profile">
|
||||
<li class="dropdown-header">
|
||||
<h6><?php echo $_SESSION['nama_lengkap']; ?></h6>
|
||||
<span><?php echo ucfirst($_SESSION['role']); ?></span>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="../update-profile/">
|
||||
<i class="bi bi-gear"></i>
|
||||
<span>Pengaturan</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<hr class="dropdown-divider">
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center" href="#" data-bs-toggle="modal" data-bs-target="#confirmLogoutModal">
|
||||
<i class="bi bi-box-arrow-right"></i>
|
||||
<span>Keluar</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul><!-- End Profile Dropdown Items -->
|
||||
</li><!-- End Profile Nav -->
|
||||
|
||||
</ul>
|
||||
</nav><!-- End Icons Navigation -->
|
||||
|
||||
</header><!-- End Header -->
|
||||
|
||||
<!-- ======= Sidebar ======= -->
|
||||
<aside id="sidebar" class="sidebar">
|
||||
|
||||
|
||||
<ul class="sidebar-nav sidebar-nav">
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../">
|
||||
<i class="bi bi-columns-gap"></i>
|
||||
<span>Dashboard</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../landingpage">
|
||||
<i class="bi bi-journal-richtext"></i>
|
||||
<span>Landing Page</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../artikel">
|
||||
<i class="bi bi-newspaper"></i>
|
||||
<span>Artikel</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item mb-2">
|
||||
<a class="nav-link d-flex align-items-center" href="../pengguna">
|
||||
<i class="bi bi-people"></i>
|
||||
<span>Pengguna</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</aside><!-- End Sidebar-->
|
||||
|
||||
<main id="main" class="main">
|
||||
|
||||
<div class="pagetitle">
|
||||
<h1>Profil</h1>
|
||||
<nav>
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="">Beranda</a></li>
|
||||
<li class="breadcrumb-item">Profil</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div><!-- End Page Title -->
|
||||
|
||||
<?php if (isset($_SESSION['success'])): ?>
|
||||
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['success']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['success']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (isset($_SESSION['error'])): ?>
|
||||
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||
<?php echo $_SESSION['error']; ?>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
<?php unset($_SESSION['error']); // Hapus pesan setelah ditampilkan
|
||||
?>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="section profile">
|
||||
<div class="row">
|
||||
<div class="col-xl-12">
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body pt-3">
|
||||
<!-- Bordered Tabs -->
|
||||
<ul class="nav nav-tabs nav-tabs-bordered">
|
||||
|
||||
<li class="nav-item">
|
||||
<button class="nav-link active" data-bs-toggle="tab" data-bs-target="#profile-overview">Rangkuman</button>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-edit">Edit Profil</button>
|
||||
</li>
|
||||
|
||||
|
||||
<li class="nav-item">
|
||||
<button class="nav-link" data-bs-toggle="tab" data-bs-target="#profile-change-password">Ubah Kata Sandi</button>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<div class="tab-content pt-2">
|
||||
|
||||
<div class="tab-pane fade show active profile-overview" id="profile-overview">
|
||||
|
||||
<h5 class="card-title">Profil Pengguna</h5>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-2 col-md-4 label ">Nama Lengkap</div>
|
||||
<div class="col-lg-10 col-md-8"><?php echo htmlspecialchars($nama_lengkap); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-2 col-md-4 label">No. WhatsApp</div>
|
||||
<div class="col-lg-10 col-md-8">+62<?php echo htmlspecialchars($no_hp); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-2 col-md-4 label">Email</div>
|
||||
<div class="col-lg-10 col-md-8"><?php echo htmlspecialchars($email); ?></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade profile-edit pt-3" id="profile-edit">
|
||||
|
||||
<!-- Profile Edit Form -->
|
||||
<form method="POST" action="updateuser.php">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="fullName" class="col-md-4 col-lg-2 col-form-label">Nama Lengkap<span class="text-danger">*</span></label>
|
||||
<div class="col-md-8 col-lg-10">
|
||||
<input name="nama_lengkap" type="text" class="form-control" id="nama_lengkap" value="<?php echo htmlspecialchars($nama_lengkap); ?>" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="Phone" class="col-md-4 col-lg-2 col-form-label">No. WhatsApp<span class="text-danger">*</span></label>
|
||||
<div class="col-md-8 col-lg-10">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">+62</span>
|
||||
<input name="no_hp" type="number" class="form-control" id="no_hp" value="<?php echo htmlspecialchars($no_hp); ?>" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="Email" class="col-md-4 col-lg-2 col-form-label">Email<span class="text-danger">*</span></label>
|
||||
<div class="col-md-8 col-lg-10">
|
||||
<input name="email" type="email" class="form-control" id="email" value="<?php echo htmlspecialchars($email); ?>" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-center">
|
||||
<button type="submit" class="btn btn-primary"><i class="bi bi-check-circle"></i> Simpan Perubahan</button>
|
||||
</div>
|
||||
</form><!-- End Profile Edit Form -->
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade pt-3" id="profile-change-password">
|
||||
<!-- Change Password Form -->
|
||||
<form method="POST" action="updatepass.php">
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="currentPassword" class="col-md-4 col-lg-2 col-form-label">Kata Sandi Saat Ini</label>
|
||||
<div class="col-md-8 col-lg-10">
|
||||
<div class="input-group">
|
||||
<input name="password" type="password" class="form-control" id="currentPassword">
|
||||
<span class="input-group-text" onclick="togglePassword('currentPassword', 'iconCurrent')" style="cursor: pointer;">
|
||||
<i class="fa fa-eye" id="iconCurrent"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="newPassword" class="col-md-4 col-lg-2 col-form-label">Kata Sandi Baru</label>
|
||||
<div class="col-md-8 col-lg-10">
|
||||
<div class="input-group">
|
||||
<input name="newpassword" type="password" class="form-control" id="newPassword">
|
||||
<span class="input-group-text" onclick="togglePassword('newPassword', 'iconNew')" style="cursor: pointer;">
|
||||
<i class="fa fa-eye" id="iconNew"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="renewPassword" class="col-md-4 col-lg-2 col-form-label">Konfirmasi Kata Sandi Baru</label>
|
||||
<div class="col-md-8 col-lg-10">
|
||||
<div class="input-group">
|
||||
<input name="renewpassword" type="password" class="form-control" id="renewPassword">
|
||||
<span class="input-group-text" onclick="togglePassword('renewPassword', 'iconRenew')" style="cursor: pointer;">
|
||||
<i class="fa fa-eye" id="iconRenew"></i>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<button type="submit" class="btn btn-primary"><i class="bi bi-check-circle"></i> Ubah Kata Sandi</button>
|
||||
</div>
|
||||
</form><!-- End Change Password Form -->
|
||||
|
||||
</div>
|
||||
|
||||
</div><!-- End Bordered Tabs -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Modal Konfirmasi Logout -->
|
||||
<div class="modal fade" id="confirmLogoutModal" tabindex="-1" aria-labelledby="logoutModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="logoutModalLabel">Konfirmasi Keluar</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Apakah Anda yakin ingin keluar dari halaman ini?
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<a href="../logout.php" id="logoutConfirmBtn" class="btn btn-danger">Keluar</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</main><!-- End #main -->
|
||||
|
||||
<!-- ======= Footer ======= -->
|
||||
<footer id="footer" class="footer">
|
||||
<div class="copyright">
|
||||
© Copyright <strong><span>Portal UMKM</span></strong>. All Rights Reserved
|
||||
</div>
|
||||
<div class="credits">
|
||||
<!-- All the links in the footer should remain intact. -->
|
||||
<!-- You can delete the links only if you purchased the pro version. -->
|
||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
||||
<!-- Purchase the pro version with working PHP/AJAX contact form: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/ -->
|
||||
<!-- Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a> -->
|
||||
</div>
|
||||
</footer><!-- End Footer -->
|
||||
|
||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
||||
|
||||
<!-- Vendor JS Files -->
|
||||
<script src="../../assets/template/vendor/apexcharts/apexcharts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="../../assets/template/vendor/chart.js/chart.umd.js"></script>
|
||||
<script src="../../assets/template/vendor/echarts/echarts.min.js"></script>
|
||||
<script src="../../assets/template/vendor/quill/quill.js"></script>
|
||||
<script src="../../assets/template/vendor/simple-datatables/simple-datatables.js"></script>
|
||||
<script src="../../assets/template/vendor/tinymce/tinymce.min.js"></script>
|
||||
<script src="../../assets/template/vendor/php-email-form/validate.js"></script>
|
||||
|
||||
<!-- Template Main JS File -->
|
||||
<script src="../../assets/template/js/main.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
|
||||
<script>
|
||||
function togglePassword(inputId, iconId) {
|
||||
const input = document.getElementById(inputId);
|
||||
const icon = document.getElementById(iconId);
|
||||
const isPassword = input.type === 'password';
|
||||
input.type = isPassword ? 'text' : 'password';
|
||||
icon.classList.toggle('fa-eye');
|
||||
icon.classList.toggle('fa-eye-slash');
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,95 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
$user_id = $_SESSION['user_id'];
|
||||
|
||||
$currentPassword = $newPassword = $renewPassword = "";
|
||||
|
||||
// Check if the form is submitted
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// Get and sanitize the input data
|
||||
$currentPassword = trim($_POST['password']);
|
||||
$newPassword = trim($_POST['newpassword']);
|
||||
$renewPassword = trim($_POST['renewpassword']);
|
||||
|
||||
// Simpan input lama jika terjadi error
|
||||
$_SESSION['old_input'] = $_POST;
|
||||
|
||||
// Validasi semua kolom harus diisi
|
||||
if (empty($currentPassword) || empty($newPassword) || empty($renewPassword)) {
|
||||
$_SESSION['error'] = "Semua kolom kata sandi harus diisi!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Fetch the current password from the database
|
||||
$sql = "SELECT password FROM users WHERE id_user = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("i", $user_id);
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
|
||||
if ($stmt->num_rows === 0) {
|
||||
$_SESSION['error'] = "Pengguna tidak ditemukan!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Bind the result (current password)
|
||||
$stmt->bind_result($dbPassword);
|
||||
$stmt->fetch();
|
||||
$stmt->close();
|
||||
|
||||
// Cek apakah password saat ini cocok dengan database
|
||||
if (!password_verify($currentPassword, $dbPassword)) {
|
||||
$_SESSION['error'] = "Kata sandi saat ini salah!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi panjang password minimal 8 karakter
|
||||
if (strlen($newPassword) < 8) {
|
||||
$_SESSION['error'] = "Kata sandi baru harus minimal 8 karakter!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi kecocokan password baru dan konfirmasi password
|
||||
if ($newPassword !== $renewPassword) {
|
||||
$_SESSION['error'] = "Kata sandi baru dan konfirmasi kata sandi tidak cocok!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Cek apakah sandi baru tidak sama dengan sandi lama
|
||||
if (password_verify($newPassword, $dbPassword)) {
|
||||
$_SESSION['error'] = "Kata sandi baru tidak boleh sama dengan kata sandi lama!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Hash password baru sebelum disimpan
|
||||
$hashedNewPassword = password_hash($newPassword, PASSWORD_DEFAULT);
|
||||
|
||||
// Update password dalam database
|
||||
$sql = "UPDATE users SET password = ? WHERE id_user = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("si", $hashedNewPassword, $user_id);
|
||||
|
||||
if ($stmt->execute()) {
|
||||
$_SESSION['success'] = "Kata sandi berhasil diperbarui!";
|
||||
unset($_SESSION['old_input']); // Hapus old input setelah sukses
|
||||
header("Location: ./");
|
||||
exit();
|
||||
} else {
|
||||
$_SESSION['error'] = "Terjadi kesalahan saat memperbarui kata sandi!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
}
|
||||
|
||||
$conn->close();
|
||||
?>
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
include '../auth.php';
|
||||
include '../../koneksi.php';
|
||||
|
||||
// Get the user ID from session
|
||||
$user_id = $_SESSION['user_id'];
|
||||
|
||||
// Initialize variables with default values
|
||||
$nama_lengkap = $no_hp = $email = "";
|
||||
|
||||
// Check if the form is submitted
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// Get and sanitize the input data
|
||||
$nama_lengkap = htmlspecialchars(trim($_POST['nama_lengkap']));
|
||||
$no_hp = htmlspecialchars(trim($_POST['no_hp']));
|
||||
$email = htmlspecialchars(trim($_POST['email']));
|
||||
|
||||
// Simpan input lama jika terjadi error
|
||||
$_SESSION['old_input'] = $_POST;
|
||||
|
||||
// Validasi No. WhatsApp (harus 10-15 digit angka)
|
||||
if (!preg_match("/^\d{10,15}$/", $no_hp)) {
|
||||
$_SESSION['error'] = "Nomor WhatsApp harus berupa angka dan 10-15 digit!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Validasi email format
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
$_SESSION['error'] = "Format email tidak valid!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Cek apakah email sudah digunakan oleh user lain
|
||||
$checkEmail = "SELECT id_user FROM users WHERE email = ? AND id_user != ?";
|
||||
$stmt = $conn->prepare($checkEmail);
|
||||
$stmt->bind_param("si", $email, $user_id);
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
|
||||
if ($stmt->num_rows > 0) {
|
||||
$_SESSION['error'] = "Email sudah digunakan oleh pengguna lain!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
$stmt->close();
|
||||
|
||||
// Update data jika validasi lolos
|
||||
$sql = "UPDATE users SET nama_lengkap = ?, no_hp = ?, email = ? WHERE id_user = ?";
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->bind_param("sssi", $nama_lengkap, $no_hp, $email, $user_id);
|
||||
|
||||
// Eksekusi update
|
||||
if ($stmt->execute()) {
|
||||
$_SESSION['success'] = "Data berhasil diperbarui!";
|
||||
unset($_SESSION['old_input']); // Hapus old input setelah sukses
|
||||
header("Location: ./");
|
||||
exit();
|
||||
} else {
|
||||
$_SESSION['error'] = "Terjadi kesalahan saat memperbarui data!";
|
||||
header("Location: ./");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Tutup statement
|
||||
$stmt->close();
|
||||
}
|
||||
|
||||
// Tutup koneksi database
|
||||
$conn->close();
|
||||
?>
|
|
@ -0,0 +1,11 @@
|
|||
.icon-container {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
.card {
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
}
|
||||
.card:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1);
|
||||
}
|
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 634 KiB |
After Width: | Height: | Size: 209 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 227 KiB |
After Width: | Height: | Size: 286 KiB |
|
@ -0,0 +1,6 @@
|
|||
function googleTranslateElementInit() {
|
||||
new google.translate.TranslateElement(
|
||||
{ pageLanguage: 'id', includedLanguages: 'en,id', layout: google.translate.TranslateElement.InlineLayout.SIMPLE },
|
||||
'google_translate_element'
|
||||
);
|
||||
}
|
|
@ -0,0 +1,296 @@
|
|||
/**
|
||||
* Template Name: FlexStart
|
||||
* Template URL: https://bootstrapmade.com/flexstart-bootstrap-startup-template/
|
||||
* Updated: Mar 17 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
*/
|
||||
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Easy selector helper function
|
||||
*/
|
||||
const select = (el, all = false) => {
|
||||
el = el.trim()
|
||||
if (all) {
|
||||
return [...document.querySelectorAll(el)]
|
||||
} else {
|
||||
return document.querySelector(el)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Easy event listener function
|
||||
*/
|
||||
const on = (type, el, listener, all = false) => {
|
||||
if (all) {
|
||||
select(el, all).forEach(e => e.addEventListener(type, listener))
|
||||
} else {
|
||||
select(el, all).addEventListener(type, listener)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Easy on scroll event listener
|
||||
*/
|
||||
const onscroll = (el, listener) => {
|
||||
el.addEventListener('scroll', listener)
|
||||
}
|
||||
|
||||
/**
|
||||
* Navbar links active state on scroll
|
||||
*/
|
||||
let navbarlinks = select('#navbar .scrollto', true)
|
||||
const navbarlinksActive = () => {
|
||||
let position = window.scrollY + 200
|
||||
navbarlinks.forEach(navbarlink => {
|
||||
if (!navbarlink.hash) return
|
||||
let section = select(navbarlink.hash)
|
||||
if (!section) return
|
||||
if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
|
||||
navbarlink.classList.add('active')
|
||||
} else {
|
||||
navbarlink.classList.remove('active')
|
||||
}
|
||||
})
|
||||
}
|
||||
window.addEventListener('load', navbarlinksActive)
|
||||
onscroll(document, navbarlinksActive)
|
||||
|
||||
/**
|
||||
* Scrolls to an element with header offset
|
||||
*/
|
||||
const scrollto = (el) => {
|
||||
let header = select('#header')
|
||||
let offset = header.offsetHeight
|
||||
|
||||
if (!header.classList.contains('header-scrolled')) {
|
||||
offset -= 10
|
||||
}
|
||||
|
||||
let elementPos = select(el).offsetTop
|
||||
window.scrollTo({
|
||||
top: elementPos - offset,
|
||||
behavior: 'smooth'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle .header-scrolled class to #header when page is scrolled
|
||||
*/
|
||||
let selectHeader = select('#header')
|
||||
if (selectHeader) {
|
||||
const headerScrolled = () => {
|
||||
if (window.scrollY > 100) {
|
||||
selectHeader.classList.add('header-scrolled')
|
||||
} else {
|
||||
selectHeader.classList.remove('header-scrolled')
|
||||
}
|
||||
}
|
||||
window.addEventListener('load', headerScrolled)
|
||||
onscroll(document, headerScrolled)
|
||||
}
|
||||
|
||||
/**
|
||||
* Back to top button
|
||||
*/
|
||||
let backtotop = select('.back-to-top')
|
||||
if (backtotop) {
|
||||
const toggleBacktotop = () => {
|
||||
if (window.scrollY > 100) {
|
||||
backtotop.classList.add('active')
|
||||
} else {
|
||||
backtotop.classList.remove('active')
|
||||
}
|
||||
}
|
||||
window.addEventListener('load', toggleBacktotop)
|
||||
onscroll(document, toggleBacktotop)
|
||||
}
|
||||
|
||||
/**
|
||||
* Mobile nav toggle
|
||||
*/
|
||||
on('click', '.mobile-nav-toggle', function(e) {
|
||||
select('#navbar').classList.toggle('navbar-mobile')
|
||||
this.classList.toggle('bi-list')
|
||||
this.classList.toggle('bi-x')
|
||||
})
|
||||
|
||||
/**
|
||||
* Mobile nav dropdowns activate
|
||||
*/
|
||||
on('click', '.navbar .dropdown > a', function(e) {
|
||||
if (select('#navbar').classList.contains('navbar-mobile')) {
|
||||
e.preventDefault()
|
||||
this.nextElementSibling.classList.toggle('dropdown-active')
|
||||
}
|
||||
}, true)
|
||||
|
||||
/**
|
||||
* Scrool with ofset on links with a class name .scrollto
|
||||
*/
|
||||
on('click', '.scrollto', function(e) {
|
||||
if (select(this.hash)) {
|
||||
e.preventDefault()
|
||||
|
||||
let navbar = select('#navbar')
|
||||
if (navbar.classList.contains('navbar-mobile')) {
|
||||
navbar.classList.remove('navbar-mobile')
|
||||
let navbarToggle = select('.mobile-nav-toggle')
|
||||
navbarToggle.classList.toggle('bi-list')
|
||||
navbarToggle.classList.toggle('bi-x')
|
||||
}
|
||||
scrollto(this.hash)
|
||||
}
|
||||
}, true)
|
||||
|
||||
/**
|
||||
* Scroll with ofset on page load with hash links in the url
|
||||
*/
|
||||
window.addEventListener('load', () => {
|
||||
if (window.location.hash) {
|
||||
if (select(window.location.hash)) {
|
||||
scrollto(window.location.hash)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Clients Slider
|
||||
*/
|
||||
new Swiper('.clients-slider', {
|
||||
speed: 400,
|
||||
loop: true,
|
||||
autoplay: {
|
||||
delay: 5000,
|
||||
disableOnInteraction: false
|
||||
},
|
||||
slidesPerView: 'auto',
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
type: 'bullets',
|
||||
clickable: true
|
||||
},
|
||||
breakpoints: {
|
||||
320: {
|
||||
slidesPerView: 2,
|
||||
spaceBetween: 40
|
||||
},
|
||||
480: {
|
||||
slidesPerView: 3,
|
||||
spaceBetween: 60
|
||||
},
|
||||
640: {
|
||||
slidesPerView: 4,
|
||||
spaceBetween: 80
|
||||
},
|
||||
992: {
|
||||
slidesPerView: 6,
|
||||
spaceBetween: 120
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Porfolio isotope and filter
|
||||
*/
|
||||
window.addEventListener('load', () => {
|
||||
let portfolioContainer = select('.portfolio-container');
|
||||
if (portfolioContainer) {
|
||||
let portfolioIsotope = new Isotope(portfolioContainer, {
|
||||
itemSelector: '.portfolio-item',
|
||||
layoutMode: 'fitRows'
|
||||
});
|
||||
|
||||
let portfolioFilters = select('#portfolio-flters li', true);
|
||||
|
||||
on('click', '#portfolio-flters li', function(e) {
|
||||
e.preventDefault();
|
||||
portfolioFilters.forEach(function(el) {
|
||||
el.classList.remove('filter-active');
|
||||
});
|
||||
this.classList.add('filter-active');
|
||||
|
||||
portfolioIsotope.arrange({
|
||||
filter: this.getAttribute('data-filter')
|
||||
});
|
||||
aos_init();
|
||||
}, true);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* Initiate portfolio lightbox
|
||||
*/
|
||||
const portfolioLightbox = GLightbox({
|
||||
selector: '.portfokio-lightbox'
|
||||
});
|
||||
|
||||
/**
|
||||
* Portfolio details slider
|
||||
*/
|
||||
new Swiper('.portfolio-details-slider', {
|
||||
speed: 400,
|
||||
autoplay: {
|
||||
delay: 5000,
|
||||
disableOnInteraction: false
|
||||
},
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
type: 'bullets',
|
||||
clickable: true
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Testimonials slider
|
||||
*/
|
||||
new Swiper('.testimonials-slider', {
|
||||
speed: 600,
|
||||
loop: true,
|
||||
autoplay: {
|
||||
delay: 5000,
|
||||
disableOnInteraction: false
|
||||
},
|
||||
slidesPerView: 'auto',
|
||||
pagination: {
|
||||
el: '.swiper-pagination',
|
||||
type: 'bullets',
|
||||
clickable: true
|
||||
},
|
||||
breakpoints: {
|
||||
320: {
|
||||
slidesPerView: 1,
|
||||
spaceBetween: 40
|
||||
},
|
||||
|
||||
1200: {
|
||||
slidesPerView: 3,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Animation on scroll
|
||||
*/
|
||||
function aos_init() {
|
||||
AOS.init({
|
||||
duration: 1000,
|
||||
easing: "ease-in-out",
|
||||
once: true,
|
||||
mirror: false
|
||||
});
|
||||
}
|
||||
window.addEventListener('load', () => {
|
||||
aos_init();
|
||||
});
|
||||
|
||||
/**
|
||||
* Initiate Pure Counter
|
||||
*/
|
||||
new PureCounter();
|
||||
|
||||
})();
|
|
@ -0,0 +1,2 @@
|
|||
The .scss (Sass) files are only available in the pro version.
|
||||
You can buy it from: https://bootstrapmade.com/flexstart-bootstrap-startup-template/
|
|
@ -0,0 +1,331 @@
|
|||
/**
|
||||
* Template Name: NiceAdmin
|
||||
* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
||||
* Updated: Apr 20 2024 with Bootstrap v5.3.3
|
||||
* Author: BootstrapMade.com
|
||||
* License: https://bootstrapmade.com/license/
|
||||
*/
|
||||
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Easy selector helper function
|
||||
*/
|
||||
const select = (el, all = false) => {
|
||||
el = el.trim()
|
||||
if (all) {
|
||||
return [...document.querySelectorAll(el)]
|
||||
} else {
|
||||
return document.querySelector(el)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Easy event listener function
|
||||
*/
|
||||
const on = (type, el, listener, all = false) => {
|
||||
if (all) {
|
||||
select(el, all).forEach(e => e.addEventListener(type, listener))
|
||||
} else {
|
||||
select(el, all).addEventListener(type, listener)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Easy on scroll event listener
|
||||
*/
|
||||
const onscroll = (el, listener) => {
|
||||
el.addEventListener('scroll', listener)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sidebar toggle
|
||||
*/
|
||||
if (select('.toggle-sidebar-btn')) {
|
||||
on('click', '.toggle-sidebar-btn', function(e) {
|
||||
select('body').classList.toggle('toggle-sidebar')
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Search bar toggle
|
||||
*/
|
||||
if (select('.search-bar-toggle')) {
|
||||
on('click', '.search-bar-toggle', function(e) {
|
||||
select('.search-bar').classList.toggle('search-bar-show')
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Navbar links active state on scroll
|
||||
*/
|
||||
let navbarlinks = select('#navbar .scrollto', true)
|
||||
const navbarlinksActive = () => {
|
||||
let position = window.scrollY + 200
|
||||
navbarlinks.forEach(navbarlink => {
|
||||
if (!navbarlink.hash) return
|
||||
let section = select(navbarlink.hash)
|
||||
if (!section) return
|
||||
if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
|
||||
navbarlink.classList.add('active')
|
||||
} else {
|
||||
navbarlink.classList.remove('active')
|
||||
}
|
||||
})
|
||||
}
|
||||
window.addEventListener('load', navbarlinksActive)
|
||||
onscroll(document, navbarlinksActive)
|
||||
|
||||
/**
|
||||
* Toggle .header-scrolled class to #header when page is scrolled
|
||||
*/
|
||||
let selectHeader = select('#header')
|
||||
if (selectHeader) {
|
||||
const headerScrolled = () => {
|
||||
if (window.scrollY > 100) {
|
||||
selectHeader.classList.add('header-scrolled')
|
||||
} else {
|
||||
selectHeader.classList.remove('header-scrolled')
|
||||
}
|
||||
}
|
||||
window.addEventListener('load', headerScrolled)
|
||||
onscroll(document, headerScrolled)
|
||||
}
|
||||
|
||||
/**
|
||||
* Back to top button
|
||||
*/
|
||||
let backtotop = select('.back-to-top')
|
||||
if (backtotop) {
|
||||
const toggleBacktotop = () => {
|
||||
if (window.scrollY > 100) {
|
||||
backtotop.classList.add('active')
|
||||
} else {
|
||||
backtotop.classList.remove('active')
|
||||
}
|
||||
}
|
||||
window.addEventListener('load', toggleBacktotop)
|
||||
onscroll(document, toggleBacktotop)
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiate tooltips
|
||||
*/
|
||||
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
|
||||
var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) {
|
||||
return new bootstrap.Tooltip(tooltipTriggerEl)
|
||||
})
|
||||
|
||||
/**
|
||||
* Initiate quill editors
|
||||
*/
|
||||
if (select('.quill-editor-default')) {
|
||||
new Quill('.quill-editor-default', {
|
||||
theme: 'snow'
|
||||
});
|
||||
}
|
||||
|
||||
if (select('.quill-editor-bubble')) {
|
||||
new Quill('.quill-editor-bubble', {
|
||||
theme: 'bubble'
|
||||
});
|
||||
}
|
||||
|
||||
if (select('.quill-editor-full')) {
|
||||
new Quill(".quill-editor-full", {
|
||||
modules: {
|
||||
toolbar: [
|
||||
[{
|
||||
font: []
|
||||
}, {
|
||||
size: []
|
||||
}],
|
||||
["bold", "italic", "underline", "strike"],
|
||||
[{
|
||||
color: []
|
||||
},
|
||||
{
|
||||
background: []
|
||||
}
|
||||
],
|
||||
[{
|
||||
script: "super"
|
||||
},
|
||||
{
|
||||
script: "sub"
|
||||
}
|
||||
],
|
||||
[{
|
||||
list: "ordered"
|
||||
},
|
||||
{
|
||||
list: "bullet"
|
||||
},
|
||||
{
|
||||
indent: "-1"
|
||||
},
|
||||
{
|
||||
indent: "+1"
|
||||
}
|
||||
],
|
||||
["direction", {
|
||||
align: []
|
||||
}],
|
||||
["link", "image", "video"],
|
||||
["clean"]
|
||||
]
|
||||
},
|
||||
theme: "snow"
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiate TinyMCE Editor
|
||||
*/
|
||||
|
||||
const useDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
const isSmallScreen = window.matchMedia('(max-width: 1023.5px)').matches;
|
||||
|
||||
tinymce.init({
|
||||
selector: 'textarea.tinymce-editor',
|
||||
plugins: 'preview importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap quickbars emoticons accordion',
|
||||
editimage_cors_hosts: ['picsum.photos'],
|
||||
menubar: 'file edit view insert format tools table help',
|
||||
toolbar: "undo redo | accordion accordionremove | blocks fontfamily fontsize | bold italic underline strikethrough | align numlist bullist | link image | table media | lineheight outdent indent| forecolor backcolor removeformat | charmap emoticons | code fullscreen preview | save print | pagebreak anchor codesample | ltr rtl",
|
||||
autosave_ask_before_unload: true,
|
||||
autosave_interval: '30s',
|
||||
autosave_prefix: '{path}{query}-{id}-',
|
||||
autosave_restore_when_empty: false,
|
||||
autosave_retention: '2m',
|
||||
image_advtab: true,
|
||||
link_list: [{
|
||||
title: 'My page 1',
|
||||
value: 'https://www.tiny.cloud'
|
||||
},
|
||||
{
|
||||
title: 'My page 2',
|
||||
value: 'http://www.moxiecode.com'
|
||||
}
|
||||
],
|
||||
image_list: [{
|
||||
title: 'My page 1',
|
||||
value: 'https://www.tiny.cloud'
|
||||
},
|
||||
{
|
||||
title: 'My page 2',
|
||||
value: 'http://www.moxiecode.com'
|
||||
}
|
||||
],
|
||||
image_class_list: [{
|
||||
title: 'None',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
title: 'Some class',
|
||||
value: 'class-name'
|
||||
}
|
||||
],
|
||||
importcss_append: true,
|
||||
file_picker_callback: (callback, value, meta) => {
|
||||
/* Provide file and text for the link dialog */
|
||||
if (meta.filetype === 'file') {
|
||||
callback('https://www.google.com/logos/google.jpg', {
|
||||
text: 'My text'
|
||||
});
|
||||
}
|
||||
|
||||
/* Provide image and alt text for the image dialog */
|
||||
if (meta.filetype === 'image') {
|
||||
callback('https://www.google.com/logos/google.jpg', {
|
||||
alt: 'My alt text'
|
||||
});
|
||||
}
|
||||
|
||||
/* Provide alternative source and posted for the media dialog */
|
||||
if (meta.filetype === 'media') {
|
||||
callback('movie.mp4', {
|
||||
source2: 'alt.ogg',
|
||||
poster: 'https://www.google.com/logos/google.jpg'
|
||||
});
|
||||
}
|
||||
},
|
||||
height: 600,
|
||||
image_caption: true,
|
||||
quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
|
||||
noneditable_class: 'mceNonEditable',
|
||||
toolbar_mode: 'sliding',
|
||||
contextmenu: 'link image table',
|
||||
skin: useDarkMode ? 'oxide-dark' : 'oxide',
|
||||
content_css: useDarkMode ? 'dark' : 'default',
|
||||
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }'
|
||||
});
|
||||
|
||||
/**
|
||||
* Initiate Bootstrap validation check
|
||||
*/
|
||||
var needsValidation = document.querySelectorAll('.needs-validation')
|
||||
|
||||
Array.prototype.slice.call(needsValidation)
|
||||
.forEach(function(form) {
|
||||
form.addEventListener('submit', function(event) {
|
||||
if (!form.checkValidity()) {
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
}
|
||||
|
||||
form.classList.add('was-validated')
|
||||
}, false)
|
||||
})
|
||||
|
||||
/**
|
||||
* Initiate Datatables
|
||||
*/
|
||||
const datatables = select('.datatable', true)
|
||||
datatables.forEach(datatable => {
|
||||
new simpleDatatables.DataTable(datatable, {
|
||||
perPageSelect: [5, 10, 15, ["All", -1]],
|
||||
columns: [{
|
||||
select: 2,
|
||||
sortSequence: ["desc", "asc"]
|
||||
},
|
||||
{
|
||||
select: 3,
|
||||
sortSequence: ["desc"]
|
||||
},
|
||||
{
|
||||
select: 4,
|
||||
cellClass: "green",
|
||||
headerClass: "red"
|
||||
}
|
||||
]
|
||||
});
|
||||
})
|
||||
|
||||
/**
|
||||
* Autoresize echart charts
|
||||
*/
|
||||
const mainContainer = select('#main');
|
||||
if (mainContainer) {
|
||||
setTimeout(() => {
|
||||
new ResizeObserver(function() {
|
||||
select('.echart', true).forEach(getEchart => {
|
||||
echarts.getInstanceByDom(getEchart).resize();
|
||||
})
|
||||
}).observe(mainContainer);
|
||||
}, 200);
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
|
||||
//CUSTOM
|
||||
|
||||
setTimeout(function() {
|
||||
let alerts = document.querySelectorAll('.alert');
|
||||
alerts.forEach(alert => {
|
||||
alert.classList.remove('show');
|
||||
alert.classList.add('fade');
|
||||
setTimeout(() => alert.remove(), 500); // Hapus dari DOM setelah efek fade out
|
||||
});
|
||||
}, 5000);
|
|
@ -0,0 +1,2 @@
|
|||
The .scss (Sass) files are only available in the pro version.
|
||||
You can buy it from: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
|
|
@ -0,0 +1,601 @@
|
|||
@keyframes opaque {
|
||||
0% {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes resizeanim {
|
||||
0%,to {
|
||||
opacity: 0
|
||||
}
|
||||
}
|
||||
|
||||
.apexcharts-canvas {
|
||||
position: relative;
|
||||
user-select: none
|
||||
}
|
||||
|
||||
.apexcharts-canvas ::-webkit-scrollbar {
|
||||
-webkit-appearance: none;
|
||||
width: 6px
|
||||
}
|
||||
|
||||
.apexcharts-canvas ::-webkit-scrollbar-thumb {
|
||||
border-radius: 4px;
|
||||
background-color: rgba(0,0,0,.5);
|
||||
box-shadow: 0 0 1px rgba(255,255,255,.5);
|
||||
-webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)
|
||||
}
|
||||
|
||||
.apexcharts-inner {
|
||||
position: relative
|
||||
}
|
||||
|
||||
.apexcharts-text tspan {
|
||||
font-family: inherit
|
||||
}
|
||||
|
||||
.legend-mouseover-inactive {
|
||||
transition: .15s ease all;
|
||||
opacity: .2
|
||||
}
|
||||
|
||||
.apexcharts-legend-text {
|
||||
padding-left: 15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
|
||||
.apexcharts-series-collapsed {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
.apexcharts-tooltip {
|
||||
border-radius: 5px;
|
||||
box-shadow: 2px 2px 6px -4px #999;
|
||||
cursor: default;
|
||||
font-size: 14px;
|
||||
left: 62px;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
z-index: 12;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-tooltip.apexcharts-active {
|
||||
opacity: 1;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-tooltip.apexcharts-theme-light {
|
||||
border: 1px solid #e3e3e3;
|
||||
background: rgba(255,255,255,.96)
|
||||
}
|
||||
|
||||
.apexcharts-tooltip.apexcharts-theme-dark {
|
||||
color: #fff;
|
||||
background: rgba(30,30,30,.8)
|
||||
}
|
||||
|
||||
.apexcharts-tooltip * {
|
||||
font-family: inherit
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-title {
|
||||
padding: 6px;
|
||||
font-size: 15px;
|
||||
margin-bottom: 4px
|
||||
}
|
||||
|
||||
.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {
|
||||
background: #eceff1;
|
||||
border-bottom: 1px solid #ddd
|
||||
}
|
||||
|
||||
.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
|
||||
background: rgba(0,0,0,.7);
|
||||
border-bottom: 1px solid #333
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
font-weight: 600
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {
|
||||
display: none
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {
|
||||
padding: 6px 0 5px
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {
|
||||
display: flex
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-marker {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
position: relative;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
border-radius: 50%
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-series-group {
|
||||
padding: 0 10px;
|
||||
display: none;
|
||||
text-align: left;
|
||||
justify-content: left;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {
|
||||
opacity: 1
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {
|
||||
padding-bottom: 4px
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-series-group-hidden {
|
||||
opacity: 0;
|
||||
height: 0;
|
||||
line-height: 0;
|
||||
padding: 0!important
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-y-group {
|
||||
padding: 6px 0 5px
|
||||
}
|
||||
|
||||
.apexcharts-custom-tooltip,.apexcharts-tooltip-box {
|
||||
padding: 4px 8px
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-boxPlot {
|
||||
display: flex;
|
||||
flex-direction: column-reverse
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-box>div {
|
||||
margin: 4px 0
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-box span.value {
|
||||
font-weight: 700
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-rangebar {
|
||||
padding: 5px 8px
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-rangebar .category {
|
||||
font-weight: 600;
|
||||
color: #777
|
||||
}
|
||||
|
||||
.apexcharts-tooltip-rangebar .series-name {
|
||||
font-weight: 700;
|
||||
display: block;
|
||||
margin-bottom: 5px
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
color: #373d3f;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
background: #eceff1;
|
||||
border: 1px solid #90a4ae
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip {
|
||||
padding: 9px 10px;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip.apexcharts-theme-dark {
|
||||
background: rgba(0,0,0,.7);
|
||||
border: 1px solid rgba(0,0,0,.5);
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {
|
||||
left: 50%;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip:after {
|
||||
border-color: transparent;
|
||||
border-width: 6px;
|
||||
margin-left: -6px
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip:before {
|
||||
border-color: transparent;
|
||||
border-width: 7px;
|
||||
margin-left: -7px
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {
|
||||
bottom: 100%
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {
|
||||
top: 100%
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-bottom:after {
|
||||
border-bottom-color: #eceff1
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-bottom:before {
|
||||
border-bottom-color: #90a4ae
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {
|
||||
border-bottom-color: rgba(0,0,0,.5)
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-top:after {
|
||||
border-top-color: #eceff1
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-top:before {
|
||||
border-top-color: #90a4ae
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {
|
||||
border-top-color: rgba(0,0,0,.5)
|
||||
}
|
||||
|
||||
.apexcharts-xaxistooltip.apexcharts-active {
|
||||
opacity: 1;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip {
|
||||
padding: 4px 10px
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip.apexcharts-theme-dark {
|
||||
background: rgba(0,0,0,.7);
|
||||
border: 1px solid rgba(0,0,0,.5);
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {
|
||||
top: 50%;
|
||||
border: solid transparent;
|
||||
content: " ";
|
||||
height: 0;
|
||||
width: 0;
|
||||
position: absolute;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip:after {
|
||||
border-color: transparent;
|
||||
border-width: 6px;
|
||||
margin-top: -6px
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip:before {
|
||||
border-color: transparent;
|
||||
border-width: 7px;
|
||||
margin-top: -7px
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {
|
||||
left: 100%
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {
|
||||
right: 100%
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-left:after {
|
||||
border-left-color: #eceff1
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-left:before {
|
||||
border-left-color: #90a4ae
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {
|
||||
border-left-color: rgba(0,0,0,.5)
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-right:after {
|
||||
border-right-color: #eceff1
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-right:before {
|
||||
border-right-color: #90a4ae
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {
|
||||
border-right-color: rgba(0,0,0,.5)
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip.apexcharts-active {
|
||||
opacity: 1
|
||||
}
|
||||
|
||||
.apexcharts-yaxistooltip-hidden {
|
||||
display: none
|
||||
}
|
||||
|
||||
.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {
|
||||
opacity: 1;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-ycrosshairs-hidden {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
.apexcharts-selection-rect {
|
||||
cursor: move
|
||||
}
|
||||
|
||||
.svg_select_boundingRect,.svg_select_points_rot {
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
visibility: hidden
|
||||
}
|
||||
|
||||
.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {
|
||||
opacity: 0;
|
||||
visibility: hidden
|
||||
}
|
||||
|
||||
.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {
|
||||
cursor: ew-resize;
|
||||
opacity: 1;
|
||||
visibility: visible
|
||||
}
|
||||
|
||||
.svg_select_points {
|
||||
fill: #efefef;
|
||||
stroke: #333;
|
||||
rx: 2
|
||||
}
|
||||
|
||||
.apexcharts-svg.apexcharts-zoomable.hovering-zoom {
|
||||
cursor: crosshair
|
||||
}
|
||||
|
||||
.apexcharts-svg.apexcharts-zoomable.hovering-pan {
|
||||
cursor: move
|
||||
}
|
||||
|
||||
.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
line-height: 24px;
|
||||
color: #6e8192;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {
|
||||
fill: #6e8192
|
||||
}
|
||||
|
||||
.apexcharts-selection-icon svg {
|
||||
fill: #444;
|
||||
transform: scale(.76)
|
||||
}
|
||||
|
||||
.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {
|
||||
fill: #f3f4f5
|
||||
}
|
||||
|
||||
.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {
|
||||
fill: #008ffb
|
||||
}
|
||||
|
||||
.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {
|
||||
fill: #333
|
||||
}
|
||||
|
||||
.apexcharts-menu-icon,.apexcharts-selection-icon {
|
||||
position: relative
|
||||
}
|
||||
|
||||
.apexcharts-reset-icon {
|
||||
margin-left: 5px
|
||||
}
|
||||
|
||||
.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {
|
||||
transform: scale(.85)
|
||||
}
|
||||
|
||||
.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {
|
||||
transform: scale(.7)
|
||||
}
|
||||
|
||||
.apexcharts-zoomout-icon {
|
||||
margin-right: 3px
|
||||
}
|
||||
|
||||
.apexcharts-pan-icon {
|
||||
transform: scale(.62);
|
||||
position: relative;
|
||||
left: 1px;
|
||||
top: 0
|
||||
}
|
||||
|
||||
.apexcharts-pan-icon svg {
|
||||
fill: #fff;
|
||||
stroke: #6e8192;
|
||||
stroke-width: 2
|
||||
}
|
||||
|
||||
.apexcharts-pan-icon.apexcharts-selected svg {
|
||||
stroke: #008ffb
|
||||
}
|
||||
|
||||
.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {
|
||||
stroke: #333
|
||||
}
|
||||
|
||||
.apexcharts-toolbar {
|
||||
position: absolute;
|
||||
z-index: 11;
|
||||
max-width: 176px;
|
||||
text-align: right;
|
||||
border-radius: 3px;
|
||||
padding: 0 6px 2px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center
|
||||
}
|
||||
|
||||
.apexcharts-menu {
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 3px;
|
||||
padding: 3px;
|
||||
right: 10px;
|
||||
opacity: 0;
|
||||
min-width: 110px;
|
||||
transition: .15s ease all;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-menu.apexcharts-menu-open {
|
||||
opacity: 1;
|
||||
pointer-events: all;
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.apexcharts-menu-item {
|
||||
padding: 6px 7px;
|
||||
font-size: 12px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.apexcharts-theme-light .apexcharts-menu-item:hover {
|
||||
background: #eee
|
||||
}
|
||||
|
||||
.apexcharts-theme-dark .apexcharts-menu {
|
||||
background: rgba(0,0,0,.7);
|
||||
color: #fff
|
||||
}
|
||||
|
||||
@media screen and (min-width:768px) {
|
||||
.apexcharts-canvas:hover .apexcharts-toolbar {
|
||||
opacity: 1
|
||||
}
|
||||
}
|
||||
|
||||
.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {
|
||||
opacity: 0
|
||||
}
|
||||
|
||||
.apexcharts-hidden-element-shown {
|
||||
opacity: 1;
|
||||
transition: 0.25s ease all;
|
||||
}
|
||||
.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {
|
||||
cursor: default;
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-pie-label-delay {
|
||||
opacity: 0;
|
||||
animation-name: opaque;
|
||||
animation-duration: .3s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-timing-function: ease
|
||||
}
|
||||
|
||||
.apexcharts-radialbar-label {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-marker {
|
||||
transition: .15s ease all
|
||||
}
|
||||
|
||||
.resize-triggers {
|
||||
animation: 1ms resizeanim;
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.contract-trigger:before,.resize-triggers,.resize-triggers>div {
|
||||
content: " ";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0
|
||||
}
|
||||
|
||||
.resize-triggers>div {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: #eee;
|
||||
overflow: auto
|
||||
}
|
||||
|
||||
.contract-trigger:before {
|
||||
overflow: hidden;
|
||||
width: 200%;
|
||||
height: 200%
|
||||
}
|
||||
|
||||
.apexcharts-bar-goals-markers{
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-bar-shadows{
|
||||
pointer-events: none
|
||||
}
|
||||
|
||||
.apexcharts-rangebar-goals-markers{
|
||||
pointer-events: none
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"name": "ar",
|
||||
"options": {
|
||||
"months": [
|
||||
"يناير",
|
||||
"فبراير",
|
||||
"مارس",
|
||||
"أبريل",
|
||||
"مايو",
|
||||
"يونيو",
|
||||
"يوليو",
|
||||
"أغسطس",
|
||||
"سبتمبر",
|
||||
"أكتوبر",
|
||||
"نوفمبر",
|
||||
"ديسمبر"
|
||||
],
|
||||
"shortMonths": [
|
||||
"يناير",
|
||||
"فبراير",
|
||||
"مارس",
|
||||
"أبريل",
|
||||
"مايو",
|
||||
"يونيو",
|
||||
"يوليو",
|
||||
"أغسطس",
|
||||
"سبتمبر",
|
||||
"أكتوبر",
|
||||
"نوفمبر",
|
||||
"ديسمبر"
|
||||
],
|
||||
"days": [
|
||||
"الأحد",
|
||||
"الإثنين",
|
||||
"الثلاثاء",
|
||||
"الأربعاء",
|
||||
"الخميس",
|
||||
"الجمعة",
|
||||
"السبت"
|
||||
],
|
||||
"shortDays": [
|
||||
"أحد",
|
||||
"إثنين",
|
||||
"ثلاثاء",
|
||||
"أربعاء",
|
||||
"خميس",
|
||||
"جمعة",
|
||||
"سبت"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "تحميل بصيغة SVG",
|
||||
"exportToPNG": "تحميل بصيغة PNG",
|
||||
"exportToCSV": "تحميل بصيغة CSV",
|
||||
"menu": "القائمة",
|
||||
"selection": "تحديد",
|
||||
"selectionZoom": "تكبير التحديد",
|
||||
"zoomIn": "تكبير",
|
||||
"zoomOut": "تصغير",
|
||||
"pan": "تحريك",
|
||||
"reset": "إعادة التعيين"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "be-cyrl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Студзень",
|
||||
"Люты",
|
||||
"Сакавік",
|
||||
"Красавік",
|
||||
"Травень",
|
||||
"Чэрвень",
|
||||
"Ліпень",
|
||||
"Жнівень",
|
||||
"Верасень",
|
||||
"Кастрычнік",
|
||||
"Лістапад",
|
||||
"Сьнежань"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Сту",
|
||||
"Лют",
|
||||
"Сак",
|
||||
"Кра",
|
||||
"Тра",
|
||||
"Чэр",
|
||||
"Ліп",
|
||||
"Жні",
|
||||
"Вер",
|
||||
"Кас",
|
||||
"Ліс",
|
||||
"Сьн"
|
||||
],
|
||||
"days": [
|
||||
"Нядзеля",
|
||||
"Панядзелак",
|
||||
"Аўторак",
|
||||
"Серада",
|
||||
"Чацьвер",
|
||||
"Пятніца",
|
||||
"Субота"
|
||||
],
|
||||
"shortDays": ["Нд", "Пн", "Аў", "Ср", "Чц", "Пт", "Сб"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Спампаваць SVG",
|
||||
"exportToPNG": "Спампаваць PNG",
|
||||
"exportToCSV": "Спампаваць CSV",
|
||||
"menu": "Мэню",
|
||||
"selection": "Вылучэньне",
|
||||
"selectionZoom": "Вылучэньне з маштабаваньнем",
|
||||
"zoomIn": "Наблізіць",
|
||||
"zoomOut": "Аддаліць",
|
||||
"pan": "Ссоўваньне",
|
||||
"reset": "Скінуць маштабаваньне"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "be-latn",
|
||||
"options": {
|
||||
"months": [
|
||||
"Studzień",
|
||||
"Luty",
|
||||
"Sakavik",
|
||||
"Krasavik",
|
||||
"Travień",
|
||||
"Červień",
|
||||
"Lipień",
|
||||
"Žnivień",
|
||||
"Vierasień",
|
||||
"Kastryčnik",
|
||||
"Listapad",
|
||||
"Śniežań"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Stu",
|
||||
"Lut",
|
||||
"Sak",
|
||||
"Kra",
|
||||
"Tra",
|
||||
"Čer",
|
||||
"Lip",
|
||||
"Žni",
|
||||
"Vie",
|
||||
"Kas",
|
||||
"Lis",
|
||||
"Śni"
|
||||
],
|
||||
"days": [
|
||||
"Niadziela",
|
||||
"Paniadziełak",
|
||||
"Aŭtorak",
|
||||
"Sierada",
|
||||
"Čaćvier",
|
||||
"Piatnica",
|
||||
"Subota"
|
||||
],
|
||||
"shortDays": ["Nd", "Pn", "Aŭ", "Sr", "Čć", "Pt", "Sb"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Spampavać SVG",
|
||||
"exportToPNG": "Spampavać PNG",
|
||||
"exportToCSV": "Spampavać CSV",
|
||||
"menu": "Meniu",
|
||||
"selection": "Vyłučeńnie",
|
||||
"selectionZoom": "Vyłučeńnie z maštabavańniem",
|
||||
"zoomIn": "Nablizić",
|
||||
"zoomOut": "Addalić",
|
||||
"pan": "Ssoŭvańnie",
|
||||
"reset": "Skinuć maštabavańnie"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "ca",
|
||||
"options": {
|
||||
"months": [
|
||||
"Gener",
|
||||
"Febrer",
|
||||
"Març",
|
||||
"Abril",
|
||||
"Maig",
|
||||
"Juny",
|
||||
"Juliol",
|
||||
"Agost",
|
||||
"Setembre",
|
||||
"Octubre",
|
||||
"Novembre",
|
||||
"Desembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Gen.",
|
||||
"Febr.",
|
||||
"Març",
|
||||
"Abr.",
|
||||
"Maig",
|
||||
"Juny",
|
||||
"Jul.",
|
||||
"Ag.",
|
||||
"Set.",
|
||||
"Oct.",
|
||||
"Nov.",
|
||||
"Des."
|
||||
],
|
||||
"days": [
|
||||
"Diumenge",
|
||||
"Dilluns",
|
||||
"Dimarts",
|
||||
"Dimecres",
|
||||
"Dijous",
|
||||
"Divendres",
|
||||
"Dissabte"
|
||||
],
|
||||
"shortDays": ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Descarregar SVG",
|
||||
"exportToPNG": "Descarregar PNG",
|
||||
"exportToCSV": "Descarregar CSV",
|
||||
"menu": "Menú",
|
||||
"selection": "Seleccionar",
|
||||
"selectionZoom": "Seleccionar Zoom",
|
||||
"zoomIn": "Augmentar",
|
||||
"zoomOut": "Disminuir",
|
||||
"pan": "Navegació",
|
||||
"reset": "Reiniciar Zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "cs",
|
||||
"options": {
|
||||
"months": [
|
||||
"Leden",
|
||||
"Únor",
|
||||
"Březen",
|
||||
"Duben",
|
||||
"Květen",
|
||||
"Červen",
|
||||
"Červenec",
|
||||
"Srpen",
|
||||
"Září",
|
||||
"Říjen",
|
||||
"Listopad",
|
||||
"Prosinec"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Led",
|
||||
"Úno",
|
||||
"Bře",
|
||||
"Dub",
|
||||
"Kvě",
|
||||
"Čvn",
|
||||
"Čvc",
|
||||
"Srp",
|
||||
"Zář",
|
||||
"Říj",
|
||||
"Lis",
|
||||
"Pro"
|
||||
],
|
||||
"days": [
|
||||
"Neděle",
|
||||
"Pondělí",
|
||||
"Úterý",
|
||||
"Středa",
|
||||
"Čtvrtek",
|
||||
"Pátek",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Stáhnout SVG",
|
||||
"exportToPNG": "Stáhnout PNG",
|
||||
"exportToCSV": "Stáhnout CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Vybrat",
|
||||
"selectionZoom": "Zoom: Vybrat",
|
||||
"zoomIn": "Zoom: Přiblížit",
|
||||
"zoomOut": "Zoom: Oddálit",
|
||||
"pan": "Přesouvat",
|
||||
"reset": "Resetovat"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "da",
|
||||
"options": {
|
||||
"months": [
|
||||
"januar",
|
||||
"februar",
|
||||
"marts",
|
||||
"april",
|
||||
"maj",
|
||||
"juni",
|
||||
"juli",
|
||||
"august",
|
||||
"september",
|
||||
"oktober",
|
||||
"november",
|
||||
"december"
|
||||
],
|
||||
"shortMonths": [
|
||||
"jan",
|
||||
"feb",
|
||||
"mar",
|
||||
"apr",
|
||||
"maj",
|
||||
"jun",
|
||||
"jul",
|
||||
"aug",
|
||||
"sep",
|
||||
"okt",
|
||||
"nov",
|
||||
"dec"
|
||||
],
|
||||
"days": [
|
||||
"Søndag",
|
||||
"Mandag",
|
||||
"Tirsdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lørdag"
|
||||
],
|
||||
"shortDays": ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Download SVG",
|
||||
"exportToPNG": "Download PNG",
|
||||
"exportToCSV": "Download CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Valg",
|
||||
"selectionZoom": "Zoom til valg",
|
||||
"zoomIn": "Zoom ind",
|
||||
"zoomOut": "Zoom ud",
|
||||
"pan": "Panorér",
|
||||
"reset": "Nulstil zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "de",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"März",
|
||||
"April",
|
||||
"Mai",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Dezember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mär",
|
||||
"Apr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dez"
|
||||
],
|
||||
"days": [
|
||||
"Sonntag",
|
||||
"Montag",
|
||||
"Dienstag",
|
||||
"Mittwoch",
|
||||
"Donnerstag",
|
||||
"Freitag",
|
||||
"Samstag"
|
||||
],
|
||||
"shortDays": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVG speichern",
|
||||
"exportToPNG": "PNG speichern",
|
||||
"exportToCSV": "CSV speichern",
|
||||
"menu": "Menü",
|
||||
"selection": "Auswahl",
|
||||
"selectionZoom": "Auswahl vergrößern",
|
||||
"zoomIn": "Vergrößern",
|
||||
"zoomOut": "Verkleinern",
|
||||
"pan": "Verschieben",
|
||||
"reset": "Zoom zurücksetzen"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "el",
|
||||
"options": {
|
||||
"months": [
|
||||
"Ιανουάριος",
|
||||
"Φεβρουάριος",
|
||||
"Μάρτιος",
|
||||
"Απρίλιος",
|
||||
"Μάιος",
|
||||
"Ιούνιος",
|
||||
"Ιούλιος",
|
||||
"Αύγουστος",
|
||||
"Σεπτέμβριος",
|
||||
"Οκτώβριος",
|
||||
"Νοέμβριος",
|
||||
"Δεκέμβριος"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Ιαν",
|
||||
"Φευ",
|
||||
"Μαρ",
|
||||
"Απρ",
|
||||
"Μάι",
|
||||
"Ιουν",
|
||||
"Ιουλ",
|
||||
"Αυγ",
|
||||
"Σεπ",
|
||||
"Οκτ",
|
||||
"Νοε",
|
||||
"Δεκ"
|
||||
],
|
||||
"days": [
|
||||
"Κυριακή",
|
||||
"Δευτέρα",
|
||||
"Τρίτη",
|
||||
"Τετάρτη",
|
||||
"Πέμπτη",
|
||||
"Παρασκευή",
|
||||
"Σάββατο"
|
||||
],
|
||||
"shortDays": ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Λήψη SVG",
|
||||
"exportToPNG": "Λήψη PNG",
|
||||
"exportToCSV": "Λήψη CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Επιλογή",
|
||||
"selectionZoom": "Μεγένθυση βάση επιλογής",
|
||||
"zoomIn": "Μεγένθυνση",
|
||||
"zoomOut": "Σμίκρυνση",
|
||||
"pan": "Μετατόπιση",
|
||||
"reset": "Επαναφορά μεγένθυνσης"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "en",
|
||||
"options": {
|
||||
"months": [
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Sunday",
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
],
|
||||
"shortDays": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Download SVG",
|
||||
"exportToPNG": "Download PNG",
|
||||
"exportToCSV": "Download CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selection",
|
||||
"selectionZoom": "Selection Zoom",
|
||||
"zoomIn": "Zoom In",
|
||||
"zoomOut": "Zoom Out",
|
||||
"pan": "Panning",
|
||||
"reset": "Reset Zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "es",
|
||||
"options": {
|
||||
"months": [
|
||||
"Enero",
|
||||
"Febrero",
|
||||
"Marzo",
|
||||
"Abril",
|
||||
"Mayo",
|
||||
"Junio",
|
||||
"Julio",
|
||||
"Agosto",
|
||||
"Septiembre",
|
||||
"Octubre",
|
||||
"Noviembre",
|
||||
"Diciembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Ene",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dic"
|
||||
],
|
||||
"days": [
|
||||
"Domingo",
|
||||
"Lunes",
|
||||
"Martes",
|
||||
"Miércoles",
|
||||
"Jueves",
|
||||
"Viernes",
|
||||
"Sábado"
|
||||
],
|
||||
"shortDays": ["Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Descargar SVG",
|
||||
"exportToPNG": "Descargar PNG",
|
||||
"exportToCSV": "Descargar CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Seleccionar",
|
||||
"selectionZoom": "Seleccionar Zoom",
|
||||
"zoomIn": "Aumentar",
|
||||
"zoomOut": "Disminuir",
|
||||
"pan": "Navegación",
|
||||
"reset": "Reiniciar Zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"name": "et",
|
||||
"options": {
|
||||
"months": [
|
||||
"jaanuar",
|
||||
"veebruar",
|
||||
"märts",
|
||||
"aprill",
|
||||
"mai",
|
||||
"juuni",
|
||||
"juuli",
|
||||
"august",
|
||||
"september",
|
||||
"oktoober",
|
||||
"november",
|
||||
"detsember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"jaan",
|
||||
"veebr",
|
||||
"märts",
|
||||
"apr",
|
||||
"mai",
|
||||
"juuni",
|
||||
"juuli",
|
||||
"aug",
|
||||
"sept",
|
||||
"okt",
|
||||
"nov",
|
||||
"dets"
|
||||
],
|
||||
"days": [
|
||||
"pühapäev",
|
||||
"esmaspäev",
|
||||
"teisipäev",
|
||||
"kolmapäev",
|
||||
"neljapäev",
|
||||
"reede",
|
||||
"laupäev"
|
||||
],
|
||||
"shortDays": [
|
||||
"P",
|
||||
"E",
|
||||
"T",
|
||||
"K",
|
||||
"N",
|
||||
"R",
|
||||
"L"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Lae alla SVG",
|
||||
"exportToPNG": "Lae alla PNG",
|
||||
"exportToCSV": "Lae alla CSV",
|
||||
"menu": "Menüü",
|
||||
"selection": "Valik",
|
||||
"selectionZoom": "Valiku suum",
|
||||
"zoomIn": "Suurenda",
|
||||
"zoomOut": "Vähenda",
|
||||
"pan": "Panoraamimine",
|
||||
"reset": "Lähtesta suum"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "fa",
|
||||
"options": {
|
||||
"months": [
|
||||
"فروردین",
|
||||
"اردیبهشت",
|
||||
"خرداد",
|
||||
"تیر",
|
||||
"مرداد",
|
||||
"شهریور",
|
||||
"مهر",
|
||||
"آبان",
|
||||
"آذر",
|
||||
"دی",
|
||||
"بهمن",
|
||||
"اسفند"
|
||||
],
|
||||
"shortMonths": [
|
||||
"فرو",
|
||||
"ارد",
|
||||
"خرد",
|
||||
"تیر",
|
||||
"مرد",
|
||||
"شهر",
|
||||
"مهر",
|
||||
"آبا",
|
||||
"آذر",
|
||||
"دی",
|
||||
"بهمـ",
|
||||
"اسفـ"
|
||||
],
|
||||
"days": [
|
||||
"یکشنبه",
|
||||
"دوشنبه",
|
||||
"سه شنبه",
|
||||
"چهارشنبه",
|
||||
"پنجشنبه",
|
||||
"جمعه",
|
||||
"شنبه"
|
||||
],
|
||||
"shortDays": ["ی", "د", "س", "چ", "پ", "ج", "ش"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "دانلود SVG",
|
||||
"exportToPNG": "دانلود PNG",
|
||||
"exportToCSV": "دانلود CSV",
|
||||
"menu": "منو",
|
||||
"selection": "انتخاب",
|
||||
"selectionZoom": "بزرگنمایی انتخابی",
|
||||
"zoomIn": "بزرگنمایی",
|
||||
"zoomOut": "کوچکنمایی",
|
||||
"pan": "پیمایش",
|
||||
"reset": "بازنشانی بزرگنمایی"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "fi",
|
||||
"options": {
|
||||
"months": [
|
||||
"Tammikuu",
|
||||
"Helmikuu",
|
||||
"Maaliskuu",
|
||||
"Huhtikuu",
|
||||
"Toukokuu",
|
||||
"Kesäkuu",
|
||||
"Heinäkuu",
|
||||
"Elokuu",
|
||||
"Syyskuu",
|
||||
"Lokakuu",
|
||||
"Marraskuu",
|
||||
"Joulukuu"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Tammi",
|
||||
"Helmi",
|
||||
"Maalis",
|
||||
"Huhti",
|
||||
"Touko",
|
||||
"Kesä",
|
||||
"Heinä",
|
||||
"Elo",
|
||||
"Syys",
|
||||
"Loka",
|
||||
"Marras",
|
||||
"Joulu"
|
||||
],
|
||||
"days": [
|
||||
"Sunnuntai",
|
||||
"Maanantai",
|
||||
"Tiistai",
|
||||
"Keskiviikko",
|
||||
"Torstai",
|
||||
"Perjantai",
|
||||
"Lauantai"
|
||||
],
|
||||
"shortDays": ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Lataa SVG",
|
||||
"exportToPNG": "Lataa PNG",
|
||||
"exportToCSV": "Lataa CSV",
|
||||
"menu": "Valikko",
|
||||
"selection": "Valinta",
|
||||
"selectionZoom": "Valinnan zoomaus",
|
||||
"zoomIn": "Lähennä",
|
||||
"zoomOut": "Loitonna",
|
||||
"pan": "Panoroi",
|
||||
"reset": "Nollaa zoomaus"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "fr",
|
||||
"options": {
|
||||
"months": [
|
||||
"janvier",
|
||||
"février",
|
||||
"mars",
|
||||
"avril",
|
||||
"mai",
|
||||
"juin",
|
||||
"juillet",
|
||||
"août",
|
||||
"septembre",
|
||||
"octobre",
|
||||
"novembre",
|
||||
"décembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"janv.",
|
||||
"févr.",
|
||||
"mars",
|
||||
"avr.",
|
||||
"mai",
|
||||
"juin",
|
||||
"juill.",
|
||||
"août",
|
||||
"sept.",
|
||||
"oct.",
|
||||
"nov.",
|
||||
"déc."
|
||||
],
|
||||
"days": [
|
||||
"dimanche",
|
||||
"lundi",
|
||||
"mardi",
|
||||
"mercredi",
|
||||
"jeudi",
|
||||
"vendredi",
|
||||
"samedi"
|
||||
],
|
||||
"shortDays": ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Télécharger au format SVG",
|
||||
"exportToPNG": "Télécharger au format PNG",
|
||||
"exportToCSV": "Télécharger au format CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Sélection",
|
||||
"selectionZoom": "Sélection et zoom",
|
||||
"zoomIn": "Zoomer",
|
||||
"zoomOut": "Dézoomer",
|
||||
"pan": "Navigation",
|
||||
"reset": "Réinitialiser le zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "he",
|
||||
"options": {
|
||||
"months": [
|
||||
"ינואר",
|
||||
"פברואר",
|
||||
"מרץ",
|
||||
"אפריל",
|
||||
"מאי",
|
||||
"יוני",
|
||||
"יולי",
|
||||
"אוגוסט",
|
||||
"ספטמבר",
|
||||
"אוקטובר",
|
||||
"נובמבר",
|
||||
"דצמבר"
|
||||
],
|
||||
"shortMonths": [
|
||||
"ינו׳",
|
||||
"פבר׳",
|
||||
"מרץ",
|
||||
"אפר׳",
|
||||
"מאי",
|
||||
"יוני",
|
||||
"יולי",
|
||||
"אוג׳",
|
||||
"ספט׳",
|
||||
"אוק׳",
|
||||
"נוב׳",
|
||||
"דצמ׳"
|
||||
],
|
||||
"days": [
|
||||
"ראשון",
|
||||
"שני",
|
||||
"שלישי",
|
||||
"רביעי",
|
||||
"חמישי",
|
||||
"שישי",
|
||||
"שבת"
|
||||
],
|
||||
"shortDays": ["א׳", "ב׳", "ג׳", "ד׳", "ה׳", "ו׳", "ש׳"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "הורד SVG",
|
||||
"exportToPNG": "הורד PNG",
|
||||
"exportToCSV": "הורד CSV",
|
||||
"menu": "תפריט",
|
||||
"selection": "בחירה",
|
||||
"selectionZoom": "זום בחירה",
|
||||
"zoomIn": "הגדלה",
|
||||
"zoomOut": "הקטנה",
|
||||
"pan": "הזזה",
|
||||
"reset": "איפוס תצוגה"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "hi",
|
||||
"options": {
|
||||
"months": [
|
||||
"जनवरी",
|
||||
"फ़रवरी",
|
||||
"मार्च",
|
||||
"अप्रैल",
|
||||
"मई",
|
||||
"जून",
|
||||
"जुलाई",
|
||||
"अगस्त",
|
||||
"सितंबर",
|
||||
"अक्टूबर",
|
||||
"नवंबर",
|
||||
"दिसंबर"
|
||||
],
|
||||
"shortMonths": [
|
||||
"जनवरी",
|
||||
"फ़रवरी",
|
||||
"मार्च",
|
||||
"अप्रैल",
|
||||
"मई",
|
||||
"जून",
|
||||
"जुलाई",
|
||||
"अगस्त",
|
||||
"सितंबर",
|
||||
"अक्टूबर",
|
||||
"नवंबर",
|
||||
"दिसंबर"
|
||||
],
|
||||
"days": [
|
||||
"रविवार",
|
||||
"सोमवार",
|
||||
"मंगलवार",
|
||||
"बुधवार",
|
||||
"गुरुवार",
|
||||
"शुक्रवार",
|
||||
"शनिवार"
|
||||
],
|
||||
"shortDays": ["रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "निर्यात SVG",
|
||||
"exportToPNG": "निर्यात PNG",
|
||||
"exportToCSV": "निर्यात CSV",
|
||||
"menu": "सूची",
|
||||
"selection": "चयन",
|
||||
"selectionZoom": "ज़ूम करना",
|
||||
"zoomIn": "ज़ूम इन",
|
||||
"zoomOut": "ज़ूम आउट",
|
||||
"pan": "पैनिंग",
|
||||
"reset": "फिर से कायम करना"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "hr",
|
||||
"options": {
|
||||
"months": [
|
||||
"Siječanj",
|
||||
"Veljača",
|
||||
"Ožujak",
|
||||
"Travanj",
|
||||
"Svibanj",
|
||||
"Lipanj",
|
||||
"Srpanj",
|
||||
"Kolovoz",
|
||||
"Rujan",
|
||||
"Listopad",
|
||||
"Studeni",
|
||||
"Prosinac"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Sij",
|
||||
"Velj",
|
||||
"Ožu",
|
||||
"Tra",
|
||||
"Svi",
|
||||
"Lip",
|
||||
"Srp",
|
||||
"Kol",
|
||||
"Ruj",
|
||||
"Lis",
|
||||
"Stu",
|
||||
"Pro"
|
||||
],
|
||||
"days": [
|
||||
"Nedjelja",
|
||||
"Ponedjeljak",
|
||||
"Utorak",
|
||||
"Srijeda",
|
||||
"Četvrtak",
|
||||
"Petak",
|
||||
"Subota"
|
||||
],
|
||||
"shortDays": ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Preuzmi SVG",
|
||||
"exportToPNG": "Preuzmi PNG",
|
||||
"exportToCSV": "Preuzmi CSV",
|
||||
"menu": "Izbornik",
|
||||
"selection": "Odabir",
|
||||
"selectionZoom": "Odabirno povećanje",
|
||||
"zoomIn": "Uvećajte prikaz",
|
||||
"zoomOut": "Umanjite prikaz",
|
||||
"pan": "Pomicanje",
|
||||
"reset": "Povratak na zadani prikaz"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"name": "hu",
|
||||
"options": {
|
||||
"months": [
|
||||
"január",
|
||||
"február",
|
||||
"március",
|
||||
"április",
|
||||
"május",
|
||||
"június",
|
||||
"július",
|
||||
"augusztus",
|
||||
"szeptember",
|
||||
"október",
|
||||
"november",
|
||||
"december"
|
||||
],
|
||||
"shortMonths": [
|
||||
"jan",
|
||||
"feb",
|
||||
"mar",
|
||||
"ápr",
|
||||
"máj",
|
||||
"jún",
|
||||
"júl",
|
||||
"aug",
|
||||
"szept",
|
||||
"okt",
|
||||
"nov",
|
||||
"dec"
|
||||
],
|
||||
"days": [
|
||||
"hétfő",
|
||||
"kedd",
|
||||
"szerda",
|
||||
"csütörtök",
|
||||
"péntek",
|
||||
"szombat",
|
||||
"vasárnap"
|
||||
],
|
||||
"shortDays": [
|
||||
"H",
|
||||
"K",
|
||||
"Sze",
|
||||
"Cs",
|
||||
"P",
|
||||
"Szo",
|
||||
"V"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Exportálás SVG-be",
|
||||
"exportToPNG": "Exportálás PNG-be",
|
||||
"exportToCSV": "Exportálás CSV-be",
|
||||
"menu": "Fő ajánlat",
|
||||
"download": "SVG letöltése",
|
||||
"selection": "Kiválasztás",
|
||||
"selectionZoom": "Nagyító kiválasztása",
|
||||
"zoomIn": "Nagyítás",
|
||||
"zoomOut": "Kicsinyítés",
|
||||
"pan": "Képcsúsztatás",
|
||||
"reset": "Nagyító visszaállítása"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "hy",
|
||||
"options": {
|
||||
"months": [
|
||||
"Հունվար",
|
||||
"Փետրվար",
|
||||
"Մարտ",
|
||||
"Ապրիլ",
|
||||
"Մայիս",
|
||||
"Հունիս",
|
||||
"Հուլիս",
|
||||
"Օգոստոս",
|
||||
"Սեպտեմբեր",
|
||||
"Հոկտեմբեր",
|
||||
"Նոյեմբեր",
|
||||
"Դեկտեմբեր"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Հնվ",
|
||||
"Փտվ",
|
||||
"Մրտ",
|
||||
"Ապր",
|
||||
"Մյս",
|
||||
"Հնս",
|
||||
"Հլիս",
|
||||
"Օգս",
|
||||
"Սեպ",
|
||||
"Հոկ",
|
||||
"Նոյ",
|
||||
"Դեկ"
|
||||
],
|
||||
"days": [
|
||||
"Կիրակի",
|
||||
"Երկուշաբթի",
|
||||
"Երեքշաբթի",
|
||||
"Չորեքշաբթի",
|
||||
"Հինգշաբթի",
|
||||
"Ուրբաթ",
|
||||
"Շաբաթ"
|
||||
],
|
||||
"shortDays": ["Կիր", "Երկ", "Երք", "Չրք", "Հնգ", "Ուրբ", "Շբթ"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Բեռնել SVG",
|
||||
"exportToPNG": "Բեռնել PNG",
|
||||
"exportToCSV": "Բեռնել CSV",
|
||||
"menu": "Մենյու",
|
||||
"selection": "Ընտրված",
|
||||
"selectionZoom": "Ընտրված հատվածի խոշորացում",
|
||||
"zoomIn": "Խոշորացնել",
|
||||
"zoomOut": "Մանրացնել",
|
||||
"pan": "Տեղափոխում",
|
||||
"reset": "Բերել սկզբնական վիճակի"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"name": "id",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Maret",
|
||||
"April",
|
||||
"Mei",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Agustus",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Desember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mei",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Agu",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Des"
|
||||
],
|
||||
"days": ["Minggu", "Senin", "Selasa", "Rabu", "kamis", "Jumat", "Sabtu"],
|
||||
"shortDays": ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Unduh SVG",
|
||||
"exportToPNG": "Unduh PNG",
|
||||
"exportToCSV": "Unduh CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Pilihan",
|
||||
"selectionZoom": "Perbesar Pilihan",
|
||||
"zoomIn": "Perbesar",
|
||||
"zoomOut": "Perkecil",
|
||||
"pan": "Geser",
|
||||
"reset": "Atur Ulang Zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "it",
|
||||
"options": {
|
||||
"months": [
|
||||
"Gennaio",
|
||||
"Febbraio",
|
||||
"Marzo",
|
||||
"Aprile",
|
||||
"Maggio",
|
||||
"Giugno",
|
||||
"Luglio",
|
||||
"Agosto",
|
||||
"Settembre",
|
||||
"Ottobre",
|
||||
"Novembre",
|
||||
"Dicembre"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Gen",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mag",
|
||||
"Giu",
|
||||
"Lug",
|
||||
"Ago",
|
||||
"Set",
|
||||
"Ott",
|
||||
"Nov",
|
||||
"Dic"
|
||||
],
|
||||
"days": [
|
||||
"Domenica",
|
||||
"Lunedì",
|
||||
"Martedì",
|
||||
"Mercoledì",
|
||||
"Giovedì",
|
||||
"Venerdì",
|
||||
"Sabato"
|
||||
],
|
||||
"shortDays": ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Scarica SVG",
|
||||
"exportToPNG": "Scarica PNG",
|
||||
"exportToCSV": "Scarica CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selezione",
|
||||
"selectionZoom": "Seleziona Zoom",
|
||||
"zoomIn": "Zoom In",
|
||||
"zoomOut": "Zoom Out",
|
||||
"pan": "Sposta",
|
||||
"reset": "Reimposta Zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "ja",
|
||||
"options": {
|
||||
"months": [
|
||||
"1月",
|
||||
"2月",
|
||||
"3月",
|
||||
"4月",
|
||||
"5月",
|
||||
"6月",
|
||||
"7月",
|
||||
"8月",
|
||||
"9月",
|
||||
"10月",
|
||||
"11月",
|
||||
"12月"
|
||||
],
|
||||
"shortMonths": [
|
||||
"1月",
|
||||
"2月",
|
||||
"3月",
|
||||
"4月",
|
||||
"5月",
|
||||
"6月",
|
||||
"7月",
|
||||
"8月",
|
||||
"9月",
|
||||
"10月",
|
||||
"11月",
|
||||
"12月"
|
||||
],
|
||||
"days": [
|
||||
"日曜日",
|
||||
"月曜日",
|
||||
"火曜日",
|
||||
"水曜日",
|
||||
"木曜日",
|
||||
"金曜日",
|
||||
"土曜日"
|
||||
],
|
||||
"shortDays": ["日", "月", "火", "水", "木", "金", "土"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVGダウンロード",
|
||||
"exportToPNG": "PNGダウンロード",
|
||||
"exportToCSV": "CSVダウンロード",
|
||||
"menu": "メニュー",
|
||||
"selection": "選択",
|
||||
"selectionZoom": "選択ズーム",
|
||||
"zoomIn": "拡大",
|
||||
"zoomOut": "縮小",
|
||||
"pan": "パン",
|
||||
"reset": "ズームリセット"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "ka",
|
||||
"options": {
|
||||
"months": [
|
||||
"იანვარი",
|
||||
"თებერვალი",
|
||||
"მარტი",
|
||||
"აპრილი",
|
||||
"მაისი",
|
||||
"ივნისი",
|
||||
"ივლისი",
|
||||
"აგვისტო",
|
||||
"სექტემბერი",
|
||||
"ოქტომბერი",
|
||||
"ნოემბერი",
|
||||
"დეკემბერი"
|
||||
],
|
||||
"shortMonths": [
|
||||
"იან",
|
||||
"თებ",
|
||||
"მარ",
|
||||
"აპრ",
|
||||
"მაი",
|
||||
"ივნ",
|
||||
"ივლ",
|
||||
"აგვ",
|
||||
"სექ",
|
||||
"ოქტ",
|
||||
"ნოე",
|
||||
"დეკ"
|
||||
],
|
||||
"days": [
|
||||
"კვირა",
|
||||
"ორშაბათი",
|
||||
"სამშაბათი",
|
||||
"ოთხშაბათი",
|
||||
"ხუთშაბათი",
|
||||
"პარასკევი",
|
||||
"შაბათი"
|
||||
],
|
||||
"shortDays": ["კვი", "ორშ", "სამ", "ოთხ", "ხუთ", "პარ", "შაბ"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "გადმოქაჩე SVG",
|
||||
"exportToPNG": "გადმოქაჩე PNG",
|
||||
"exportToCSV": "გადმოქაჩე CSV",
|
||||
"menu": "მენიუ",
|
||||
"selection": "არჩევა",
|
||||
"selectionZoom": "არჩეულის გადიდება",
|
||||
"zoomIn": "გადიდება",
|
||||
"zoomOut": "დაპატარაება",
|
||||
"pan": "გადაჩოჩება",
|
||||
"reset": "გადიდების გაუქმება"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "ko",
|
||||
"options": {
|
||||
"months": [
|
||||
"1월",
|
||||
"2월",
|
||||
"3월",
|
||||
"4월",
|
||||
"5월",
|
||||
"6월",
|
||||
"7월",
|
||||
"8월",
|
||||
"9월",
|
||||
"10월",
|
||||
"11월",
|
||||
"12월"
|
||||
],
|
||||
"shortMonths": [
|
||||
"1월",
|
||||
"2월",
|
||||
"3월",
|
||||
"4월",
|
||||
"5월",
|
||||
"6월",
|
||||
"7월",
|
||||
"8월",
|
||||
"9월",
|
||||
"10월",
|
||||
"11월",
|
||||
"12월"
|
||||
],
|
||||
"days": [
|
||||
"일요일",
|
||||
"월요일",
|
||||
"화요일",
|
||||
"수요일",
|
||||
"목요일",
|
||||
"금요일",
|
||||
"토요일"
|
||||
],
|
||||
"shortDays": ["일", "월", "화", "수", "목", "금", "토"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVG 다운로드",
|
||||
"exportToPNG": "PNG 다운로드",
|
||||
"exportToCSV": "CSV 다운로드",
|
||||
"menu": "메뉴",
|
||||
"selection": "선택",
|
||||
"selectionZoom": "선택영역 확대",
|
||||
"zoomIn": "확대",
|
||||
"zoomOut": "축소",
|
||||
"pan": "패닝",
|
||||
"reset": "원래대로"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "lt",
|
||||
"options": {
|
||||
"months": [
|
||||
"Sausis",
|
||||
"Vasaris",
|
||||
"Kovas",
|
||||
"Balandis",
|
||||
"Gegužė",
|
||||
"Birželis",
|
||||
"Liepa",
|
||||
"Rugpjūtis",
|
||||
"Rugsėjis",
|
||||
"Spalis",
|
||||
"Lapkritis",
|
||||
"Gruodis"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Sau",
|
||||
"Vas",
|
||||
"Kov",
|
||||
"Bal",
|
||||
"Geg",
|
||||
"Bir",
|
||||
"Lie",
|
||||
"Rgp",
|
||||
"Rgs",
|
||||
"Spl",
|
||||
"Lap",
|
||||
"Grd"
|
||||
],
|
||||
"days": [
|
||||
"Sekmadienis",
|
||||
"Pirmadienis",
|
||||
"Antradienis",
|
||||
"Trečiadienis",
|
||||
"Ketvirtadienis",
|
||||
"Penktadienis",
|
||||
"Šeštadienis"
|
||||
],
|
||||
"shortDays": ["Sk", "Per", "An", "Tr", "Kt", "Pn", "Št"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Atsisiųsti SVG",
|
||||
"exportToPNG": "Atsisiųsti PNG",
|
||||
"exportToCSV": "Atsisiųsti CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Pasirinkimas",
|
||||
"selectionZoom": "Zoom: Pasirinkimas",
|
||||
"zoomIn": "Zoom: Priartinti",
|
||||
"zoomOut": "Zoom: Atitolinti",
|
||||
"pan": "Perkėlimas",
|
||||
"reset": "Atstatyti"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"name": "lv",
|
||||
"options": {
|
||||
"months": [
|
||||
"janvāris",
|
||||
"februāris",
|
||||
"marts",
|
||||
"aprīlis",
|
||||
"maijs",
|
||||
"jūnijs",
|
||||
"jūlijs",
|
||||
"augusts",
|
||||
"septembris",
|
||||
"oktobris",
|
||||
"novembris",
|
||||
"decembris"
|
||||
],
|
||||
"shortMonths": [
|
||||
"janv",
|
||||
"febr",
|
||||
"marts",
|
||||
"apr",
|
||||
"maijs",
|
||||
"jūn",
|
||||
"jūl",
|
||||
"aug",
|
||||
"sept",
|
||||
"okt",
|
||||
"nov",
|
||||
"dec"
|
||||
],
|
||||
"days": [
|
||||
"svētdiena",
|
||||
"pirmdiena",
|
||||
"otrdiena",
|
||||
"trešdiena",
|
||||
"ceturtdiena",
|
||||
"piektdiena",
|
||||
"sestdiena"
|
||||
],
|
||||
"shortDays": [
|
||||
"Sv",
|
||||
"P",
|
||||
"O",
|
||||
"T",
|
||||
"C",
|
||||
"P",
|
||||
"S"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Lejuplādēt SVG",
|
||||
"exportToPNG": "Lejuplādēt PNG",
|
||||
"exportToCSV": "Lejuplādēt CSV",
|
||||
"menu": "Izvēlne",
|
||||
"selection": "Atlase",
|
||||
"selectionZoom": "Pietuvināt atlasi",
|
||||
"zoomIn": "Pietuvināt",
|
||||
"zoomOut": "Attālināt",
|
||||
"pan": "Pārvietoties diagrammā",
|
||||
"reset": "Atiestatīt pietuvinājumu"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"name": "ms",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Mac",
|
||||
"April",
|
||||
"Mei",
|
||||
"Jun",
|
||||
"Julai",
|
||||
"Ogos",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Disember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mac",
|
||||
"Apr",
|
||||
"Mei",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ogos",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dis"
|
||||
],
|
||||
"days": [
|
||||
"Ahad",
|
||||
"Isnin",
|
||||
"Selasa",
|
||||
"Rabu",
|
||||
"Khamis",
|
||||
"Jumaat",
|
||||
"Sabtu"
|
||||
],
|
||||
"shortDays": [
|
||||
"Ahd",
|
||||
"Isn",
|
||||
"Sel",
|
||||
"Rab",
|
||||
"Kha",
|
||||
"Jum",
|
||||
"Sab"
|
||||
],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Muat turun SVG",
|
||||
"exportToPNG": "Muat turun PNG",
|
||||
"exportToCSV": "Muat turun CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Pilihan",
|
||||
"selectionZoom": "Zum Pilihan",
|
||||
"zoomIn": "Zoom Masuk",
|
||||
"zoomOut": "Zoom Keluar",
|
||||
"pan": "Pemusingan",
|
||||
"reset": "Tetapkan Semula Zum"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "nb",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"Mars",
|
||||
"April",
|
||||
"Mai",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"August",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"Desember"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Des"
|
||||
],
|
||||
"days": [
|
||||
"Søndag",
|
||||
"Mandag",
|
||||
"Tirsdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lørdag"
|
||||
],
|
||||
"shortDays": ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Last ned SVG",
|
||||
"exportToPNG": "Last ned PNG",
|
||||
"exportToCSV": "Last ned CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Velg",
|
||||
"selectionZoom": "Zoom: Velg",
|
||||
"zoomIn": "Zoome inn",
|
||||
"zoomOut": "Zoome ut",
|
||||
"pan": "Skyving",
|
||||
"reset": "Start på nytt"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "nl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Maart",
|
||||
"April",
|
||||
"Mei",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Augustus",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mrt",
|
||||
"Apr",
|
||||
"Mei",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Zondag",
|
||||
"Maandag",
|
||||
"Dinsdag",
|
||||
"Woensdag",
|
||||
"Donderdag",
|
||||
"Vrijdag",
|
||||
"Zaterdag"
|
||||
],
|
||||
"shortDays": ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Download SVG",
|
||||
"exportToPNG": "Download PNG",
|
||||
"exportToCSV": "Download CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selectie",
|
||||
"selectionZoom": "Zoom selectie",
|
||||
"zoomIn": "Zoom in",
|
||||
"zoomOut": "Zoom out",
|
||||
"pan": "Verplaatsen",
|
||||
"reset": "Standaardwaarden"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "pl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Styczeń",
|
||||
"Luty",
|
||||
"Marzec",
|
||||
"Kwiecień",
|
||||
"Maj",
|
||||
"Czerwiec",
|
||||
"Lipiec",
|
||||
"Sierpień",
|
||||
"Wrzesień",
|
||||
"Październik",
|
||||
"Listopad",
|
||||
"Grudzień"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Sty",
|
||||
"Lut",
|
||||
"Mar",
|
||||
"Kwi",
|
||||
"Maj",
|
||||
"Cze",
|
||||
"Lip",
|
||||
"Sie",
|
||||
"Wrz",
|
||||
"Paź",
|
||||
"Lis",
|
||||
"Gru"
|
||||
],
|
||||
"days": [
|
||||
"Niedziela",
|
||||
"Poniedziałek",
|
||||
"Wtorek",
|
||||
"Środa",
|
||||
"Czwartek",
|
||||
"Piątek",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Nd", "Pn", "Wt", "Śr", "Cz", "Pt", "Sb"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Pobierz SVG",
|
||||
"exportToPNG": "Pobierz PNG",
|
||||
"exportToCSV": "Pobierz CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Wybieranie",
|
||||
"selectionZoom": "Zoom: Wybieranie",
|
||||
"zoomIn": "Zoom: Przybliż",
|
||||
"zoomOut": "Zoom: Oddal",
|
||||
"pan": "Przesuwanie",
|
||||
"reset": "Resetuj"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "pt-br",
|
||||
"options": {
|
||||
"months": [
|
||||
"Janeiro",
|
||||
"Fevereiro",
|
||||
"Março",
|
||||
"Abril",
|
||||
"Maio",
|
||||
"Junho",
|
||||
"Julho",
|
||||
"Agosto",
|
||||
"Setembro",
|
||||
"Outubro",
|
||||
"Novembro",
|
||||
"Dezembro"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Fev",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ago",
|
||||
"Set",
|
||||
"Out",
|
||||
"Nov",
|
||||
"Dez"
|
||||
],
|
||||
"days": [
|
||||
"Domingo",
|
||||
"Segunda",
|
||||
"Terça",
|
||||
"Quarta",
|
||||
"Quinta",
|
||||
"Sexta",
|
||||
"Sábado"
|
||||
],
|
||||
"shortDays": ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Baixar SVG",
|
||||
"exportToPNG": "Baixar PNG",
|
||||
"exportToCSV": "Baixar CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selecionar",
|
||||
"selectionZoom": "Selecionar Zoom",
|
||||
"zoomIn": "Aumentar",
|
||||
"zoomOut": "Diminuir",
|
||||
"pan": "Navegação",
|
||||
"reset": "Reiniciar Zoom"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "pt",
|
||||
"options": {
|
||||
"months": [
|
||||
"Janeiro",
|
||||
"Fevereiro",
|
||||
"Março",
|
||||
"Abril",
|
||||
"Maio",
|
||||
"Junho",
|
||||
"Julho",
|
||||
"Agosto",
|
||||
"Setembro",
|
||||
"Outubro",
|
||||
"Novembro",
|
||||
"Dezembro"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Fev",
|
||||
"Mar",
|
||||
"Abr",
|
||||
"Mai",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Ag",
|
||||
"Set",
|
||||
"Out",
|
||||
"Nov",
|
||||
"Dez"
|
||||
],
|
||||
"days": [
|
||||
"Domingo",
|
||||
"Segunda-feira",
|
||||
"Terça-feira",
|
||||
"Quarta-feira",
|
||||
"Quinta-feira",
|
||||
"Sexta-feira",
|
||||
"Sábado"
|
||||
],
|
||||
"shortDays": ["Do", "Se", "Te", "Qa", "Qi", "Sx", "Sa"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Transferir SVG",
|
||||
"exportToPNG": "Transferir PNG",
|
||||
"exportToCSV": "Transferir CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Selecionar",
|
||||
"selectionZoom": "Zoom: Selecionar",
|
||||
"zoomIn": "Zoom: Aumentar",
|
||||
"zoomOut": "Zoom: Diminuir",
|
||||
"pan": "Deslocamento",
|
||||
"reset": "Redefinir"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "rs",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"Mart",
|
||||
"April",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Avgust",
|
||||
"Septembar",
|
||||
"Oktobar",
|
||||
"Novembar",
|
||||
"Decembar"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Avg",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Nedelja",
|
||||
"Ponedeljak",
|
||||
"Utorak",
|
||||
"Sreda",
|
||||
"Četvrtak",
|
||||
"Petak",
|
||||
"Subota"
|
||||
],
|
||||
"shortDays": ["Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Preuzmi SVG",
|
||||
"exportToPNG": "Preuzmi PNG",
|
||||
"exportToCSV": "Preuzmi CSV",
|
||||
"menu": "Meni",
|
||||
"selection": "Odabir",
|
||||
"selectionZoom": "Odabirno povećanje",
|
||||
"zoomIn": "Uvećajte prikaz",
|
||||
"zoomOut": "Umanjite prikaz",
|
||||
"pan": "Pomeranje",
|
||||
"reset": "Resetuj prikaz"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "ru",
|
||||
"options": {
|
||||
"months": [
|
||||
"Январь",
|
||||
"Февраль",
|
||||
"Март",
|
||||
"Апрель",
|
||||
"Май",
|
||||
"Июнь",
|
||||
"Июль",
|
||||
"Август",
|
||||
"Сентябрь",
|
||||
"Октябрь",
|
||||
"Ноябрь",
|
||||
"Декабрь"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Янв",
|
||||
"Фев",
|
||||
"Мар",
|
||||
"Апр",
|
||||
"Май",
|
||||
"Июн",
|
||||
"Июл",
|
||||
"Авг",
|
||||
"Сен",
|
||||
"Окт",
|
||||
"Ноя",
|
||||
"Дек"
|
||||
],
|
||||
"days": [
|
||||
"Воскресенье",
|
||||
"Понедельник",
|
||||
"Вторник",
|
||||
"Среда",
|
||||
"Четверг",
|
||||
"Пятница",
|
||||
"Суббота"
|
||||
],
|
||||
"shortDays": ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Сохранить SVG",
|
||||
"exportToPNG": "Сохранить PNG",
|
||||
"exportToCSV": "Сохранить CSV",
|
||||
"menu": "Меню",
|
||||
"selection": "Выбор",
|
||||
"selectionZoom": "Выбор с увеличением",
|
||||
"zoomIn": "Увеличить",
|
||||
"zoomOut": "Уменьшить",
|
||||
"pan": "Перемещение",
|
||||
"reset": "Сбросить увеличение"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "se",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januari",
|
||||
"Februari",
|
||||
"Mars",
|
||||
"April",
|
||||
"Maj",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Augusti",
|
||||
"September",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Juni",
|
||||
"Juli",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Söndag",
|
||||
"Måndag",
|
||||
"Tisdag",
|
||||
"Onsdag",
|
||||
"Torsdag",
|
||||
"Fredag",
|
||||
"Lördag"
|
||||
],
|
||||
"shortDays": ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Ladda SVG",
|
||||
"exportToPNG": "Ladda PNG",
|
||||
"exportToCSV": "Ladda CSV",
|
||||
"menu": "Meny",
|
||||
"selection": "Selektion",
|
||||
"selectionZoom": "Val av zoom",
|
||||
"zoomIn": "Zooma in",
|
||||
"zoomOut": "Zooma ut",
|
||||
"pan": "Panorering",
|
||||
"reset": "Återställ zoomning"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "sk",
|
||||
"options": {
|
||||
"months": [
|
||||
"Január",
|
||||
"Február",
|
||||
"Marec",
|
||||
"Apríl",
|
||||
"Máj",
|
||||
"Jún",
|
||||
"Júl",
|
||||
"August",
|
||||
"September",
|
||||
"Október",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Máj",
|
||||
"Jún",
|
||||
"Júl",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Nedeľa",
|
||||
"Pondelok",
|
||||
"Utorok",
|
||||
"Streda",
|
||||
"Štvrtok",
|
||||
"Piatok",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Stiahnuť SVG",
|
||||
"exportToPNG": "Stiahnuť PNG",
|
||||
"exportToCSV": "Stiahnuť CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Vyberanie",
|
||||
"selectionZoom": "Zoom: Vyberanie",
|
||||
"zoomIn": "Zoom: Priblížiť",
|
||||
"zoomOut": "Zoom: Vzdialiť",
|
||||
"pan": "Presúvanie",
|
||||
"reset": "Resetovať"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "sl",
|
||||
"options": {
|
||||
"months": [
|
||||
"Januar",
|
||||
"Februar",
|
||||
"Marec",
|
||||
"April",
|
||||
"Maj",
|
||||
"Junij",
|
||||
"Julij",
|
||||
"Avgust",
|
||||
"Septemer",
|
||||
"Oktober",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"Maj",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Avg",
|
||||
"Sep",
|
||||
"Okt",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
"days": [
|
||||
"Nedelja",
|
||||
"Ponedeljek",
|
||||
"Torek",
|
||||
"Sreda",
|
||||
"Četrtek",
|
||||
"Petek",
|
||||
"Sobota"
|
||||
],
|
||||
"shortDays": ["Ne", "Po", "To", "Sr", "Če", "Pe", "So"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Prenesi SVG",
|
||||
"exportToPNG": "Prenesi PNG",
|
||||
"exportToCSV": "Prenesi CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Izbiranje",
|
||||
"selectionZoom": "Zoom: Izbira",
|
||||
"zoomIn": "Zoom: Približaj",
|
||||
"zoomOut": "Zoom: Oddalji",
|
||||
"pan": "Pomikanje",
|
||||
"reset": "Resetiraj"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "sq",
|
||||
"options": {
|
||||
"months": [
|
||||
"Janar",
|
||||
"Shkurt",
|
||||
"Mars",
|
||||
"Prill",
|
||||
"Maj",
|
||||
"Qershor",
|
||||
"Korrik",
|
||||
"Gusht",
|
||||
"Shtator",
|
||||
"Tetor",
|
||||
"Nëntor",
|
||||
"Dhjetor"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Jan",
|
||||
"Shk",
|
||||
"Mar",
|
||||
"Pr",
|
||||
"Maj",
|
||||
"Qer",
|
||||
"Korr",
|
||||
"Gush",
|
||||
"Sht",
|
||||
"Tet",
|
||||
"Nën",
|
||||
"Dhj"
|
||||
],
|
||||
"days": [
|
||||
"e Dielë",
|
||||
"e Hënë",
|
||||
"e Martë",
|
||||
"e Mërkurë",
|
||||
"e Enjte",
|
||||
"e Premte",
|
||||
"e Shtunë"
|
||||
],
|
||||
"shortDays": ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Shkarko SVG",
|
||||
"exportToPNG": "Shkarko PNG",
|
||||
"exportToCSV": "Shkarko CSV",
|
||||
"menu": "Menu",
|
||||
"selection": "Seleksiono",
|
||||
"selectionZoom": "Seleksiono Zmadhim",
|
||||
"zoomIn": "Zmadho",
|
||||
"zoomOut": "Zvogëlo",
|
||||
"pan": "Spostoje",
|
||||
"reset": "Rikthe dimensionin"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "th",
|
||||
"options": {
|
||||
"months": [
|
||||
"มกราคม",
|
||||
"กุมภาพันธ์",
|
||||
"มีนาคม",
|
||||
"เมษายน",
|
||||
"พฤษภาคม",
|
||||
"มิถุนายน",
|
||||
"กรกฎาคม",
|
||||
"สิงหาคม",
|
||||
"กันยายน",
|
||||
"ตุลาคม",
|
||||
"พฤศจิกายน",
|
||||
"ธันวาคม"
|
||||
],
|
||||
"shortMonths": [
|
||||
"ม.ค.",
|
||||
"ก.พ.",
|
||||
"มี.ค.",
|
||||
"เม.ย.",
|
||||
"พ.ค.",
|
||||
"มิ.ย.",
|
||||
"ก.ค.",
|
||||
"ส.ค.",
|
||||
"ก.ย.",
|
||||
"ต.ค.",
|
||||
"พ.ย.",
|
||||
"ธ.ค."
|
||||
],
|
||||
"days": [
|
||||
"อาทิตย์",
|
||||
"จันทร์",
|
||||
"อังคาร",
|
||||
"พุธ",
|
||||
"พฤหัสบดี",
|
||||
"ศุกร์",
|
||||
"เสาร์"
|
||||
],
|
||||
"shortDays": ["อา", "จ", "อ", "พ", "พฤ", "ศ", "ส"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "ดาวน์โหลด SVG",
|
||||
"exportToPNG": "ดาวน์โหลด PNG",
|
||||
"exportToCSV": "ดาวน์โหลด CSV",
|
||||
"menu": "เมนู",
|
||||
"selection": "เลือก",
|
||||
"selectionZoom": "เลือกจุดที่จะซูม",
|
||||
"zoomIn": "ซูมเข้า",
|
||||
"zoomOut": "ซูมออก",
|
||||
"pan": "ปรากฎว่า",
|
||||
"reset": "รีเซ็ตการซูม"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "tr",
|
||||
"options": {
|
||||
"months": [
|
||||
"Ocak",
|
||||
"Şubat",
|
||||
"Mart",
|
||||
"Nisan",
|
||||
"Mayıs",
|
||||
"Haziran",
|
||||
"Temmuz",
|
||||
"Ağustos",
|
||||
"Eylül",
|
||||
"Ekim",
|
||||
"Kasım",
|
||||
"Aralık"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Oca",
|
||||
"Şub",
|
||||
"Mar",
|
||||
"Nis",
|
||||
"May",
|
||||
"Haz",
|
||||
"Tem",
|
||||
"Ağu",
|
||||
"Eyl",
|
||||
"Eki",
|
||||
"Kas",
|
||||
"Ara"
|
||||
],
|
||||
"days": [
|
||||
"Pazar",
|
||||
"Pazartesi",
|
||||
"Salı",
|
||||
"Çarşamba",
|
||||
"Perşembe",
|
||||
"Cuma",
|
||||
"Cumartesi"
|
||||
],
|
||||
"shortDays": ["Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "SVG İndir",
|
||||
"exportToPNG": "PNG İndir",
|
||||
"exportToCSV": "CSV İndir",
|
||||
"menu": "Menü",
|
||||
"selection": "Seçim",
|
||||
"selectionZoom": "Seçim Yakınlaştır",
|
||||
"zoomIn": "Yakınlaştır",
|
||||
"zoomOut": "Uzaklaştır",
|
||||
"pan": "Kaydır",
|
||||
"reset": "Yakınlaştırmayı Sıfırla"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "ua",
|
||||
"options": {
|
||||
"months": [
|
||||
"Січень",
|
||||
"Лютий",
|
||||
"Березень",
|
||||
"Квітень",
|
||||
"Травень",
|
||||
"Червень",
|
||||
"Липень",
|
||||
"Серпень",
|
||||
"Вересень",
|
||||
"Жовтень",
|
||||
"Листопад",
|
||||
"Грудень"
|
||||
],
|
||||
"shortMonths": [
|
||||
"Січ",
|
||||
"Лют",
|
||||
"Бер",
|
||||
"Кві",
|
||||
"Тра",
|
||||
"Чер",
|
||||
"Лип",
|
||||
"Сер",
|
||||
"Вер",
|
||||
"Жов",
|
||||
"Лис",
|
||||
"Гру"
|
||||
],
|
||||
"days": [
|
||||
"Неділя",
|
||||
"Понеділок",
|
||||
"Вівторок",
|
||||
"Середа",
|
||||
"Четвер",
|
||||
"П'ятниця",
|
||||
"Субота"
|
||||
],
|
||||
"shortDays": ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "Зберегти SVG",
|
||||
"exportToPNG": "Зберегти PNG",
|
||||
"exportToCSV": "Зберегти CSV",
|
||||
"menu": "Меню",
|
||||
"selection": "Вибір",
|
||||
"selectionZoom": "Вибір із збільшенням",
|
||||
"zoomIn": "Збільшити",
|
||||
"zoomOut": "Зменшити",
|
||||
"pan": "Переміщення",
|
||||
"reset": "Скинути збільшення"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "zh-cn",
|
||||
"options": {
|
||||
"months": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
],
|
||||
"shortMonths": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
],
|
||||
"days": [
|
||||
"星期天",
|
||||
"星期一",
|
||||
"星期二",
|
||||
"星期三",
|
||||
"星期四",
|
||||
"星期五",
|
||||
"星期六"
|
||||
],
|
||||
"shortDays": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "下载 SVG",
|
||||
"exportToPNG": "下载 PNG",
|
||||
"exportToCSV": "下载 CSV",
|
||||
"menu": "菜单",
|
||||
"selection": "选择",
|
||||
"selectionZoom": "选择缩放",
|
||||
"zoomIn": "放大",
|
||||
"zoomOut": "缩小",
|
||||
"pan": "平移",
|
||||
"reset": "重置缩放"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "zh-tw",
|
||||
"options": {
|
||||
"months": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
],
|
||||
"shortMonths": [
|
||||
"一月",
|
||||
"二月",
|
||||
"三月",
|
||||
"四月",
|
||||
"五月",
|
||||
"六月",
|
||||
"七月",
|
||||
"八月",
|
||||
"九月",
|
||||
"十月",
|
||||
"十一月",
|
||||
"十二月"
|
||||
],
|
||||
"days": [
|
||||
"星期日",
|
||||
"星期一",
|
||||
"星期二",
|
||||
"星期三",
|
||||
"星期四",
|
||||
"星期五",
|
||||
"星期六"
|
||||
],
|
||||
"shortDays": ["週日", "週一", "週二", "週三", "週四", "週五", "週六"],
|
||||
"toolbar": {
|
||||
"exportToSVG": "下載 SVG",
|
||||
"exportToPNG": "下載 PNG",
|
||||
"exportToCSV": "下載 CSV",
|
||||
"menu": "選單",
|
||||
"selection": "選擇",
|
||||
"selectionZoom": "選擇縮放",
|
||||
"zoomIn": "放大",
|
||||
"zoomOut": "縮小",
|
||||
"pan": "平移",
|
||||
"reset": "重置縮放"
|
||||
}
|
||||
}
|
||||
}
|