diff --git a/public/js/postcode-concerns.js b/public/js/postcode-concerns.js new file mode 100644 index 0000000..3c3d58e --- /dev/null +++ b/public/js/postcode-concerns.js @@ -0,0 +1,140 @@ +let handlePoskodDetail_NotFound_MyKad = (modal) => { + + + let input_negeri = modal.querySelector('input#negeri'); + let input_daerah = modal.querySelector('input#daerah'); + let select_daerah = modal.querySelector('select#select-daerah'); + + handlePoskodDetail_NotFound(modal, input_negeri, input_daerah, select_daerah); +} + +let handlePoskodDetail_Found_MyKad = (modal) => { + + let input_negeri = modal.querySelector('input#negeri'); + let input_daerah = modal.querySelector('input#daerah'); + let select_daerah = modal.querySelector('select#select-daerah'); + + handlePoskodDetail_Found(input_negeri, input_daerah, select_daerah); +} + +let handlePoskodDetail_NotFound_Passport = (modal) => { + + let input_negeri = modal.querySelector('input#passport_negeri'); + let input_daerah = modal.querySelector('input#passport_daerah'); + let select_daerah = modal.querySelector('select#select-daerah'); + + handlePoskodDetail_NotFound(modal, input_negeri, input_daerah, select_daerah); +} + +let handlePoskodDetail_Found_Passport = (modal) => { + + let input_negeri = modal.querySelector('input#passport_negeri'); + let input_daerah = modal.querySelector('input#passport_daerah'); + let select_daerah = modal.querySelector('select#select-daerah'); + + handlePoskodDetail_Found(input_negeri, input_daerah, select_daerah); +} + +let handlePoskodDetail_NotFound = (modal, input_negeri, input_daerah, select_daerah) => { + + input_daerah.closest('div.col-md-8').style.display = 'none'; + input_daerah.disabled = true; + + select_daerah.closest('div.col-md-8').style.display = 'block'; + select_daerah.disabled = false; + select_daerah.readOnly = false; + + input_negeri.value = ''; + input_negeri.placeholder = ''; + + let getAllNegeri = () => { + return fetch(api_url + '/api/daerah'); + }; + + $(select_daerah).attr("data-placeholder","Sila pilih daerah"); + $(select_daerah).val('').trigger('change'); + + getAllNegeri().then(response => response.json()) + .then(x => x.map(y => { + return { + "id": y.namadaerah, + "text": y.namadaerah + ' - ' + y.negeri.negeri, + } + })).then(x => { + $(select_daerah).select2({ + placeholder: "Sila pilih daerah pelanggan", + closeOnSelect: true, + dropdownPosition: 'below', + data: x, + }); + }).then(() => $(select_daerah).val('').trigger('change')); + + +}; + +let handlePoskodDetail_Found = (input_negeri, input_daerah, select_daerah) => { + + select_daerah.closest('div.col-md-8').style.display = 'none'; + select_daerah.disabled = 'true'; + + input_daerah.closest('div.col-md-8').style.display = 'block'; + input_daerah.disabled = false; + + input_negeri.readOnly = true; + input_negeri.placeholder = ''; + input_daerah.readOnly = true; + input_daerah.placeholder = ''; +}; + +$('select.select2-daerah').on('select2:select', function (e) { + + let caller = e.target || e.srcElement; + let modal = caller.closest('div.modal.fade'); + let input_negeri = modal.querySelector('input[name="negeri"]'); + + let selected_daerah = e.params.data; + + let getDaerahDetail = (koddaerah) => { + return fetch(api_url + '/api/daerah/' + koddaerah) + .then(response => response.json()) + .then(x => fetch(api_url + '/api/negeri/' + x.kodnegeri)) + .then(response => response.json()) + }; + + getDaerahDetail(selected_daerah.id).then(x => input_negeri.value = x.negeri); +}); + +$('#daftar_pelanggan_mykad_reader textarea#alamat').change(function(){ + let modal = document.querySelector('#daftar_pelanggan_mykad_reader'); + let input_poskod = modal.querySelector('input#poskod'); + let input_daerah = modal.querySelector('input#daerah'); + let input_negeri = modal.querySelector('input#negeri'); + let select_daerah = modal.querySelector('select#select-daerah'); + + input_poskod.value = ''; + input_poskod.readOnly = false; + + input_daerah.value = ''; + input_daerah.closest('div.col-md-8').style.display = 'none'; + input_daerah.disabled = true; + input_daerah.readOnly = true; + + select_daerah.closest('div.col-md-8').style.display = 'block'; + select_daerah.disabled = true; + select_daerah.readOnly = false; + + // Handle stubborn select2 + let isSelect2exist = modal.querySelector('span.select2'); + if(isSelect2exist){ + modal.querySelector('span.select2') + .querySelector('span.select2-selection__rendered') + .remove(); + } + + select_daerah.value = '' + + input_negeri.value = ''; + input_negeri.readOnly = true; + + input_poskod.focus(); +}); diff --git a/resources/views/customers/index.blade.php b/resources/views/customers/index.blade.php index eaafcda..a14e789 100644 --- a/resources/views/customers/index.blade.php +++ b/resources/views/customers/index.blade.php @@ -132,9 +132,11 @@