53 lines
1.5 KiB
Plaintext
53 lines
1.5 KiB
Plaintext
<p>
|
|
Next refresh: <time><%- nextQuotaRefresh %></time>
|
|
</p>
|
|
<table class="striped">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Model Family</th>
|
|
<th scope="col">Usage</th>
|
|
<% if (showTokenCosts) { %>
|
|
<th scope="col">Cost</th>
|
|
<% } %>
|
|
<th scope="col">Limit</th>
|
|
<th scope="col">Remaining</th>
|
|
<th scope="col" colspan="<%= showRefreshEdit ? 2 : 1 %>">Refresh Amount</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<% Object.entries(quota).forEach(([key, limit]) => { %>
|
|
<tr>
|
|
<th scope="row"><%- key %></th>
|
|
<td><%- prettyTokens(user.tokenCounts[key]) %></td>
|
|
<% if (showTokenCosts) { %>
|
|
<td>$<%- tokenCost(key, user.tokenCounts[key]).toFixed(2) %></td>
|
|
<% } %>
|
|
<% if (!user.tokenLimits[key]) { %>
|
|
<td colspan="2" style="text-align: center">unlimited</td>
|
|
<% } else { %>
|
|
<td><%- prettyTokens(user.tokenLimits[key]) %></td>
|
|
<td><%- prettyTokens(user.tokenLimits[key] - user.tokenCounts[key]) %></td>
|
|
<% } %>
|
|
<% if (user.type === "temporary") { %>
|
|
<td>N/A</td>
|
|
<% } else { %>
|
|
<td><%- prettyTokens(user.tokenRefresh[key] || quota[key]) %></td>
|
|
<% } %>
|
|
<% if (showRefreshEdit) { %>
|
|
<td class="actions">
|
|
<a
|
|
title="Edit"
|
|
id="edit-refresh"
|
|
href="#"
|
|
data-field="tokenRefresh_<%= key %>"
|
|
data-token="<%= user.token %>"
|
|
data-modelFamily="<%= key %>"
|
|
>✏️</a
|
|
>
|
|
</td>
|
|
<% } %>
|
|
</tr>
|
|
<% }) %>
|
|
</tbody>
|
|
</table>
|