Commit Graph

84 Commits

Author SHA1 Message Date
Jianhui Zhao c10c0f3e58 ui: Optimize context menu display effect
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-29 14:55:29 +08:00
Jianhui Zhao 549794c3d5 ui: add support change font size via shortcut key
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-29 14:55:29 +08:00
Jianhui Zhao f54f5323bd ui: add support find in terminal
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-29 14:55:29 +08:00
Jianhui Zhao 0bf9eff0ab ui: Optimize terminal display effect
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-29 14:55:20 +08:00
Jianhui Zhao f1aca8fa64 ui: simplify FitAddon initialization in RttyTerm.vue
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-25 22:49:07 +08:00
Jianhui Zhao 315ba884a6 ui: set cursorStyle to 'bar'
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-21 21:41:55 +08:00
Jianhui Zhao 92b71481f8 ui: add addon @xterm/addon-web-links
Adds web link detection and interaction in terminal.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-21 21:18:32 +08:00
Jianhui Zhao 6787a39007 ui: add support virtual keyboard
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-21 21:18:26 +08:00
Jianhui Zhao 1c5c761470 ui: migrate all Vue components from Options API to Composition API
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-20 17:06:33 +08:00
Jianhui Zhao 49106e5602 ui: Optimize font size settings
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-20 13:31:51 +08:00
Jianhui Zhao f992856d53 ui: add terminal window splitting functionality
- Add horizontal and vertical split options to context menu
- Support recursive splitting for complex terminal layouts

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-20 13:31:28 +08:00
Jianhui Zhao 1251278902 ui: fix locale for Upload file to device in en.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 19:21:03 +08:00
Jianhui Zhao 55e2803404 ui: Optimize the display effect of the right-click menus
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 18:21:11 +08:00
Jianhui Zhao dd10162d34 ui: add smart positioning for context menu
- Add viewport boundary detection to prevent menu overflow
- Auto-adjust menu position when near screen edges
- Ensure menu stays within visible area with 15px margin
- Use $nextTick to calculate position after DOM update

This prevents context menu from being cut off when right-clicking
near screen boundaries, especially in bottom-right corner.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 15:28:12 +08:00
Jianhui Zhao 39e2d8bbb6 ui: This WebSocket should be closed on unmounted
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 15:19:17 +08:00
Jianhui Zhao cec373b4dd ui: fix ContextMenu.vue
may be el is null in close.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 11:42:45 +08:00
Jianhui Zhao 9561f5efc7 ui: add component RttyTerm.vue
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 11:39:04 +08:00
Jianhui Zhao b63d9852a1 ui: fix scroll in terminal
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 11:29:02 +08:00
Jianhui Zhao 8e9081d551 ui: use class instead of inline style for terminal
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-19 11:25:29 +08:00
Jianhui Zhao e9d345287a ui: enhance clipboard paste with permission guidance
- Detect clipboard permission errors and show user-friendly instructions
- Add fallback to Shift+Insert shortcut for unsupported scenarios
- Implement unified clipboard permission guidance with i18n support
- Improve error handling for better user

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-17 11:12:29 +08:00
Jianhui Zhao 989d9be983 ui: add loading indicator for create terminal
This prevents users from seeing a blank terminal while waiting for the WebSocket
connection to establish and the login process to complete.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 19:27:11 +08:00
Jianhui Zhao f8e63ad01a ui: redesign error page for better user experience
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:06:41 +08:00
Jianhui Zhao 0ca0086bdd ui: handle WebSocket 403 unauthorized errors properly
When WebSocket connection fails due to 403 unauthorized status from server,
browser WebSocket API cannot distinguish HTTP status codes and only fires
a generic 'error' event. Redirect to /connect/:devid HTTP endpoint so that
browser can properly capture and handle the 403 status code response.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:05:17 +08:00
Jianhui Zhao 3842518da9 optimize the terminal login process via websocket close messages.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:04:49 +08:00
Jianhui Zhao 948e304984 ui: fix locales for Error.vue.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-16 17:04:31 +08:00
Jianhui Zhao 4f47087148 Remove unnecessary empty group parameter from redirect URLs
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-15 16:24:31 +08:00
Jianhui Zhao 35a1fe2913 ui: Implement direct paste functionality for terminal context menu
- Add pasteFromClipboard() method to enable direct clipboard paste
- Use Clipboard API with async/await for modern browser support
- Add fallback message for unsupported browsers or permission denied
- Add 'Pasted from clipboard' translations for English and Chinese
- Replace paste menu item action from showing instruction to actual paste

