feat(config): add configurable max accounts limit (#156)

Adds `maxAccounts` configuration parameter to control the maximum number of Google accounts.

**Changes:**
- New config field `maxAccounts` (default: 10, range: 1-100)
- Settings page: slider control for adjusting limit
- Accounts page: counter badge (e.g., "8/10") with visual feedback
- Add button disabled when limit reached
- Server-side validation on account creation

**Breaking Changes:** None
This commit is contained in:
jgor20
2026-01-20 20:34:57 +00:00
committed by GitHub
parent 11f135ef32
commit e51e3ff56a
10 changed files with 76 additions and 4 deletions

View File

@@ -13,6 +13,7 @@ document.addEventListener('alpine:init', () => {
modelConfig: {}, // Model metadata (hidden, pinned, alias)
quotaRows: [], // Filtered view
usageHistory: {}, // Usage statistics history (from /account-limits?includeHistory=true)
maxAccounts: 10, // Maximum number of accounts allowed (from config)
loading: false,
initialLoad: true, // Track first load for skeleton screen
connectionStatus: 'connecting',
@@ -135,6 +136,24 @@ document.addEventListener('alpine:init', () => {
}
},
async fetchVersion(password) {
try {
const { response } = await window.utils.request('/api/config', {}, password);
if (response.ok) {
const data = await response.json();
if (data.version) {
Alpine.store('global').version = data.version;
}
// Store maxAccounts from config
if (data.config && typeof data.config.maxAccounts === 'number') {
this.maxAccounts = data.config.maxAccounts;
}
}
} catch (error) {
console.warn('Failed to fetch version:', error);
}
},
async performHealthCheck() {
try {
// Get password from global store