296 lines
19 KiB
PHP
296 lines
19 KiB
PHP
<!-- Add Connection Modal -->
|
|
<!-- Add Connection Modal -->
|
|
<div class="modal fade" id="addConnectionModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content">
|
|
<div class="modal-header bg-light">
|
|
<h5 class="modal-title fw-bold">Add Interconnect Detail</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
|
|
<!-- Added ID to the form -->
|
|
<form id="addConnectionForm" action="{{ route('mnos.connections.store', $operator->id) }}" method="POST" enctype="multipart/form-data">
|
|
@csrf
|
|
<div class="modal-body p-4">
|
|
<!-- Alert container for AJAX errors -->
|
|
<div id="connectionModalAlert"></div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label text-secondary fw-semibold small">Connection Mode *</label>
|
|
<select name="connection_mode" id="connectionModeSelect" class="form-select" required>
|
|
<option value="Whitelisted IP">Whitelisted IP Address</option>
|
|
<option value="Domain">Domain / Hostname</option>
|
|
<option value="VPN Tunnel">VPN Tunnel Endpoint</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="mb-3" id="vpnFormContainer" style="display: none;">
|
|
<label class="form-label text-secondary fw-semibold small">Upload VPN Form (PDF, DOCX)</label>
|
|
<input type="file" name="vpn_file" id="vpnFileInput" class="form-control" accept=".pdf,.doc,.docx,.xlsx,.jpg,.png">
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label text-secondary fw-semibold small">Identifier (IP / Domain / VPN Peer) *</label>
|
|
<input type="text" name="identifier" class="form-control" required placeholder="e.g. 196.200.15.22 or smpp.operator.com">
|
|
</div>
|
|
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Port</label>
|
|
<!-- Added type="number", min, and max -->
|
|
<input type="number" name="port" class="form-control" placeholder="e.g. 2775" min="1" max="65535">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Status</label>
|
|
<select name="status" class="form-select">
|
|
<option value="Active">Active</option>
|
|
<option value="Testing">Testing</option>
|
|
<option value="Disabled">Disabled</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label text-secondary fw-semibold small">Notes / Description</label>
|
|
<textarea name="notes" class="form-control" rows="2" placeholder="Optional context or routing details..."></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer bg-light">
|
|
<button type="button" class="btn btn-outline-secondary btn-sm" data-bs-dismiss="modal">Cancel</button>
|
|
<button type="submit" id="btnSubmitConnection" class="btn text-white btn-sm fw-bold px-4" style="background-color: #5c4df0;">Save Endpoint</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Add Document Modal -->
|
|
<div class="modal fade" id="addDocumentModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header bg-light">
|
|
<h5 class="modal-title fw-bold">Upload Documents</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
|
|
<form id="addDocumentForm" action="{{ route('mnos.documents.store', $operator->id) }}" method="POST" enctype="multipart/form-data">
|
|
@csrf
|
|
<div class="modal-body p-4">
|
|
<div id="documentModalAlert"></div>
|
|
|
|
<div id="documentRowsContainer">
|
|
<!-- Initial Row -->
|
|
<div class="row g-2 mb-3 document-row">
|
|
<div class="col-md-5">
|
|
<label class="form-label text-secondary fw-semibold small">Document Name *</label>
|
|
<input type="text" name="document_names[]" class="form-control" placeholder="e.g. Signed NDA" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">File *</label>
|
|
<input type="file" name="documents[]" class="form-control" required>
|
|
</div>
|
|
<div class="col-md-1 d-flex align-items-end">
|
|
<button type="button" class="btn btn-outline-danger w-100 remove-doc-row" disabled>
|
|
<i class="bi bi-trash"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<button type="button" id="addDocRowBtn" class="btn btn-sm btn-light text-primary border fw-bold mt-2">
|
|
<i class="bi bi-plus-lg me-1"></i> Add Another File
|
|
</button>
|
|
</div>
|
|
<div class="modal-footer bg-light">
|
|
<button type="button" class="btn btn-outline-secondary btn-sm" data-bs-dismiss="modal">Cancel</button>
|
|
<button type="submit" id="btnSubmitDocuments" class="btn text-white btn-sm fw-bold px-4" style="background-color: #5c4df0;">Upload All</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- EDIT MNO MODAL -->
|
|
<div class="modal fade" id="editOperatorModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header bg-light border-bottom-0">
|
|
<h5 class="modal-title fw-bold">Edit MNO Partner</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
|
|
<form id="editOperatorForm" novalidate>
|
|
@csrf
|
|
@method('PUT')
|
|
<input type="hidden" id="edit_mno_id">
|
|
|
|
<div class="modal-body p-0">
|
|
<ul class="nav nav-tabs px-4 pt-3 bg-light" role="tablist">
|
|
<li class="nav-item"><button class="nav-link active fw-bold" data-bs-toggle="tab" data-bs-target="#edit-tab-basic" type="button">Basic & Tech</button></li>
|
|
<li class="nav-item"><button class="nav-link fw-bold text-dark" data-bs-toggle="tab" data-bs-target="#edit-tab-contacts" type="button">Contacts</button></li>
|
|
<li class="nav-item"><button class="nav-link fw-bold text-dark" data-bs-toggle="tab" data-bs-target="#edit-tab-billing" type="button">Billing</button></li>
|
|
</ul>
|
|
|
|
<div class="tab-content p-4">
|
|
<!-- TAB 1: BASIC INFO -->
|
|
<div class="tab-pane fade show active" id="edit-tab-basic">
|
|
<div class="row g-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Name *</label>
|
|
<input type="text" class="form-control" name="name" id="edit_name" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Country *</label>
|
|
<input type="text" class="form-control" name="country" id="edit_country" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Connection Status</label>
|
|
<select class="form-select" name="connection_status" id="edit_connection_status">
|
|
<option value="Active">Active</option>
|
|
<option value="Inactive">Inactive</option>
|
|
<option value="Testing">Testing</option>
|
|
<option value="Pending">Pending</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Connection Type</label>
|
|
<select class="form-select" name="connection_type" id="edit_connection_type">
|
|
<option value="DIRECT">Direct</option>
|
|
<option value="VPN">VPN</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- TAB 2: CONTACTS -->
|
|
<div class="tab-pane fade" id="edit-tab-contacts">
|
|
<div class="row g-3">
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Account Manager</label>
|
|
<select class="form-select" name="mno_account_manager" id="edit_mno_account_manager">
|
|
<option value="">Select Account Manager</option>
|
|
@foreach($staffMembers as $staff)
|
|
<option value="{{ $staff->name }}">{{ $staff->name }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label class="form-label text-secondary fw-semibold small">Technical Support Lead</label>
|
|
<input type="text" class="form-control" name="technical_support_person" id="edit_technical_support_person">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Contact Person</label>
|
|
<input type="text" class="form-control" name="contact_person" id="edit_contact_person">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Contact Phone</label>
|
|
<input type="text" class="form-control" name="contact_person_phone" id="edit_contact_person_phone">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Contact Email</label>
|
|
<input type="email" class="form-control" name="contact_person_email" id="edit_contact_person_email">
|
|
</div>
|
|
<div class="col-12">
|
|
<label class="form-label text-secondary fw-semibold small">Support MS Teams / Skype</label>
|
|
<input type="text" class="form-control" name="support_skype" id="edit_support_skype">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- TAB 3: BILLING -->
|
|
<div class="tab-pane fade" id="edit-tab-billing">
|
|
<div class="row g-3">
|
|
<div class="col-12 mt-3 mb-2 border-bottom pb-2">
|
|
<h6 class="fw-bold text-dark mb-0"><i class="bi bi-file-earmark-text me-2"></i>Contract Details</h6>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Contract Type</label>
|
|
<select class="form-select" name="contract_type" id="edit_contract_type">
|
|
<option value="">Select Type...</option>
|
|
<option value="Bilateral">Bilateral</option>
|
|
<option value="Unilateral">Unilateral</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Contract Validity</label>
|
|
<select class="form-select" name="contract_validity" id="edit_contract_validity">
|
|
<option value="">Select Validity...</option>
|
|
<option value="Quarterly">Quarterly</option>
|
|
<option value="Biannual">Biannual</option>
|
|
<option value="Yearly">Yearly</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Auto Renew?</label>
|
|
<select class="form-select" name="contract_auto_renew" id="edit_contract_auto_renew">
|
|
<option value="1">Yes</option>
|
|
<option value="0">No</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-md-4" id="renewal_date_container" style="display: none;">
|
|
<label class="form-label text-secondary fw-semibold small">Next Renewal Date *</label>
|
|
<input type="date" class="form-control" name="next_renewal_date" id="edit_next_renewal_date">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Buying Rate</label>
|
|
<input type="number" step="0.0001" class="form-control" name="buying_rate" id="edit_buying_rate">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Rate Type</label>
|
|
<input type="text" class="form-control" name="rate_type" id="edit_rate_type" placeholder="e.g. Flat, Tiered">
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label text-secondary fw-semibold small">Payment Terms</label>
|
|
<input type="text" class="form-control" name="payment_terms" id="edit_payment_terms" placeholder="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer bg-light border-top-0">
|
|
<button type="button" class="btn btn-outline-secondary btn-sm" data-bs-dismiss="modal">Cancel</button>
|
|
<button type="submit" id="btnUpdateOperator" class="btn text-white btn-sm fw-bold px-4" style="background-color: #5c4df0;">
|
|
Update Partner
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Add Note Modal -->
|
|
<div class="modal fade" id="addNoteModal" tabindex="-1" aria-hidden="true">
|
|
<div class="modal-dialog modal-dialog-centered">
|
|
<div class="modal-content">
|
|
<div class="modal-header bg-light border-bottom-0">
|
|
<h5 class="modal-title fw-bold">Add Internal Note</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<form id="addNoteForm" action="{{ route('mnos.notes.store', $operator->id) }}" method="POST">
|
|
@csrf
|
|
<div class="modal-body p-4">
|
|
<div id="noteModalAlert"></div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label text-secondary fw-semibold small">Related Service / Topic (Optional)</label>
|
|
<select name="services" id="note_services" class="form-select" style="width: 100%;">
|
|
<option value=""></option>
|
|
@foreach($allServices as $svc)
|
|
<option value="{{ $svc->name }}">{{ $svc->name }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
<label class="form-label text-secondary fw-semibold small">Note Detail *</label>
|
|
<textarea name="notes_body" class="form-control" rows="4" required placeholder="Log call notes, updates, or instructions here..."></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer bg-light border-top-0">
|
|
<button type="button" class="btn btn-outline-secondary btn-sm" data-bs-dismiss="modal">Cancel</button>
|
|
<button type="submit" id="btnSubmitNote" class="btn text-white btn-sm fw-bold px-4" style="background-color: #5c4df0;">Save Note</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div> |