Files

536 lines
14 KiB
JavaScript
Vendored

// Currency Separator
var commaCounter = 10;
var Url = document.currentScript.getAttribute('myUrl');
var ta = document.currentScript.getAttribute('ta');
function numberSeparator(Number) {
Number += '';
for (var i = 0; i < commaCounter; i++) {
Number = Number.replace(',', '');
}
x = Number.split('.');
y = x[0];
z = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(y)) {
y = y.replace(rgx, '$1' + ',' + '$2');
}
commaCounter++;
return y + z;
}
function setIndoDate(n){
if (n){
arrDate = n.split("-");
return arrDate[2] + "/" + arrDate[1] + "/" + arrDate[0];
}else{
return "";
}
}
function setIndoDateOracle(n){
if (n){
arrDateSpace = n.split(" ");
arrDate = arrDateSpace[0].split("-");
return arrDate[2] + "/" + arrDate[1] + "/" + arrDate[0];
}else{
return "-";
}
}
// Set Currency Separator to input fields
$(document).on('keypress , paste', '.number-separator', function (e) {
if (/^-?\d*[,.]?(\d{0,3},)*(\d{3},)?\d{0,3}$/.test(e.key)) {
$('.number-separator').on('input', function () {
e.target.value = numberSeparator(e.target.value);
});
} else {
e.preventDefault();
return false;
}
});
function setDatePicker(input){
$(input).datetimepicker({
format: "DD/MM/YYYY",
useCurrent: false
})
}
function setDateRangePicker(input1, input2){
$(input1).datetimepicker({
format: "DD/MM/YYYY",
useCurrent: false
})
$(input1).on("change.datetimepicker", function (e) {
$(input2).val("")
$(input2).datetimepicker('minDate', e.date);
})
$(input2).datetimepicker({
format: "DD/MM/YYYY",
useCurrent: false
})
}
function setMonthPicker(input){
$(input).datetimepicker({
format: "MM",
useCurrent: false,
viewMode: "months"
})
}
function setYearPicker(input){
$(input).datetimepicker({
format: "YYYY",
useCurrent: false,
viewMode: "years"
})
}
function setYearRangePicker(input1, input2){
$(input1).datetimepicker({
format: "YYYY",
useCurrent: false,
viewMode: "years"
})
$(input1).on("change.datetimepicker", function (e) {
$(input2).val("")
$(input2).datetimepicker('minDate', e.date);
})
$(input2).datetimepicker({
format: "YYYY",
useCurrent: false,
viewMode: "years"
})
}
$('body').on('focus',".indo_date", function(){
$(this).daterangepicker({
singleDatePicker: true,
showDropdowns: true,
minYear: 1990,
locale: {
format: 'DD/MM/YYYY'
},
drops: "down",
autoApply: true,
});
$(this).on("keypress",function(){
return false;
})
});
$("body").on('keyup', ".number-separator-indo", function(){
var n = parseFloat($(this).val().replace(/\D/g,''),10);
$(this).val(new Intl.NumberFormat('id-ID').format(n));
});
var replaceValue = (n) =>{
n = n == "" ? "0" : n;
return parseFloat(n.replace(/\D/g,''),10);
}
function separateNumberIndo(n){
return new Intl.NumberFormat('id-ID').format(n)
}
$('.skpd_search').select2({
placeholder: 'Pilih SKPD',
ajax: {
url:Url+'/skpd-search',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
$('.prog_search').select2({
placeholder: 'Pilih Program',
ajax: {
url: Url+'/item-search-prog',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
},
dropdownParent: $('#modal-default')
});
$('.keg_search').select2({
placeholder: 'Pilih Kegiatan',
ajax: {
url: Url+'/item-search-keg',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
$('.sk_search').select2({
placeholder: 'Pilih Sub Kegiatan',
ajax: {
url: Url+'/item-search-sk',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
$('.rsk_search').select2({
placeholder: 'Pilih Rinci Sub Kegiatan',
ajax: {
url: Url+'/item-search-rsk',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
let jenisBelanja = (grup)=>{
$('.jenis_belanja_search').select2({
placeholder: 'Pilih Jenis Belanja',
ajax: {
url: Url+'/item-search-jenisbelanja?grup='+grup,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
}
let subJenisBelanja = (idJenisBelanja)=>{
$('.sub_jenis_belanja_search').select2({
placeholder: 'Pilih Sub Jenis Belanja',
ajax: {
url: Url+'/item-search-subjenisbelanja?id_jenis='+idJenisBelanja,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
}
let subJenisDana = (idGrup)=>{
$('.sub_jenis_dana').select2({
placeholder: 'Pilih Sub Jenis Dana',
allowClear: true,
ajax: {
url: Url+'/item-search-subjenisdana?id_grup='+idGrup,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
}
$('.sps_search').select2({
placeholder: 'Pilih Kode Rekening',
allowClear: true,
ajax: {
url: Url+'/item-search-sps?ta='+ta,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.idx
}
})
};
},
cache: true,
}
});
let callKodeRekening = ()=>{
$('.kode_rekening').select2({
placeholder: 'Pilih Kode Rekening',
allowClear: true,
ajax: {
url: Url+'/item-search-rekening?ta='+ta,
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.idx
}
})
};
},
cache: true,
}
});
}
callKodeRekening();
$(document).on("click",".modalButton",function (e){
$("#overlayLoader").removeClass("d-flex");
$("#overlayLoader").addClass("d-flex");
$('.modal-body').html("<table class='table table-striped' width='100%'><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></table>");
$(".modal-dialog").removeClass("modal-xl modal-lg")
$(".modal-dialog").addClass($(this).attr("modal-target"));
$('#modal-default')
.modal('show')
.find('.modal-body')
.load($(this).attr('href'),function(){
$("#overlayLoader").removeClass("d-flex");
$("#overlayLoader").hide();
});
if ($(this).attr('title')!== null) {
$('.modal-title').html($(this).attr('title'));
}
if ($(this).attr('size')!== null){
$('.modal-dialog').addClass($(this).attr('size'));
}
e.preventDefault();
});
$(document).on("submit",".form-delete",function (e){
e.preventDefault();
let test = Swal.fire({
title: 'Data akan dihapus?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
e.currentTarget.submit();
}
})
});
var url = window.location;
url = url + "";
const allLinks = document.querySelectorAll('.nav-item a');
// const currentLink = [...allLinks].filter(e => {
// return url.indexOf(e.href) > -1) {
// return e.href == url;
// }
// });
let currentLink = "";
allLinks.forEach((val, idx) => {
if (url.indexOf(val.href) > -1){
currentLink = val;
}
})
$(currentLink).addClass("active")
$(".has-treeview").removeClass("menu-open active");
$(currentLink).closest(".has-treeview").addClass("menu-open active");
$($(currentLink).closest(".has-treeview")).children("a.nav-link").addClass("active");
$($(currentLink).closest(".nav-treeview")).closest("li.nav-item").addClass("menu-open");
$($(currentLink).closest(".nav-treeview")).parentsUntil(".nav-sidebar > .nav-treeview").addClass('menu-open');
$("#span_count_notif").hide();
refreshNotif = ()=>{
$.ajax({
url: Url+"/notif/get-notif",
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
type: "json",
method: "POST",
success: function(data){
$("#span_count_notif").hide();
if (data.jml>0){
$("#span_count_notif").html(data.jml);
$("#span_count_notif").show();
$listElm = "";
$.each(data.data, function(x,y){
$listElm += `<a href="`+y.url+`" class="dropdown-item">
<div class="media">
<div class="media-body">
<h3 class="dropdown-item-title"><strong>`+ y.jenis +`</strong>
<span class="float-right text-sm text-danger"></span>
</h3>
<p class="text-sm"><span class="text-muted">`+y.chat_date+`</span><br>`+y.message+`</p>
</div>
</div>
</a>
<div class="dropdown-divider"></div>`;
});
$listElm += `<a href="`+Url+`/notif" class="dropdown-item dropdown-footer">Lihat semua Notifikasi</a>`;
$("#list_notif").html($listElm);
}
}
})
}
refreshNotif();
if($.fn.dataTable != undefined){
$.extend( $.fn.dataTable.ext.classes, {
sProcessing: "dataTables_processing",
});
$($.fn.dataTable.tables( true )).DataTable().columns.adjust().draw();
}
$(window).resize(function(){
if($.fn.dataTable != undefined){
$($.fn.dataTable.tables(true)).DataTable().columns.adjust();
}
});
$(document).on("click",".export-data",function(){
let form = $(this).attr("formid");
$("#export-type").remove();
$('<input>').attr({
type: 'hidden',
id: 'export-type',
name: 'export-type',
value: $(this).attr("extype")
}).appendTo("#"+form);
$("#"+form).submit();
})
let dauRinci = ()=>{
$('.rinci_dau').select2({
placeholder: 'Pilih Deskripsi',
allowClear: true,
ajax: {
url: Url+'/item-search-dau-rinci',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
}
dauRinci();
$('body').on('expanded.pushMenu collapsed.pushMenu', function() {
console.log("WOKE")
// Add delay to trigger code only after the pushMenu animation completes
setTimeout(function() {
// Code ...
// Example: refresh datatable column widths after collapse/expansion completes
$.fn.dataTable.tables( {visible: true, api: true} ).columns.adjust();
// Time depends on your settings
}, 350);
} );
$(document).on("click", ".btn-save", function(e){
e.preventDefault();
let FormId = $(this).closest("form").prop("id");
Form = $("#"+FormId)[0];
if (Form.checkValidity()){
Swal.fire({
title: 'Data akan disimpan ?!',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
if (result.isConfirmed) {
$("body").append("<div class='loading'></div>")
$("#"+FormId+ " input, select").prop("disabled", false);
Form.submit();
}
})
}else{
Swal.fire("Info","Input masih ada yang kosong, harap periksa kembali!","error");
}
});