mirror of
https://github.com/getnamingo/registry.git
synced 2025-05-10 16:58:34 +02:00
Added contact create page
This commit is contained in:
parent
7bd0733de2
commit
16c63ff3b9
2 changed files with 485 additions and 1 deletions
|
@ -17,6 +17,458 @@ class ContactsController extends Controller
|
|||
|
||||
public function create(Request $request, Response $response)
|
||||
{
|
||||
if ($request->getMethod() === 'POST') {
|
||||
// Retrieve POST data
|
||||
$data = $request->getParsedBody();
|
||||
$db = $this->container->get('db');
|
||||
$iso3166 = new ISO3166();
|
||||
$countries = $iso3166->all();
|
||||
$contactID = $data['contactid'] ?? null;
|
||||
$registrar_id = $data['registrar'] ?? null;
|
||||
$registrars = $db->select("SELECT id, clid, name FROM registrar");
|
||||
|
||||
$postalInfoIntName = $data['intName'] ?? null;
|
||||
$postalInfoIntOrg = $data['org'] ?? null;
|
||||
$postalInfoIntStreet1 = $data['street1'] ?? null;
|
||||
$postalInfoIntStreet2 = $data['street2'] ?? null;
|
||||
$postalInfoIntStreet3 = $data['street3'] ?? null;
|
||||
$postalInfoIntCity = $data['city'] ?? null;
|
||||
$postalInfoIntSp = $data['sp'] ?? null;
|
||||
$postalInfoIntPc = $data['pc'] ?? null;
|
||||
$postalInfoIntCc = $data['cc'] ?? null;
|
||||
|
||||
$postalInfoLocName = $data['locName'] ?? null;
|
||||
$postalInfoLocOrg = $data['locOrg'] ?? null;
|
||||
$postalInfoLocStreet1 = $data['locStreet1'] ?? null;
|
||||
$postalInfoLocStreet2 = $data['locStreet2'] ?? null;
|
||||
$postalInfoLocStreet3 = $data['locStreet3'] ?? null;
|
||||
$postalInfoLocCity = $data['locCity'] ?? null;
|
||||
$postalInfoLocSp = $data['locSP'] ?? null;
|
||||
$postalInfoLocPc = $data['locPC'] ?? null;
|
||||
$postalInfoLocCc = $data['locCC'] ?? null;
|
||||
|
||||
$voice = $data['voice'] ?? null;
|
||||
$fax = $data['fax'] ?? null;
|
||||
$email = $data['email'] ?? null;
|
||||
$authInfo_pw = $data['authInfo'] ?? null;
|
||||
|
||||
if (!$contactID) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Please provide a contact ID',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
// Validation for contact ID
|
||||
$invalid_identifier = validate_identifier($contactID);
|
||||
if ($invalid_identifier) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact ID',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
$contact = $db->select('SELECT * FROM contact WHERE identifier = ?', [$contactID]);
|
||||
if ($contact) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Contact ID already exists',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
$result = $db->select('SELECT registrar_id FROM registrar_users WHERE user_id = ?', [$_SESSION['auth_user_id']]);
|
||||
|
||||
if (is_array($result)) {
|
||||
$clid = $result['registrar_id'];
|
||||
} else if (is_object($result) && method_exists($result, 'fetch')) {
|
||||
$clid = $result->fetch();
|
||||
} else {
|
||||
$clid = $registrar_id;
|
||||
}
|
||||
|
||||
if ($postalInfoIntName) {
|
||||
if (!$postalInfoIntName) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Missing contact name',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoIntName) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoIntName)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact name',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($postalInfoIntOrg) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoIntOrg) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoIntOrg)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact org',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoIntStreet1) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoIntStreet1) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoIntStreet1)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact street',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoIntStreet2) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoIntStreet2) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoIntStreet2)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact street',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoIntStreet3) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoIntStreet3) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoIntStreet3)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact street',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/(^\-)|(^\.)|(\-\-)|(\.\.)|(\.\-)|(\-\.)|(\-$)|(\.$)/', $postalInfoIntCity) || !preg_match('/^[a-z][a-z\-\.\s]{3,}$/i', $postalInfoIntCity)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact city',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($postalInfoIntSp) {
|
||||
if (preg_match('/(^\-)|(^\.)|(\-\-)|(\.\.)|(\.\-)|(\-\.)|(\-$)|(\.$)/', $postalInfoIntSp) || !preg_match('/^[A-Z][a-zA-Z\-\.\s]{1,}$/', $postalInfoIntSp)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact state/province',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoIntPc) {
|
||||
if (preg_match('/(^\-)|(\-\-)|(\-$)/', $postalInfoIntPc) || !preg_match('/^[A-Z0-9\-\s]{3,}$/', $postalInfoIntPc)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid contact postal code',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($postalInfoLocName) {
|
||||
if (!$postalInfoLocName) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Missing loc contact name',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoLocName) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoLocName)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact name',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($postalInfoLocOrg) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoLocOrg) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoLocOrg)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact org',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoLocStreet1) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoLocStreet1) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoLocStreet1)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact street',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoLocStreet2) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoLocStreet2) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoLocStreet2)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact street',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoLocStreet3) {
|
||||
if (preg_match('/(^\-)|(^\,)|(^\.)|(\-\-)|(\,\,)|(\.\.)|(\-$)/', $postalInfoLocStreet3) || !preg_match('/^[a-zA-Z0-9\-\&\,\.\/\s]{5,}$/', $postalInfoLocStreet3)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact street',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (preg_match('/(^\-)|(^\.)|(\-\-)|(\.\.)|(\.\-)|(\-\.)|(\-$)|(\.$)/', $postalInfoLocCity) || !preg_match('/^[a-z][a-z\-\.\s]{3,}$/i', $postalInfoLocCity)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact city',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($postalInfoLocSp) {
|
||||
if (preg_match('/(^\-)|(^\.)|(\-\-)|(\.\.)|(\.\-)|(\-\.)|(\-$)|(\.$)/', $postalInfoLocSp) || !preg_match('/^[A-Z][a-zA-Z\-\.\s]{1,}$/', $postalInfoLocSp)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact state/province',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($postalInfoLocPc) {
|
||||
if (preg_match('/(^\-)|(\-\-)|(\-$)/', $postalInfoLocPc) || !preg_match('/^[A-Z0-9\-\s]{3,}$/', $postalInfoLocPc)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Invalid loc contact postal code',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($voice && (!preg_match('/^\+\d{1,3}\.\d{1,14}$/', $voice) || strlen($voice) > 17)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Voice must be (\+[0-9]{1,3}\.[0-9]{1,14})',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if ($fax && (!preg_match('/^\+\d{1,3}\.\d{1,14}$/', $fax) || strlen($fax) > 17)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Fax must be (\+[0-9]{1,3}\.[0-9]{1,14})',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Email address failed check',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if (!$authInfo_pw) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Email contact authinfo',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if ((strlen($authInfo_pw) < 6) || (strlen($authInfo_pw) > 16)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Password needs to be at least 6 and up to 16 characters long',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
if (!preg_match('/[A-Z]/', $authInfo_pw)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'Password should have both upper and lower case characters',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
|
||||
$disclose_voice = (isset($data['disclose_voice']) && ($data['disclose_voice'] === 1 || $data['disclose_voice'] === 0)) ? $data['disclose_voice'] : 0;
|
||||
$disclose_fax = (isset($data['disclose_fax']) && ($data['disclose_fax'] === 1 || $data['disclose_fax'] === 0)) ? $data['disclose_fax'] : 0;
|
||||
$disclose_email = (isset($data['disclose_email']) && ($data['disclose_email'] === 1 || $data['disclose_email'] === 0)) ? $data['disclose_email'] : 0;
|
||||
$disclose_name_int = (isset($data['disclose_name_int']) && ($data['disclose_name_int'] === 1 || $data['disclose_name_int'] === 0)) ? $data['disclose_name_int'] : 0;
|
||||
$disclose_name_loc = (isset($data['disclose_name_loc']) && ($data['disclose_name_loc'] === 1 || $data['disclose_name_loc'] === 0)) ? $data['disclose_name_loc'] : 0;
|
||||
$disclose_org_int = (isset($data['disclose_org_int']) && ($data['disclose_org_int'] === 1 || $data['disclose_org_int'] === 0)) ? $data['disclose_org_int'] : 0;
|
||||
$disclose_org_loc = (isset($data['disclose_org_loc']) && ($data['disclose_org_loc'] === 1 || $data['disclose_org_loc'] === 0)) ? $data['disclose_org_loc'] : 0;
|
||||
$disclose_addr_int = (isset($data['disclose_addr_int']) && ($data['disclose_addr_int'] === 1 || $data['disclose_addr_int'] === 0)) ? $data['disclose_addr_int'] : 0;
|
||||
$disclose_addr_loc = (isset($data['disclose_addr_loc']) && ($data['disclose_addr_loc'] === 1 || $data['disclose_addr_loc'] === 0)) ? $data['disclose_addr_loc'] : 0;
|
||||
|
||||
if ($data['nin']) {
|
||||
$nin = $data['nin'];
|
||||
$nin_type = (isset($data['isBusiness']) && $data['isBusiness'] === 1) ? 'business' : 'personal';
|
||||
|
||||
if (!preg_match('/\d/', $nin)) {
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => 'NIN should contain one or more numbers',
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
$db->beginTransaction();
|
||||
|
||||
try {
|
||||
$db->insert(
|
||||
'contact',
|
||||
[
|
||||
'identifier' => $contactID,
|
||||
'voice' => $voice,
|
||||
'voice_x' => null,
|
||||
'fax' => $fax ?? null,
|
||||
'fax_x' => null,
|
||||
'email' => $email,
|
||||
'nin' => $nin ?? null,
|
||||
'nin_type' => $nin_type ?? null,
|
||||
'clid' => $clid,
|
||||
'crid' => $clid,
|
||||
'crdate' => date('Y-m-d H:i:s'),
|
||||
'disclose_voice' => $disclose_voice,
|
||||
'disclose_fax' => $disclose_fax,
|
||||
'disclose_email' => $disclose_email
|
||||
]
|
||||
);
|
||||
$contact_id = $db->getLastInsertId();
|
||||
|
||||
$db->insert(
|
||||
'contact_postalInfo',
|
||||
[
|
||||
'contact_id' => $contact_id,
|
||||
'type' => 'int',
|
||||
'name' => $postalInfoIntName ?? null,
|
||||
'org' => $postalInfoIntOrg ?? null,
|
||||
'street1' => $postalInfoIntStreet1 ?? null,
|
||||
'street2' => $postalInfoIntStreet2 ?? null,
|
||||
'street3' => $postalInfoIntStreet3 ?? null,
|
||||
'city' => $postalInfoIntCity ?? null,
|
||||
'sp' => $postalInfoIntSp ?? null,
|
||||
'pc' => $postalInfoIntPc ?? null,
|
||||
'cc' => $postalInfoIntCc ?? null,
|
||||
'disclose_name_int' => $disclose_name_int,
|
||||
'disclose_org_int' => $disclose_org_int,
|
||||
'disclose_addr_int' => $disclose_addr_int
|
||||
]
|
||||
);
|
||||
|
||||
if ($postalInfoLocName) {
|
||||
$db->insert(
|
||||
'contact_postalInfo',
|
||||
[
|
||||
'contact_id' => $contact_id,
|
||||
'type' => 'loc',
|
||||
'name' => $postalInfoLocName ?? null,
|
||||
'org' => $postalInfoLocOrg ?? null,
|
||||
'street1' => $postalInfoLocStreet1 ?? null,
|
||||
'street2' => $postalInfoLocStreet2 ?? null,
|
||||
'street3' => $postalInfoLocStreet3 ?? null,
|
||||
'city' => $postalInfoLocCity ?? null,
|
||||
'sp' => $postalInfoLocSp ?? null,
|
||||
'pc' => $postalInfoLocPc ?? null,
|
||||
'cc' => $postalInfoLocCc ?? null,
|
||||
'disclose_name_loc' => $disclose_name_loc,
|
||||
'disclose_org_loc' => $disclose_org_loc,
|
||||
'disclose_addr_loc' => $disclose_addr_loc
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$db->insert(
|
||||
'contact_authInfo',
|
||||
[
|
||||
'contact_id' => $contact_id,
|
||||
'authtype' => 'pw',
|
||||
'authinfo' => $authInfo_pw
|
||||
]
|
||||
);
|
||||
|
||||
$db->insert(
|
||||
'contact_status',
|
||||
[
|
||||
'contact_id' => $contact_id,
|
||||
'status' => 'ok'
|
||||
]
|
||||
);
|
||||
|
||||
$db->commit();
|
||||
} catch (Exception $e) {
|
||||
$db->rollBack();
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'error' => $e->getMessage(),
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries
|
||||
]);
|
||||
}
|
||||
|
||||
$crdate = $db->selectValue(
|
||||
"SELECT crdate FROM contact WHERE id = ? LIMIT 1",
|
||||
[$contact_id]
|
||||
);
|
||||
|
||||
return view($response, 'admin/contacts/create.twig', [
|
||||
'contactID' => $contactID,
|
||||
'crdate' => $crdate,
|
||||
'registrars' => $registrars,
|
||||
'countries' => $countries
|
||||
]);
|
||||
}
|
||||
|
||||
$iso3166 = new ISO3166();
|
||||
$db = $this->container->get('db');
|
||||
$countries = $iso3166->all();
|
||||
|
|
|
@ -24,9 +24,35 @@
|
|||
<div class="page-body">
|
||||
<div class="container-xl">
|
||||
<div class="col-12">
|
||||
{% if contactID is defined and crdate is defined %}
|
||||
<div class="alert alert-important alert-success alert-dismissible" role="alert">
|
||||
<div class="d-flex">
|
||||
<div>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l5 5l10 -10" /></svg>
|
||||
</div>
|
||||
<div>
|
||||
{{ __('Contact') }} <strong>{{ contactID }}</strong> {{ __('has been created successfully on') }} <strong>{{ crdate|date("Y-m-d H:i:s") }}!</strong>
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
|
||||
</div>
|
||||
{% elseif error is defined %}
|
||||
<div class="alert alert-important alert-danger alert-dismissible" role="alert">
|
||||
<div class="d-flex">
|
||||
<div>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /><path d="M12 8v4" /><path d="M12 16h.01" /></svg>
|
||||
</div>
|
||||
<div>
|
||||
{{ __('Contact') }} <strong>{{ contactID }}</strong> {{ __('can not be created') }}: <strong>{{ error }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
<a class="btn-close" data-bs-dismiss="alert" aria-label="close"></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form action="/your_endpoint" method="post">
|
||||
<form action="/contact/create" method="post">
|
||||
{{ csrf.field | raw }}
|
||||
<div class="row">
|
||||
<!-- First Column: General & Internationalized Info -->
|
||||
<div class="col-md-6">
|
||||
|
@ -107,6 +133,12 @@
|
|||
<!-- Second Column: Voice, Fax, Email, and other details -->
|
||||
<div class="col-md-6">
|
||||
<h6 class="mb-3">Contact Details</h6>
|
||||
|
||||
<!-- Contact ID -->
|
||||
<div class="mb-3">
|
||||
<label for="contactid" class="form-label required">Contact ID</label>
|
||||
<input type="text" class="form-control" id="contactid" name="contactid" required="required">
|
||||
</div>
|
||||
|
||||
<!-- Voice -->
|
||||
<div class="mb-3">
|
||||
|
|
Loading…
Add table
Reference in a new issue