Fix admin routing and Playwright smoke checks
TaxBaik CI/CD / build-and-deploy (push) Successful in 5m22s
TaxBaik CI/CD / build-and-deploy (push) Successful in 5m22s
This commit is contained in:
@@ -42,6 +42,11 @@
|
||||
if (!document.documentElement.classList.contains('admin-login-route')) {
|
||||
var loadingOverlay = document.getElementById('blazor-loading');
|
||||
if (loadingOverlay) loadingOverlay.classList.add('show');
|
||||
window.setTimeout(function () {
|
||||
if (window.taxbaikAdminSession && typeof window.taxbaikAdminSession.hideLoading === 'function') {
|
||||
window.taxbaikAdminSession.hideLoading();
|
||||
}
|
||||
}, 8000);
|
||||
}
|
||||
</script>
|
||||
<MudThemeProvider @bind-IsDarkMode="isDarkMode" Theme="mudTheme" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@page "/announcements/create"
|
||||
@page "/announcements/{Id:int}/edit"
|
||||
@page "/admin/announcements/create"
|
||||
@page "/admin/announcements/{Id:int}/edit"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Application.DTOs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/announcements"
|
||||
@page "/admin/announcements"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Web.Services
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/blog/create"
|
||||
@page "/admin/blog/create"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Application.DTOs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/blog/{id:int}/edit"
|
||||
@page "/admin/blog/{id:int}/edit"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Application.DTOs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/blog"
|
||||
@page "/admin/blog"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@inject IBlogBrowserClient BlogClient
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/clients/{ClientId:int}"
|
||||
@page "/admin/clients/{ClientId:int}"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Web.Services
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@page "/clients/create"
|
||||
@page "/clients/{Id:int}/edit"
|
||||
@page "/admin/clients/create"
|
||||
@page "/admin/clients/{Id:int}/edit"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Application.DTOs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/clients"
|
||||
@page "/admin/clients"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Web.Services
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/common-codes"
|
||||
@page "/admin/common-codes"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@using TaxBaik.Web.Services.AdminClients
|
||||
@using TaxBaik.Domain.Entities
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/companies/create"
|
||||
@page "/admin/companies/create"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.WasmClient.Components.Admin.Forms
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/companies/{id:int}/edit"
|
||||
@page "/admin/companies/{id:int}/edit"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.WasmClient.Components.Admin.Forms
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/companies"
|
||||
@page "/admin/companies"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@inject IApiClient ApiClient
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/consulting-activities"
|
||||
@page "/admin/consulting-activities"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@using TaxBaik.Web.Services.AdminClients
|
||||
@using TaxBaik.WasmClient.Components.Admin.Shared
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/contracts"
|
||||
@page "/admin/contracts"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@using TaxBaik.Web.Services.AdminClients
|
||||
@using TaxBaik.WasmClient.Components.Admin.Shared
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/dashboard"
|
||||
@page "/admin/dashboard"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Web.Services
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@page "/faqs/create"
|
||||
@page "/faqs/{Id:int}/edit"
|
||||
@page "/admin/faqs/create"
|
||||
@page "/admin/faqs/{Id:int}/edit"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Web.Services
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/faqs"
|
||||
@page "/admin/faqs"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Web.Services
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page "/inquiries/create"
|
||||
@page "/admin/inquiries/create"
|
||||
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: true))
|
||||
@attribute [Authorize]
|
||||
@using TaxBaik.Application.DTOs
|
||||
|
||||
@@ -105,6 +105,7 @@ public class ApiClient : IApiClient
|
||||
private Uri BuildApiUri(string endpoint)
|
||||
{
|
||||
var relative = $"api/{endpoint.TrimStart('/')}";
|
||||
return new Uri(new Uri(_navigationManager.BaseUri), relative);
|
||||
var appRoot = new Uri(_navigationManager.BaseUri);
|
||||
return new Uri(appRoot, $"/taxbaik/{relative}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,10 +29,9 @@
|
||||
|
||||
<button type="submit"
|
||||
id="admin-login-submit"
|
||||
disabled="@(!isReady)"
|
||||
class="mud-button-root mud-button mud-button-filled mud-button-filled-primary mud-elevation-0"
|
||||
style="width: 100%; min-height: 52px; border: 0; border-radius: 4px; color: white;">
|
||||
<span>@(isReady ? "로그인" : "준비 중...")</span>
|
||||
<span>로그인</span>
|
||||
</button>
|
||||
</form>
|
||||
</MudPaper>
|
||||
@@ -41,7 +40,6 @@
|
||||
@code {
|
||||
private string rememberedUsername = "";
|
||||
private bool isRememberChecked = false;
|
||||
private bool isReady;
|
||||
private const string RememberedUsernameKey = "admin-remembered-username";
|
||||
private const string RememberedCheckboxKey = "admin-remember-checkbox";
|
||||
|
||||
@@ -73,11 +71,6 @@
|
||||
{
|
||||
// Login UI must remain visible even if JS binding fails.
|
||||
}
|
||||
finally
|
||||
{
|
||||
isReady = true;
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,9 @@ builder.Services.AddMudServices(config =>
|
||||
config.PopoverOptions.ThrowOnDuplicateProvider = false;
|
||||
});
|
||||
|
||||
// API Base Url 동적 구성 (호스트 기준 /taxbaik/api/)
|
||||
var apiBaseUrl = builder.HostEnvironment.BaseAddress.TrimEnd('/') + "/taxbaik/api/";
|
||||
// API Base Url: Admin SPA is hosted under /taxbaik/admin/, while APIs live under /taxbaik/api/.
|
||||
var hostBase = new Uri(builder.HostEnvironment.BaseAddress);
|
||||
var apiBaseUrl = new Uri(hostBase, "/taxbaik/api/").ToString();
|
||||
|
||||
// HTTP Client for API (with automatic token refresh)
|
||||
builder.Services.AddScoped<ITokenStore, TokenStore>();
|
||||
|
||||
@@ -105,6 +105,7 @@ public class ApiClient : IApiClient
|
||||
private Uri BuildApiUri(string endpoint)
|
||||
{
|
||||
var relative = $"api/{endpoint.TrimStart('/')}";
|
||||
return new Uri(new Uri(_navigationManager.BaseUri), relative);
|
||||
var appRoot = new Uri(_navigationManager.BaseUri);
|
||||
return new Uri(appRoot, $"/taxbaik/{relative}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,12 @@
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Debug 환경에서 .pdb 파일 요청 차단
|
||||
// (blazor.boot.json이 없을 때 발생하는 해시 불일치 문제 방지)
|
||||
window.taxbaikBlockPdb = true;
|
||||
</script>
|
||||
|
||||
<div id="components-reconnect-modal" class="admin-reconnect-modal">
|
||||
<div class="admin-reconnect-card">
|
||||
<strong>연결 재설정 중...</strong>
|
||||
|
||||
Reference in New Issue
Block a user