style: Integrate search form and table into single card container
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m3s

- Consolidate filter/search form with data table in one card
- Separate with <hr class='my-0'> for visual hierarchy
- Remove redundant card-mb spacing and gaps
- Unified layout for Blog, Clients, Inquiries pages
- Cleaner, more cohesive data display

Applied to:
- Blog/Index.cshtml
- Clients/Index.cshtml
- Inquiries/Index.cshtml

Announcements and Faqs already have integrated structure (no search form)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 21:56:04 +09:00
parent 2215c8ddb5
commit 29a2d65065
4 changed files with 86 additions and 90 deletions
+1
View File
@@ -63,3 +63,4 @@ appsettings.Development.json
# Scratch / temporary work - never commit, see docs/ENGINEERING_HARNESS.md # Scratch / temporary work - never commit, see docs/ENGINEERING_HARNESS.md
.scratch/ .scratch/
tmp/
+10 -12
View File
@@ -7,8 +7,9 @@
<section class="admin-page-shell"> <section class="admin-page-shell">
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("콘텐츠", "블로그 관리", "검색, 발행 상태, 작성일 기준의 블로그 목록입니다.", "/admin/blog/create", "새 글 작성")) @await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("콘텐츠", "블로그 관리", "검색, 발행 상태, 작성일 기준의 블로그 목록입니다.", "/admin/blog/create", "새 글 작성"))
<form method="get" class="card mb-3"> <div class="card">
<div class="card-body"> <div class="card-body">
<form method="get">
<div class="row g-3 align-items-end"> <div class="row g-3 align-items-end">
<div class="col-md-6"> <div class="col-md-6">
<label class="form-label" for="SearchQuery">검색</label> <label class="form-label" for="SearchQuery">검색</label>
@@ -20,20 +21,11 @@
<a class="btn btn-outline-secondary" href="/admin/blog?showArchived=true">내린 글 보기</a> <a class="btn btn-outline-secondary" href="/admin/blog?showArchived=true">내린 글 보기</a>
</div> </div>
</div> </div>
</div>
</form> </form>
@if (Model.Items.Count == 0)
{
<div class="card">
<div class="card-body py-4">
@await Html.PartialAsync("_EmptyState", "블로그 글이 없습니다.")
</div> </div>
</div> @if (Model.Items.Count > 0)
}
else
{ {
<div class="card"> <hr class="my-0" />
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-vcenter card-table table-hover"> <table class="table table-vcenter card-table table-hover">
<thead> <thead>
@@ -67,8 +59,14 @@
</tbody> </tbody>
</table> </table>
</div> </div>
}
else
{
<div class="card-body py-4">
@await Html.PartialAsync("_EmptyState", "블로그 글이 없습니다.")
</div> </div>
} }
</div>
</section> </section>
@@ -7,8 +7,9 @@
<section class="admin-page-shell"> <section class="admin-page-shell">
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("고객 관리", "고객 목록", "검색, 상태 필터, 페이지네이션 기준의 고객 목록입니다.", "/admin/clients/create", "고객 등록")) @await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("고객 관리", "고객 목록", "검색, 상태 필터, 페이지네이션 기준의 고객 목록입니다.", "/admin/clients/create", "고객 등록"))
<form method="get" class="card mb-4"> <div class="card">
<div class="card-body"> <div class="card-body">
<form method="get">
<div class="row g-3 align-items-end"> <div class="row g-3 align-items-end">
<div class="col-md-4"> <div class="col-md-4">
<label class="form-label" for="Search">검색</label> <label class="form-label" for="Search">검색</label>
@@ -35,20 +36,11 @@
<a class="btn btn-outline-secondary" href="/admin/clients">초기화</a> <a class="btn btn-outline-secondary" href="/admin/clients">초기화</a>
</div> </div>
</div> </div>
</div>
</form> </form>
@if (Model.Items.Count == 0)
{
<div class="card">
<div class="card-body">
@await Html.PartialAsync("_EmptyState", "검색 결과가 없습니다.")
</div> </div>
</div> @if (Model.Items.Count > 0)
}
else
{ {
<div class="card"> <hr class="my-0" />
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-vcenter card-table table-hover"> <table class="table table-vcenter card-table table-hover">
<thead> <thead>
@@ -81,8 +73,14 @@
</tbody> </tbody>
</table> </table>
</div> </div>
}
else
{
<div class="card-body">
@await Html.PartialAsync("_EmptyState", "검색 결과가 없습니다.")
</div> </div>
} }
</div>
@await Html.PartialAsync("_Pagination", new TaxBaik.Web.Pages.Shared.PaginationModel(Model.CurrentPage, Model.TotalPages, Model.BuildPageUrl)) @await Html.PartialAsync("_Pagination", new TaxBaik.Web.Pages.Shared.PaginationModel(Model.CurrentPage, Model.TotalPages, Model.BuildPageUrl))
</section> </section>
@@ -4,8 +4,9 @@
<section class="admin-page-shell"> <section class="admin-page-shell">
@await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("Customer Requests", "문의 관리", "상담 요청을 상태별로 확인합니다.", "/admin/inquiries/create", "문의 등록")) @await Html.PartialAsync("_AdminPageHeader", new TaxBaik.Web.Models.AdminPageHeaderModel("Customer Requests", "문의 관리", "상담 요청을 상태별로 확인합니다.", "/admin/inquiries/create", "문의 등록"))
<form method="get" class="card mb-3"> <div class="card">
<div class="card-body"> <div class="card-body">
<form method="get">
<div class="row g-3 align-items-end"> <div class="row g-3 align-items-end">
<div class="col-md-4"> <div class="col-md-4">
<label class="form-label" for="Status">상태</label> <label class="form-label" for="Status">상태</label>
@@ -15,19 +16,11 @@
<button class="btn btn-primary" type="submit">필터</button> <button class="btn btn-primary" type="submit">필터</button>
</div> </div>
</div> </div>
</div>
</form> </form>
@if (Model.Items.Count == 0)
{
<div class="card">
<div class="card-body">
@await Html.PartialAsync("_EmptyState", "문의 목록이 없습니다.")
</div> </div>
</div> @if (Model.Items.Count > 0)
}
else
{ {
<div class="card"> <hr class="my-0" />
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-vcenter card-table table-hover"> <table class="table table-vcenter card-table table-hover">
<thead> <thead>
@@ -60,8 +53,14 @@
</tbody> </tbody>
</table> </table>
</div> </div>
}
else
{
<div class="card-body">
@await Html.PartialAsync("_EmptyState", "문의 목록이 없습니다.")
</div> </div>
} }
</div>
</section> </section>