Add mock for concern page
This commit is contained in:
parent
bfe2b88622
commit
42bcdb8af8
4 changed files with 216 additions and 1 deletions
|
|
@ -104,7 +104,7 @@
|
||||||
<!-- Navigation Buttons -->
|
<!-- Navigation Buttons -->
|
||||||
<div class="d-flex gap-2 mt-4">
|
<div class="d-flex gap-2 mt-4">
|
||||||
<a class="btn btn-outline-secondary" href="../compliance"> Back </a>
|
<a class="btn btn-outline-secondary" href="../compliance"> Back </a>
|
||||||
<a class="btn btn-primary flex-grow-1" href="concerns"> Continue </a>
|
<a class="btn btn-primary flex-grow-1" href="concern"> Continue </a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</main>
|
</main>
|
||||||
|
|
|
||||||
198
html/template/rmo/district-compliance-concern.html
Normal file
198
html/template/rmo/district-compliance-concern.html
Normal file
|
|
@ -0,0 +1,198 @@
|
||||||
|
{{ template "rmo/layout/base.html" . }}
|
||||||
|
|
||||||
|
{{ define "title" }}District Concerns{{ end }}
|
||||||
|
{{ define "extraheader" }}
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-bar {
|
||||||
|
background-color: #0d6efd;
|
||||||
|
transition: width 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.observation-image {
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
background-color: #e9ecef;
|
||||||
|
border: 1px solid #dee2e6;
|
||||||
|
border-radius: 8px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #6c757d;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.observation-image:hover {
|
||||||
|
border-color: #0d6efd;
|
||||||
|
box-shadow: 0 2px 8px rgba(13, 110, 253, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.observation-image .overlay {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
color: white;
|
||||||
|
padding: 8px;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.inspector-notes {
|
||||||
|
background-color: #fff;
|
||||||
|
border-left: 4px solid #0d6efd;
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{{ end }}
|
||||||
|
{{ define "content" }}
|
||||||
|
<div class="container-fluid px-3 py-3">
|
||||||
|
<!-- Header -->
|
||||||
|
<header class="text-center mb-4 pb-3 border-bottom">
|
||||||
|
<div class="d-flex align-items-center justify-content-center mb-2">
|
||||||
|
<img
|
||||||
|
src="{{ .District.URLLogo }}"
|
||||||
|
alt="{{ .District.Name }} logo"
|
||||||
|
class="me-2"
|
||||||
|
style="height: 40px; width: auto;"
|
||||||
|
/>
|
||||||
|
<h1 class="h5 mb-0">{{ .District.Name }}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="text-muted small">
|
||||||
|
<i class="bi bi-telephone"></i> {{ .District.OfficePhone }}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Progress Bar -->
|
||||||
|
<div class="mb-4">
|
||||||
|
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||||
|
<span class="small text-muted">Step 3 of 10</span>
|
||||||
|
</div>
|
||||||
|
<div class="progress" style="height: 8px;">
|
||||||
|
<div
|
||||||
|
class="progress-bar"
|
||||||
|
role="progressbar"
|
||||||
|
style="width: 30%;"
|
||||||
|
aria-valuenow="30"
|
||||||
|
aria-valuemin="0"
|
||||||
|
aria-valuemax="100"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Main Content -->
|
||||||
|
<main>
|
||||||
|
<h2 class="h4 mb-3">
|
||||||
|
District observations indicate a possible mosquito problem at this
|
||||||
|
property
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p class="text-muted mb-4">
|
||||||
|
Our inspector documented the following conditions during their visit.
|
||||||
|
Tap any image to view details.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- Observation Images -->
|
||||||
|
<div class="mb-4">
|
||||||
|
<label class="form-label fw-semibold mb-3">Inspection Photos</label>
|
||||||
|
|
||||||
|
<div class="row g-3 mb-3">
|
||||||
|
<div class="col-6">
|
||||||
|
<div
|
||||||
|
class="observation-image"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#imageModal1"
|
||||||
|
>
|
||||||
|
<span class="text-center">
|
||||||
|
<i class="bi bi-camera" style="font-size: 2rem;"></i>
|
||||||
|
<br />Photo 1
|
||||||
|
</span>
|
||||||
|
<div class="overlay">Tap to view</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<div
|
||||||
|
class="observation-image"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#imageModal2"
|
||||||
|
>
|
||||||
|
<span class="text-center">
|
||||||
|
<i class="bi bi-camera" style="font-size: 2rem;"></i>
|
||||||
|
<br />Photo 2
|
||||||
|
</span>
|
||||||
|
<div class="overlay">Tap to view</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row g-3">
|
||||||
|
<div class="col-6">
|
||||||
|
<div
|
||||||
|
class="observation-image"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#imageModal3"
|
||||||
|
>
|
||||||
|
<span class="text-center">
|
||||||
|
<i class="bi bi-camera" style="font-size: 2rem;"></i>
|
||||||
|
<br />Photo 3
|
||||||
|
</span>
|
||||||
|
<div class="overlay">Tap to view</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<div
|
||||||
|
class="observation-image"
|
||||||
|
data-bs-toggle="modal"
|
||||||
|
data-bs-target="#imageModal4"
|
||||||
|
>
|
||||||
|
<span class="text-center">
|
||||||
|
<i class="bi bi-camera" style="font-size: 2rem;"></i>
|
||||||
|
<br />Photo 4
|
||||||
|
</span>
|
||||||
|
<div class="overlay">Tap to view</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Inspector Comments -->
|
||||||
|
<div class="mb-4">
|
||||||
|
<label class="form-label fw-semibold mb-3">Inspector Comments</label>
|
||||||
|
<div class="inspector-notes">
|
||||||
|
<div class="mb-2">
|
||||||
|
<small class="text-muted">
|
||||||
|
<i class="bi bi-person-badge"></i>
|
||||||
|
Inspector #1 | 2 days ago
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
<p class="mb-0">some fake comments here</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
<small>
|
||||||
|
<i class="bi bi-info-circle"></i>
|
||||||
|
These observations were made from outside the property. In the next
|
||||||
|
steps, you'll have an opportunity to provide your response and any
|
||||||
|
additional information.
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Navigation Buttons -->
|
||||||
|
<div class="d-flex gap-2 mt-4">
|
||||||
|
<a href="../compliance/address" class="btn btn-outline-secondary">
|
||||||
|
Back
|
||||||
|
</a>
|
||||||
|
<a href="response" class="btn btn-primary flex-grow-1"> Continue </a>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
@ -37,3 +37,19 @@ func getDistrictComplianceAddress(w http.ResponseWriter, r *http.Request) {
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getDistrictComplianceConcern(w http.ResponseWriter, r *http.Request) {
|
||||||
|
district, err := districtBySlug(r)
|
||||||
|
if err != nil {
|
||||||
|
respondError(w, "Failed to lookup organization", err, http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
html.RenderOrError(
|
||||||
|
w,
|
||||||
|
"rmo/district-compliance-concern.html",
|
||||||
|
ContentNuisance{
|
||||||
|
District: newContentDistrict(district),
|
||||||
|
URL: makeContentURL(nil),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ func Router(r *mux.Router) {
|
||||||
r.HandleFunc("/district/{slug}", getRootDistrict).Methods("GET")
|
r.HandleFunc("/district/{slug}", getRootDistrict).Methods("GET")
|
||||||
r.HandleFunc("/district/{slug}/compliance", getDistrictCompliance).Methods("GET")
|
r.HandleFunc("/district/{slug}/compliance", getDistrictCompliance).Methods("GET")
|
||||||
r.HandleFunc("/district/{slug}/compliance/address", getDistrictComplianceAddress).Methods("GET")
|
r.HandleFunc("/district/{slug}/compliance/address", getDistrictComplianceAddress).Methods("GET")
|
||||||
|
r.HandleFunc("/district/{slug}/compliance/concern", getDistrictComplianceConcern).Methods("GET")
|
||||||
r.HandleFunc("/district/{slug}/nuisance", getNuisanceDistrict).Methods("GET")
|
r.HandleFunc("/district/{slug}/nuisance", getNuisanceDistrict).Methods("GET")
|
||||||
//r.HandleFunc("/district/{slug}/nuisance-submit-complete", renderMock(mockNuisanceSubmitCompleteT)).Methods("GET")
|
//r.HandleFunc("/district/{slug}/nuisance-submit-complete", renderMock(mockNuisanceSubmitCompleteT)).Methods("GET")
|
||||||
//r.HandleFunc("/district/{slug}/status", renderMock(mockStatusT)).Methods("GET")
|
//r.HandleFunc("/district/{slug}/status", renderMock(mockStatusT)).Methods("GET")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue