p3x-redis-ui 2026.4.1005 → 2026.4.1007
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +1 -1
- package/README.md +27 -38
- package/change-log.2018.md +1 -1
- package/change-log.2019.md +1 -1
- package/change-log.2020.md +1 -1
- package/change-log.2021.md +1 -1
- package/change-log.2022.md +1 -1
- package/change-log.2023.md +1 -1
- package/change-log.2024.md +1 -1
- package/change-log.2025.md +1 -1
- package/change-log.md +17 -1
- package/contributors.md +1 -1
- package/package.json +4 -4
- package/src/app.mjs +1 -1
- package/src/electron/module/create/menu.mjs +6 -40
- package/src/electron/window/main/onload.mjs +3 -2
package/CLAUDE.md
CHANGED
|
@@ -51,7 +51,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
54
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
55
55
|
|
|
56
56
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
57
57
|
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
# 📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications v2026.4.
|
|
9
|
+
# 📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications v2026.4.1007
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
@@ -71,18 +71,25 @@ Arabic (`ar`), Azerbaijani (`az`), Belarusian (`be`), Bengali (`bn`), Bosnian (`
|
|
|
71
71
|
|
|
72
72
|

|
|
73
73
|
|
|
74
|
+
## Live Demo
|
|
75
|
+
|
|
76
|
+
Try the latest version at [p3x.redis.patrikx3.com](https://p3x.redis.patrikx3.com).
|
|
77
|
+
|
|
78
|
+
- **Daily data reset:** the Redis database restores certain datasets every morning (CET)
|
|
79
|
+
- **Brief downtime:** occasional ~1 second interruptions may occur due to automatic updates from Git changes
|
|
80
|
+
- **Version differences:** the live instance may differ from the GitHub or NPM release; updates are typically published monthly
|
|
81
|
+
|
|
74
82
|
## Features
|
|
75
83
|
|
|
76
84
|
### Triple GUI: Angular + React + Vue
|
|
77
85
|
|
|
78
|
-
P3X Redis UI was originally built with AngularJS and has been fully migrated to three modern frontends — **Angular**, **React/MUI**, and **Vue/Vuetify
|
|
86
|
+
P3X Redis UI was originally built with AngularJS and has been fully migrated to three modern frontends — **Angular**, **React/MUI**, and **Vue/Vuetify** — all at full feature parity. You can switch between them live in **Settings → GUI**.
|
|
79
87
|
|
|
80
|
-
- **Angular**
|
|
81
|
-
- **React**
|
|
82
|
-
- **Vue**
|
|
88
|
+
- **Angular** (`/ng/`) — Angular CLI with esbuild, CDK virtual scrolling, standalone components with signals
|
|
89
|
+
- **React** (`/react/`) — Zustand state management, @tanstack/react-virtual, MUI (Material UI), Vite
|
|
90
|
+
- **Vue** (`/vue/`) — Pinia state management, Vue 3 Composition API, Vuetify, Vite
|
|
83
91
|
- `/` auto-redirects to your last used frontend
|
|
84
|
-
-
|
|
85
|
-
- Both frontends share the same backend, Socket.IO protocol, translation system, themes, and all features
|
|
92
|
+
- **Shared across all three:** same Socket.IO protocol, same 54-language translation system, same 7 themes (4 dark + 3 light), Web Worker tree building, Playwright E2E tests
|
|
86
93
|
- Works in the Electron desktop app, Docker, and standalone server
|
|
87
94
|
|
|
88
95
|
### AI-Powered Redis Query Translation
|
|
@@ -315,26 +322,6 @@ Three dedicated tabs accessible from the monitoring page:
|
|
|
315
322
|
- **Sub-directory support:** use Nginx/Ingress path rewriting — see [Issue #43](https://github.com/patrikx3/redis-ui/issues/43)
|
|
316
323
|
- **Cluster support:** continuously improving, with significant contributions by [@devthejo](https://github.com/devthejo)
|
|
317
324
|
|
|
318
|
-
### Modern Dual Frontend Architecture
|
|
319
|
-
The UI has been fully migrated from AngularJS (1.x) to two modern frontends — **Angular** and **React/MUI** — both at full feature parity:
|
|
320
|
-
|
|
321
|
-
**Angular frontend** (`/ng/`):
|
|
322
|
-
- **Angular CLI with esbuild** — near-instant dev recompiles and optimized production builds
|
|
323
|
-
- **CDK virtual scrolling** — tree view renders only visible rows for O(visible) DOM performance
|
|
324
|
-
- **Standalone components** — Angular signals, Angular Material, and lazy-loaded routes
|
|
325
|
-
|
|
326
|
-
**React frontend** (`/react/`):
|
|
327
|
-
- **Zustand state management** — lightweight stores replacing Angular services
|
|
328
|
-
- **@tanstack/react-virtual** — virtual scrolling for tree view and large lists
|
|
329
|
-
- **MUI (Material UI)** — React component library matching Angular Material's look and feel
|
|
330
|
-
- **Vite** — instant dev server startup and fast production builds
|
|
331
|
-
|
|
332
|
-
**Shared across both:**
|
|
333
|
-
- **Web Worker tree building** — key sorting and tree construction run off the main thread, keeping the UI responsive with large key sets
|
|
334
|
-
- **Same Socket.IO protocol** — both frontends use the identical backend API
|
|
335
|
-
- **Same translation system** — 54 languages shared from a single source
|
|
336
|
-
- **Same 7 themes** — 4 dark + 3 light, with auto system preference detection
|
|
337
|
-
- **E2E tested** — Playwright tests run against both frontends in parallel
|
|
338
325
|
|
|
339
326
|
### RediSearch Full-Text Search
|
|
340
327
|
- **Search page:** full-text search UI with index selector, query input, and paginated results — only visible when RediSearch module is detected
|
|
@@ -405,6 +392,15 @@ The UI has been fully migrated from AngularJS (1.x) to two modern frontends —
|
|
|
405
392
|
### ES Modules Backend
|
|
406
393
|
The server codebase has been fully migrated from CommonJS to **ES Modules** (`.mjs`), enabling native Node.js ESM support and better tree-shaking.
|
|
407
394
|
|
|
395
|
+
### ACL Management (Redis 6.0+)
|
|
396
|
+
- **User list** — view all ACL users with status (enabled/disabled), current user indicator, and rules summary
|
|
397
|
+
- **Create / Edit / Delete** — full ACL user management via a dialog with chip-based rule editing
|
|
398
|
+
- **Chip inputs** — commands, key patterns, and pub/sub channels are entered as chips with placeholder hints
|
|
399
|
+
- **Deny highlighting** — commands starting with `-` (e.g. `-@dangerous`) are visually highlighted with the warning color
|
|
400
|
+
- **Default user warning** — editing the `default` user shows an inline warning alert explaining the risk of locking out connections
|
|
401
|
+
- **Save confirmation** — every ACL save shows a themed confirm dialog
|
|
402
|
+
- **Consistent across GUIs** — identical chip styling, layout, and behavior in Angular, React, and Vue
|
|
403
|
+
|
|
408
404
|
### Security
|
|
409
405
|
- **Secure configuration:** passwords and sensitive data are protected with unique identifiers for both main and node configurations
|
|
410
406
|
|
|
@@ -538,14 +534,6 @@ Example:
|
|
|
538
534
|
Restart the server after changing `p3xrs.json`.
|
|
539
535
|
-->
|
|
540
536
|
|
|
541
|
-
## Live Demo
|
|
542
|
-
|
|
543
|
-
Try the latest version at [p3x.redis.patrikx3.com](https://p3x.redis.patrikx3.com).
|
|
544
|
-
|
|
545
|
-
- **Daily data reset:** the Redis database restores certain datasets every morning (CET)
|
|
546
|
-
- **Brief downtime:** occasional ~1 second interruptions may occur due to automatic updates from Git changes
|
|
547
|
-
- **Version differences:** the live instance may differ from the GitHub or NPM release; updates are typically published monthly
|
|
548
|
-
|
|
549
537
|
## Installation
|
|
550
538
|
|
|
551
539
|
### Releases / Downloads
|
|
@@ -725,8 +713,9 @@ This application uses Socket.IO instead of REST for client-server communication.
|
|
|
725
713
|
Browser / Electron App / VS Code Extension
|
|
726
714
|
↓
|
|
727
715
|
redis-ui-material
|
|
728
|
-
├── Angular frontend (/ng/) — Angular + Angular Material
|
|
729
|
-
|
|
716
|
+
├── Angular frontend (/ng/) — Angular + Angular Material
|
|
717
|
+
├── React frontend (/react/) — React + MUI + Vite + Zustand
|
|
718
|
+
└── Vue frontend (/vue/) — Vue 3 + Vuetify + Vite + Pinia
|
|
730
719
|
↓ Socket.IO + HTTP
|
|
731
720
|
redis-ui-server (Express + ioredis)
|
|
732
721
|
↓
|
|
@@ -812,7 +801,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
812
801
|
---
|
|
813
802
|
|
|
814
803
|
|
|
815
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
804
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
816
805
|
|
|
817
806
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
818
807
|
|
package/change-log.2018.md
CHANGED
|
@@ -126,7 +126,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
126
126
|
---
|
|
127
127
|
|
|
128
128
|
|
|
129
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
129
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
130
130
|
|
|
131
131
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
132
132
|
|
package/change-log.2019.md
CHANGED
|
@@ -295,7 +295,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
295
295
|
---
|
|
296
296
|
|
|
297
297
|
|
|
298
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
298
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
299
299
|
|
|
300
300
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
301
301
|
|
package/change-log.2020.md
CHANGED
|
@@ -689,7 +689,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
689
689
|
---
|
|
690
690
|
|
|
691
691
|
|
|
692
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
692
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
693
693
|
|
|
694
694
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
695
695
|
|
package/change-log.2021.md
CHANGED
|
@@ -338,7 +338,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
338
338
|
---
|
|
339
339
|
|
|
340
340
|
|
|
341
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
341
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
342
342
|
|
|
343
343
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
344
344
|
|
package/change-log.2022.md
CHANGED
|
@@ -85,7 +85,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
85
85
|
---
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
88
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
89
89
|
|
|
90
90
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
91
91
|
|
package/change-log.2023.md
CHANGED
|
@@ -122,7 +122,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
122
122
|
---
|
|
123
123
|
|
|
124
124
|
|
|
125
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
125
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
126
126
|
|
|
127
127
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
128
128
|
|
package/change-log.2024.md
CHANGED
|
@@ -466,7 +466,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
466
466
|
---
|
|
467
467
|
|
|
468
468
|
|
|
469
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
469
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
470
470
|
|
|
471
471
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
472
472
|
|
package/change-log.2025.md
CHANGED
|
@@ -94,7 +94,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
94
94
|
---
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
97
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
98
98
|
|
|
99
99
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
100
100
|
|
package/change-log.md
CHANGED
|
@@ -5,6 +5,22 @@
|
|
|
5
5
|
|
|
6
6
|
[//]: #@corifeus-header:end
|
|
7
7
|
|
|
8
|
+
### v2026.4.1006
|
|
9
|
+
Released on 04/15/2026
|
|
10
|
+
* FEATURE: Added network.corifeus.com promo toast for demo site with dynamic hide delay and disclaimer.
|
|
11
|
+
* BUGFIX: Fixed connection readonly mode broken by stale isProOrEnterpriseTier() call.
|
|
12
|
+
* BUGFIX: Added googletagmanager.com to CSP connect-src for analytics across all frameworks.
|
|
13
|
+
* DOCS: Updated README with triple frontend architecture, Vue sections, and ACL management documentation.
|
|
14
|
+
|
|
15
|
+
### v2026.4.1005
|
|
16
|
+
Released on 04/13/2026
|
|
17
|
+
* FEATURE: ACL UX improvements — auth hint, credential hiding in askAuth dialog, shared connect, and layout alignment.
|
|
18
|
+
* FEATURE: ACL chip autocomplete with grouped suggestions for commands, keys, and channels.
|
|
19
|
+
* FEATURE: ACL editor consistency — chip styling and confirm dialog for destructive operations.
|
|
20
|
+
* FEATURE: ACL chip theme-awareness across all UI frameworks.
|
|
21
|
+
* FEATURE: Removed all translation string fallbacks across all three GUI frameworks.
|
|
22
|
+
* BUGFIX: ACL warning icons now display correctly.
|
|
23
|
+
|
|
8
24
|
### v2026.4.1004
|
|
9
25
|
Released on 04/13/2026
|
|
10
26
|
* FEATURE: ACL default user warning when editing the default account, with translations across all supported languages.
|
|
@@ -742,7 +758,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
742
758
|
---
|
|
743
759
|
|
|
744
760
|
|
|
745
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
761
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
746
762
|
|
|
747
763
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
748
764
|
|
package/contributors.md
CHANGED
|
@@ -56,7 +56,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
|
|
|
56
56
|
---
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.
|
|
59
|
+
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.1007
|
|
60
60
|
|
|
61
61
|
[](https://www.npmjs.com/package/p3x-redis-ui) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
|
|
62
62
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "p3x-redis-ui",
|
|
3
|
-
"version": "2026.4.
|
|
3
|
+
"version": "2026.4.1007",
|
|
4
4
|
"description": "📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications",
|
|
5
5
|
"corifeus": {
|
|
6
6
|
"description-snap": "P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"axios": "^1.15.0",
|
|
73
73
|
"copyfiles": "^2.4.1",
|
|
74
74
|
"corifeus-builder": "^2026.4.139",
|
|
75
|
-
"electron": "^41.2.
|
|
75
|
+
"electron": "^41.2.1",
|
|
76
76
|
"electron-builder": "^26.8.1",
|
|
77
77
|
"node-fetch": "^3.3.2",
|
|
78
78
|
"playwright": "^1.59.1",
|
|
@@ -87,8 +87,8 @@
|
|
|
87
87
|
"corifeus-utils": "^2025.4.123",
|
|
88
88
|
"electron-store": "^11.0.2",
|
|
89
89
|
"electron-updater": "^6.8.3",
|
|
90
|
-
"p3x-redis-ui-material": "^2026.4.
|
|
91
|
-
"p3x-redis-ui-server": "^2026.4.
|
|
90
|
+
"p3x-redis-ui-material": "^2026.4.441",
|
|
91
|
+
"p3x-redis-ui-server": "^2026.4.363"
|
|
92
92
|
},
|
|
93
93
|
"build-save": {
|
|
94
94
|
"mac": {
|
package/src/app.mjs
CHANGED
|
@@ -114,7 +114,7 @@ const execAsync = async() => {
|
|
|
114
114
|
})
|
|
115
115
|
|
|
116
116
|
const { default: createWindow } = await import('./electron/module/create/window.mjs');
|
|
117
|
-
const rendererCsp = "default-src 'self'; script-src 'self' https://www.googletagmanager.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://www.googletagmanager.com https://www.google-analytics.com; font-src 'self' data:; connect-src 'self' http://localhost:* http://127.0.0.1:* ws://localhost:* ws://127.0.0.1:* https://www.google-analytics.com https://region1.google-analytics.com https://analytics.google.com; worker-src 'self' blob:; child-src 'self' http://localhost:* http://127.0.0.1:*; object-src 'none'; base-uri 'self'; form-action 'self'";
|
|
117
|
+
const rendererCsp = "default-src 'self'; script-src 'self' https://www.googletagmanager.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://www.googletagmanager.com https://www.google-analytics.com; font-src 'self' data:; connect-src 'self' http://localhost:* http://127.0.0.1:* ws://localhost:* ws://127.0.0.1:* https://www.googletagmanager.com https://www.google-analytics.com https://region1.google-analytics.com https://analytics.google.com; worker-src 'self' blob:; child-src 'self' http://localhost:* http://127.0.0.1:*; object-src 'none'; base-uri 'self'; form-action 'self'";
|
|
118
118
|
|
|
119
119
|
app.on('ready', () => {
|
|
120
120
|
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
|
|
@@ -18,51 +18,17 @@ async function mainMenu() {
|
|
|
18
18
|
label: global.p3xre.strings.title,
|
|
19
19
|
submenu: [
|
|
20
20
|
{
|
|
21
|
-
label:
|
|
22
|
-
|
|
23
|
-
{
|
|
24
|
-
label: 'Angular',
|
|
25
|
-
type: 'radio',
|
|
26
|
-
checked: currentFrontend !== 'react',
|
|
27
|
-
click: () => switchFrontend('ng'),
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
label: 'React',
|
|
31
|
-
type: 'radio',
|
|
32
|
-
checked: currentFrontend === 'react',
|
|
33
|
-
click: () => switchFrontend('react'),
|
|
34
|
-
},
|
|
35
|
-
],
|
|
21
|
+
label: 'Angular',
|
|
22
|
+
click: () => switchFrontend('ng'),
|
|
36
23
|
},
|
|
37
24
|
{
|
|
38
|
-
label:
|
|
39
|
-
|
|
40
|
-
{
|
|
41
|
-
label: 'Angular',
|
|
42
|
-
click: () => {
|
|
43
|
-
global.p3xre.mainWindow.webContents.send('p3x-menu', {
|
|
44
|
-
action: 'settings'
|
|
45
|
-
})
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
label: 'React',
|
|
50
|
-
click: () => {
|
|
51
|
-
switchFrontend('react')
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
],
|
|
25
|
+
label: 'React',
|
|
26
|
+
click: () => switchFrontend('react'),
|
|
55
27
|
},
|
|
56
|
-
/*
|
|
57
28
|
{
|
|
58
|
-
label:
|
|
59
|
-
click: () =>
|
|
60
|
-
global.p3xre.mainWindow.webContents.send('p3x-menu', {
|
|
61
|
-
action: 'overview'
|
|
62
|
-
})
|
|
63
|
-
}
|
|
29
|
+
label: 'Vue',
|
|
30
|
+
click: () => switchFrontend('vue'),
|
|
64
31
|
},
|
|
65
|
-
*/
|
|
66
32
|
{type: 'separator'},
|
|
67
33
|
{
|
|
68
34
|
label: global.p3xre.strings.menu.main.quit,
|
|
@@ -87,6 +87,7 @@ ipcRenderer.on('p3x-set-language', (event, data) => {
|
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
const translation = data.translation
|
|
90
|
+
if (translation === 'auto') return
|
|
90
91
|
const stringsModule = await import(`../../../strings/${translation}/index.mjs`)
|
|
91
92
|
global.p3xre.strings = stringsModule.default
|
|
92
93
|
global.p3xre.iframe.contentWindow.postMessage({ type: 'p3x-set-language', translation: translation }, '*')
|
|
@@ -261,9 +262,9 @@ window.p3xreRun = async function () {
|
|
|
261
262
|
serverUrl = await waitForServer(getCurrentLocalServerUrl())
|
|
262
263
|
}
|
|
263
264
|
|
|
264
|
-
// Append /react/ or /ng/ based on stored frontend preference
|
|
265
|
+
// Append /react/, /vue/, or /ng/ based on stored frontend preference
|
|
265
266
|
const frontendPref = uiStateStore.get('p3xr-frontend', 'ng')
|
|
266
|
-
const frontendPath = frontendPref === 'react' ? '/react/' : '/ng/'
|
|
267
|
+
const frontendPath = frontendPref === 'react' ? '/react/' : frontendPref === 'vue' ? '/vue/' : '/ng/'
|
|
267
268
|
global.p3xre.iframe.src = getIframeUrlWithUiState(serverUrl + frontendPath)
|
|
268
269
|
|
|
269
270
|
} catch (e) {
|