added user, kurir and admin page, complete the process of kurir

This commit is contained in:
kicap1992
2025-06-23 00:42:47 +08:00
parent 0ba4e846dc
commit 79da31e634
181 changed files with 7805 additions and 590 deletions

79
assets/admin.js Normal file
View File

@ -0,0 +1,79 @@
const socket = io(socket_server); // Connects to your server
function reloadTheTable() {
if (document.getElementById('tb-paket')) {
// If tb-paket is a DataTable instance
$('#tb-paket').DataTable().destroy();
reloadTable();
}
}
socket.on('connect', () => {
console.log('Connected to server:', socket.id);
});
// notifikasi pengiriman baru oleh user
socket.on('pengiriman_baru_client', (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => {});
toastr.info("Ada Pengiriman Baru");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
// console.log(data);
});
// notifikasi pembatalan paket dilakukan oleh kurir
socket.on('pembatalan_paket_kurir', (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => {});
toastr.warning("Kurir Membatalkan Pengambilan Paket No Resi <b>" + data._id + "</b>\nAlasan: <b>" + data.alasan + "</b>\nAdmin dapat menugaskan Kurir Baru atau Membatalkan Pengiriman.");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});
// notifikasi kurir dalam perjalanan mengambil paket
socket.on('kurir_mengambil_pengiriman_admin', (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => {});
toastr.info("Kurir Menyetujui Pengambilan Paket No Resi <b>" + data._id + "</b> dan Dalam Perjalanan Mengambil Paket di Alamat Pengirim : <b>" + data.alamat_pengirim + "</b>");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});
// notifikasi kurir mengambil paket dari pengirim dan mengantarkan ke penerima
socket.on('kurir_menghantar_ke_penerima_admin', (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => {});
// console.log(data);
if(data.status == 'Mengirim Paket Ke Alamat Penerima') {
toastr.info("Kurir Telah Mengambil Paket No Resi <b>" + data._id + "</b> dari Pengirim dan Dalam Perjalanan Mengantarkan ke Penerima di Alamat Penerima : <b>" + data.alamat_penerima + "</b>");
}else {
toastr.success("Kurir Telah Mengantarkan Paket No Resi <b>" + data._id + "</b> ke Penerima di Alamat Penerima : <b>" + data.alamat_penerima + "</b>");
}
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});
// notifikasi verifikasi paket diterima oleh user
socket.on('diterima_terverifikasi_admin', (data) => {
console.log(data);
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => {});
toastr.success("Paket No Resi <b>" + data._id + "</b> Telah Diterima dan diverifikasi oleh Pengirim");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});
// tiada notifikasi sebab pengirim yang membatalkan pengiriman
socket.on('delete_kiriman_admin', (data) => {
console.log(data);
reloadTheTable();
});

40
assets/kurir.js Normal file
View File

@ -0,0 +1,40 @@
const url = new URL(window.location.href); // or use your URL string instead
const pathSegments = url.pathname.split('/').filter(Boolean);
// Check if 'kurir' is present and if there's something after it
const index = pathSegments.indexOf('kurir');
const hasParamAfterKurir = index !== -1 && index < pathSegments.length - 1;
console.log(hasParamAfterKurir); // true or false
const socket = io(socket_server); // Connects to your server
socket.on('connect', () => {
console.log('Connected to server:', socket.id);
});
function reloadTheTable() {
if (document.getElementById('tb-paket')) {
// If tb-paket is a DataTable instance
$('#tb-paket').DataTable().destroy();
reloadTable();
}
}
console.log(global_data._id);
socket.on('kurir_ditugaskan_' + global_data._id, (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => {});
toastr.info("Ada Pengiriman Baru Ditugaskan Untuk Anda");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
// console.log(data);
});
document.getElementById('h5-title').innerHTML = global_data.nama;
$("#img-avatar").attr("src", hasParamAfterKurir? 'kurir/' + global_data.gambar_kurir : 'kurir/kurir/' + global_data.gambar_kurir);
$("#img-avatar").css("width", "65px");
$("#img-avatar").css("height", "65px");

View File

