main-backend/php_code/resources/views/admin/district_settings.blade.php
2026-07-02 11:39:14 +00:00

189 lines
8.8 KiB
PHP

@extends('layouts.master')
@section('page-title')
Permits | {{ $page_title }}
@endsection
@section('page-css')
@endsection
@section('page-content')
@include('layouts.partials.navbar')
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="mb-4">
<h1 class="h3 mb-1">District Settings</h1>
<p class="text-muted">Update these settings as needed</p>
</div>
<form id="districtSettingsForm" action="updatedistrictsettings" method="POST">
@csrf
<div class="card shadow-sm mb-4">
<div class="card-header bg-white py-3">
<h5 class="card-title mb-0 text-dark">
<i class="bi bi-building me-2 text-secondary"></i>Assembly Profile
</h5>
</div>
<div class="card-body">
<div class="row mb-3 g-3">
<div class="col-md-6">
<label for="regionName" class="form-label fw-bold">Region Name</label>
<input type="text" class="form-control" id="regionName" name="region_name" value="" placeholder="e.g. Western Region" required readonly>
</div>
<div class="col-md-6">
<label for="districtName" class="form-label fw-bold">District Name</label>
<input type="text" class="form-control" id="districtName" name="district_name" value="" placeholder="e.g. Sekondi-Takoradi Metropolitan Assembly" required>
</div>
</div>
<div class="row mb-3 g-3">
<div class="col-md-6">
<label for="assemblyType" class="form-label fw-bold">Assembly Type</label>
<select class="form-select" id="assemblyType" name="assembly_type" required>
<option value="" selected disabled>Select assembly type...</option>
<option value="metropolitan">Metropolitan</option>
<option value="municipal">Municipal</option>
<option value="district">District</option>
</select>
</div>
<div class="col-md-6">
<label for="abbreviation" class="form-label fw-bold">Abbreviation</label>
<input type="text" class="form-control" id="abbreviation" name="abbreviation" value="" placeholder="e.g. STMA" required>
</div>
</div>
<div class="row mb-3 g-3">
<div class="col-md-6">
<label for="contactPhone" class="form-label fw-bold">Contact Phone Number</label>
<input type="tel" class="form-control" id="contactPhone" name="contact_phone" value="" placeholder="e.g. 0554116836" required>
</div>
<div class="col-md-6">
<label for="contactEmail" class="form-label fw-bold">Contact Email</label>
<input type="email" class="form-control" id="contactEmail" name="contact_email" value="" placeholder="e.g. info@stma.gov.gh" required>
</div>
</div>
</div>
</div>
<div class="card shadow-sm mb-4">
<div class="card-header bg-white py-3">
<h5 class="card-title mb-0 text-primary">
<i class="bi bi-envelope-fill me-2"></i>Email Notifications
</h5>
</div>
<div class="card-body">
<div class="mb-3">
<label for="outgoingEmail" class="form-label fw-bold">Outgoing Email Address</label>
<input type="email" class="form-control" id="outgoingEmail" name="outgoing_email" value="" placeholder="e.g. ppd@stma.gov.gh" required>
</div>
<div class="mb-3">
<label for="displayName" class="form-label fw-bold">Display Name</label>
<input type="text" class="form-control" id="displayName" name="display_name" value="" placeholder="e.g. Physical Planning Department" required>
</div>
</div>
</div>
<div class="card shadow-sm mb-4">
<div class="card-header bg-white py-3">
<h5 class="card-title mb-0 text-success">
<i class="bi bi-chat-left-text-fill me-2"></i>SMS Notifications
</h5>
</div>
<div class="card-body">
<div class="mb-3">
<label for="senderName" class="form-label fw-bold">Sender Name</label>
<input type="text" class="form-control" id="senderName" name="sms_sender_name" placeholder="e.g. STMA" value="" required>
</div>
</div>
</div>
<div class="d-grid gap-2 d-md-flex justify-content-md-end mb-5">
<button type="button" class="btn btn-outline-secondary px-4" id="cancelBtn">Cancel</button>
<button type="submit" class="btn btn-primary px-4" id="saveSettingsBtn">Save Changes</button>
</div>
</form>
</div>
</div>
</div>
@endsection
@section('page-js')
<script type="text/javascript">
$(document).ready(function(){
// 1. Load existing settings on page load
fetchSettings();
function fetchSettings() {
$.ajax({
// Ensure this route exists in your web.php
url: '{{ url("admin/getdistrictsettingsjson") }}',
method: 'GET',
success: function(response) {
if(response.success && response.data) {
const data = response.data;
$('#regionName').val(data.region_name);
$('#districtName').val(data.district_name);
$('#assemblyType').val(data.assembly_type);
$('#abbreviation').val(data.abbreviation);
$('#contactPhone').val(data.contact_phone);
$('#contactEmail').val(data.contact_email);
$('#outgoingEmail').val(data.outgoing_email);
$('#displayName').val(data.display_name);
$('#senderName').val(data.sms_sender_name);
}
},
error: function() {
console.error("Could not load district settings.");
}
});
}
// 2. Handle form submission via AJAX
$('#districtSettingsForm').on('submit', function(e) {
e.preventDefault(); // Prevent standard page reload
let $btn = $('#saveSettingsBtn');
let originalText = $btn.html();
// Show loading state on button
$btn.html('<span class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span>Saving...').prop('disabled', true);
$.ajax({
url: $(this).attr('action'),
method: 'POST',
data: $(this).serialize(), // Automatically grabs all inputs and the @csrf token
success: function(response) {
if(response.success) {
// You can replace this with a Toastr or SweetAlert notification
$.alert('Settings updated successfully!');
} else {
$.alert('Failed to update settings. Please try again.');
}
},
error: function(xhr) {
let errorMessage = 'An error occurred while saving.';
// Optional: Handle Laravel validation errors returned as JSON
if(xhr.responseJSON && xhr.responseJSON.errors) {
errorMessage = Object.values(xhr.responseJSON.errors)[0][0];
}
$.alert(errorMessage);
},
complete: function() {
// Restore button state
$btn.html(originalText).prop('disabled', false);
}
});
});
// Optional: Cancel button resets form to last saved database state
$('#cancelBtn').on('click', function() {
fetchSettings();
});
});
</script>
@endsection