There is pagination in code from cms swtm
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"/> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | |
| <title>Page Text Management</title> | |
| <link rel="shortcut icon" href="https://showtime.co.id/images/favicon.ico" type="image/x-icon"> | |
| <link href="/Content/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css"> | |
| <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet"> | |
| <link type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-sweetalert/1.0.1/sweetalert.min.js"> | |
| <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script> | |
| <link rel="stylesheet" href="https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/dist/bootstrap-tagsinput.css"> | |
| <style> | |
| #activedd { | |
| background: #ffc6db; | |
| } | |
| </style> | |
| <!-- Custom styles for this template--> | |
| <link href="/Content/css/sb-admin-2.css" rel="stylesheet"> | |
| <link href="/Content/css/custom.css" rel="stylesheet"> | |
| <link rel="stylesheet" type="text/css" href="/Content/css/daterangepicker.css"> | |
| </head> | |
| <body id="page-top"> | |
| <div class="loading">Loading…</div> | |
| <!-- Page Wrapper --> | |
| <div id="wrapper"> | |
| <!-- Sidebar --> | |
| <ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar"> | |
| <!-- Sidebar - Brand --> | |
| <a class="sidebar-brand d-flex align-items-center justify-content-center" href="index.html"> | |
| <img src="https://cdn.showtime.co.id/images_2/images/v2/showtime-logo-beta.png" alt="Showtime" class="img-logo"> | |
| </a> | |
| <!-- Divider --> | |
| <hr class="sidebar-divider my-0"> | |
| <div id="qwe"></div> | |
| <!-- Nav Item - Dashboard --> | |
| <li class="nav-item" id="Dashboard"> | |
| <a class="nav-link" href="/"> | |
| <i class="fas fa-fw fa-tachometer-alt"></i> | |
| <span>Dashboard</span> | |
| </a> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link" href="#" data-toggle="collapse" data-target="#collapsePortal" aria-expanded="true" aria-controls="collapsePortal"> | |
| <i class="fas fa-fw fa-cog"></i> | |
| <span>Portal and text management</span> | |
| </a> | |
| <div id="collapsePortal" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar" style=""> | |
| <div class="bg-white py-2 collapse-inner rounded"> | |
| <a class="collapse-item" href="/Portal">Portal banners</a> | |
| <a class="collapse-item" href="/Portal/PageText">Pagetext</a> | |
| <a class="collapse-item" href="/Home/MailBox">Mailbox</a> | |
| </div> | |
| </div> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link" href="#" data-toggle="collapse" data-target="#collapseEvent" aria-expanded="true" aria-controls="collapseEvent"> | |
| <i class="fas fa-list"></i> | |
| <span>Event</span> | |
| </a> | |
| <div id="collapseEvent" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar" style=""> | |
| <div class="bg-white py-2 collapse-inner rounded"> | |
| <a class="collapse-item" href="/Home/Content">Content event approval</a> | |
| <a class="collapse-item" href="/Home/Showcase">Content showcase approval</a> | |
| <a class="collapse-item" href="/Home/Users">Participants</a> | |
| </div> | |
| </div> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link" href="#" data-toggle="collapse" data-target="#collapseArtist" aria-expanded="true" aria-controls="collapseArtist"> | |
| <i class="fas fa-list"></i> | |
| <span>Artist</span> | |
| </a> | |
| <div id="collapseArtist" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar" style=""> | |
| <div class="bg-white py-2 collapse-inner rounded"> | |
| <a class="collapse-item" href="/Home/Approval"> Artist Approval</a> | |
| <a class="collapse-item" href="/Home/ContentArtist"> Content approval</a> | |
| <a class="collapse-item" href="/Home/Withdraw"> Withdrawal transaction</a> | |
| <a class="collapse-item" href="/Home/Wallet"> Wallet approval</a> | |
| </div> | |
| </div> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link" href="#" data-toggle="collapse" data-target="#collapseAdmin" aria-expanded="true" aria-controls="collapseAdmin"> | |
| <i class="fas fa-list"></i> | |
| <span>Admin</span> | |
| </a> | |
| <div id="collapseAdmin" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar" style=""> | |
| <div class="bg-white py-2 collapse-inner rounded"> | |
| <a class="collapse-item" href="/Home/NonCcContent">Content upload</a> | |
| </div> | |
| </div> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link" href="#" data-toggle="collapse" data-target="#collapseCP" aria-expanded="true" aria-controls="collapseCP"> | |
| <i class="fas fa-list"></i> | |
| <span>CP</span> | |
| </a> | |
| <div id="collapseCP" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar" style=""> | |
| <div class="bg-white py-2 collapse-inner rounded"> | |
| <a class="collapse-item" href="/Home/Promotion">Promotion Management</a> | |
| </div> | |
| </div> | |
| </li> | |
| <li class="nav-item"> | |
| <a class="nav-link" href="/Login/LogOut"> | |
| <i class="fas fa-sign-out-alt"></i> | |
| <span>Logout</span> | |
| </a> | |
| </li> | |
| </ul> | |
| <!-- End of Sidebar --> | |
| <!-- Content Wrapper --> | |
| <div id="content-wrapper" class="d-flex flex-column"> | |
| <!-- Main Content --> | |
| <div id="content"> | |
| <!-- Topbar --> | |
| <nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow"> | |
| <h2>content management system</h2> | |
| <!-- Sidebar Toggle (Topbar) --> | |
| <button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3"> | |
| <i class="fa fa-bars"></i> | |
| </button> | |
| <!-- Topbar Navbar --> | |
| <ul class="navbar-nav ml-auto"> | |
| <!-- Nav Item - User Information --> | |
| <!--<li class="nav-item dropdown no-arrow"> | |
| <a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" | |
| data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> | |
| <span class="mr-2 d-none d-lg-inline text-gray-600 small">Douglas McGee</span> | |
| <img class="img-profile rounded-circle" | |
| src="img/undraw_profile.svg"> | |
| </a>--> | |
| <!-- Dropdown - User Information --> | |
| <!--<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" | |
| aria-labelledby="userDropdown"> | |
| <a class="dropdown-item" href="#"> | |
| <i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i> | |
| Profile | |
| </a> | |
| <a class="dropdown-item" href="#"> | |
| <i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i> | |
| Settings | |
| </a> | |
| <a class="dropdown-item" href="#"> | |
| <i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i> | |
| Activity Log | |
| </a> | |
| <div class="dropdown-divider"></div> | |
| <a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal"> | |
| <i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i> | |
| Logout | |
| </a> | |
| </div> | |
| </li>--> | |
| </ul> | |
| </nav> | |
| <!-- End of Topbar --> | |
| <!-- Begin Page Content --> | |
| <div class="container-fluid"> | |
| <div id="succesUpdateData"> | |
| </div> | |
| <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> | |
| <div class="modal-dialog" role="document"> | |
| <div class="modal-content"> | |
| <div class="modal-header"> | |
| <h5 class="modal-title" id="exampleModalLabel">Page Text</h5> | |
| <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | |
| <span aria-hidden="true">×</span> | |
| </button> | |
| </div> | |
| <div class="modal-body"> | |
| <div class="form-group"> | |
| <select class="form-control" id="lang"> | |
| <option value="">Select Language</option> | |
| <option value="en">English</option> | |
| <option value="id">Indonesia</option> | |
| <option value="pt">Portuguese</option> | |
| <option value="my">Myanmar</option> | |
| </select> | |
| </div> | |
| <div class="form-group"> | |
| <label for="text">Key</label> | |
| <input type="text" class="form-control" id="key" placeholder="Enter Key"> | |
| </div> | |
| <div class="form-group"> | |
| <label for="text">Text</label> | |
| <textarea type="text" rows="5" class="form-control" id="text" placeholder="Enter Text"> | |
| </textarea> | |
| </div> | |
| </div> | |
| <div class="modal-footer"> | |
| <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> | |
| <button type="button" onclick="saveChanges();" class="btn btn-primary">Save changes</button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class=" page-fBot2"> | |
| <div class="card shadow mb-4"> | |
| <div class="card-header py-3"> | |
| <h6 class="m-0 font-weight-bold">Page Text Management </h6> | |
| </div> | |
| <div class="card-body"> | |
| <div class="row"> | |
| <div class="col-md-3"> | |
| <input type="text" id="txtKey" placeholder="Search..." class="form-control"/> | |
| </div> | |
| <div> | |
| <button type="button" id="btnSearch" class="btn btn-primary" onclick="search()" hidden>Search</button> | |
| </div> | |
| <div class="col-xs-12 col-md-3"> | |
| <select class="form-control" id="listEvent"> | |
| <option value="">Select Language</option> | |
| <option value="en">English</option> | |
| <option value="id">Indonesia</option> | |
| <option value="pt">Portuguese</option> | |
| <option value="my">Myanmar</option> | |
| </select> | |
| </div> | |
| <div class="col-md-3"> | |
| <button onclick="resetModal()" type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal"> | |
| Add New Text | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="card shadow mb-4"> | |
| <div class="card-header py-3"> | |
| <h6 class="m-0 font-weight-bold"></h6> | |
| </div> | |
| <div class="card-body"> | |
| <div class="table-responsive"> | |
| <table class="table" width="100%" cellspacing="0"> | |
| <thead> | |
| <tr> | |
| <td scope="col">Key</td> | |
| <td scope="col">Text</td> | |
| <td scope="col">Language Code</td> | |
| <td scope="col">Action</td> | |
| </tr> | |
| </thead> | |
| <tbody id="listContent"> | |
| </tbody> | |
| </table> | |
| </div> | |
| <nav aria-label="..."> | |
| <ul class="pagination" id="paging"> | |
| </ul> | |
| </nav> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- /.container-fluid --> | |
| </div> | |
| <!-- End of Main Content --> | |
| <!-- Footer --> | |
| <footer class="sticky-footer bg-white"> | |
| <div class="container my-auto"> | |
| <div class="copyright text-center my-auto"> | |
| <span>Copyright © EightElements 2020</span> | |
| </div> | |
| </div> | |
| </footer> | |
| <!-- End of Footer --> | |
| </div> | |
| <!-- End of Content Wrapper --> | |
| </div> | |
| <!-- End of Page Wrapper --> | |
| <!-- Scroll to Top Button--> | |
| <a class="scroll-to-top rounded" href="#page-top"> | |
| <i class="fas fa-angle-up"></i> | |
| </a> | |
| <!-- Logout Modal--> | |
| <div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" | |
| aria-hidden="true"> | |
| <div class="modal-dialog" role="document"> | |
| <div class="modal-content"> | |
| <div class="modal-header"> | |
| <h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5> | |
| <button class="close" type="button" data-dismiss="modal" aria-label="Close"> | |
| <span aria-hidden="true">×</span> | |
| </button> | |
| </div> | |
| <div class="modal-body">Select "Logout" below if you are ready to end your current session.</div> | |
| <div class="modal-footer"> | |
| <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button> | |
| <a class="btn btn-primary" href="login.html">Logout</a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Bootstrap core JavaScript--> | |
| <script src="/Content/vendor/jquery/jquery.min.js"></script> | |
| <script src="/Content/vendor/bootstrap/js/bootstrap.bundle.min.js"></script> | |
| <!-- Core plugin JavaScript--> | |
| <script src="/Content/vendor/jquery-easing/jquery.easing.min.js"></script> | |
| <!-- Custom scripts for all pages--> | |
| <script src="/Content/js/sb-admin-2.js"></script> | |
| <script src="/Content/vendor/chart.js/Chart.min.js"></script> | |
| <!-- Page level plugins --> | |
| <script src="/Content/vendor/datatables/jquery.dataTables.min.js"></script> | |
| <script src="/Content/vendor/datatables/dataTables.bootstrap4.min.js"></script> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js"></script> | |
| <script src="https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js"></script> | |
| <script> | |
| $(document).ready(function () { | |
| stopLoading(); | |
| changeActive(); | |
| }) | |
| function startLoading() { | |
| $(".loading").show(); | |
| } | |
| function stopLoading() { | |
| $(".loading").hide(); | |
| } | |
| function validator(id) { | |
| var variable = $("#" + id); | |
| var check = variable.val(); | |
| if (check === null || check === '' || check === 0 || check === '0') { | |
| variable.focus(); | |
| return false; | |
| } | |
| return true; | |
| } | |
| function changeActive() { | |
| var path = 'PortalPageText'; | |
| if (path == 'HomeIndex') { | |
| $("#Dashboard").addClass("nav-item active"); | |
| } | |
| else if (path == 'PortalIndex' || path =='portalCategory') { | |
| $("#PortalManagement").addClass("nav-item active"); | |
| } | |
| else if (path == 'PortalPageText') { | |
| $("#PageTextManagement").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomeContent' || path == 'homedetail' || path == 'homedetail2') { | |
| $("#ContentManagement").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomePromotion') { | |
| $("#Promotion").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomeShowcase' || path == 'homeshowcasedetail2') { | |
| $("#ShowcaseManagement").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomeUsers' || path == 'homeUsersDetail') { | |
| $("#UserManagement").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomeMailBox') { | |
| $("#mailBox").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomeApproval' ) { | |
| $("#Approval").addClass("nav-item active"); | |
| } | |
| else if (path == 'HomeNonCcContent') { | |
| $("#NonCcContent").addClass("nav-item active"); | |
| } | |
| } | |
| </script> | |
| <script src="/Scripts/api.js"></script> | |
| <script> | |
| var lang = ""; | |
| var id = 0; | |
| var listText = []; | |
| var indexId = 0; | |
| var page = 0; | |
| var pageSize = 10; | |
| var keySearch = ""; | |
| var convertPage = 0; | |
| $(document).ready(function () { | |
| //getAllEventParticipant(); | |
| search(); | |
| }) | |
| $("#txtKey").on("input", function () { | |
| search(); | |
| }); | |
| $("#listEvent").on('change', function () { | |
| lang = this.value; | |
| //GetPageText(); | |
| convertPage = 5; | |
| getAllEventParticipant(convertPage); | |
| }) | |
| function GetPageText() { | |
| GetAllPageText(lang).then(response => | |
| JSON.parse(response) | |
| ).then(data => { | |
| listText = data; | |
| drawListContent(data); | |
| }); | |
| } | |
| function getAllEventParticipant(convertPage, keySearch) { | |
| if (convertPage > 0) { page = 0; } | |
| keySearch = $("#txtKey").val(); | |
| $.get('/rest/GetAllPageText?lang=' + lang + '&startIndex=' + page + '&pageSize=' + pageSize + '&keySearch=' + keySearch, function (data, status) { | |
| var json = JSON.parse(data); | |
| if (json.PageTexts.length == 0) { | |
| notFound(); | |
| $("#listContent").empty(); | |
| $("#paging").empty(); | |
| } else { | |
| drawListContent(json.PageTexts); | |
| listText = json.PageTexts; | |
| console.log(json); | |
| drawPaging(json.PageCount);} | |
| }); | |
| } | |
| function movePage(i) { | |
| page = i; | |
| console.log(i) | |
| getAllEventParticipant(); | |
| } | |
| function drawPaging(count) { | |
| var countpage = 2; | |
| var nextpad = 3; | |
| var totalpage = count > pageSize ? count / pageSize : 1; | |
| var limitpage = nextpad + page >= totalpage ? totalpage : page + nextpad; | |
| var firstpage = page - countpage >= 0 ? page - countpage : 0; | |
| $("#paging").empty(); | |
| if (page <= 0) { | |
| $("#paging").append(`<li class="page-item disabled "> | |
| <a class="page-link" href="#" tabindex="-1" onclick="movePage(${page - 1})">Previous</a> </li>`) | |
| } else { | |
| $("#paging").append(`<li class="page-item "> | |
| <a class="page-link" href="#" tabindex="-1" onclick="movePage(${page - 1})">Previous</a> </li>`) | |
| } | |
| for (var i = firstpage; i < limitpage; i++) { | |
| if (i == page) { | |
| $("#paging").append(`<li class="page-item active" aria-current="page"> | |
| <a class="page-link" onclick="movePage(${i})" href="#">${i + 1}</a> </li>`) | |
| } else { | |
| $("#paging").append(`<li class="page-item" aria-current="page"> | |
| <a class="page-link" onclick="movePage(${i})" href="#">${i + 1}</a></li>`) | |
| } | |
| } | |
| if (page >= totalpage -1) { | |
| $("#paging").append(`<li class="page-item disabled"> | |
| <a class="page-link"href="#" tabindex="-1" ">next</a></li>`) | |
| } else { | |
| $("#paging").append(`<li class="page-item"> | |
| <a class="page-link"href="#" tabindex="-1" onclick="movePage(${page + 1})">next</a> </li>`) | |
| } | |
| } | |
| //End Pagination | |
| function updateModal(index) { | |
| indexId = index; | |
| var value = listText[index]; | |
| id = value.Id; | |
| $("#text").val(value.Text); | |
| $("#key").val(value.Key); | |
| $("#lang").val(value.LanguageCode); | |
| } | |
| function resetModal() { | |
| id = 0; | |
| indexId = 0; | |
| $("#key").val(''); | |
| $("#text").val(''); | |
| $("#text").empty(''); | |
| $("#lang").val(''); | |
| var text = document.createTextNode(value.Text); | |
| } | |
| function validate(key, text, lang) { | |
| var message = ''; | |
| if (key == '') { | |
| message += 'Key cannot be empty \n'; | |
| } | |
| if (text == '') { | |
| message += 'Text cannot be empty \n'; | |
| } | |
| if(lang == ''){ | |
| message += 'Language cannot be empty \n'; | |
| } | |
| return message; | |
| } | |
| function saveChanges() { | |
| var text = $("#text").val(); | |
| var key = $("#key").val(); | |
| var lang = $("#lang").val(); | |
| var valideteResult = validate(key, text, lang); | |
| if (valideteResult != '') { | |
| error(valideteResult); | |
| return; | |
| } | |
| AddOrUpdatePageText(id, key, text, lang).then(response => { | |
| if (response == 'ok') { | |
| $("#succesUpdateData").html(`<div class="alert alert-success alert-dismissible" role="alert"> | |
| <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button> | |
| <i class="fas fa-check"> Success Update ... </i> | |
| </div>`); | |
| setTimeout(function () { | |
| $("#succesUpdateData").html(""); | |
| }, 2000) | |
| } | |
| getAllEventParticipant(); | |
| } | |
| ); | |
| $('#exampleModal').modal('hide'); | |
| //$('#exampleModal').modal('toggle'); | |
| } | |
| function drawListContent(response) { | |
| $("#listContent").empty(); | |
| var content = ''; | |
| response.map((value, index) => { | |
| content += `<tr><td>${value.Key}</td>`; | |
| content += `<td>${value.Text}</td>`; | |
| content += `<td>${value.LanguageCode}</td>`; | |
| content += `<td><a onclick='updateModal(${index})' href="javascript:void(0)" data-toggle="modal" data-target="#exampleModal"> | |
| <i class="fas fa-edit fa-lg"></i></a>`; | |
| content += `<a onclick='deleteById(${value.Id})'><i class="fas fa-trash pagetext-delete"></i></a>`; | |
| content += `</td></tr>`; | |
| }) | |
| $("#listContent").append(content); | |
| } | |
| function deleteById(id){ | |
| swal({ | |
| title: "Are you sure?", | |
| text: "Once deleted, you will not be able to recover", | |
| icon: "warning", | |
| buttons: true, | |
| dangerMode: true, | |
| }) | |
| .then((willDelete) => { | |
| if (!willDelete) { | |
| return; | |
| } | |
| var url = "/Rest/DeletePageText/" + id; | |
| $.ajax({ | |
| type: "GET", | |
| url: url, | |
| success: function (response) { | |
| if (response) { | |
| swal("Success", "Deleted Successfully", "success") | |
| .then(x => location.reload()); | |
| } | |
| }, | |
| error: function () { | |
| alert("Error deleteById function") | |
| } | |
| }); | |
| }); | |
| } | |
| var t = document.getElementById("txtKey"); | |
| t.addEventListener("keyup", function (event) { | |
| if (event.keyCode === 13) { | |
| event.preventDefault(); | |
| document.getElementById("btnSearch").click(); | |
| } | |
| }); | |
| function search() { | |
| keySearch = $("#txtKey").val(); | |
| lang = ""; | |
| convertPage = 5; | |
| getAllEventParticipant(convertPage, keySearch); | |
| } | |
| function notFound() { | |
| //swal("Not Found", "Data Not Found...", "error"); | |
| } | |
| function Success() { | |
| swal("Success", "Success Update Data", "success"); | |
| } | |
| function error(msg) { | |
| swal("error", msg, "error"); | |
| } | |
| </script> | |
| </body> | |
| </html> |
There is pagination in code from cms swtm
Reviewed by Leo
on
Maret 09, 2023
Rating:


Tidak ada komentar