Commit Graph

239 Commits

Author SHA1 Message Date
949a12cea7 perf(core): implement efficient bulk user deletion
Revamps the entire user deletion process to resolve critical performance bottlenecks that caused the web panel and database to freeze when removing multiple users.

- **Backend:** Core scripts (`kickuser.py`, `remove_user.py`) and the database layer are re-engineered to handle multiple users in a single, efficient batch operation using MongoDB's `delete_many`.
- **API:** A new `POST /api/v1/users/bulk-delete` endpoint is introduced for batch removals. The existing single-user `DELETE` endpoint is fixed to align with the new bulk logic.
- **Frontend:** The Users page now intelligently calls the bulk API when multiple users are selected, drastically improving UI responsiveness and reducing server load.
2025-09-13 16:15:41 +00:00
6ef5f6d65e fix(api): align user data with response model in user detail endpoint 2025-09-13 14:45:24 +00:00
0211251a9f feat(ui): improve sidebar logo visibility 2025-09-12 21:06:46 +00:00
f00c145f01 Remove duplicate traffic_status check 2025-09-12 09:40:41 +00:00
b9576cc3f0 feat: add MongoDB installation && Migration 2025-09-07 23:05:55 +03:30
5e43ed9aa6 Fixed the validation in the restore API endpoint 2025-09-07 00:01:13 +03:30
d5d4935f69 feat(users): Integrate real-time online status and enhance UI 2025-09-05 13:16:41 +02:00
b9b5744607 fix: add responsive design 2025-08-29 21:48:31 +03:30
6fb74362be feat(auth/ui): Redesign login page and remove next_url from login flow 2025-08-29 21:40:54 +03:30
d0ee0864f4 feat(settings): add Hysteria Settings tab with geo update support 2025-08-29 12:28:48 +03:30
e6f775d2ed fix(webpanel): relax conflict check in user viewmodel 2025-08-28 00:53:43 +03:30
18d3a1029b perf(api): optimize bulk user URI fetching in webpanel
Refactored the web panel's user link generation to resolve a major performance bottleneck. Previously, fetching links for N users would trigger N separate script executions, causing significant delays from process startup overhead.

- Introduced a new bulk API endpoint (`/api/v1/users/uri/bulk`) that accepts a list of usernames and calls the backend script only once.
- Updated the frontend JavaScript in `users.html` to use this new endpoint, replacing N parallel API calls with a single one.
- Cleaned up the `wrapper_uri.py` script for better readability and maintainability.
2025-08-27 17:22:04 +03:30
c494250f9f feat(frontend): add bulk user link export feature to users page 2025-08-27 16:43:33 +03:30
eef7342bc3 feat(webpanel): add distinct colors for user statuses 2025-08-26 00:24:27 +03:30
28062074bf refactor(core): centralize on-hold user logic in traffic.py 2025-08-26 00:14:25 +03:30
9b12a28bbb fix(webpanel): Improve user data and status handling
- Correctly handle malformed user data.
- Accurately display status for on-hold users.
2025-08-25 23:12:17 +03:30
495ed3a334 feat(frontend): implement bulk user creation UI 2025-08-21 00:14:52 +03:30
af2b599dd6 feat(api): add bulk user creation endpoint 2025-08-20 23:59:15 +03:30
8f684de732 Feat: Add online user filter to users page 2025-08-20 00:53:19 +03:30
738619b1e4 feat(ui): Redesign dashboard to display detailed server stats 2025-08-19 23:40:07 +03:30
b3595c691b feat(api): Integrate uptime and reboot traffic stats into server API 2025-08-19 23:39:01 +03:30
7587d5a4a8 feat: add extra configs management UI to settings page 2025-08-17 15:40:23 +03:30
68dde4f863 feat: add webpanel API for extra subscription configs 2025-08-17 15:39:20 +03:30
be5fe69f0b feat(web): Conditionally display IP limit UI based on service status 2025-08-13 23:06:43 +03:30
6c6576ae87 feat(web): Add unlimited IP controls to users page 2025-08-12 23:41:15 +03:30
644c43b504 refactor(api): Align user schemas with CLI output and new features 2025-08-12 23:37:11 +03:30
75033231f2 feat: Integrate unlimited IP functionality into web panel 2025-08-12 23:36:22 +03:30
68bd4f2b0a feat(frontend): make external nodes table responsive 2025-08-10 00:14:25 +03:30
6fa89e19f0 fix(ui): correctly populate edit modal for unlimited users 2025-08-08 01:34:03 +03:30
5bcbf0abb3 fix(viewmodel): prevent crash for users with no expiration date 2025-08-08 01:31:49 +03:30
133684f4fe fix: Resolve IP/domain validation 2025-08-06 15:16:27 +03:30
05993d013d feat(api): Add external node management endpoints 2025-08-06 14:45:35 +03:30
1bb5408f06 Merge pull request #218 from SeyedHashtag/original
 UI: Sticky Headers & Sides!
