diff --git a/addMateri.php b/addMateri.php index 1fade7c88091860c3b5b1b2e3d02fd399a8941b1..ebe93ce8b504e57b7de5b89aa73fd1618f5fdba5 100755 --- a/addMateri.php +++ b/addMateri.php @@ -122,4 +122,4 @@ $stmt->execute(); $stmt->close(); $conn->close(); -echo 'Sukses, materi ' . $judul . 'berhasil ditambahkan'; +echo 'Materi ' . $judul . ' berhasil ditambahkan'; diff --git a/addPengumuman.php b/addPengumuman.php index d545f54f93e239a226d3fd9ac1ecb9d5cf497fe1..d5e4b36894506af0446ad3a3c57e18876366e59a 100755 --- a/addPengumuman.php +++ b/addPengumuman.php @@ -96,5 +96,5 @@ $row = $stmt->fetch_assoc(); $conn->close(); -\pmotraining\FirebaseNotif::sendNotif("Ada pengumuman baru", $judul, 0, $row["max"]); +//\pmotraining\FirebaseNotif::sendNotif("Ada pengumuman baru", $judul, 0, $row["max"]); echo 'Sukses, pengumuman ' . $judul . ' berhasil ditambahkan.'; diff --git a/addQuote.php b/addQuote.php index 4c4c59917e22d2eeb455a99df1b4c2eec3705087..773a131d61ed45a8ce59702ee5fb8362fc63c4c1 100755 --- a/addQuote.php +++ b/addQuote.php @@ -29,7 +29,7 @@ $konten = $_POST["konten"]; date_default_timezone_set(date_default_timezone_get()); $date = date('Y/m/d H:i:s', time()); $temp_tanggal = implode("", $res[0]); -print($temp_tanggal); +//print($temp_tanggal); $date = date_create($temp_tanggal); date_add($date, date_interval_create_from_date_string('7 days')); diff --git a/admin/css/alert.css b/admin/css/alert.css new file mode 100644 index 0000000000000000000000000000000000000000..06e12d108b2a2f4f1048bd179dc32bb152df29be --- /dev/null +++ b/admin/css/alert.css @@ -0,0 +1,65 @@ +#alert-modal { + min-width: fit-content; +} + +.alert { + display: none; /* Hidden by default */ + position: fixed; /* Stay in place */ + z-index: 1; /* Sit on top */ + left: 0; + top: 0; + width: 100%; /* Full width */ + height: 100%; /* Full height */ + overflow: auto; /* Enable scroll if needed */ + background-color: rgb(0,0,0); /* Fallback color */ + background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ +} + +.alert-content { + background-color: #fefefe; + margin: 15% auto; /* 15% from the top and centered */ + padding: 20px; + border: 1px solid #888; + width: 50%; +} + +.align-right { + text-align: right; +} + +.alert-close { + color: gray; + font-size: 100%; + font-weight: bold; +} + +.alert-image { + width: 80%; +} + +.alert-close:hover, +.alert-close:focus { + color: black; + text-decoration: none; + cursor: pointer; +} + +#alert-modal .grid-layout { + grid-template-columns: 125px 1fr; + text-align: center; +} + +#alert-cross { + margin-left: auto; + margin-right: auto; +} + +#alert-message { + margin-top: auto; + margin-bottom: auto; + font-size: 80%; +} + +#alert-header { + font-weight: bold; +} \ No newline at end of file diff --git a/admin/css/dashboard.css b/admin/css/dashboard.css index a7697c2c55483b2c499bf129bf5e72aa05df1b93..60ac91abb15da50435f3188f6ee93aa3798527fe 100755 --- a/admin/css/dashboard.css +++ b/admin/css/dashboard.css @@ -11,6 +11,11 @@ body { height: 16px; vertical-align: text-bottom; } + + .img-thumbnail{ + padding: 5px; + border: none; + } /* * Sidebar @@ -31,7 +36,7 @@ body { position: sticky; top: 48px; /* Height of navbar */ height: calc(100vh - 48px); - padding-top: .5rem; + padding-top: 48px; overflow-x: hidden; overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */ } @@ -88,6 +93,34 @@ body { border-color: transparent; box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); } + + .navbar-collapse .nav-link { + color: #fff; + } + + .navbar-collapse .nav-link.active { + color: #007bff; + } + + .navbar-collapse .nav-link .feather { + margin-right: 4px; + color: #999; + } + + .navbar-collapse .nav-link:hover .feather, + .navbar-collapse .nav-link.active .feather { + color: inherit; + } + + .small-nav-dark { + background-color: #343a40; + box-shadow: inset 0px 0 0 rgba(0, 0, 0, 0); + } + + .unstyled-button { + border: none; + background: none; + } /* * Utilities diff --git a/admin/images/cross-red.jpg b/admin/images/cross-red.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aaa628222112007c66a017ac86f57a8ba8a29410 Binary files /dev/null and b/admin/images/cross-red.jpg differ diff --git a/admin/images/green-check.jpg b/admin/images/green-check.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d80d16104b0bfeb43c6de602e7e08fffd8ddd656 Binary files /dev/null and b/admin/images/green-check.jpg differ diff --git a/admin/index.html b/admin/index.html index 0e70decfa268d544163204aa60862df475f9313f..0d1eba528f569a76600556a89fcc7c2c88bcb920 100755 --- a/admin/index.html +++ b/admin/index.html @@ -18,13 +18,63 @@ </head> <body> - <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> - <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="#">Komunitas PMO</a> + + <!-- Menu untuk mobile--> + <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 d-block d-sm-block d-md-none"> + <button class="navbar-toggler unstyled-button" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <a class="navbar-brand small-nav-dark" href="#">Komunitas PMO</a> + <div class="collapse navbar-collapse" id="navbarSupportedContent"> + <ul class="nav flex-column"> + <li class="nav-item"> + <a class="nav-link active" href="#" id="home-click"> + <span data-feather="home"></span> + Dashboard <span class="sr-only">(current)</span> + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#" id="materi-click"> + <span data-feather="file"></span> + Materi + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#" id="pengumuman-click"> + <span data-feather="clipboard"></span> + Pengumuman + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#" id="kegiatan-click"> + <span data-feather="star"></span> + Kegiatan + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#" id="kalender-click"> + <span data-feather="calendar"></span> + Kalender + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="#" id="quotes-click"> + <span data-feather="hash"></span> + Quotes + </a> + </li> + </ul> + </div> + </nav> + + <!-- navbar untuk desktop --> + <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 d-none d-sm-none d-md-block"> + <a class="navbar-brand col-lg-2 col-md-3 mr-0" href="#">Komunitas PMO</a> </nav> <div class="container-fluid"> <div class="row"> - <nav class="col-md-2 d-none d-md-block bg-light sidebar" id="navigation-panel"> + <nav class="col-lg-2 col-md-3 d-none d-sm-none d-md-block bg-light sidebar" id="navigation-panel"> <div class="sidebar-sticky"> <ul class="nav flex-column"> <li class="nav-item"> @@ -87,30 +137,23 @@ <!-- <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="js/bootstrap.min.js"></script> --> - <script src="https://code.jquery.com/jquery-3.3.1.min.js" - integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" - crossorigin="anonymous"></script> - <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> -<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> -<script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> -<script src="http://malsup.github.com/jquery.form.js"></script> - <script> + <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> + <script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> + <script src="http://malsup.github.com/jquery.form.js"></script> + <script> $(document).ready(function(){ - - feather.replace(); - }); - </script> - <script src="js/main.js"></script> - - <!-- Icons --> - - <script> - - </script> + // close toggle if item clicked + $('#navbarSupportedContent').on('click', function() { + $('.navbar-toggler').click(); + }) + </script> + <script src="js/main.js"></script> </body> </html> diff --git a/admin/kalender.html b/admin/kalender.html index 3a7ca77acfe11ed177859a49f80b05af0f16dd27..f71d89bf2fdd597ef5929d2cc2f8b345a019112f 100755 --- a/admin/kalender.html +++ b/admin/kalender.html @@ -1,3 +1,7 @@ +<head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="css/alert.css" type="text/css"> +</head> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> <h1 class="h2" id="title">Kalender</h1> <div class="btn-toolbar mb-2 mb-md-0"> @@ -5,6 +9,24 @@ </div> </div> +<!-- Modal --> +<div id="alert-modal" class="alert"> + <div class="alert-content"> + <div class="align-right"> + <span class="alert-close">×</span> + </div> + <div class="grid-layout"> + <div id="alert-cross"> + <img id="alert-image"> + </div> + <div id="alert-message"> + <div id="alert-header"></div> + <div id="alert-text"></div> + </div> + </div> + </div> +</div> + <form method="POST" id="upload_form" enctype="multipart/form-data"> <div class="form-group"> <label for="usr">Nama:</label> @@ -19,11 +41,50 @@ </form> <script> - $('#upload_form').on('submit', function(e){ + var nama = document.getElementById("nama"); + var tanggal = document.getElementById("tanggal"); + var alertModal = document.getElementById('alert-modal'); + var alertCloseBtn = document.getElementsByClassName('alert-close')[0]; + var alertText = document.getElementById('alert-text'); + var alertImage = document.getElementById('alert-image'); + var alertHeader = document.getElementById('alert-header'); + + $('#upload_form').on('submit', function (e) { e.preventDefault(); - $.post("../addKalender.php", $("#upload_form").serialize() ).done(function (data) { - alert(data); - $("#upload_form")[0].reset(); - }); + var teks =""; + alertHeader.innerHTML = "Gagal!"; + alertImage.src="images/cross-red.jpg"; + if(!nama.value){ + teks+="Nama"; + } + if(!tanggal.value){ + if(teks!=""){ + teks+=", "; + } + teks+="Tanggal"; + } + if(teks!=""){ + alertText.innerHTML = teks + " tidak boleh kosong."; + alertModal.style.display = 'block'; + } + else{ + $.post("../addKalender.php", $("#upload_form").serialize()).done(function (data) { + alertImage.src="images/green-check.jpg"; + alertHeader.innerHTML = "Sukses!"; + alertText.innerHTML = data; + alertModal.style.display = 'block'; + $("#upload_form")[0].reset(); + }); + } + }); + + alertCloseBtn.addEventListener('click', function() { + alertModal.style.display = 'none'; }); + + window.onclick = function(event) { + if (event.target == alertModal) { + alertModal.style.display = "none"; + } + } </script> \ No newline at end of file diff --git a/admin/kegiatan.html b/admin/kegiatan.html index a855d71ef725447dd9581fb94cfb2764573cea0e..82d417bf141cd638818a429862c412d9d20d99bf 100755 --- a/admin/kegiatan.html +++ b/admin/kegiatan.html @@ -1,11 +1,15 @@ +<head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="css/alert.css" type="text/css"> +</head> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> <h1 class="h2">Kegiatan</h1> <div class="btn-toolbar mb-2 mb-md-0"> - + </div> </div> -<form action="../addKegiatan.php" method="POST" id="upload_form" enctype="multipart/form-data"> +<form method="POST" id="upload_form" enctype="multipart/form-data"> <div class="form-group"> <label for="usr">Nama Kegiatan:</label> <input type="text" class="form-control" id="nama_kegiatan" name="nama_kegiatan"> @@ -19,45 +23,123 @@ <textarea class="form-control" rows="5" id="deskripsi_acara" name="deskripsi_acara" value="" placeholder="Kosongkan bila tidak ada deskripsi acara"></textarea> </div> <div class="form-group"> - <label><input type="checkbox" value="" id="isTanggal">Sudah ada tanggal? </label> - <input type="hidden" class="form-control" id="chx-helper" name="isTanggal" value="0"> - <input type="date" class="form-control" id="tanggal_kegiatan" name="tanggal_kegiatan" disabled> + <label><input type="checkbox" value="" id="isTanggal">Sudah ada tanggal? </label> + <input type="hidden" class="form-control" id="chx-helper" name="isTanggal" value="0"> + <input type="date" class="form-control" id="tanggal_kegiatan" name="tanggal_kegiatan" disabled> </div> <div class="form-group"> - <label><input type="checkbox" value="" id="isTempat">Sudah ada tempat? </label> - <input type="hidden" class="form-control" id="chx2-helper" name="isTempat" value="0"> - <input type="text" class="form-control" id="lokasi_kegiatan" name="lokasi_kegiatan" disabled> + <label><input type="checkbox" value="" id="isTempat">Sudah ada tempat? </label> + <input type="hidden" class="form-control" id="chx2-helper" name="isTempat" value="0"> + <input type="text" class="form-control" id="lokasi_kegiatan" name="lokasi_kegiatan" disabled> </div> <button type="submit" class="btn btn-default">Kirim</button> </form> +<!-- Modal --> +<div id="alert-modal" class="alert"> + <div class="alert-content"> + <div class="align-right"> + <span class="alert-close">×</span> + </div> + <div class="grid-layout"> + <div id="alert-cross"> + <img id="alert-image"> + </div> + <div id="alert-message"> + <div id="alert-header"></div> + <div id="alert-text"></div> + </div> + </div> + </div> +</div> + <script> - $('#isTanggal').change(function(){ + var nama_kegiatan = document.getElementById("nama_kegiatan"); + var target_peserta = document.getElementById("target_peserta"); + var deskripsi_acara = document.getElementById("deskripsi_acara"); + var isTanggal = document.getElementById("isTanggal"); + var tanggal_kegiatan = document.getElementById("tanggal_kegiatan"); + var isTempat = document.getElementById("isTempat"); + var lokasi_kegiatan = document.getElementById("lokasi_kegiatan"); + var alertModal = document.getElementById('alert-modal'); + var alertCloseBtn = document.getElementsByClassName('alert-close')[0]; + var alertText = document.getElementById('alert-text'); + var alertImage = document.getElementById('alert-image'); + var alertHeader = document.getElementById('alert-header'); + + $('#isTanggal').change(function () { if (this.checked) { $("#tanggal_kegiatan").removeAttr("disabled"); $("#chx-helper").val(1); } else { - $("#tanggal_kegiatan").attr("disabled","true"); + $("#tanggal_kegiatan").attr("disabled", "true"); $("#chx-helper").val(0); } }); - $('#isTempat').change(function(){ + $('#isTempat').change(function () { if (this.checked) { $("#lokasi_kegiatan").removeAttr("disabled"); $("#chx2-helper").val(1); } else { - $("#lokasi_kegiatan").attr("disabled","true"); + $("#lokasi_kegiatan").attr("disabled", "true"); $("#chx2-helper").val(0); } }); - $('#upload_form').on('submit', function(e){ + $('#upload_form').on('submit', function (e) { e.preventDefault(); - att = $("upload_form").attr("action") ; - $.post("../addKegiatan.php", $("#upload_form").serialize() ).done(function (data) { - alert(data); - }); + var teks=""; + alertHeader.innerHTML = "Gagal!"; + alertImage.src="images/cross-red.jpg"; + if(!nama_kegiatan.value){ + teks+="Nama Kegiatan"; + } + if(!target_peserta.value){ + if(teks!=""){ + teks+=", "; + } + teks+="Target Peserta"; + } + if(isTanggal.checked){ + if(!tanggal_kegiatan.value){ + if(teks!=""){ + teks+=", "; + } + teks+="Tanggal Kegiatan"; + } + } + if(isTempat.checked){ + if(!tanggal_kegiatan.value){ + if(teks!=""){ + teks+=", "; + } + teks+="Lokasi Kegiatan"; + } + } + if(teks!=""){ + alertText.innerHTML = teks + " tidak boleh kosong."; + alertModal.style.display = 'block'; + } + else{ + $.post("../addKegiatan.php", $("#upload_form").serialize()).done(function (data) { + alertImage.src="images/green-check.jpg"; + alertHeader.innerHTML = "Sukses!"; + alertText.innerHTML = data; + alertModal.style.display = 'block'; + $("#upload_form")[0].reset(); + }); + } }); -</script> + + alertCloseBtn.addEventListener('click', function() { + alertModal.style.display = 'none'; + }); + + window.onclick = function(event) { + if (event.target == alertModal) { + alertModal.style.display = "none"; + } + } +</script> \ No newline at end of file diff --git a/admin/materi.html b/admin/materi.html index 4807e5887518545adc088d9f1101a35364998c4c..f389e40c42eefe93409893efa5d2c0777932a6c1 100755 --- a/admin/materi.html +++ b/admin/materi.html @@ -1,3 +1,7 @@ +<head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="css/alert.css" type="text/css"> + </head> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> <h1 class="h2">Materi</h1> <div class="btn-toolbar mb-2 mb-md-0"> @@ -5,16 +9,16 @@ </div> </div> -<form action="../addMateri.php" method="POST" id="upload_form" enctype="multipart/form-data"> +<form method="POST" id="upload_form" enctype="multipart/form-data"> <div class="form-group"> <label for="usr">Topik:</label> <div class="radio"> - <label><input type="radio" name="optradio" value="new">Tambah Baru</label> + <label><input type="radio" name="optradio" id="optradio" value="new">Tambah Baru</label> <input type="text" id="new" name="topik" disabled> </div> <div class="radio"> - <label><input type="radio" name="optradio" value="exist">Pilih dari yang sudah ada</label> + <label><input type="radio" name="optradio" id="optradio1" value="exist">Pilih dari yang sudah ada</label> <select id="sel1" name="topik" disabled> </select> @@ -48,7 +52,36 @@ </div> </div> +<!-- Modal --> +<div id="alert-modal" class="alert"> + <div class="alert-content"> + <div class="align-right"> + <span class="alert-close">×</span> + </div> + <div class="grid-layout"> + <div id="alert-cross"> + <img id="alert-image"> + </div> + <div id="alert-message"> + <div id="alert-header"></div> + <div id="alert-text"></div> + </div> + </div> + </div> + </div> + <script> + var optradio = document.getElementById("optradio"); + var _new = document.getElementById("new"); + var optradio1 = document.getElementById("optradio1"); + var sel1 = document.getElementById("sel1"); + var judul = document.getElementById("judul"); + var alertModal = document.getElementById('alert-modal'); + var alertCloseBtn = document.getElementsByClassName('alert-close')[0]; + var alertText = document.getElementById('alert-text'); + var alertImage = document.getElementById('alert-image'); + var alertHeader = document.getElementById('alert-header'); + $.getJSON("../getAllTopik.php",function(data){ var select = document.getElementById("sel1"); $.each(data, function(){ @@ -108,24 +141,56 @@ complete: function(xhr) { $('#progbar').addClass('d-none'); $('#upload_form').removeClass('d-none'); - alert(xhr.responseText); + //alert(xhr.responseText); } }); - // $("#upload_form").on("submit", function(e){ - // e.preventDefault(); - // $.ajax({ - // url: "../addMateri.php", // Url to which the request is send - // type: "POST", // Type of request to be send, called as method - // data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) - // contentType: false, // The content type used when sending data to the server. - // cache: false, // To unable request pages to be cached - // processData:false, // To send DOMDocument or non processed data file it is set to false - // success: function(data) // A function to be called if request succeeds - // { - // // lakukan pemanggilan api notifikasi - // alert(data); - // } - // }); - // }); + + $("#upload_form").on("submit", function(e){ + e.preventDefault(); + var teks=""; + alertHeader.innerHTML = "Gagal!"; + alertImage.src="images/cross-red.jpg"; + if((!optradio.checked && !optradio1.checked) || (optradio.checked && !_new.value)) { + teks+="Topik"; + } + if(!judul.value){ + if(teks!=""){ + teks+=", "; + } + teks+="Judul"; + } + if(teks!=""){ + alertText.innerHTML = teks + " tidak boleh kosong."; + alertModal.style.display = 'block'; + } + else { + $.ajax({ + url: "../addMateri.php", // Url to which the request is send + type: "POST", // Type of request to be send, called as method + data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) + contentType: false, // The content type used when sending data to the server. + cache: false, // To unable request pages to be cached + processData:false, // To send DOMDocument or non processed data file it is set to false + success: function(data) // A function to be called if request succeeds + { + // lakukan pemanggilan api notifikasi + alertImage.src="images/green-check.jpg"; + alertHeader.innerHTML = "Sukses!"; + alertText.innerHTML = data; + alertModal.style.display = 'block'; + $("#upload_form")[0].reset(); + } + }); + } + }); + alertCloseBtn.addEventListener('click', function() { + alertModal.style.display = 'none'; + }); + + window.onclick = function(event) { + if (event.target == alertModal) { + alertModal.style.display = "none"; + } + } </script> \ No newline at end of file diff --git a/admin/peng-tambah.html b/admin/peng-tambah.html index b93f2af7265a01b0edeff3b32aad8640757acce5..400f2e06b4e8433b950003936b997f7f57263ad4 100755 --- a/admin/peng-tambah.html +++ b/admin/peng-tambah.html @@ -1,94 +1,163 @@ +<head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="css/alert.css" type="text/css"> +</head> <form action="../addPengumuman.php" method="POST" id="upload_form" enctype="multipart/form-data"> <div class="form-group"> <label for="usr">Judul:</label> <input type="text" class="form-control" id="judul" name="judul"> </div> <div class="form-group"> - <label for="comment">Kegiatan terkait:      </label> - <input type="hidden" name="kegiatan_id" value="-1"> - <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" id="list-button">Empty - <span data-feather="calendar"></span></button> - <ul class="dropdown-menu" id="list"> + <label for="comment">Kegiatan terkait:      </label> + <input type="hidden" name="kegiatan_id" value="-1"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" id="list-button">Empty + <span data-feather="calendar"></span></button> + <ul class="dropdown-menu" id="list"> - </ul> - </div> + </ul> + </div> <div class="form-group"> <label for="comment">Konten:</label> <textarea class="form-control" rows="5" id="konten" name="konten_text" value="" placeholder="Kosongkan bila tidak ada konten"></textarea> </div> <div class="form-group"> - <label><input type="checkbox" value="" id="isUpload">Upload gambar? </label> - <input type="hidden" class="form-control" id="chx-helper" name="isUpload" value="0"> - <input class="input-file d-none" id="fileInput" type="file" name="file"> + <label><input type="checkbox" value="" id="isUpload">Upload gambar? </label> + <input type="hidden" class="form-control" id="chx-helper" name="isUpload" value="0"> + <input class="input-file d-none" id="fileInput" type="file" name="file" onchange="previewFile()"> + </div> + <div class="form-group"> + <img src="" class="img-thumbnail d-none col-sm-2 col-md-3 col-lg-2" id="imgThumbnail"> </div> - <button type="submit" class="btn btn-default">Kirim</button> + <button type="submit" class="btn btn-default" onsubmit="return validate()">Kirim</button> </form> +<!-- Modal --> +<div id="alert-modal" class="alert"> + <div class="alert-content"> + <div class="align-right"> + <span class="alert-close">×</span> + </div> + <div class="grid-layout"> + <div id="alert-cross"> + <img id="alert-image"> + </div> + <div id="alert-message"> + <div id="alert-header"></div> + <div id="alert-text"></div> + </div> + </div> + </div> +</div> + <script> - $('#isUpload').change(function(){ + var judul = document.getElementById("judul"); + var alertModal = document.getElementById('alert-modal'); + var alertCloseBtn = document.getElementsByClassName('alert-close')[0]; + var alertText = document.getElementById('alert-text'); + var alertImage = document.getElementById('alert-image'); + var alertHeader = document.getElementById('alert-header'); + + function previewFile() { + var preview = document.querySelector('img'); + var file = document.querySelector('input[type=file]').files[0]; + var reader = new FileReader(); + + reader.onloadend = function () { + preview.src = reader.result; + } + + if (file) { + reader.readAsDataURL(file); + $("#imgThumbnail").removeClass("d-none"); + } else { + preview.src = ""; + } + } + + $('#isUpload').change(function () { if (this.checked) { $("#fileInput").removeClass("d-none"); $("#chx-helper").val(1); } else { $("#fileInput").addClass("d-none"); + $("#imgThumbnail").addClass("d-none"); $("#chx-helper").val(0); } }); - - $("#upload_form").on("submit", function(e){ + + $("#upload_form").on("submit", function (e) { e.preventDefault(); - $.ajax({ - url: "../addPengumuman.php", // Url to which the request is send - type: "POST", // Type of request to be send, called as method - data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) - contentType: false, // The content type used when sending data to the server. - cache: false, // To unable request pages to be cached - processData:false, // To send DOMDocument or non processed data file it is set to false - success: function(data) // A function to be called if request succeeds - { - // lakukan pemanggilan api notifikasi - alert(data); - } - }); + if (judul.value.trim() === "") { // mengecek apakah judul kosong + alertHeader.innerHTML = "Gagal!"; + alertImage.src="images/cross-red.jpg"; + alertText.innerHTML = "Judul Kegiatan tidak boleh kosong."; + alertModal.style.display = 'block'; + } else { + $.ajax({ + url: "../addPengumuman.php", // Url to which the request is send + type: "POST", // Type of request to be send, called as method + data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) + contentType: false, // The content type used when sending data to the server. + cache: false, // To unable request pages to be cached + processData: false, // To send DOMDocument or non processed data file it is set to false + success: function (data) // A function to be called if request succeeds + { + // lakukan pemanggilan api notifikasi + alertImage.src="images/green-check.jpg"; + alertHeader.innerHTML = "Sukses!"; + alertText.innerHTML = data; + alertModal.style.display = 'block'; + } + }); + } }); - $.getJSON("../getAllKegiatan.php",function(data){ - // bikin buat data empty - var newJudul = document.createElement("li"); - var ahref = document.createElement("a"); - ahref.innerHTML = "Empty"; - var nama_kegiatan = "Empty" - var id_kegiatan = -1; - ahref.href = "#"; - var id = this.id; - $("input[name=kegiatan_id").val(id_kegiatan); - $("#list-button").html(nama_kegiatan); - ahref.onclick = function(e) { - e.preventDefault(); - } - newJudul.appendChild(ahref); - $("#list").append(newJudul); - - $.each(data, function(){ - newJudul = document.createElement("li"); - ahref = document.createElement("a"); - ahref.innerHTML = this.nama_kegiatan; - nama_kegiatan = this.nama_kegiatan; - id_kegiatan = this.id_kegiatan; - ahref.href = "#"; - id = this.id; - ahref.onclick = function(e) { - e.preventDefault(); - $("input[name=kegiatan_id").val(id_kegiatan); - $("#list-button").html(this.innerHTML); - - - } - newJudul.appendChild(ahref); - $("#list").append(newJudul); - - }) - }); + $.getJSON("../getAllKegiatan.php", function (data) { + // bikin buat data empty + var newJudul = document.createElement("li"); + var ahref = document.createElement("a"); + ahref.innerHTML = "Empty"; + var nama_kegiatan = "Empty" + var id_kegiatan = -1; + ahref.href = "#"; + var id = this.id; + $("input[name=kegiatan_id").val(id_kegiatan); + $("#list-button").html(nama_kegiatan); + ahref.onclick = function (e) { + e.preventDefault(); + } + newJudul.appendChild(ahref); + $("#list").append(newJudul); + + $.each(data, function () { + newJudul = document.createElement("li"); + ahref = document.createElement("a"); + ahref.innerHTML = this.nama_kegiatan; + nama_kegiatan = this.nama_kegiatan; + id_kegiatan = this.id_kegiatan; + ahref.href = "#"; + id = this.id; + ahref.onclick = function (e) { + e.preventDefault(); + $("input[name=kegiatan_id").val(id_kegiatan); + $("#list-button").html(this.innerHTML); + + } + newJudul.appendChild(ahref); + $("#list").append(newJudul); + + }) + }); + + alertCloseBtn.addEventListener('click', function() { + alertModal.style.display = 'none'; + }); + + window.onclick = function(event) { + if (event.target == alertModal) { + alertModal.style.display = "none"; + } + } </script> \ No newline at end of file diff --git a/admin/quotes.html b/admin/quotes.html index 1f5cc99443def1cb8e6dd165710f82ac839a4596..b8cd32d376770743f47d4c42fd30a5c09c375165 100755 --- a/admin/quotes.html +++ b/admin/quotes.html @@ -1,7 +1,11 @@ +<head> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="css/alert.css" type="text/css"> + </head> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> <h1 class="h2">Quote</h1> <div class="btn-toolbar mb-2 mb-md-0"> - + </div> </div> @@ -18,14 +22,55 @@ </form> +<!-- Modal --> +<div id="alert-modal" class="alert"> + <div class="alert-content"> + <div class="align-right"> + <span class="alert-close">×</span> + </div> + <div class="grid-layout"> + <div id="alert-cross"> + <img id="alert-image"> + </div> + <div id="alert-message"> + <div id="alert-header"></div> + <div id="alert-text"></div> + </div> + </div> + </div> + </div> + <script> + var konten = document.getElementById('konten'); + var author = document.getElementById('author'); + var alertModal = document.getElementById('alert-modal'); + var alertCloseBtn = document.getElementsByClassName('alert-close')[0]; + var alertText = document.getElementById('alert-text'); + var alertImage = document.getElementById('alert-image'); + var alertHeader = document.getElementById('alert-header'); -$('#upload_form').on('submit', function(e){ - e.preventDefault(); - $.post("../addQuote.php", $("#upload_form").serialize() ).done(function (data) { - alert(data); - $("#upload_form")[0].reset(); + $('#upload_form').on('submit', function (e) { + e.preventDefault(); + alertHeader.innerHTML = "Gagal!"; + alertImage.src="images/cross-red.jpg"; + if (author.value.trim() === "" && konten.value.trim() === "") { + // BootstrapDialog.alert('Author dan konten tidak boleh kosong!'); + alertText.innerHTML = "Author dan konten tidak boleh kosong."; + alertModal.style.display = 'block'; + } else if (author.value.trim() === "") { + alertText.innerHTML = "Author tidak boleh kosong."; + alertModal.style.display = 'block'; + } else if (konten.value.trim() === "") { + alertText.innerHTML = "Konten tidak boleh kosong."; + alertModal.style.display = 'block'; + } else { + $.post("../addQuote.php", $("#upload_form").serialize()).done(function (data) { + alertImage.src="images/green-check.jpg"; + alertHeader.innerHTML = "Sukses!"; + alertText.innerHTML = data; + alertModal.style.display = 'block'; + $("#upload_form")[0].reset(); + }); + } }); -}); - </script> \ No newline at end of file diff --git a/admin/sidebar.html b/admin/sidebar.html index 1794b83323d0c956006a666fcc82eca18d88236e..9cbef19c914bcb270a3cd09732efaa4e30177c8e 100755 --- a/admin/sidebar.html +++ b/admin/sidebar.html @@ -1,4 +1,5 @@ <div class="sidebar-sticky"> + <div class="row d-none d-sm-none d-md-block"> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link active" href="#"> @@ -69,5 +70,5 @@ Year-end sale </a> </li> - </ul> + </ul></div> </div> \ No newline at end of file diff --git a/dbConnect.php b/dbConnect.php index f3f89e90ee21aa26a946c2e040d62e5b8b52f31e..831052b11d6c87e04ca05010ff478be08587bc91 100755 --- a/dbConnect.php +++ b/dbConnect.php @@ -11,8 +11,8 @@ */ $servername = "localhost"; -$username = "pmo_training"; -$password = "bukan ayam"; +$username = "root"; +$password = ""; $dbname = "pmo_training"; // Create connection