This allows users to paste content directly from the context menu instead
of requiring keyboard shortcuts, improving user experience.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-10 09:45:31 +08:00
Jianhui Zhao 313c13271a ui: Update clipboard copy message text
Simplify the copy success message from "Already copied to clipboard"

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-10 09:27:03 +08:00
Jianhui Zhao 7830a325f3 ui: Change message type from info to success in context menu actions
Replace $message.info() with $message.success() for copy, paste, and file
upload instructions in the terminal context menu to provide more positive
user feedback for these informational messages.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-10 09:18:57 +08:00
Jianhui Zhao a0bfc21d11 Refactor the message distribution process
To solve a major problem: when there are many devices connected,
the broker will blocked in processing messages.

By the way, I've rewritten and reorganized the entire code architecture,
improved performance.

Some new features has been added:
* support device grouping.
* support show device's IP address.

Change-Id: I250e18091be7fd42028c82767b6edef50b3f6d8f
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-07 12:21:36 +08:00
Jianhui Zhao 86420d878f ui: remove tooltip for operation icon
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-04 11:44:59 +08:00
Jianhui Zhao af9eaa7cb4 api: Optimizing Static Resource Handling
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-02 12:54:43 +08:00
Jianhui Zhao c45c5bf5bd ui: Fix placeholder in RttyWeb.vue
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-02 09:12:12 +08:00
Jianhui Zhao cefd50c5f8 ui: fix locale
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-07-01 20:11:55 +08:00
Jianhui Zhao 183aa31b2c ui: fix placeholder for web proxy
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-26 11:57:29 +08:00
Jianhui Zhao ef160cc70b ui: remove compositionOnly: false
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-25 22:17:29 +08:00
Jianhui Zhao a7db997ea7 ui: remove unused method in ContextMenu.vue
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-23 14:05:36 +08:00
Jianhui Zhao c9097e95df pretty ui title
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-23 12:19:47 +08:00
Jianhui Zhao dd2e8351a5 Fix language following the browser.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-23 12:18:56 +08:00
Jianhui Zhao 9dc80c91fc ui: fix translate
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-19 22:34:58 +08:00
Jianhui Zhao d926f0ac6c perf: Improve file upload speed
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-16 19:52:21 +08:00
Jianhui Zhao 1c41f1d90e feat(ui): More convenient access device web
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 18:07:43 +08:00
Jianhui Zhao ba05ea6764 perf(ui): improve code via create a vue component RttyCmd
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 18:07:09 +08:00
Jianhui Zhao 41723aca41 perf: Optimize HTTP session management
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:16 +08:00
Jianhui Zhao a6b008ed6e feat: more convenient to set the terminal font size.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:16 +08:00
Jianhui Zhao 8818c09d8d feat: submit on keyup of enter in Login page.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:16 +08:00
Jianhui Zhao cbfa9f8bd4 chore: use autofocus for el-input
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:16 +08:00
Jianhui Zhao f80ae5c7eb feat: update all packages to latest
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:16 +08:00
Jianhui Zhao 7f1ff94f83 chore: pretty Login page
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:16 +08:00
Jianhui Zhao 7db180c749 refactor: password not required for execute command
Usually, commands are executed in batches on multiple devices,
but the password for each device is different. Therefore, the
password parameter is removed.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-06-15 15:37:10 +08:00