refactor admin UX and stabilize shell
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m20s

This commit is contained in:
2026-07-09 00:03:33 +09:00
parent a2f94e2b5e
commit 89fa51efe2
91 changed files with 1633 additions and 1030 deletions
+22 -11
View File
@@ -3,16 +3,27 @@
@{
ViewData["Title"] = "관리자 로그인";
ViewData["Description"] = "관리자 로그인 페이지입니다.";
ViewData["CanonicalUrl"] = $"{Request.Scheme}://{Request.Host}/taxbaik/admin/login";
ViewData["CanonicalUrl"] = $"{Request.Scheme}://{Request.Host}/admin/login";
}
<section class="container py-5" style="max-width: 560px;">
<div class="card shadow-sm border-0">
<section class="admin-login-shell">
<div class="admin-login-hero">
<p class="admin-login-kicker">TaxBaik Admin</p>
<h1>관리자 로그인</h1>
<p>로그인 후 대시보드, 문의 처리, 콘텐츠 운영 화면으로 바로 이동합니다.</p>
</div>
<div class="card shadow-sm border-0 admin-login-card">
<div class="card-body p-4 p-md-5">
<div class="mb-4">
<p class="text-uppercase text-muted small mb-1">TaxBaik Admin</p>
<h1 class="h3 fw-bold mb-2">관리자 로그인</h1>
<p class="text-muted mb-0">로그인 후 대시보드와 관리자 기능을 이용할 수 있습니다.</p>
<div class="admin-login-summary mb-4">
<div>
<p class="text-uppercase text-muted small mb-1">현재 화면</p>
<strong>로그인</strong>
</div>
<div>
<p class="text-uppercase text-muted small mb-1">진입 후</p>
<strong>대시보드 자동 이동</strong>
</div>
</div>
@if (!string.IsNullOrWhiteSpace(Model.ErrorMessage))
@@ -20,7 +31,7 @@
<div class="alert alert-danger" role="alert">@Model.ErrorMessage</div>
}
<form id="admin-login-form" method="post" class="vstack gap-3">
<form id="admin-login-form" method="post" class="vstack gap-3 admin-login-form">
@Html.AntiForgeryToken()
<input type="hidden" id="ReturnUrl" name="ReturnUrl" value="@Model.ReturnUrl" />
@@ -37,7 +48,7 @@
</div>
<div class="form-check">
<input class="form-check-input" id="RememberMe" name="RememberMe" type="checkbox" value="true" checked="@(Model.RememberMe ? "checked" : null)" />
<input class="form-check-input" id="RememberMe" name="RememberMe" type="checkbox" value="true" checked="@(Model.RememberMe)" />
<label class="form-check-label" for="RememberMe">로그인 상태 유지</label>
</div>
@@ -46,8 +57,8 @@
</button>
</form>
<p class="text-muted small mt-4 mb-0">
이 페이지는 서버 렌더링 기반입니다. 로그인 성공 후 관리자 웹앱으로 이동합니다.
<p class="admin-login-footnote">
이 페이지는 서버 렌더링 기반이며, 로그인 성공 후 관리자 웹앱으로 이동합니다.
</p>
</div>
</div>
+1 -4
View File
@@ -91,11 +91,8 @@ public class LoginModel(AuthService authService) : PageModel
if (string.Equals(absolute.Host, "www.taxbaik.com", StringComparison.OrdinalIgnoreCase) ||
string.Equals(absolute.Host, "taxbaik.com", StringComparison.OrdinalIgnoreCase))
{
// PathAndQuery에서 /taxbaik 프리픽스 제거 (Nginx가 처리)
var path = absolute.PathAndQuery;
return path.StartsWith("/taxbaik/", StringComparison.OrdinalIgnoreCase)
? path.Substring("/taxbaik".Length) // "/taxbaik/admin" → "/admin"
: path;
return path;
}
}