Files
arrr-erp/app/modules/domain_management/templates/domain_management/tenant_subdomains.html
T
2026-06-20 15:01:44 +05:30

91 lines
5.0 KiB
HTML

{% extends "ui/templates/base/layout.html" %}
{% block content %}
<div class="space-y-6">
<div class="flex flex-col gap-3 md:flex-row md:items-end md:justify-between">
<div>
<h1 class="text-2xl font-semibold text-slate-900">Tenant Subdomains</h1>
<p class="mt-1 text-sm text-slate-500">Create audit firm platform subdomains like <strong>auditfirm.filingabc.com</strong>. This uses your existing domain_mappings table.</p>
</div>
<a href="/domains" class="rounded-xl border px-4 py-2 text-sm text-slate-700">Back to Domains</a>
</div>
{% if errors %}
<div class="rounded-2xl border border-rose-200 bg-rose-50 p-4 text-sm text-rose-800">
<div class="font-semibold">Please fix the following:</div>
<ul class="mt-2 list-disc pl-5">{% for e in errors %}<li>{{ e }}</li>{% endfor %}</ul>
</div>
{% endif %}
{% if message %}<div class="rounded-2xl border border-amber-200 bg-amber-50 p-4 text-sm text-amber-800">{{ message }}</div>{% endif %}
<form method="get" class="rounded-2xl border bg-white p-4 shadow-soft">
<div class="grid grid-cols-1 gap-3 md:grid-cols-4">
<label class="grid gap-1 md:col-span-2">
<span class="text-xs font-medium uppercase tracking-wide text-slate-500">Platform base domain</span>
<input class="rounded-xl border px-3 py-2 text-sm" name="base_domain" value="{{ base_domain }}" placeholder="filingabc.com" />
</label>
<div class="flex items-end"><button class="rounded-xl bg-slate-800 px-4 py-2 text-sm font-medium text-white">Refresh Suggestions</button></div>
</div>
<p class="mt-3 text-xs text-slate-500">For local testing you can use <code>filingabc.local</code>. For production use <code>filingabc.com</code> and configure wildcard DNS/SSL for <code>*.filingabc.com</code>.</p>
</form>
<div class="rounded-2xl border bg-white p-4 shadow-soft">
<h2 class="text-lg font-semibold text-slate-900">Audit firm subdomain candidates</h2>
<div class="mt-4 overflow-hidden rounded-xl border">
<table class="w-full text-sm">
<thead class="bg-slate-50 text-slate-600">
<tr>
<th class="p-3 text-left">Audit Firm</th>
<th class="p-3 text-left">Suggested Subdomain</th>
<th class="p-3 text-left">Current Status</th>
<th class="p-3 text-left">Action</th>
</tr>
</thead>
<tbody>
{% for item in candidates %}
{% set tenant = item.tenant %}
{% set mapping = item.mapping %}
<tr class="border-t align-top">
<td class="p-3">
<div class="font-semibold text-slate-900">{{ tenant.display_name or tenant.name }}</div>
<div class="text-xs text-slate-500">Code: {{ tenant.code }} · ID: {{ tenant.id }}</div>
</td>
<td class="p-3">
<code class="rounded-lg bg-slate-100 px-2 py-1 text-xs">{{ item.domain_name }}</code>
</td>
<td class="p-3">
{% if mapping %}
<div><span class="rounded-full bg-emerald-50 px-2.5 py-1 text-xs font-medium text-emerald-700">Created</span></div>
<div class="mt-2 text-xs text-slate-500">{{ mapping.status|title }}{% if mapping.is_verified %} · Verified{% else %} · Pending verification{% endif %}</div>
{% else %}
<span class="rounded-full bg-slate-100 px-2.5 py-1 text-xs font-medium text-slate-700">Not created</span>
{% endif %}
</td>
<td class="p-3">
{% if mapping %}
<a href="/domains/{{ mapping.id }}" class="rounded-xl border px-3 py-2 text-xs font-medium text-slate-700">Open Mapping</a>
{% else %}
<form method="post" action="/domains/tenant-subdomains/create" class="space-y-2">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}" />
<input type="hidden" name="tenant_id" value="{{ tenant.id }}" />
<input type="hidden" name="base_domain" value="{{ base_domain }}" />
<label class="flex items-center gap-2 text-xs text-slate-600"><input type="checkbox" name="mark_verified_active" checked /> Mark active/verified</label>
<button class="rounded-xl bg-slate-900 px-3 py-2 text-xs font-medium text-white">Create Subdomain</button>
</form>
{% endif %}
</td>
</tr>
{% else %}
<tr><td colspan="4" class="p-8 text-center text-slate-500">No audit firms found.</td></tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div class="rounded-2xl border border-blue-100 bg-blue-50 p-4 text-sm text-blue-900">
<div class="font-semibold">Deployment note</div>
<p class="mt-1">This phase creates and resolves tenant subdomain mappings in the ERP. DNS/SSL is still deployment-level: point <code>*.{{ base_domain }}</code> to your server and configure wildcard SSL in Coolify/Caddy/Traefik/Nginx as applicable.</p>
</div>
</div>
{% endblock %}