@ -1,11 +1,20 @@
let socket_server;
if (window.location.hostname === "20.20.20.26" && window.location.port === "3011") {
socket_server = "http://20.20.20.26:3014";
} else {
socket_server = "https://socket-shenior.mywork-kkk.online";
}
console.log("Socket server:", socket_server);
function logout() {
return swal({
title: "Yakin?",
text: "Anda akan keluar dari sistem",
type: "warning",
type: "warning",
showCancelButton: !0,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Ya, logout!",
confirmButtonColor: "#DD6B55",
confirmButtonText: "Ya, logout!",
cancelButtonText: "Tidak, batal!",
closeOnConfirm: !1,
closeOnCancel: !1,
@ -16,7 +25,7 @@ function logout() {
localStorage.removeItem('user');
localStorage.removeItem('role');
window.location.href = "/"
}else{
} else {
// close swal
swal.close()
}
@ -75,7 +84,31 @@ function enableInput(stat) {
}
function numberOnly(element) { //only number and remove comma
element.value = element.value.replace(/[^0-9]/g, '');
element.value = element.value.replace(/,/g, '');
}
}
function formatToMakassar(dateString) {
const dateObj = new Date(dateString);
const options = {
timeZone: 'Asia/Makassar',
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false,
};
const parts = new Intl.DateTimeFormat('id-ID', options).formatToParts(dateObj);
const getPart = (type) => parts.find(p => p.type === type)?.value ?? '';
// Format: DD-MM-YYYY, HH.mm.ss
return `${getPart('day')}-${getPart('month')}-${getPart('year')}, ${getPart('hour')}.${getPart('minute')}.${getPart('second')}`;
}

BIN
assets/sound/notif.mp3 Normal file

Binary file not shown.

76
assets/user.js Normal file
View File

@ -0,0 +1,76 @@
const socket = io(socket_server); // Connects to your server
socket.on('connect', () => {
console.log('Connected to server:', socket.id);
});
function reloadTheTable() {
// check if tb-paket is available , if available destroy then reloadTable()
if (document.getElementById('tb-paket')) {
// If tb-paket is a DataTable instance
$('#tb-paket').DataTable().destroy();
reloadTable();
}
}
// notifikasi pembatalan paket oleh kurir
socket.on('pembatalan_paket_' + global_data._id, (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => { });
toastr.warning(`Pembatalan Pengiriman Paket<br>Status: <b>${data.status}</b>`);
console.log(data);
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
// console.log(data);
});
// notifikasi kurir ditugaskan oleh admin
socket.on('kurir_ditugaskan_' + global_data._id, (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => { });
toastr.info(`Kurir Telah Ditugaskan Untuk Pengiriman Paket<br>No Resi: <b>${data._id}</b>\nSila Liat Detail Pengiriman Untuk Informasi Lebih Lanjut`);
console.log(data);
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
// console.log(data);
});
// notifikasi pembatalan paket yang dilakukan oleh kurir
socket.on('pembatalan_paket_kurir_' + global_data._id, (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => { });
toastr.warning("Kurir Membatalkan Pengambilan Paket No Resi <b>" + data._id + "</b>\nAdmin akan menugaskan Kurir Baru.\nMohon Maaf dan Harap Tunggu.");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});
// notifikasi kurir dalam perjalanan mengambil paket
socket.on('kurir_mengambil_pengiriman_' + global_data._id, (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => { });
toastr.info("Kurir Dalam Perjalanan Mengambil Paket No Resi <b>" + data._id + "</b>\nDiharap Pengirim Menunggu Kurir Sampai");
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});
// notifikasi kurir mengambil paket dari pengirim dan mengantarkan ke penerima
socket.on('kurir_menghantar_ke_penerima_' + global_data._id, (data) => {
const sound = new Audio('/sound/notif.mp3');
sound.play().catch(() => { });
// console.log(data)
if (data.status == 'Mengirim Paket Ke Alamat Penerima') {
toastr.info("Kurir Telah Mengambil Paket No Resi <b>" + data._id + "</b> dari Pengirim dan Dalam Perjalanan Mengantarkan ke Penerima di Alamat Penerima : <b>" + data.alamat_penerima + "</b>");
}else {
toastr.success("Kurir Telah Mengantarkan Paket No Resi <b>" + data._id + "</b> ke Penerima di Alamat Penerima : <b>" + data.alamat_penerima + "</b>");
}
// check if tb-paket is available , if available destroy then reloadTable()
reloadTheTable();
});