mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-07-03 14:05:26 +02:00
943c3db61d
## Summary - Refactors the admin interface into focused views and simplifies the header (removes noisy status labels; hides managed-source labels where appropriate). - Fixes Claude runtime settings handling, reduces Z.ai base URL leakage in the admin UI, and streamlines API startup logging. - Updates configuration and catalog behavior (including `.env.example` / README), and expands automated tests around admin, app lifespan, and config/registry behavior. ## Test plan - [ ] `uv run ruff format`, `uv run ruff check`, `uv run ty check`, `uv run pytest` - [ ] Smoke the admin UI: navigation between views, settings save/load, no sensitive URL leakage in the UI - [ ] Confirm API startup logs are readable and not overly verbose in normal operation
81 lines
2.6 KiB
HTML
81 lines
2.6 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Free Claude Code Admin</title>
|
|
<link rel="icon" href="data:," />
|
|
<link rel="stylesheet" href="/admin/assets/admin.css" />
|
|
</head>
|
|
<body>
|
|
<div class="app-shell">
|
|
<aside class="sidebar">
|
|
<div class="brand">
|
|
<div class="brand-mark">FC</div>
|
|
<div>
|
|
<h1>Free Claude Code</h1>
|
|
<p>Server Control</p>
|
|
</div>
|
|
</div>
|
|
<nav id="sectionNav" class="section-nav" aria-label="Admin views"></nav>
|
|
</aside>
|
|
|
|
<main class="main">
|
|
<header class="topbar">
|
|
<div>
|
|
<h2 id="pageTitle">Providers</h2>
|
|
</div>
|
|
</header>
|
|
|
|
<div id="adminViews" class="admin-views">
|
|
<section id="view-providers" class="admin-view active" data-view="providers">
|
|
<section class="provider-strip" aria-label="Provider status">
|
|
<div class="strip-header">
|
|
<h3>Providers</h3>
|
|
<button id="refreshLocal" class="ghost-button" type="button">
|
|
Check local
|
|
</button>
|
|
</div>
|
|
<div id="providerGrid" class="provider-grid"></div>
|
|
</section>
|
|
<div
|
|
id="providersSections"
|
|
class="form-sections"
|
|
aria-label="Provider configuration"
|
|
></div>
|
|
</section>
|
|
|
|
<section id="view-model_config" class="admin-view" data-view="model_config" hidden>
|
|
<div
|
|
id="modelConfigSections"
|
|
class="form-sections"
|
|
aria-label="Model configuration"
|
|
></div>
|
|
</section>
|
|
|
|
<section id="view-messaging" class="admin-view" data-view="messaging" hidden>
|
|
<div
|
|
id="messagingSections"
|
|
class="form-sections"
|
|
aria-label="Messaging configuration"
|
|
></div>
|
|
</section>
|
|
</div>
|
|
</main>
|
|
|
|
<footer class="action-bar">
|
|
<div class="action-meta">
|
|
<strong id="dirtyState">No changes</strong>
|
|
<span id="configPath"></span>
|
|
</div>
|
|
<div id="messageArea" class="message-area"></div>
|
|
<div class="action-buttons">
|
|
<button id="validateButton" class="secondary-button" type="button">Validate</button>
|
|
<button id="applyButton" class="primary-button" type="button" disabled>Apply</button>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
<script src="/admin/assets/admin.js"></script>
|
|
</body>
|
|
</html>
|