var handledCount; var pendingCount; var table_inprogress; var table_handled; var locationMap = null; var submitMap = null; var locationMap_handled = null; var submitMap_handled = null; var mapUrl = "https://rmsmap.rmto.ir/141map/"; var MarkerAdd = null; var MarkerSubmit = null; var MarkerAdd_handled = null; var MarkerSubmit_handled = null; var isSetMarkerAdd = false; var isSetMarkerSubmit = false; var isSetMarkerAddHandled = false; var isSetMarkerSubmitHandled = false; var province_choosen; var city_refrence = []; var selectd_checkbox; var Tracking_code; var slideIndexlayer = 1; var submit_done = 0; var submit_not_done = 0; var excelDatepickerFirstTable = {}; var excelDatepickerSecondTable = {}; var filterDatepickerFirstTable = {}; var filterDatepickerSecondTable = {}; var filterMainDate = {}; var PERMISSIONS = []; var selected_id; var previous_id; var setId; var flagIsSetMarker = false; var handled_latlng; var handled_num; $("[data-mask]").inputmask(); var startDivIcon = L.divIcon({ html: `
شروع
`, iconSize: [55, 75], iconAnchor: [33, 64], }); var submitDivIcon = L.divIcon({ html: `
شروع
`, iconSize: [55, 75], iconAnchor: [33, 64], }); var handledDivIcon = L.divIcon({ html: `
شروع
`, iconSize: [55, 75], iconAnchor: [33, 64], }); var handledSubmitDivIcon = L.divIcon({ html: `
شروع
`, iconSize: [55, 75], iconAnchor: [33, 64], }); excelDatepickerFirstTable.from = $( "#datapicker-from-excel-table-progress" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { excelDatepickerFirstTable.from.touched = true; $("#datapicker-to-excel-table-progress").prop("disabled", ""); if ( excelDatepickerFirstTable.from.getState().selected.unixDate >= excelDatepickerFirstTable.to.getState().selected.unixDate ) { excelDatepickerFirstTable.to.setDate( excelDatepickerFirstTable.from.getState().selected.unixDate ); } if ( excelDatepickerFirstTable.to && excelDatepickerFirstTable.to.options && excelDatepickerFirstTable.to.options.minDate != unix ) { let cachedValue = excelDatepickerFirstTable.to.getState().selected.unixDate; excelDatepickerFirstTable.to.options = { minDate: unix }; if (excelDatepickerFirstTable.from.touched) { excelDatepickerFirstTable.to.setDate(cachedValue); } } }, }); excelDatepickerFirstTable.to = $( "#datapicker-to-excel-table-progress" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { excelDatepickerFirstTable.to.touched = true; }, }); //excel done excelDatepickerSecondTable.from = $( "#datapicker-from-excel-table-done" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { excelDatepickerSecondTable.from.touched = true; $("#datapicker-to-excel-table-done").prop("disabled", ""); if ( excelDatepickerSecondTable.from.getState().selected.unixDate >= excelDatepickerSecondTable.to.getState().selected.unixDate ) { excelDatepickerSecondTable.to.setDate( excelDatepickerSecondTable.from.getState().selected.unixDate ); } if ( excelDatepickerSecondTable.to && excelDatepickerSecondTable.to.options && excelDatepickerSecondTable.to.options.minDate != unix ) { let cachedValue = excelDatepickerSecondTable.to.getState().selected.unixDate; excelDatepickerSecondTable.to.options = { minDate: unix }; if (excelDatepickerSecondTable.from.touched) { excelDatepickerSecondTable.to.setDate(cachedValue); } } }, }); excelDatepickerSecondTable.to = $( "#datapicker-to-excel-table-done" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { excelDatepickerSecondTable.to.touched = true; }, }); // filter table filterDatepickerFirstTable.from = $( "#datapicker-from-filter-table" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { filterDatepickerFirstTable.from.touched = true; $("#datapicker-to-filter-table").prop("disabled", ""); if ( filterDatepickerFirstTable.from.getState().selected.unixDate >= filterDatepickerFirstTable.to.getState().selected.unixDate ) { filterDatepickerFirstTable.to.setDate( filterDatepickerFirstTable.from.getState().selected.unixDate ); } if ( filterDatepickerFirstTable.to && filterDatepickerFirstTable.to.options && filterDatepickerFirstTable.to.options.minDate != unix ) { let cachedValue = filterDatepickerFirstTable.to.getState().selected.unixDate; filterDatepickerFirstTable.to.options = { minDate: unix }; if (filterDatepickerFirstTable.from.touched) { filterDatepickerFirstTable.to.setDate(cachedValue); } } }, }); filterDatepickerFirstTable.to = $( "#datapicker-to-filter-table" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { filterDatepickerFirstTable.to.touched = true; }, }); //filter done filterDatepickerSecondTable.from = $( "#datapicker-from-filter-table-done" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { filterDatepickerSecondTable.from.touched = true; $("#datapicker-to-filter-table-done").prop("disabled", ""); if ( filterDatepickerSecondTable.from.getState().selected.unixDate >= filterDatepickerSecondTable.to.getState().selected.unixDate ) { filterDatepickerSecondTable.to.setDate( filterDatepickerSecondTable.from.getState().selected.unixDate ); } if ( filterDatepickerSecondTable.to && filterDatepickerSecondTable.to.options && filterDatepickerSecondTable.to.options.minDate != unix ) { let cachedValue = filterDatepickerSecondTable.to.getState().selected.unixDate; filterDatepickerSecondTable.to.options = { minDate: unix }; if (filterDatepickerSecondTable.from.touched) { filterDatepickerSecondTable.to.setDate(cachedValue); } } }, }); filterDatepickerSecondTable.to = $( "#datapicker-to-filter-table-done" ).persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { filterDatepickerSecondTable.to.touched = true; }, }); //filter main filterMainDate.from = $("#date-main-from").persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { filterMainDate.from.touched = true; $("#date-main-to").prop("disabled", ""); if ( filterMainDate.from.getState().selected.unixDate >= filterMainDate.to.getState().selected.unixDate ) { filterMainDate.to.setDate( filterMainDate.from.getState().selected.unixDate ); } if ( filterMainDate.to && filterMainDate.to.options && filterMainDate.to.options.minDate != unix ) { let cachedValue = filterMainDate.to.getState().selected.unixDate; filterMainDate.to.options = { minDate: unix }; if (filterMainDate.from.touched) { filterMainDate.to.setDate(cachedValue); } } }, }); filterMainDate.to = $("#date-main-to").persianDatepicker({ format: "YYYY/MM/DD", autoClose: true, onSelect: function(unix) { filterMainDate.to.touched = true; }, }); $(document).bind("click", function(e) { const clicked = $(e.target); if (clicked.parents(".toolbox").length != 0) return false; if (clicked.parents(".datepicker-grid-view").length != 0) return false; if (clicked.parents(".datepicker-navigator").length != 0) return false; if (clicked.parents(".datepicker-container").length != 0) return false; if (clicked.parents(".select2-selection__choice").length != 0) return false; if ( clicked.closest(".btn-table-filter-progress").length == 0 && clicked.closest(".filter-progress").length == 0 && $(".filter-progress").css("display") != "none" ) { $(".filter-progress").css("display", "none"); } if ( clicked.closest(".btn-table-excel-progress").length == 0 && clicked.closest(".excel-progress").length == 0 && $(".excel-progress").css("display") != "none" ) { $(".excel-progress").css("display", "none"); } if ( clicked.closest(".btn-table-filter-done").length == 0 && clicked.closest(".filter-done").length == 0 && $(".filter-done").css("display") != "none" ) { $(".filter-done").css("display", "none"); } if ( clicked.closest(".btn-table-excel-done").length == 0 && clicked.closest(".excel-done").length == 0 && $(".excel-done").css("display") != "none" ) { $(".excel-done").css("display", "none"); } }); function showLoaderScreen() { $(".divloader").css("display", "flex").hide().fadeIn(); } function hideLoaderScreen() { $(".divloader").fadeOut(); } (function() { $.ajax({ url: "https://rms.rmto.ir/webapi/user/get-permission", type: "GET", cache: false, async: false, contentType: false, processData: false, success: function(result) { PERMISSIONS = result.data; }, error: function() { Swal.fire({ icon: "error", title: "خطا", text: "مشکل در دریافت سطح دسترسی", confirmButtonText: "بروزرسانی صفحه", showLoaderOnConfirm: true, preConfirm: () => { location.reload(true); }, }); }, }); // province via users if ( $.inArray("show-fast-react", PERMISSIONS) != -1 || $.inArray("show-fast-react-province", PERMISSIONS) != -1 ) { $.ajax({ url: `https://rms.rmto.ir/webapi/getuser/province-perm${ $.inArray("show-fast-react", PERMISSIONS) != -1 ? "?type=all" : "" }`, type: "GET", beforeSend: function() { showLoaderScreen(); }, success: function(result) { const provinces = result.data; console.log("pro", provinces); $("#select-province-filter-progress").empty(); $("#select-province-excel-table-progress").empty(); $("#select-province-excel-table-done").empty(); $("#select-province-filter-done").empty(); $("#province-main-filter").empty(); if (provinces.length == 35) { $("#select-province-filter-progress").append(``) $("#select-province-excel-table-progress").append(``) $("#select-province-excel-table-done").append(``) $("#select-province-filter-done").append(``) $("#province-main-filter").append(``) } for (let index = 0; index < provinces.length; index++) { $("#select-province-filter-progress").append( `` ); $("#select-province-excel-table-progress").append( `` ); $("#select-province-excel-table-done").append( `` ); $("#select-province-filter-done").append( `` ); $("#province-main-filter").append( `` ); } }, error: function(error) { hideLoaderScreen(); Swal.fire({ icon: "error", title: "خطا", text: "مشکل در دریافت استان ها", confirmButtonText: "بروزرسانی صفحه", showLoaderOnConfirm: true, preConfirm: () => { location.reload(true); }, }); }, }); } getCounterValue(); showInprogressTable(); // showHandledTable(); })(); function getCounterValue() { $.ajax({ url: "https://rms.rmto.ir/webapi/road-observed/count", type: "GET", cache: false, contentType: false, processData: false, beforeSend: function() { showLoaderScreen(); }, success: function(res) { handled_num = res.data.handled $("#progress_num").append(`
`) $(".incremental-counter0").incrementalCounter(); }, error: function(error) { Swal.fire({ icon: "error", title: "خطا", text: "مشکل در دریافت تعداد", confirmButtonText: "بستن", }); console.log(error); }, complete: function(data) { hideLoaderScreen(); }, }); } function counterFastReact(data) { handledCount = data.handled; pendingCount = data.pending; $(".handled").each(function() { $(this) .prop("Counter", 0) .animate({ Counter: handledCount, }, { duration: 3500, easing: "swing", step: function(now) { $(this).text(Math.ceil(now)); }, }); }); $(".in_progress").each(function() { $(this) .prop("Counter", 0) .animate({ Counter: pendingCount, }, { duration: 3500, easing: "swing", step: function(now) { $(this).text(Math.ceil(now)); }, }); }); } function showInprogressTable() { table_inprogress = $("#complain-in-progress").DataTable({ dom: "p>", pagingType: "simple_numbers", scrollX: true, language: { sEmptyTable: "هیچ داده‌ای در جدول وجود ندارد", sInfo: "نمایش _START_ تا _END_ از _TOTAL_ ردیف", sInfoEmpty: "نمایش 0 تا 0 از 0 ردیف", sInfoFiltered: "(فیلتر شده از _MAX_ ردیف)", sInfoPostFix: "", sInfoThousands: ",", sLengthMenu: "نمایش _MENU_ ردیف", sLoadingRecords: "در حال بارگذاری...", sProcessing: "در حال پردازش...", sSearch: "جستجو: ", sZeroRecords: "رکوردی با این مشخصات پیدا نشد", oPaginate: { sFirst: "برگه‌ی نخست", sLast: "برگه‌ی آخر", sNext: "بعدی", sPrevious: "قبلی", }, oAria: { sSortAscending: ": فعال سازی نمایش به صورت صعودی", sSortDescending: ": فعال سازی نمایش به صورت نزولی", }, }, serverSide: false, processing: true, select: true, ordering: true, order: [ [0, 'asc'], [1, 'asc'] ], ajax: { url: "https://rms.rmto.ir/webapi/road-observed/pending", type: "GET", headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, beforeSend: function() { showLoaderScreen(); }, dataSrc: function(json) { hideLoaderScreen(); return json.data; }, error: function(jqXHR, textStatus, errorThrown) { Swal.fire({ icon: "error", title: "خطا در دریافت اطلاعات", text: jqXHR.status, confirmButtonText: "بستن", }); hideLoaderScreen(); }, }, columns: [{ className: "text-center", data: "a", }, { className: "text-center", data: "d", }, { className: "text-center", data: "f", }, { orderable: false, className: "text-center", data: "b", }, { orderable: false, className: "text-center", data: "i", }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return ``; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return '
'; }, }, { orderable: false, className: "text-center", data: "k", }, { orderable: false, className: "text-center", data: "c", }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return `
`; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return `
`; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return `
`; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return `
`; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return ` `; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return `
`; }, }, ], columnDefs: [ { width: "5%", targets: 0 }, { width: "6%", targets: 1 }, { width: "6%", targets: 2 }, { width: "19%", targets: 3 }, { width: "11%", targets: 4 }, { width: "5%", targets: 5 }, { width: "5%", targets: 6 }, { width: "6%", targets: 7 }, { width: "6%", targets: 8 }, { width: "6%", targets: 9 }, { width: "5%", targets: 10 }, { width: "4%", targets: 11 }, { width: "4%", targets: 12 }, ], buttons: [{ text: '
فیلترینگ پیشرفته
', action: function(e, dt, node, config) { $(".filter-progress").css("display", "block"); }, }, { text: '
خروجی به اکسل
', action: function(e, dt, node, config) { $(".excel-progress").css("display", "block"); }, }, ], }); } function showHandledTable() { table_handled = $("#complain-handled").DataTable({ dom: "p>", pagingType: "simple_numbers", scrollX: true, language: { sEmptyTable: "هیچ داده‌ای در جدول وجود ندارد", sInfo: "نمایش _START_ تا _END_ از _TOTAL_ ردیف", sInfoEmpty: "نمایش 0 تا 0 از 0 ردیف", sInfoFiltered: "(فیلتر شده از _MAX_ ردیف)", sInfoPostFix: "", sInfoThousands: ",", sLengthMenu: "نمایش _MENU_ ردیف", sLoadingRecords: "در حال بارگذاری...", sProcessing: "در حال پردازش...", sSearch: "جستجو: ", sZeroRecords: "رکوردی با این مشخصات پیدا نشد", oPaginate: { sFirst: "برگه‌ی نخست", sLast: "برگه‌ی آخر", sNext: "بعدی", sPrevious: "قبلی", }, oAria: { sSortAscending: ": فعال سازی نمایش به صورت صعودی", sSortDescending: ": فعال سازی نمایش به صورت نزولی", }, }, processing: true, select: true, ordering: true, order: [], ajax: { url: " https://rms.rmto.ir/webapi/road-observed/done", type: "GET", headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, beforeSend: function() { showLoaderScreen(); }, dataSrc: function(json) { hideLoaderScreen(); return json.data; }, error: function(jqXHR, textStatus, errorThrown) { Swal.fire({ icon: "error", title: "خطا در دریافت اطلاعات", text: jqXHR.status, confirmButtonText: "بستن", }); hideLoaderScreen(); }, }, columns: [{ className: "text-center", data: "a", }, { className: "text-center", data: "d", }, { className: "text-center", data: "f", }, { orderable: false, className: "text-center", data: "b", }, { orderable: false, className: "text-center", data: "i", }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return ``; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return '
'; }, }, { orderable: false, className: "text-center", data: "k", }, { orderable: false, className: "text-center", data: "c", }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { switch (data.l) { case 1: { return `
`; } case 2: { return `
`; } default: { return `
`; } } }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { return '
'; }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { if (data.p != null) { return `
`; } else { return `_`; } }, }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { if (data.q != null) { return `
`;; } else { return `_`; } }, }, { orderable: false, className: "text-center", data: "o", }, { orderable: false, className: "text-center", data: null, render: function(data, type, row) { if (data.n == null) { return ` `; } return ` `; }, }, { className: "text-center", orderable: false, className: "location", data: null, render: function(data, type, row) { return ( `
pdf
` ); }, }, ], columnDefs: [ { width: "5%", targets: 0 }, { width: "6%", targets: 1 }, { width: "6%", targets: 2 }, { width: "19%", targets: 3 }, { width: "11%", targets: 4 }, { width: "5%", targets: 5 }, { width: "5%", targets: 6 }, { width: "6%", targets: 7 }, { width: "6%", targets: 8 }, { width: "6%", targets: 9 }, { width: "5%", targets: 10 }, { width: "4%", targets: 11 }, { width: "4%", targets: 12 }, ], buttons: [{ text: '
فیلترینگ پیشرفته
', action: function(e, dt, node, config) { $(".filter-done").css("display", "block"); }, }, { text: '
خروجی به اکسل
', action: function(e, dt, node, config) { $(".excel-done").css("display", "block"); }, }, ], }); } $(".btn-done-table").on("click", function() { $(".done-table").removeClass("hide-done-table").addClass("show-done-table"); $("#handled_num").append(`
`) $(".incremental-counter1").incrementalCounter(); showHandledTable(); }); $(document).on("click", ".report_type", function() { $(".textarea_explain_report").val(); var tr = $(this).closest("tr"); var row = table_inprogress.row(tr); $("#explain_report").modal("show"); $(".textarea_explain_report").val(row.data().j); }); $(document).on("click", ".explain_report", function() { $(".text_complaint_explain").val(); var tr = $(this).closest("tr"); var row = table_handled.row(tr); $("#complaint_explain").modal("show"); $(".text_complaint_explain").val(row.data().j); }); $(document).on("click", ".submit_description", function() { $("#description_modal").modal("show"); }); $(document).on("click", ".show_location_submited", function() { $("#location_modal").modal("show"); var tr = $(this).closest("tr"); var row = table_inprogress.row(tr); if (locationMap == null) { setTimeout(() => { createLocationMap(row.data().h, row.data().g); }, 600); } else { setTimeout(() => { clearLocationMap(row.data().h, row.data().g); }, 600); } }); $(document).on("click", ".refrence_btn", function() { var tr = $(this).closest("tr"); var row = table_inprogress.row(tr); province_choosen = row.data().e; Tracking_code = row.data().a; refrence_city(province_choosen); $("#Reference_modal").modal("show"); }); function refrence_city(id) { $.ajax({ url: "https://rms.rmto.ir/public/contents/provinces/" + id, type: "GET", success: function(data) { city_refrence = data.data; $(".refrence_select").empty(); $(".refrence_select").append( `` ); for (let i = 0; i < city_refrence.length; i++) { $(".refrence_select").append( `` ); } }, }); } function createLocationMap(lat, lng) { var bounds = [ [42.9130026312, 75.6166317076], [20.5782370061, 35.5092252948], ]; if (lat != null) { locationMap = L.map("add_map", { maxBounds: bounds, minZoom: 6, }).setView([lat, lng], 7); } else { locationMap = L.map("add_map", { maxBounds: bounds, minZoom: 6, }).setView([35.7065, 51.3477], 7); } L.tileLayer(`${mapUrl}{z}/{x}/{y}.png`, {}).addTo(locationMap); setMarkerDefaultAdd(lat, lng); } function clearLocationMap(lat, lng) { isSetMarkerAdd = false; locationMap.removeLayer(MarkerAdd); if (lat != null) { locationMap.setView([lat, lng], 7); } else { locationMap.setView([35.7065, 51.3477], 7); } setMarkerDefaultAdd(lat, lng); } function setMarkerDefaultAdd(lat, lng) { isSetMarkerAdd = false; $("#pin-marker-start").removeClass("pin-set"); $("#add_project_start_map").val(""); if (lat != null) { MarkerAdd = new L.marker([lat, lng], { icon: startDivIcon, draggable: false, }).addTo(locationMap); $("#add_project_start_map").val( parseFloat(lat).toFixed(6) + parseFloat(lng).toFixed(6) ); isSetMarkerAdd = true; $("#pin-marker-start").removeClass("pin-move pin-warn").addClass("pin-set"); } locationMap.on("move", function() { if (!isSetMarkerAdd) { MarkerAdd.setLatLng(L.latLng(locationMap.getCenter())); $("#pin-marker-start").removeClass("pin-set").addClass("pin-move"); } }); locationMap.on("moveend", function() { if (!isSetMarkerAdd) { MarkerAdd.setLatLng(L.latLng(locationMap.getCenter())); $("#pin-marker-start").removeClass("pin-move pin-set"); } }); } $(document).on("click", ".submited_location", function() { $("#submit_location_modal").modal("show"); var tr = $(this).closest("tr"); var row = table_inprogress.row(tr); // setId = row.data().a; // if (previous_id == setId) { // flagIsSetMarker = true; // previous_id = setId; // } else { // flagIsSetMarker = false; // previous_id = setId; // } if (submitMap == null) { setTimeout(() => { createSubmitLocation(row.data().h, row.data().g); }, 600); } else { setTimeout(() => { clearSubmitLocation(row.data().h, row.data().g); }, 600); } }); function createSubmitLocation(lat, lng) { var bounds = [ [42.9130026312, 75.6166317076], [20.5782370061, 35.5092252948], ]; if (lat != null) { submitMap = L.map("submit_map", { maxBounds: bounds, minZoom: 6, }).setView([lat, lng], 7); } else { submitMap = L.map("submit_map", { maxBounds: bounds, minZoom: 6, }).setView([35.7065, 51.3477], 7); } MarkerSubmit = new L.marker(L.latLng(submitMap.getCenter()), { icon: submitDivIcon, draggable: true, }).addTo(submitMap); L.tileLayer(`${mapUrl}{z}/{x}/{y}.png`, {}).addTo(submitMap); setMarkerDefaultSubmit(); } function clearSubmitLocation(lat, lng) { if (lat != null) { submitMap.setView([lat, lng], 7); } else { submitMap.setView([35.7065, 51.3477], 7); } setMarkerDefaultSubmit(); } function setMarkerDefaultSubmit() { submitMap.on("move", function() { if (!isSetMarkerSubmit) { MarkerSubmit.setLatLng(L.latLng(submitMap.getCenter())); $("#pin-marker-submit").removeClass("pin-set").addClass("pin-move"); } }); submitMap.on("moveend", function() { if (!isSetMarkerSubmit) { MarkerSubmit.setLatLng(L.latLng(submitMap.getCenter())); $("#pin-marker-submit").removeClass("pin-move pin-set"); } }); MarkerSubmit.on("click", function() { if (!isSetMarkerSubmit) { MarkerSubmit.setLatLng(L.latLng(submitMap.getCenter())); isSetMarkerSubmit = true; $("#pin-marker-submit") .removeClass("pin-move pin-warn") .addClass("pin-set"); $("#submit_project_start_map").val( MarkerSubmit.getLatLng().lat.toFixed(6) + MarkerSubmit.getLatLng().lng.toFixed(6) ); } $("#pin-marker-submit") .removeClass("pin-move pin-warn") .addClass("pin-set"); }); MarkerSubmit.on("drag", function() { $("#pin-marker-submit").addClass("pin-move"); }); MarkerSubmit.on("dragend", function() { $("#pin-marker-submit").removeClass("pin-move"); if ($("#pin-marker-submit").hasClass("pin-set") || isSetMarkerSubmit) { $("#pin-marker-submit").addClass("pin-set"); $("#submit_project_start_map").val( MarkerSubmit.getLatLng().lat.toFixed(6) + MarkerSubmit.getLatLng().lng.toFixed(6) ); } else { submitMap.setView(MarkerSubmit.getLatLng()); } }); } // uploading file input $(document).on("change", ".img-input", function() { var input = this; var parent = $(input).parents(".img-box"); if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function(e) { parent.find(".img-title").css("display", "none"); parent.find(".btn-delete-img").removeAttr("disabled"); parent.find(".img-preview").attr("src", e.target.result); }; reader.readAsDataURL(input.files[0]); } }); $(document).on("click", ".btn-delete-img", function() { var parent = $(this).parents(".img-box"); parent.find(".img-input").val(""); parent.find(".img-preview").removeAttr("src"); parent.find(".img-title").css("display", ""); $(this).attr("disabled", "disabled"); }); $(document).on("change", ".radio_table", function() { selectd_checkbox = $(this).data("selected"); var tr = $(this).closest("tr"); var row = table_inprogress.row(tr); setId = row.data().a; switch (selectd_checkbox) { case 1: { $(".fastReact-img" + row.data().a).prop("disabled", ""); $(".submit_fast_react" + row.data().a).prop("disabled", ""); $(".btn-delete-img-" + row.data().a).css({ "background-color": "#007bff", }); $(".submited_location" + row.data().a).removeClass( "active_awsome_disable" ); $(".submited_location" + row.data().a) .children("img") .attr("src", "../dist/images/new-design/iranTempDone.svg"); if (previous_id == setId) { flagIsSetMarker = true; previous_id = setId; } else { flagIsSetMarker = false; previous_id = setId; if (MarkerSubmit != null) { isSetMarkerSubmit = false; $("#pin-marker-submit").removeClass("pin-set"); MarkerSubmit.setLatLng([row.data().h, row.data().g]); $("#submit_project_start_map").val(""); } } break; } case 2: { $(".fastReact-img" + row.data().a).prop("disabled", true); $(".submit_fast_react" + row.data().a).prop("disabled", ""); $(".btn-delete-img-" + row.data().a).css({ "background-color": "#6c757d", }); $(".submited_location" + row.data().a).addClass("active_awsome_disable"); $(".submited_location" + row.data().a) .children("img") .attr("src", "../dist/images/new-design/iranTemp3.svg"); var parent = $(".btn-delete-img-" + row.data().a).parents(".img-box"); parent.find(".img-input").val(""); parent.find(".img-preview").removeAttr("src"); parent.find(".img-title").css("display", ""); break; } } }); $(document).on("click", ".refrence_submit", function() { var city_id = $(".refrence_select").children("option:selected").val(); var city_fa = $(".refrence_select").children("option:selected").text(); formData = new FormData(); formData.append("id", Tracking_code); formData.append("city_id", city_id); formData.append("city_fa", city_fa); $.ajax({ url: "https://rms.rmto.ir/webapi/fast-reaction/fwd", type: "POST", headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, data: formData, cache: false, contentType: false, processData: false, beforeSend: function() { showLoaderScreen(); }, success: function(result) { $("#Reference_modal").modal("hide"); Swal.fire({ icon: "success", text: "ارجاع با موفقیت انجام شد.", confirmButtonText: "بستن", preConfirm: () => { location.reload(); }, }); }, error: function(error) { Swal.fire({ icon: "error", title: "خطا", timer: 1500, showConfirmButton: false, }); }, complete: function(data) { hideLoaderScreen(); }, }); }); $(document).on("click", ".submit_fast_react_btn", function() { var tr = $(this).closest("tr"); var row = table_inprogress.row(tr); selected_id = row.data().a; var description = $(".description_box" + row.data().a).val(); formData = new FormData(); formData.append("rms-status", selectd_checkbox); switch (selectd_checkbox) { case 1: { if (isSetMarkerSubmit != false) { const start_lat = MarkerSubmit.getLatLng().lat.toFixed(6); const start_lng = MarkerSubmit.getLatLng().lng.toFixed(6); formData.append("rms-start-latlng", [start_lat, start_lng]); } var image1 = $("#before-Img" + row.data().a).get(0).files[0]; if (image1 != undefined) { formData.append("image-before-1", image1); } var image2 = $("#after-Img" + row.data().a).get(0).files[0]; if (image2 != undefined) { formData.append("image-after-1", image2); } if (description != "") { formData.append("rms-description", description); } if (!formData.has("rms-start-latlng")) { Swal.fire({ icon: "error", title: "خطا", text: "لطفا موقعیت مکانی را انتخاب کنید.", confirmButtonText: "بستن", }); } else { if (!formData.has("image-before-1")) { Swal.fire({ icon: "error", title: "خطا", text: "لطفا عکس قبل را انتخاب کنید .", confirmButtonText: "بستن", }); } else { if (!formData.has("image-after-1")) { Swal.fire({ icon: "error", title: "خطا", text: "لطفا عکس بعد را انتخاب کنید .", confirmButtonText: "بستن", }); } else { submitPendingTable(formData); } } } break; } case 2: { formData.append("rms-status", selectd_checkbox); if (description != "") { formData.append("rms-description", description); } if (!formData.has("rms-description")) { Swal.fire({ icon: "error", title: "خطا", text: "لطفا توضیحات را وارد کنید.", confirmButtonText: "بستن", }); } else { submitPendingTable(formData); } break; } } }); $(document).on("click", ".complaint_location", function() { $("#handled_location_modal").modal("show"); var tr = $(this).closest("tr"); var row = table_handled.row(tr); if (locationMap_handled == null) { setTimeout(() => { createHandledMapComplaintRange(row.data().h, row.data().g); }, 600); } else { setTimeout(() => { clearHandledMapComplaintRange(row.data().h, row.data().g); }, 600); } }); $(document).on("click", ".complaint_location_handled", function() { $("#handled_submited_modal ").modal("show"); var tr = $(this).closest("tr"); var row = table_handled.row(tr); handled_latlng = JSON.parse(row.data().m); if (submitMap_handled == null) { setTimeout(() => { createLocationMapSubmited(handled_latlng); }, 600); } else { setTimeout(() => { clearLocationMapSubmited(handled_latlng); }, 600); } }); function createHandledMapComplaintRange(lat, lng) { var bounds = [ [42.9130026312, 75.6166317076], [20.5782370061, 35.5092252948], ]; if (lat != null) { locationMap_handled = L.map("complaint_map", { maxBounds: bounds, minZoom: 6, }).setView([lat, lng], 7); } else { locationMap_handled = L.map("complaint_map", { maxBounds: bounds, minZoom: 6, }).setView([35.7065, 51.3477], 7); } L.tileLayer(`${mapUrl}{z}/{x}/{y}.png`, {}).addTo(locationMap_handled); setMarkerDefaultHandled(lat, lng); } function clearHandledMapComplaintRange(lat, lng) { locationMap_handled.removeLayer(MarkerAdd_handled); if (lat != null) { locationMap_handled.setView([parseFloat(lat), parseFloat(lng)], 7); } else { locationMap_handled.setView([35.7065, 51.3477], 7); } setMarkerDefaultHandled(lat, lng); } function setMarkerDefaultHandled(lat, lng) { isSetMarkerAddHandled = false; $("#complaint_area_start_map").val(""); if (lat != null) { MarkerAdd_handled = new L.marker([lat, lng], { icon: handledDivIcon, draggable: false, }).addTo(locationMap_handled); $("#complaint_area_start_map").val( parseFloat(lat).toFixed(6) + parseFloat(lng).toFixed(6) ); isSetMarkerAddHandled = true; $("#pin-marker-handled") .removeClass("pin-move pin-warn") .addClass("pin-set"); } MarkerAdd_handled.on("move", function() { if (!isSetMarkerAddHandled) { MarkerAdd_handled.setLatLng(L.latLng(locationMap_handled.getCenter())); $("#pin-marker-handled").removeClass("pin-set").addClass("pin-move"); } }); locationMap_handled.on("moveend", function() { if (!isSetMarkerAddHandled) { MarkerAdd_handled.setLatLng(L.latLng(locationMap_handled.getCenter())); $("#pin-marker-handled").removeClass("pin-move pin-set"); } }); } function createLocationMapSubmited(latlng) { var bounds = [ [42.9130026312, 75.6166317076], [20.5782370061, 35.5092252948], ]; if (latlng[0] != null) { submitMap_handled = L.map("complaint_submited_map", { maxBounds: bounds, minZoom: 6, }).setView(latlng, 7); } else { submitMap_handled = L.map("complaint_submited_map", { maxBounds: bounds, minZoom: 6, }).setView([35.7065, 51.3477], 7); } L.tileLayer(`${mapUrl}{z}/{x}/{y}.png`, {}).addTo(submitMap_handled); setMarkerDefaultHandledSubmited(latlng); } function clearLocationMapSubmited(latlng) { submitMap_handled.removeLayer(MarkerSubmit_handled); if (latlng[0] != null) { submitMap_handled.setView( [parseFloat(latlng[0]), parseFloat(latlng[1])], 7 ); } else { submitMap_handled.setView([35.7065, 51.3477], 7); } setMarkerDefaultHandledSubmited(latlng); } function setMarkerDefaultHandledSubmited(latlng) { isSetMarkerSubmitHandled = false; $("#complaint_submited_map_start_map").val(""); if (latlng[0] != null) { MarkerSubmit_handled = new L.marker(latlng, { icon: handledSubmitDivIcon, draggable: false, }).addTo(submitMap_handled); $("#complaint_submited_map_start_map").val( parseFloat(latlng[0]).toFixed(6) + parseFloat(latlng[1]).toFixed(6) ); isSetMarkerSubmitHandled = true; $("#pin-marker-handled-submited") .removeClass("pin-move pin-warn") .addClass("pin-set"); } submitMap_handled.on("move", function() { if (!isSetMarkerSubmitHandled) { MarkerSubmit_handled.setLatLng(L.latLng(submitMap_handled.getCenter())); $("#pin-marker-handled-submited") .removeClass("pin-set") .addClass("pin-move"); } }); submitMap_handled.on("moveend", function() { if (!isSetMarkerSubmitHandled) { MarkerSubmit_handled.setLatLng(L.latLng(submitMap_handled.getCenter())); $("#pin-marker-handled-submited").removeClass("pin-move pin-set"); } }); } //photo slider $(document).on("click", ".image_befor_submited", function() { var tr = $(this).closest("tr"); var row = table_handled.row(tr); var image_before = row.data().p; var image_after = row.data().q; var imageArray = []; imageArray.push(image_before); imageArray.push(image_after); showimagealert(1, imageArray); }); $(document).on("click", ".image_after_submited", function() { var tr = $(this).closest("tr"); var row = table_handled.row(tr); var image_before = row.data().p; var image_after = row.data().q; var imageArray = []; imageArray.push(image_before); imageArray.push(image_after); showimagealert(2, imageArray); }); function showimagealert(num, imageArray) { slideIndexlayer = num; let dataLength = 2; $("#slideshow-slide").find(".mySlides").remove(); $("#slideshow-dot").find(".dot").remove(); for (let index = 0; index < 2; index++) { var currentId = index + 1; let divSlide = '
' + (index + 1) + " / " + 2 + '
' + "
"; $("#slideshow-slide").append(divSlide); $("#slideshow-dot").append( '' ); } if (dataLength > 0) { slideindex = 1; layerslidershow(slideindex); $("#slideroverlay").css("display", "block"); } } $("#slideroverlay .close").on("click", function() { $(this).parent().parent().css("display", "none"); $("#slideshow-slide").find(".mySlides").remove(); $("#slideshow-dot").find(".dot").remove(); }); $("#slideroverlay #slideshow-slide .prev").on("click", function() { layerslidershow((slideIndexlayer -= 1)); }); $("#slideroverlay #slideshow-slide .next").on("click", function() { layerslidershow((slideIndexlayer += 1)); }); function currentphotoshow(slideIndex) { layerslidershow((slideIndexlayer = slideIndex)); } function layerslidershow(n) { let slides = $("#slideroverlay #slideshow-slide .mySlides"); let dots = $("#slideroverlay #slideshow-dot .dot"); if (n > slides.length) { slideIndexlayer = 1; } if (n < 1) { slideIndexlayer = slides.length; } $(slides).each(function() { $(this).css("display", "none"); }); $(dots).each(function() { $(this).removeClass("active"); }); $(slides[slideIndexlayer - 1]).css("display", "block"); $(dots[slideIndexlayer - 1]).addClass("active"); } // submit pending table function submitPendingTable(formData) { Swal.fire({ icon: "warning", title: "آیا مطمئن هستید؟", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "بله، تایید می‌شود", cancelButtonText: "منصرف شدم!", showLoaderOnConfirm: true, preConfirm: () => { $.ajax({ url: "https://rms.rmto.ir/webapi/road-observation-problems/" + selected_id + "/edit", type: "POST", data: formData, headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, cache: false, contentType: false, processData: false, beforeSend: function() { showLoaderScreen(); }, success: function(result) { location.reload(); }, error: function(error) { Swal.fire({ icon: "error", title: "خطا", text: "خطایی رخ داده است.", confirmButtonText: "بستن", }); }, complete: function(data) { hideLoaderScreen(); }, }); }, }); } $(document).on("click", "#btn_excel_download_progress", function() { let currentDate = {}; let queryParems = []; const route = $(this).data("table"); const province = $("#select-province-excel-table-progress").val(); if (province != 0) queryParems.push(`province=${province}`); if ( excelDatepickerFirstTable.from != "" && excelDatepickerFirstTable.to != "" ) { currentDate.from = moment( excelDatepickerFirstTable.from.getState().selected.year + "/" + excelDatepickerFirstTable.from.getState().selected.month + "/" + excelDatepickerFirstTable.from.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); currentDate.to = moment( excelDatepickerFirstTable.to.getState().selected.year + "/" + excelDatepickerFirstTable.to.getState().selected.month + "/" + excelDatepickerFirstTable.to.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); queryParems.push(`fromDate=${currentDate.from}`); queryParems.push(`toDate=${currentDate.to}`); } else { Swal.fire({ icon: "error", title: "خطا", text: "لطفا تاریخ مناسب برای دریافت فایل اکسل وارد کنید.", confirmButtonText: "بستن", }); return false; } const url = `https://rms.rmto.ir/reports/fastnewreact/pending${ queryParems.length != 0 ? `?${queryParems.join("&")}` : "" }`; window.open(url, "_blank"); }); $(document).on("click", "#btn_filter_progress", function () { let currentDate = {}; let queryParems = []; const province = $("#select-province-filter-progress").val(); const subject = $("#select-subject-progress").val(); if ((province != null) && (province!=0)) queryParems.push(`province=${province}`); if ((subject != null) && (subject!=0)) queryParems.push(`subject=${subject}`); if ( filterDatepickerFirstTable.from != "" && filterDatepickerFirstTable.to != "" ) { currentDate.from = moment( filterDatepickerFirstTable.from.getState().selected.year + "/" + filterDatepickerFirstTable.from.getState().selected.month + "/" + filterDatepickerFirstTable.from.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); currentDate.to = moment( filterDatepickerFirstTable.to.getState().selected.year + "/" + filterDatepickerFirstTable.to.getState().selected.month + "/" + filterDatepickerFirstTable.to.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); queryParems.push(`from_date=${currentDate.from}`); queryParems.push(`to_date=${currentDate.to}`); } const url = `https://rms.rmto.ir/webapi/road-observed/pending${ queryParems.length != 0 ? `?${queryParems.join("&")}` : "" }`; $.ajax({ url: url, type: "GET", cache: false, contentType: false, processData: false, beforeSend: function () { showLoaderScreen(); }, success: function (res) { table_inprogress.clear().rows.add(res.data).draw(); }, error: function (error) { Swal.fire({ icon: "error", title: "خطا", text: "مشکل در دریافت نوع عملیات.", confirmButtonText: "بستن", }); }, complete: function (data) { hideLoaderScreen(); }, }); }); $(document).on("click", "#btn_filter_done", function () { let currentDate = {}; let queryParems = []; const province = $("#select-province-filter-done").val(); const subject = $("#select-subject-handled").val(); const rms_status = $("#select-status-handled").val(); if ((province != null)&& (province!=0)) queryParems.push(`province=${province}`); if ((subject != null)&& (subject!=0)) queryParems.push(`subject=${subject}`); if (rms_status != 0) queryParems.push(`rms_status=${rms_status}`); if ( filterDatepickerSecondTable.from != "" && filterDatepickerSecondTable.to != "" ) { currentDate.from = moment( filterDatepickerSecondTable.from.getState().selected.year + "/" + filterDatepickerSecondTable.from.getState().selected.month + "/" + filterDatepickerSecondTable.from.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); currentDate.to = moment( filterDatepickerSecondTable.to.getState().selected.year + "/" + filterDatepickerSecondTable.to.getState().selected.month + "/" + filterDatepickerSecondTable.to.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); queryParems.push(`from_date=${currentDate.from}`); queryParems.push(`to_date=${currentDate.to}`); } const url = `https://rms.rmto.ir/webapi/road-observed/done${ queryParems.length != 0 ? `?${queryParems.join("&")}` : "" }`; $.ajax({ url: url, type: "GET", cache: false, contentType: false, processData: false, beforeSend: function () { showLoaderScreen(); }, success: function (res) { table_handled.clear().rows.add(res.data).draw(); }, error: function (error) { Swal.fire({ icon: "error", title: "خطا", text: "مشکل در دریافت نوع عملیات.", confirmButtonText: "بستن", }); }, complete: function (data) { hideLoaderScreen(); }, }); }); $(document).on("click", "#btn_excel_download_done", function () { let currentDate = {}; let queryParems = []; const province = $("#select-province-excel-table-done").val(); if (province != 0) queryParems.push(`province=${province}`); if ( excelDatepickerSecondTable.from != "" && excelDatepickerSecondTable.to != "" ) { currentDate.from = moment( excelDatepickerSecondTable.from.getState().selected.year + "/" + excelDatepickerSecondTable.from.getState().selected.month + "/" + excelDatepickerSecondTable.from.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); currentDate.to = moment( excelDatepickerSecondTable.to.getState().selected.year + "/" + excelDatepickerSecondTable.to.getState().selected.month + "/" + excelDatepickerSecondTable.to.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); queryParems.push(`fromDate=${currentDate.from}`); queryParems.push(`toDate=${currentDate.to}`); } else { Swal.fire({ icon: "error", title: "خطا", text: "لطفا تاریخ مناسب برای دریافت فایل اکسل وارد کنید.", confirmButtonText: "بستن", }); return false; } const url = `https://rms.rmto.ir/reports/fastnewreact/done${ queryParems.length != 0 ? `?${queryParems.join("&")}` : "" }`; window.open(url, "_blank"); }); $(document).on("click", "#main-filter-fast-react", function () { let currentDate = {}; let queryParems = []; const province = $("#province-main-filter").val(); var tableNum = $("#select-main-table").val(); var url; if ((province != null)&&(province!=0)) queryParems.push(`province=${province}`); if (filterMainDate.from != "" && filterMainDate.to != "") { currentDate.from = moment( filterMainDate.from.getState().selected.year + "/" + filterMainDate.from.getState().selected.month + "/" + filterMainDate.from.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); currentDate.to = moment( filterMainDate.to.getState().selected.year + "/" + filterMainDate.to.getState().selected.month + "/" + filterMainDate.to.getState().selected.date, "jYYYY/jM/jD" ).format("YYYY-MM-DD"); queryParems.push(`from_date=${currentDate.from}`); queryParems.push(`to_date=${currentDate.to}`); } if (tableNum == 1) { url = `https://rms.rmto.ir/webapi/road-observed/pending${ queryParems.length != 0 ? `?${queryParems.join("&")}` : "" }`; mainFilterTable(table_inprogress, url); } else if (tableNum == 2) { url = `https://rms.rmto.ir/webapi/road-observed/done${ queryParems.length != 0 ? `?${queryParems.join("&")}` : "" }`; mainFilterTable(table_handled, url); } else { Swal.fire({ icon: "error", title: "خطا", text: "لطفا نوع جدول را انتخاب کنید. ", confirmButtonText: "بستن", }); $("#select-main-table").addClass("is-invalid"); } }); function mainFilterTable(table, url) { $.ajax({ url: url, type: "GET", cache: false, contentType: false, processData: false, beforeSend: function () { showLoaderScreen(); }, success: function (res) { table.clear().rows.add(res.data).draw(); }, error: function (error) { Swal.fire({ icon: "error", title: "خطا", text: "مشکل در دریافت نوع عملیات.", confirmButtonText: "بستن", }); }, complete: function (data) { hideLoaderScreen(); }, }); } $("#select-main-table").change(function () { var selectedNum = $(this).val(); if (selectedNum != 0) { $("#select-main-table").removeClass("is-invalid"); } });