Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions core/scripts/webpanel/assets/js/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -180,10 +180,10 @@ $(function () {
$("#userTable tbody tr.user-main-row").each(function () {
let showRow;
switch (filter) {
case "on-hold": showRow = $(this).find("td:eq(3) i").hasClass("text-warning"); break;
case "online": showRow = $(this).find("td:eq(3) i").hasClass("text-success"); break;
case "enable": showRow = $(this).find("td:eq(8) i").hasClass("text-success"); break;
case "disable": showRow = $(this).find("td:eq(8) i").hasClass("text-danger"); break;
case "on-hold": showRow = $(this).find("td.status-cell i").hasClass("text-warning"); break;
case "online": showRow = $(this).find("td.status-cell i").hasClass("text-success"); break;
case "enable": showRow = $(this).find("td.enable-cell i").hasClass("text-success"); break;
case "disable": showRow = $(this).find("td.enable-cell i").hasClass("text-danger"); break;
default: showRow = true;
}
$(this).toggle(showRow).find(".user-checkbox").prop("checked", false);
Expand Down Expand Up @@ -278,10 +278,11 @@ $(function () {
const dataRow = $(event.relatedTarget).closest("tr.user-main-row");
const url = GET_USER_URL_TEMPLATE.replace('U', user);

const trafficText = dataRow.find("td:eq(4)").text();
const expiryText = dataRow.find("td:eq(6)").text();
const trafficText = dataRow.find("td.traffic-cell").text();
const usageDaysText = dataRow.find("td.usage-days-cell").text();
const expiryText = usageDaysText.split('/')[1] || "0";
const note = dataRow.data('note');
const statusText = dataRow.find("td:eq(3)").text().trim();
const statusText = dataRow.find("td.status-cell").text().trim();

$('#editPasswordError').text('');
$('#editExpirationDaysError').text('');
Expand All @@ -298,7 +299,7 @@ $(function () {
}

$("#editNote").val(note || '');
$("#editBlocked").prop("checked", !dataRow.find("td:eq(8) i").hasClass("text-success"));
$("#editBlocked").prop("checked", !dataRow.find("td.enable-cell i").hasClass("text-success"));
$("#editUnlimitedIp").prop("checked", dataRow.find(".unlimited-ip-cell i").hasClass("text-primary"));

const passwordInput = $("#editPassword");
Expand Down
3 changes: 3 additions & 0 deletions core/scripts/webpanel/routers/user/viewmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class User(BaseModel):
expiry_date: str
expiry_days: str
day_usage: str
usage_days_display: str
enable: bool
unlimited_ip: bool
online_count: int = 0
Expand Down Expand Up @@ -88,6 +89,7 @@ def __parse_user_data(user_data: dict) -> dict:
percentage = (used_bytes / quota_bytes) * 100

traffic_used_display = f"{used_formatted}/{quota_formatted} ({percentage:.1f}%)"
usage_days_display = f"{day_usage}/{display_expiry_days}"

return {
'username': user_data['username'],
Expand All @@ -97,6 +99,7 @@ def __parse_user_data(user_data: dict) -> dict:
'expiry_date': display_expiry_date,
'expiry_days': display_expiry_days,
'day_usage': day_usage,
'usage_days_display': usage_days_display,
'enable': not user_data.get('blocked', False),
'unlimited_ip': user_data.get('unlimited_user', False),
'online_count': user_data.get('online_count', 0),
Expand Down
3 changes: 1 addition & 2 deletions core/scripts/webpanel/templates/users.html
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,8 @@ <h3 class="card-title">User List {% if total_users is defined %}(<span id="user-
<th>Username</th>
<th class="d-none d-md-table-cell">Status</th>
<th class="d-none d-md-table-cell">Traffic Usage</th>
<th class="d-none d-md-table-cell text-nowrap">Expiry Date</th>
<th class="d-none d-md-table-cell text-nowrap">Expiry Days</th>
<th class="d-none d-md-table-cell text-nowrap">Day Usage</th>
<th class="d-none d-md-table-cell text-nowrap">Expiry Date</th>
<th class="d-none d-md-table-cell">Enable</th>
<th class="d-none d-md-table-cell">Note</th>
<th class="d-none d-md-table-cell text-nowrap requires-iplimit-service" style="display: none;">Unlimited IP</th>
Expand Down
14 changes: 6 additions & 8 deletions core/scripts/webpanel/templates/users_rows.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
</td>
<td>{{ loop.index + (offset if offset is defined else 0) }}</td>
<td data-username="{{ user.username }}">{{ user.username }}</td>
<td class="d-none d-md-table-cell">
<td class="d-none d-md-table-cell status-cell">
{% if user.status == "Online" %}
<i class="fas fa-circle text-success"></i> Online
{% if user.online_count and user.online_count > 0 %}
Expand All @@ -28,11 +28,10 @@
<i class="fas fa-circle text-danger"></i> {{ user.status }}
{% endif %}
</td>
<td class="d-none d-md-table-cell">{{ user.traffic_used }}</td>
<td class="d-none d-md-table-cell">{{ user.expiry_date }}</td>
<td class="d-none d-md-table-cell">{{ user.expiry_days }}</td>
<td class="d-none d-md-table-cell">{{ user.day_usage }}</td>
<td class="d-none d-md-table-cell">
<td class="d-none d-md-table-cell traffic-cell">{{ user.traffic_used }}</td>
<td class="d-none d-md-table-cell usage-days-cell">{{ user.usage_days_display }}</td>
<td class="d-none d-md-table-cell expiry-date-cell">{{ user.expiry_date }}</td>
<td class="d-none d-md-table-cell enable-cell">
{% if user.enable %}
<i class="fas fa-check-circle text-success"></i>
{% else %}
Expand Down Expand Up @@ -100,9 +99,8 @@
</span>
</p>
<p><strong>Traffic Usage:</strong> <span>{{ user.traffic_used }}</span></p>
<p><strong>Day Usage:</strong> <span>{{ user.usage_days_display }}</span></p>
<p><strong>Expiry Date:</strong> <span>{{ user.expiry_date }}</span></p>
<p><strong>Expiry Days:</strong> <span>{{ user.expiry_days }}</span></p>
<p><strong>Day Usage:</strong> <span>{{ user.day_usage }}</span></p>
<p><strong>Note:</strong> <span>{{ user.note or 'N/A' }}</span></p>
<p><strong>Enable:</strong>
<span>
Expand Down