|
|
|
@ -20,6 +20,27 @@ |
|
|
|
overflow-y: auto; |
|
|
|
/* Enable vertical scrolling */ |
|
|
|
} |
|
|
|
.pdf-file-box{ |
|
|
|
height:60px; |
|
|
|
display:flex; |
|
|
|
align-items:center; |
|
|
|
justify-content:center; |
|
|
|
border:1px solid #ced4da; |
|
|
|
border-radius:5px; |
|
|
|
background:#f8f9fa; |
|
|
|
color:#495057; |
|
|
|
font-weight:bold; |
|
|
|
cursor:pointer; |
|
|
|
transition:all .3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.pdf-file-box:hover{ |
|
|
|
background:#007bff; |
|
|
|
color:#fff; |
|
|
|
border-color:#007bff; |
|
|
|
transform:scale(1.03); |
|
|
|
box-shadow:0 4px 10px rgba(0,0,0,.2); |
|
|
|
} |
|
|
|
</style> |
|
|
|
|
|
|
|
<body> |
|
|
|
@ -181,6 +202,11 @@ |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- modal body --> |
|
|
|
|
|
|
|
<div class="modal fade" id="roadWarModal" tabindex="-1" role="dialog" aria-labelledby="roadWarModalLabel" |
|
|
|
@ -857,6 +883,12 @@ |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="viewFileContainer" class="mt-4"></div> |
|
|
|
|
|
|
|
<div id="InspectionFileContainer" class="mt-4"></div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
@ -864,6 +896,35 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="modal fade" id="imagePreviewModal" tabindex="-1" role="dialog" aria-labelledby="imagePreviewModalLabel" |
|
|
|
aria-hidden="true" data-backdrop="static" data-keyboard="false"> |
|
|
|
<div class="modal-dialog modal-xl modal-dialog-centered"> |
|
|
|
<div class="modal-content"> |
|
|
|
|
|
|
|
<div class="modal-header"> |
|
|
|
<h5 class="modal-title">File Preview</h5> |
|
|
|
<button type="button" class="close" data-dismiss="modal"> |
|
|
|
<span>×</span> |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="modal-body text-center"> |
|
|
|
|
|
|
|
<img id="previewImage" |
|
|
|
class="img-fluid rounded" |
|
|
|
style="max-height:80vh; display:none;"> |
|
|
|
|
|
|
|
<iframe id="previewPdf" |
|
|
|
style="width:100%;height:80vh;border:none;display:none;"> |
|
|
|
</iframe> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div th:replace="~{fragments/modules/base/app_module_menu_box :: div}"></div> |
|
|
|
@ -2608,8 +2669,64 @@ |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
let fileContainer = $("#viewFileContainer"); |
|
|
|
fileContainer.empty(); |
|
|
|
|
|
|
|
if (response.fileDetails && response.fileDetails.length > 0) { |
|
|
|
|
|
|
|
let html = ` |
|
|
|
<h5 class="mt-4">Uploaded Files</h5> |
|
|
|
<div class="row"> |
|
|
|
`; |
|
|
|
|
|
|
|
$.each(response.fileDetails, function(index, file) { |
|
|
|
|
|
|
|
let url = file.file_url; |
|
|
|
let extension = url.split('.').pop().toLowerCase(); |
|
|
|
|
|
|
|
if (extension === "pdf") { |
|
|
|
|
|
|
|
html += ` |
|
|
|
<div class="col-md-2 col-4 mb-3 text-center"> |
|
|
|
|
|
|
|
<div class="pdf-file-box" onclick="showPreview('${url}')"> |
|
|
|
|
|
|
|
PDF File ${index + 1} |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
`; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
html += ` |
|
|
|
<div class="col-md-2 col-4 mb-3 text-center"> |
|
|
|
|
|
|
|
<img src="${url}" |
|
|
|
class="img-thumbnail" |
|
|
|
style="height:120px;width:100%;object-fit:cover;cursor:pointer;" |
|
|
|
onclick="showPreview('${url}')"> |
|
|
|
|
|
|
|
</div> |
|
|
|
`; |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
html += "</div>"; |
|
|
|
|
|
|
|
fileContainer.html(html); |
|
|
|
} |
|
|
|
|
|
|
|
renderInspectionDetails(response.inspectiondetails); |
|
|
|
|
|
|
|
|
|
|
|
$('#titleModalLabel').text(`Road War Details - ${response.ref_id}`); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$("#roadWarModal").modal("show"); |
|
|
|
|
|
|
|
}, |
|
|
|
@ -2627,6 +2744,116 @@ |
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function renderInspectionDetails(data) { |
|
|
|
|
|
|
|
let container = $("#InspectionFileContainer"); |
|
|
|
container.empty(); |
|
|
|
|
|
|
|
if (data && data.length > 0) { |
|
|
|
|
|
|
|
let inspection = data[0]; |
|
|
|
|
|
|
|
let html = ` |
|
|
|
<h5 class="mt-4 mb-3">Street Images</h5> |
|
|
|
<div class="row"> |
|
|
|
`; |
|
|
|
|
|
|
|
let url = inspection.start_img; |
|
|
|
|
|
|
|
// Get latitude and longitude |
|
|
|
let latitude = inspection.start_latitude; |
|
|
|
let longitude = inspection.start_longitude; |
|
|
|
|
|
|
|
// Google Maps Embed URL |
|
|
|
let mapUrl = ''; |
|
|
|
|
|
|
|
if (latitude && longitude) { |
|
|
|
|
|
|
|
|
|
|
|
mapUrl = |
|
|
|
"https://maps.google.com/maps?q=" + |
|
|
|
latitude + "," + longitude + |
|
|
|
"&z=18&output=embed"; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (url) { |
|
|
|
|
|
|
|
let extension = url.split('?')[0].split('.').pop().toLowerCase(); |
|
|
|
|
|
|
|
if (extension === "pdf") { |
|
|
|
|
|
|
|
html += ` |
|
|
|
<div class="col-md-2 col-4 mb-3 text-center"> |
|
|
|
<div class="pdf-file-box" |
|
|
|
onclick="showPreview('${url}')"> |
|
|
|
PDF File |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
`; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
html += ` |
|
|
|
<div class="col-md-4 col-4 mb-3 text-center"> |
|
|
|
<img src="${url}" |
|
|
|
class="img-thumbnail" |
|
|
|
style="height:200px;width:100%;object-fit:cover;cursor:pointer;" |
|
|
|
onclick="showPreview('${url}')"> |
|
|
|
</div> |
|
|
|
`; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (mapUrl) { |
|
|
|
|
|
|
|
html += ` |
|
|
|
<div class="col-md-4 col-12 mb-3"> |
|
|
|
|
|
|
|
<iframe |
|
|
|
src="${mapUrl}" |
|
|
|
width="100%" |
|
|
|
height="200" |
|
|
|
style="border:0;" |
|
|
|
allowfullscreen="" |
|
|
|
loading="lazy" |
|
|
|
referrerpolicy="no-referrer-when-downgrade"> |
|
|
|
</iframe> |
|
|
|
|
|
|
|
</div> |
|
|
|
`; |
|
|
|
} |
|
|
|
|
|
|
|
html += `</div>`; |
|
|
|
|
|
|
|
container.html(html); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function showPreview(fileUrl) { |
|
|
|
|
|
|
|
let extension = fileUrl.split('.').pop().toLowerCase(); |
|
|
|
|
|
|
|
if (extension === "pdf") { |
|
|
|
|
|
|
|
$("#previewImage").hide(); |
|
|
|
$("#previewPdf").show(); |
|
|
|
|
|
|
|
$("#previewPdf").attr("src", fileUrl); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
$("#previewPdf").hide(); |
|
|
|
$("#previewImage").show(); |
|
|
|
|
|
|
|
$("#previewImage").attr("src", fileUrl); |
|
|
|
} |
|
|
|
|
|
|
|
$("#imagePreviewModal").modal("show"); |
|
|
|
} |
|
|
|
|
|
|
|
$(document).on('click', '.removeRelayRow', function () { |
|
|
|
|
|
|
|
let totalRows = $('.relay-block').length; |
|
|
|
|