style: Integrate search form and table into single card container
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m3s
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:
@@ -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/
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user