Update Copy element Access# dan Reff# pada Dashboard

This commit is contained in:
mikael-zakaria 2025-02-11 14:48:20 +07:00
parent def21a53e5
commit 8cb80adf9a
4 changed files with 136 additions and 4 deletions

View File

@ -156,7 +156,7 @@ function index() {
stattext = 'Validated'; stattext = 'Validated';
} }
let datarow = "<tr class='align-middle'" + datafilter +" >" + let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start'>" + accessnumber + '</td> <td>' + hon + '</td> <td>' + tests + '</td>' + "<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" + "<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>'; "<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
$("#table-body").append(datarow); $("#table-body").append(datarow);
@ -218,5 +218,38 @@ function resultPdfAccess(access, event) {
let url = '<?=base_url();?>printResult/'+access; let url = '<?=base_url();?>printResult/'+access;
window.open(url, '_blank'); window.open(url, '_blank');
} }
function copyToClipboard(element) {
let text = element.innerText.trim(); // Ambil teks dari elemen
text = text.replace("Teks sudah disalin", "").trim(); // Hilangkan teks notifikasi sebelumnya
if (navigator.clipboard) {
navigator.clipboard.writeText(text).then(() => {
showCopyMessage(element);
}).catch(err => {
console.error("Gagal menyalin teks: ", err);
});
} else {
// Alternatif jika Clipboard API tidak didukung
let tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
showCopyMessage(element);
}
}
function showCopyMessage(element) {
let message = element.querySelector(".copy-message");
if (message) {
message.style.display = "inline"; // Tampilkan teks notifikasi
// Sembunyikan kembali setelah 2 detik
setTimeout(() => {
message.style.display = "none";
}, 500);
}
}
</script> </script>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -156,7 +156,7 @@ function index() {
stattext = 'Validated'; stattext = 'Validated';
} }
let datarow = "<tr class='align-middle'" + datafilter +" >" + let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start'>" + accessnumber + '</td> <td>' + hon + '</td> <td>' + tests + '</td>' + "<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" + "<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>'; "<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
$("#table-body").append(datarow); $("#table-body").append(datarow);
@ -218,5 +218,38 @@ function resultPdfAccess(access, event) {
let url = '<?=base_url();?>printResult/'+access; let url = '<?=base_url();?>printResult/'+access;
window.open(url, '_blank'); window.open(url, '_blank');
} }
function copyToClipboard(element) {
let text = element.innerText.trim(); // Ambil teks dari elemen
text = text.replace("Teks sudah disalin", "").trim(); // Hilangkan teks notifikasi sebelumnya
if (navigator.clipboard) {
navigator.clipboard.writeText(text).then(() => {
showCopyMessage(element);
}).catch(err => {
console.error("Gagal menyalin teks: ", err);
});
} else {
// Alternatif jika Clipboard API tidak didukung
let tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
showCopyMessage(element);
}
}
function showCopyMessage(element) {
let message = element.querySelector(".copy-message");
if (message) {
message.style.display = "inline"; // Tampilkan teks notifikasi
// Sembunyikan kembali setelah 2 detik
setTimeout(() => {
message.style.display = "none";
}, 500);
}
}
</script> </script>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -156,7 +156,7 @@ function index() {
stattext = 'Validated'; stattext = 'Validated';
} }
let datarow = "<tr class='align-middle'" + datafilter +" >" + let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start'>" + accessnumber + '</td> <td>' + hon + '</td> <td>' + tests + '</td>' + "<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" + "<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>'; "<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
$("#table-body").append(datarow); $("#table-body").append(datarow);
@ -218,5 +218,38 @@ function resultPdfAccess(access, event) {
let url = '<?=base_url();?>printResult/'+access; let url = '<?=base_url();?>printResult/'+access;
window.open(url, '_blank'); window.open(url, '_blank');
} }
function copyToClipboard(element) {
let text = element.innerText.trim(); // Ambil teks dari elemen
text = text.replace("Teks sudah disalin", "").trim(); // Hilangkan teks notifikasi sebelumnya
if (navigator.clipboard) {
navigator.clipboard.writeText(text).then(() => {
showCopyMessage(element);
}).catch(err => {
console.error("Gagal menyalin teks: ", err);
});
} else {
// Alternatif jika Clipboard API tidak didukung
let tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
showCopyMessage(element);
}
}
function showCopyMessage(element) {
let message = element.querySelector(".copy-message");
if (message) {
message.style.display = "inline"; // Tampilkan teks notifikasi
// Sembunyikan kembali setelah 2 detik
setTimeout(() => {
message.style.display = "none";
}, 500);
}
}
</script> </script>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -156,7 +156,7 @@ function index() {
stattext = 'Validated'; stattext = 'Validated';
} }
let datarow = "<tr class='align-middle'" + datafilter +" >" + let datarow = "<tr class='align-middle'" + datafilter +" >" +
"<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start'>" + accessnumber + '</td> <td>' + hon + '</td> <td>' + tests + '</td>' + "<td class='text-start'>" + colldate + '<br>'+ colltime +'</td> <td>' + patnumber + '</td> <td>' + patname.trim() + "</td> <td class='text-start' style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + accessnumber + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span>" +"</td> <td style='cursor: pointer;' ondblclick='copyToClipboard(this)'>" + hon + "<br><span class='copy-message badge text-bg-success' style='display: none;'>Disalin</span></td> <td>" + tests + '</td>' +
"<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" + "<td role='button' class='"+bgcolor+" text-center align-middle pointercol' onclick='viewAccess("+accessnumber+")'>"+stattext+"</td>" +
"<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>'; "<td role='button' class='text-center align-middle' onclick='resultPdfAccess("+accessnumber+ ",event" +")'> <h4 class='p-0 m-0'><i class='bi bi-filetype-pdf'></i></h4> </td>" +'</tr>';
$("#table-body").append(datarow); $("#table-body").append(datarow);
@ -218,5 +218,38 @@ function resultPdfAccess(access, event) {
let url = '<?=base_url();?>printResult/'+access; let url = '<?=base_url();?>printResult/'+access;
window.open(url, '_blank'); window.open(url, '_blank');
} }
function copyToClipboard(element) {
let text = element.innerText.trim(); // Ambil teks dari elemen
text = text.replace("Teks sudah disalin", "").trim(); // Hilangkan teks notifikasi sebelumnya
if (navigator.clipboard) {
navigator.clipboard.writeText(text).then(() => {
showCopyMessage(element);
}).catch(err => {
console.error("Gagal menyalin teks: ", err);
});
} else {
// Alternatif jika Clipboard API tidak didukung
let tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
showCopyMessage(element);
}
}
function showCopyMessage(element) {
let message = element.querySelector(".copy-message");
if (message) {
message.style.display = "inline"; // Tampilkan teks notifikasi
// Sembunyikan kembali setelah 2 detik
setTimeout(() => {
message.style.display = "none";
}, 500);
}
}
</script> </script>
<?= $this->endSection() ?> <?= $this->endSection() ?>