update payment plan settings

This commit is contained in:
2025-06-24 14:35:34 +02:00
parent 4678022c7b
commit a9a61c98f5
3 changed files with 92 additions and 28 deletions

View File

@@ -192,7 +192,7 @@
<td>{{ instance.rooms_count }}</td>
<td>{{ instance.conversations_count }}</td>
<td>{{ "%.1f"|format(instance.data_size) }} GB</td>
<td>{{ instance.payment_plan }}</td>
<td id="payment-plan-{{ instance.id }}">{{ instance.payment_plan }}</td>
<td>
<a href="{{ instance.main_url }}"
target="_blank"
@@ -2490,5 +2490,50 @@ function validateStep6() {
return true;
}
document.addEventListener('DOMContentLoaded', function() {
// For each instance row, fetch the payment plan from the instance API
document.querySelectorAll('[data-instance-id]').forEach(function(badge) {
const instanceId = badge.getAttribute('data-instance-id');
const token = badge.getAttribute('data-token');
const row = badge.closest('tr');
const urlCell = row.querySelector('td:nth-child(7) a');
const paymentPlanCell = document.getElementById('payment-plan-' + instanceId);
if (!urlCell || !token || !paymentPlanCell) return;
const instanceUrl = urlCell.getAttribute('href');
// Get management token
fetch(instanceUrl.replace(/\/$/, '') + '/api/admin/management-token', {
method: 'POST',
headers: {
'X-API-Key': token,
'Accept': 'application/json'
}
})
.then(res => res.json())
.then(data => {
if (!data.token) throw new Error('No management token');
// Fetch version info (which includes pricing_tier_name)
return fetch(instanceUrl.replace(/\/$/, '') + '/api/admin/version-info', {
headers: {
'Authorization': 'Bearer ' + data.token,
'Accept': 'application/json'
}
});
})
.then(res => res.json())
.then(data => {
if (data.pricing_tier_name) {
paymentPlanCell.textContent = data.pricing_tier_name;
} else {
paymentPlanCell.textContent = 'Unknown';
}
})
.catch(err => {
paymentPlanCell.textContent = 'Unknown';
});
});
});
</script>
{% endblock %}