|
|
@ -541,6 +541,28 @@ |
|
|
.timeline-clickable:hover { |
|
|
.timeline-clickable:hover { |
|
|
text-decoration: underline; |
|
|
text-decoration: underline; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.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> |
|
|
</style> |
|
|
<body> |
|
|
<body> |
|
|
|
|
|
|
|
|
@ -998,6 +1020,14 @@ |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="details-section-title" id="viewFileContainer"> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="details-section-title" id="InspectionFileContainer"> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
@ -1082,7 +1112,30 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="modal fade" id="imagePreviewModal" tabindex="-1"> |
|
|
|
|
|
<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="btn-close" data-bs-dismiss="modal"></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> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2015,6 +2068,178 @@ function populateRoadDetails(data) { |
|
|
data.relayingDetails |
|
|
data.relayingDetails |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
renderWebFileDetails(data.fileDetails); |
|
|
|
|
|
|
|
|
|
|
|
renderInspectionDetails(data.inspectiondetails); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
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://www.google.com/maps/embed/v1/view' + |
|
|
|
|
|
'?key=AIzaSyCi7N6uW5MZaSkd50Kzw7ax2GkMN1vjE-E' + |
|
|
|
|
|
'¢er=' + latitude + ',' + longitude + |
|
|
|
|
|
'&zoom=16'; */ |
|
|
|
|
|
|
|
|
|
|
|
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 renderWebFileDetails(data) { |
|
|
|
|
|
|
|
|
|
|
|
let container =$("#viewFileContainer"); |
|
|
|
|
|
|
|
|
|
|
|
container.empty(); |
|
|
|
|
|
|
|
|
|
|
|
if (data && data.length > 0) { |
|
|
|
|
|
|
|
|
|
|
|
let html = ` |
|
|
|
|
|
<h5 class="mt-4 mb-3">ROADWAR REGISTER FILES</h5> |
|
|
|
|
|
<div class="row"> |
|
|
|
|
|
`; |
|
|
|
|
|
|
|
|
|
|
|
$.each(data, 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>"; |
|
|
|
|
|
|
|
|
|
|
|
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"); |
|
|
} |
|
|
} |
|
|
function valueOrDash(value, defaultValue = "-") { |
|
|
function valueOrDash(value, defaultValue = "-") { |
|
|
|
|
|
|
|
|
|