Files
admintemplate-mvc/Views/Security/Register3.cshtml
T
2026-07-21 09:47:16 +07:00

143 lines
9.8 KiB
Plaintext

@{
ViewData["Title"] = "Register3";
}
@section Styles {
<link rel="stylesheet" href="/css/auth3.css" asp-append-version="true" />
}
<section class="min-h-screen flex" x-data="{ loading: false, notification: { show: false, message: '' }, errors: {} }">
<div class="hidden lg:flex w-1/2 bg-gradient-to-br from-blue-700 via-blue-600 to-blue-500 items-center justify-center p-12">
<div class="max-w-md text-white">
<div class="flex items-center gap-3 mb-8">
<div class="w-14 h-14 bg-white/20 rounded-xl flex items-center justify-center backdrop-blur">
<svg class="w-8 h-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/></svg>
</div>
<div>
<div class="text-2xl font-bold text-white">EnterpriseKit</div>
<div class="text-sm text-blue-200">Enterprise Application Platform</div>
</div>
</div>
<h2 class="text-3xl font-bold leading-tight mb-4">Join the<br/>Enterprise Ecosystem</h2>
<p class="text-blue-100 leading-relaxed mb-8">Create your account to unlock powerful enterprise tools, collaborate with teams, and drive business growth across all your modules.</p>
<div class="space-y-4">
<div class="flex items-start gap-3">
<div class="w-5 h-5 rounded bg-white/20 flex items-center justify-center flex-shrink-0 mt-0.5"><svg class="w-3 h-3 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"/></svg></div>
<div><span class="font-semibold text-white text-sm">Unified Workspace</span><p class="text-xs text-blue-200 mt-0.5">Access all enterprise modules from one dashboard</p></div>
</div>
<div class="flex items-start gap-3">
<div class="w-5 h-5 rounded bg-white/20 flex items-center justify-center flex-shrink-0 mt-0.5"><svg class="w-3 h-3 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"/></svg></div>
<div><span class="font-semibold text-white text-sm">Secure & Compliant</span><p class="text-xs text-blue-200 mt-0.5">Enterprise-grade security with SSO and MFA support</p></div>
</div>
<div class="flex items-start gap-3">
<div class="w-5 h-5 rounded bg-white/20 flex items-center justify-center flex-shrink-0 mt-0.5"><svg class="w-3 h-3 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"/></svg></div>
<div><span class="font-semibold text-white text-sm">24/7 Support</span><p class="text-xs text-blue-200 mt-0.5">Dedicated support team for your enterprise needs</p></div>
</div>
</div>
<div class="mt-10 p-4 bg-white/10 backdrop-blur border border-white/20 rounded-xl">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-full bg-white/20 flex items-center justify-center flex-shrink-0">
<svg class="w-5 h-5 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
</div>
<div>
<div class="text-sm font-semibold text-white">Free 30-Day Trial</div>
<div class="text-xs text-blue-200">Explore all features with no commitment</div>
</div>
</div>
</div>
</div>
</div>
<div class="w-full lg:w-1/2 flex items-center justify-center p-6 sm:p-10 lg:p-16">
<div class="w-full max-w-md">
<div class="mb-8">
<h2 class="text-2xl font-bold text-gray-900">Create Account</h2>
<p class="text-gray-500 text-sm mt-1">Fill in the details below to get started</p>
</div>
<form @@submit.prevent="
errors = {};
if (!document.getElementById('fullname').value.trim()) { errors.fullname = true; }
if (!document.getElementById('email').value.trim()) { errors.email = true; }
if (!document.getElementById('password').value.trim()) { errors.password = true; }
if (!document.getElementById('confirmPassword').value.trim()) { errors.confirmPassword = true; }
if (Object.keys(errors).length > 0) return;
if (document.getElementById('password').value !== document.getElementById('confirmPassword').value) {
errors.confirmPassword = true;
return;
}
loading = true;
setTimeout(() => {
loading = false;
notification = { show: true, message: 'Registration successful! A confirmation email has been sent to your email address.' };
setTimeout(() => { notification.show = false; }, 5000);
}, 3000);
">
<div class="space-y-4">
<div>
<label class="form-label" for="fullname">Full Name</label>
<input class="input-field" id="fullname" type="text" placeholder="John Doe" required :class="{ 'error': errors.fullname }">
</div>
<div>
<label class="form-label" for="email">Email Address</label>
<input class="input-field" id="email" type="email" placeholder="you@@company.com" required :class="{ 'error': errors.email }">
</div>
<div>
<label class="form-label" for="password">Password</label>
<input class="input-field" id="password" type="password" placeholder="Create a strong password" required :class="{ 'error': errors.password }">
</div>
<div>
<label class="form-label" for="confirmPassword">Confirm Password</label>
<input class="input-field" id="confirmPassword" type="password" placeholder="Confirm your password" required :class="{ 'error': errors.confirmPassword }">
</div>
<div class="flex items-center gap-2">
<input class="w-4 h-4 border border-gray-300 rounded cursor-pointer accent-blue-600" id="terms" type="checkbox" required>
<label class="text-sm text-gray-600 cursor-pointer select-none" for="terms">I agree to the <a class="auth-link text-xs" href="#">Terms of Service</a> and <a class="auth-link text-xs" href="#">Privacy Policy</a></label>
</div>
<button class="btn-primary" type="submit" :disabled="loading">
<template x-if="!loading">
<span class="flex items-center gap-2">
Create Account
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13 7l5 5m0 0l-5 5m5-5H6"/></svg>
</span>
</template>
<template x-if="loading">
<span class="flex items-center gap-2">
<svg class="animate-spin w-4 h-4" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"/><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"/></svg>
Creating account...
</span>
</template>
</button>
</div>
</form>
<p class="mt-6 text-center text-sm text-gray-500">
Already have an account?
<a class="auth-link ml-1" href="login3.html">Sign in</a>
</p>
</div>
</div>
<div class="fixed top-4 right-4 z-[200] transition-all duration-300"
x-show="notification.show"
x-transition:enter="transform ease-out duration-300"
x-transition:enter-start="translate-x-full opacity-0"
x-transition:enter-end="translate-x-0 opacity-100"
x-transition:leave="transform ease-in duration-200"
x-transition:leave-start="translate-x-0 opacity-100"
x-transition:leave-end="translate-x-full opacity-0"
x-cloak>
<div class="flex items-center gap-3 bg-white border border-blue-100 shadow-lg rounded-xl px-5 py-4 min-w-[320px]">
<div class="w-8 h-8 rounded-full bg-green-100 flex items-center justify-center flex-shrink-0">
<svg class="w-4 h-4 text-green-600" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"/></svg>
</div>
<div class="flex-1">
<p class="text-sm font-semibold text-gray-900">Success</p>
<p class="text-xs text-gray-500" x-text="notification.message"></p>
</div>
<button class="text-gray-400 hover:text-gray-600" @@click="notification.show = false">
<svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/></svg>
</button>
</div>
</div>
</section>