Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
276f4214a7 | ||
|
|
a8ed87faa9 | ||
|
|
1bc768151a |
+1
-1
@@ -34,7 +34,7 @@ logger = logging.getLogger(__name__)
|
|||||||
app = FastAPI(
|
app = FastAPI(
|
||||||
title="NetBird MSP Appliance",
|
title="NetBird MSP Appliance",
|
||||||
description="Multi-tenant NetBird management platform for MSPs",
|
description="Multi-tenant NetBird management platform for MSPs",
|
||||||
version="1.4.1",
|
version="1.4.2",
|
||||||
docs_url="/api/docs",
|
docs_url="/api/docs",
|
||||||
redoc_url="/api/redoc",
|
redoc_url="/api/redoc",
|
||||||
openapi_url="/api/openapi.json",
|
openapi_url="/api/openapi.json",
|
||||||
|
|||||||
@@ -288,6 +288,10 @@ async def get_customer_netbird_updates(
|
|||||||
settings = result["settings"]
|
settings = result["settings"]
|
||||||
return {
|
return {
|
||||||
"has_token": True,
|
"has_token": True,
|
||||||
|
"token_renewed_at": (
|
||||||
|
deployment.netbird_api_token_renewed_at.isoformat()
|
||||||
|
if deployment.netbird_api_token_renewed_at else None
|
||||||
|
),
|
||||||
"version": settings.get("auto_update_version", "disabled"),
|
"version": settings.get("auto_update_version", "disabled"),
|
||||||
"always": bool(settings.get("auto_update_always", False)),
|
"always": bool(settings.get("auto_update_always", False)),
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-1
@@ -605,7 +605,17 @@ async function loadCustomerNetbirdUpdates(id, hasToken) {
|
|||||||
try {
|
try {
|
||||||
const data = await api('GET', `/customers/${id}/netbird-updates`);
|
const data = await api('GET', `/customers/${id}/netbird-updates`);
|
||||||
const isCustom = data.version && data.version !== 'disabled' && data.version !== 'latest';
|
const isCustom = data.version && data.version !== 'disabled' && data.version !== 'latest';
|
||||||
|
|
||||||
|
let tokenInfoHtml = '';
|
||||||
|
if (data.token_renewed_at) {
|
||||||
|
const renewedDate = new Date(data.token_renewed_at);
|
||||||
|
const expiresDate = new Date(renewedDate);
|
||||||
|
expiresDate.setDate(expiresDate.getDate() + 365);
|
||||||
|
tokenInfoHtml = `<div class="small text-muted mb-2">${t('customer.nbuTokenRenewed', { date: renewedDate.toLocaleDateString() })} · ${t('customer.nbuTokenExpires', { date: expiresDate.toLocaleDateString() })}</div>`;
|
||||||
|
}
|
||||||
|
|
||||||
container.innerHTML = `
|
container.innerHTML = `
|
||||||
|
${tokenInfoHtml}
|
||||||
<div class="row g-2 align-items-end">
|
<div class="row g-2 align-items-end">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<label class="form-label small mb-1">${t('customer.nbuVersion')}</label>
|
<label class="form-label small mb-1">${t('customer.nbuVersion')}</label>
|
||||||
@@ -625,12 +635,27 @@ async function loadCustomerNetbirdUpdates(id, hasToken) {
|
|||||||
<button class="btn btn-outline-secondary btn-sm" onclick="syncCustomerNetbirdFromMaster(${id})">${t('customer.nbuSyncMaster')}</button>
|
<button class="btn btn-outline-secondary btn-sm" onclick="syncCustomerNetbirdFromMaster(${id})">${t('customer.nbuSyncMaster')}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="nbu-result" class="small mt-2"></div>`;
|
<div id="nbu-result" class="small mt-2"></div>
|
||||||
|
<div class="mt-2">
|
||||||
|
<a href="#" class="small" onclick="event.preventDefault(); showChangeNetbirdToken(${id})">${t('customer.nbuChangeToken')}</a>
|
||||||
|
</div>
|
||||||
|
<div id="nbu-change-token-area" class="mt-2 d-none"></div>`;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
container.innerHTML = `<div class="alert alert-warning py-2 small mb-0">${esc(err.message)}</div>`;
|
container.innerHTML = `<div class="alert alert-warning py-2 small mb-0">${esc(err.message)}</div>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showChangeNetbirdToken(id) {
|
||||||
|
const area = document.getElementById('nbu-change-token-area');
|
||||||
|
area.classList.remove('d-none');
|
||||||
|
area.innerHTML = `
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<input type="text" class="form-control" id="nbu-token-input" placeholder="${t('customer.nbuTokenPlaceholder')}">
|
||||||
|
<button class="btn btn-outline-primary" onclick="saveCustomerNetbirdToken(${id})">${t('customer.nbuSaveToken')}</button>
|
||||||
|
</div>
|
||||||
|
<div id="nbu-token-result" class="small mt-1"></div>`;
|
||||||
|
}
|
||||||
|
|
||||||
async function saveCustomerNetbirdToken(id) {
|
async function saveCustomerNetbirdToken(id) {
|
||||||
const input = document.getElementById('nbu-token-input');
|
const input = document.getElementById('nbu-token-input');
|
||||||
const resultEl = document.getElementById('nbu-token-result');
|
const resultEl = document.getElementById('nbu-token-result');
|
||||||
|
|||||||
@@ -97,6 +97,9 @@
|
|||||||
"nbuTokenPlaceholder": "Personal Access Token einfügen…",
|
"nbuTokenPlaceholder": "Personal Access Token einfügen…",
|
||||||
"nbuSaveToken": "Prüfen & Speichern",
|
"nbuSaveToken": "Prüfen & Speichern",
|
||||||
"nbuTokenSaved": "Token gespeichert.",
|
"nbuTokenSaved": "Token gespeichert.",
|
||||||
|
"nbuChangeToken": "Token ändern",
|
||||||
|
"nbuTokenRenewed": "Token erneuert am {date}",
|
||||||
|
"nbuTokenExpires": "gültig bis {date}",
|
||||||
"nbuVersion": "Client-Version",
|
"nbuVersion": "Client-Version",
|
||||||
"nbuDisabled": "Deaktiviert",
|
"nbuDisabled": "Deaktiviert",
|
||||||
"nbuLatest": "Neueste Version",
|
"nbuLatest": "Neueste Version",
|
||||||
|
|||||||
@@ -97,6 +97,9 @@
|
|||||||
"nbuTokenPlaceholder": "Paste Personal Access Token…",
|
"nbuTokenPlaceholder": "Paste Personal Access Token…",
|
||||||
"nbuSaveToken": "Verify & Save",
|
"nbuSaveToken": "Verify & Save",
|
||||||
"nbuTokenSaved": "Token saved.",
|
"nbuTokenSaved": "Token saved.",
|
||||||
|
"nbuChangeToken": "Change token",
|
||||||
|
"nbuTokenRenewed": "Token renewed on {date}",
|
||||||
|
"nbuTokenExpires": "valid until {date}",
|
||||||
"nbuVersion": "Client version",
|
"nbuVersion": "Client version",
|
||||||
"nbuDisabled": "Disabled",
|
"nbuDisabled": "Disabled",
|
||||||
"nbuLatest": "Latest version",
|
"nbuLatest": "Latest version",
|
||||||
|
|||||||
Reference in New Issue
Block a user