| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- @page
- @using Domain.Entities.Developers.ValueObject
- @model Admin.Pages.Developers.Apps.IndexModel
- @{
- ViewData["Title"] = "개발자 앱 관리";
- }
- <div class="container-fluid">
- <h3>@ViewData["Title"]</h3>
- <hr />
- <partial name="_StatusMessage" />
- <form id="fAdminSearch" method="get">
- <div class="row g-2 align-items-end">
- <div class="col-6 col-sm-auto">
- <select name="status" id="status" class="form-select">
- <option value="">상태 전체</option>
- <option value="@((int)ApplicationStatus.Pending)" selected="@(Model.Query.Status == ApplicationStatus.Pending)">대기</option>
- <option value="@((int)ApplicationStatus.Active)" selected="@(Model.Query.Status == ApplicationStatus.Active)">활성</option>
- <option value="@((int)ApplicationStatus.Suspended)" selected="@(Model.Query.Status == ApplicationStatus.Suspended)">정지</option>
- <option value="@((int)ApplicationStatus.Rejected)" selected="@(Model.Query.Status == ApplicationStatus.Rejected)">거부</option>
- </select>
- </div>
- <div class="col-12 col-sm col-md col-lg-auto">
- <input type="text" name="keyword" class="form-control" maxlength="100" value="@Model.Query.Keyword" placeholder="앱 이름/설명" />
- </div>
- <div class="col-12 col-lg-auto">
- <button type="submit" class="btn btn-primary">검색</button>
- </div>
- </div>
- </form>
- <hr />
- <form id="fAdminList" method="post">
- <div class="row g-2 align-items-end mb-2">
- <div class="col">Total: @Model.Total.ToString("N0")</div>
- <div class="col-auto">
- <button type="submit" asp-page-handler="Approve" class="btn btn-success">선택 승인</button>
- <button type="submit" asp-page-handler="Suspend" class="btn btn-warning">선택 정지</button>
- </div>
- </div>
- <div class="table-responsive">
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <th style="width:40px"><input type="checkbox" id="checkedAll" class="form-check-input" /></th>
- <th>ID</th>
- <th>앱 이름</th>
- <th>소유자</th>
- <th>Cred</th>
- <th>상태</th>
- <th>생성일</th>
- <th>승인일</th>
- </tr>
- </thead>
- <tbody>
- @if (Model.List.Count <= 0)
- {
- <tr>
- <td colspan="8" class="text-center text-muted py-4">No Data.</td>
- </tr>
- }
- else
- {
- @foreach (var row in Model.List)
- {
- <tr>
- <td><input type="checkbox" name="ids" value="@row.ID" class="form-check-input"/></td>
- <td>@row.ID</td>
- <td><a asp-page="/Developers/Apps/Detail" asp-route-id="@row.ID">@row.Name</a></td>
- <td>@row.OwnerEmail (@(row.OwnerName ?? "-"))</td>
- <td>@row.CredentialCount</td>
- <td>@row.Status</td>
- <td>@row.CreatedAt.ToString("yyyy-MM-dd")</td>
- <td>@(row.ApprovedAt?.ToString("yyyy-MM-dd") ?? "-")</td>
- </tr>
- }
- }
- </tbody>
- </table>
- </div>
- @if (Model.Pagination != null)
- {
- <partial name="_Pagination" model="Model.Pagination" />
- }
- </form>
- </div>
- <script>
- document.getElementById('checkedAll')?.addEventListener('change', function() {
- document.querySelectorAll('input[name="ids"]').forEach(c => c.checked = this.checked);
- });
- </script>
|