2025-07-09 19:20:01 +03:30
c72036b942 sidebar position is now fixed when scrolling long lists 2025-07-08 19:24:11 +03:30
237aff39c4 feat: Add sticky card-header with bokeh effect for improved UI 2025-07-08 18:07:59 +03:30
66bbf6db56 feat: add Enter key functionality to submit login form 2025-07-08 12:48:00 +03:30
6a8b5ec087 fix: prevent decoy site activation when no decoy path provided 2025-06-08 20:12:59 +03:30
33eccb6601 Refactor: Clarify service UI update logic in settings 2025-06-03 20:06:49 +03:30
bf191d19fc feat: Enhance UI/UX for settings page 2025-06-02 13:53:21 +03:30
3a13108181 feat: Add WARP management tab to settings page
Integrates WARP (install, uninstall, configure, status) functionality
into the web panel's settings page. Users can now manage WARP
directly from the UI.
2025-06-02 13:29:48 +03:30
5e61afe15c feat: Add OBFS management tab to settings page
- Added a new "OBFS" tab in `settings.html`.
- The tab displays the current OBFS status (active/inactive).
2025-06-02 00:38:53 +03:30
97ade9e4eb feat: Add OBFS status API endpoint 2025-06-02 00:19:25 +03:30
b2cb712c08 feat: Adapt WARP API to handle JSON status output 2025-05-25 12:49:33 +03:30
c7ed9b3aef feat: add reset webpanel admin credentials 2025-05-23 13:01:22 +03:30
b5af06708d feat: add API endpoint to fetch IP Limiter configuration 2025-05-23 12:16:58 +03:30
5d0a9a875e Update footer to remove shield icons 2025-05-23 11:47:26 +03:30
ec6610571d feat: Add NormalSub subpath configuration to settings UI
Adds a 'Configure' tab to the Normal Subscriptions section in Settings.
This tab allows users to view and edit the subpath for the NormalSub service.

- Modified settings.html:
  - Added new tab link and pane for NormalSub subpath configuration.
  - Tab is only visible and accessible if NormalSub service is active.
- Extended JavaScript:
  - `sendRequest` function now accepts an optional `postSuccessCallback`.
  - Added `isValidSubPath` for client-side validation.
  - `updateServiceUI` now manages visibility of the 'Configure' tab and fetches current subpath.
  - Implemented `fetchNormalSubPath` to get subpath via API.
  - Implemented `editNormalSubPath` to save subpath via API.
  - Integrated new input into `validateForm` and added real-time validation.
- Updated `updateDecoyStatusUI` and its calls from `setupDecoy`/`stopDecoy` to use the new `postSuccessCallback` pattern for consistency.
- Standardized form IDs (e.g., `telegram_form`, `port_form`) for better targeting in `validateForm` and `updateServiceUI`.
2025-05-18 11:25:29 +03:30
3cb8022c7c feat: Add API endpoint to get current NormalSub subpath
- Created `GetSubPathResponse` Pydantic schema for the API response.
- Added a new GET endpoint `/api/v1/config/normalsub/subpath` to fetch
  the current NormalSub subpath using `cli_api.get_normalsub_subpath()`.
- Returns the subpath or null if not found/set.
2025-05-17 23:55:01 +03:30
d86087cf74 feat: Add API endpoint to edit NormalSub subpath
This commit introduces a new PUT endpoint `/api/v1/config/normalsub/edit_subpath`
to allow modification of the NormalSub service's subpath.

- Added `EditSubPathInputBody` Pydantic model for request validation.
- Implemented the API endpoint in `normalsub.py` router, calling the
  corresponding `cli_api.edit_normalsub_subpath` function.
- Includes error handling for validation and general exceptions.
2025-05-17 23:27:17 +03:30
5b04b47e60 feat(frontend): Enhance user management UI and error handling in users.html
-   Added default values for "Traffic Limit" and "Expiration Days" in the "Add User" modal.
2025-05-09 00:12:42 +03:30