Compare commits

...

1951 Commits

Author SHA1 Message Date
w940853815
cce6a5a216 perf: streamline onUpdate actions in PlayBook and Adhoc components 2025-02-21 14:20:59 +08:00
ibuler
8ef4b466d7 perf: update execution 2025-02-20 18:43:22 +08:00
ibuler
4ccc7ac56b perf: merge with remote 2025-02-20 18:41:15 +08:00
ibuler
7fb24cadea perf: update formatter 2025-02-20 18:40:16 +08:00
feng
e89be5f278 perf: execution list 2025-02-20 14:41:50 +08:00
zhaojisen
b746e1d553 Perf: Add Dashboard Items 2025-02-20 14:17:03 +08:00
w940853815
ffee484d6c perf: add drawer functionality and title formatting to AccountChangeSecret and AccountPush execution lists 2025-02-19 18:49:02 +08:00
w940853815
d5099c3a04 perf: add update actions and detail formatters to various components 2025-02-19 15:35:34 +08:00
zhaojisen
2558cfa4c2 Fixed: Dashboard 2025-02-19 11:41:30 +08:00
w940853815
6357056600 fix: table row index error 2025-02-19 11:13:21 +08:00
w940853815
c1b60e6298 perf: Session list with detail drawer 2025-02-18 19:01:17 +08:00
ibuler
f2b45c5084 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-18 16:51:33 +08:00
ibuler
a451f38701 perf: update some page 2025-02-18 16:51:26 +08:00
w940853815
27e2d34171 fix: Create playbook job form error 2025-02-18 11:18:36 +08:00
zhaojisen
fa2faecb7c Fixed: Fix card overflow issue on screen resize 2025-02-17 17:19:40 +08:00
zhaojisen
e6cd2306c9 Fixed: Fix responsive issues 2025-02-17 17:09:48 +08:00
feng
ded7920a8a perf: translate 2025-02-13 18:57:20 +08:00
ibuler
f1956b4982 perf: update some i18n 2025-02-13 16:41:06 +08:00
ibuler
0cd9f6dcd6 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-13 15:55:43 +08:00
ibuler
b2abee724d perf: update detail card 2025-02-13 15:55:20 +08:00
w940853815
3e3cb309ce perf: Merge More into Info and update detail page 2025-02-13 15:26:17 +08:00
ibuler
55c8dfa549 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-13 15:08:14 +08:00
ibuler
9740c58291 perf: update detail 2025-02-13 15:08:04 +08:00
feng
77558186a4 perf: Translate 2025-02-13 15:01:34 +08:00
feng
b524848742 perf: Translate 2025-02-12 18:43:48 +08:00
w940853815
339c1ab227 perf: Add Java, Node, Go, and cURL demo code 2025-02-12 18:16:31 +08:00
ibuler
1bdc27ea98 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-12 18:07:40 +08:00
ibuler
19dc42cd2c perf: update detail page 2025-02-12 18:07:24 +08:00
zhaojisen
7375dc58a3 Perf: Change Mission Chart Size 2025-02-11 18:52:11 +08:00
w940853815
ee678289d4 perf: Add demo code docs 2025-02-11 18:20:10 +08:00
feng
c932fbb5f3 perf: Pam dashboard 2025-02-11 18:20:02 +08:00
ibuler
768cae7abc Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-11 15:56:11 +08:00
ibuler
5abb8a867f perf: update detail api url 2025-02-11 15:55:54 +08:00
zhaojisen
c4bba7e74d Perf: Change AccountConnectFormatter To Common Component 2025-02-11 14:47:02 +08:00
feng
e365f874bc perf: Platform 2025-02-11 14:40:51 +08:00
ibuler
f54e2c8ddc perf: 修改授权 2025-02-11 14:32:08 +08:00
ibuler
ff769179a8 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-10 17:43:36 +08:00
ibuler
8546388439 perf: update user quick filters 2025-02-10 17:39:18 +08:00
w940853815
7dcecd4421 perf: modify markdown code style 2025-02-10 16:42:27 +08:00
w940853815
efef672157 perf: code copy 2025-02-08 18:26:35 +08:00
ibuler
ec8c8e7d4b Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-08 17:28:50 +08:00
ibuler
c14970e232 perf: update update 2025-02-08 17:28:44 +08:00
jiangweidong
bee45ee7a0 feat: Custom change password supports configuration of interactive items 2025-02-08 16:57:01 +08:00
feng
7bfc0ee507 perf: push record header 2025-02-08 16:03:35 +08:00
ibuler
731ae82bc5 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-06 19:18:24 +08:00
ibuler
8019ee550e perf: move to roles manage to form 2025-02-06 19:18:16 +08:00
w940853815
d7affe1034 perf: integrations application detail add account tab page 2025-02-06 19:11:38 +08:00
ibuler
5f35e0bb94 perf: merge with remote 2025-02-06 12:50:43 +08:00
ibuler
75b70d33ee perf: some feat free 2025-02-06 12:48:16 +08:00
zhaojisen
e3c17ef96d Perf: Add Account Valid License 2025-02-06 11:05:57 +08:00
w940853815
0f6ae3f626 fix: profile preferences api request 404 2025-02-05 18:46:03 +08:00
ibuler
175b819e8e Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-05 16:34:44 +08:00
ibuler
9933f68ba9 feat: add xpack lock feat 2025-02-05 16:34:17 +08:00
feng
44e05e7f80 perf: pam dashboard 2025-02-05 15:47:33 +08:00
zhaojisen
f518e4cb10 Perf: Add Cache Option 2025-02-05 11:42:19 +08:00
zhaojisen
b127849388 perf: Perf optimism build cach 2025-02-05 11:20:44 +08:00
feng
7524b6f895 perf: change secret push account record 2025-01-26 17:27:01 +08:00
feng
0a96331218 perf: Push account record 2025-01-26 16:40:41 +08:00
ibuler
caf34a96e6 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-23 14:03:17 +08:00
ibuler
5645d253e5 perf: update pam account 2025-01-23 14:01:54 +08:00
w940853815
e2ad3f3749 fix: PermUser name column is undefined 2025-01-23 10:55:19 +08:00
zhaojisen
b1137249f1 Perf: Perf Dashboard 2025-01-22 18:52:29 +08:00
ibuler
369247d987 perf: update detail header border 2025-01-22 17:47:23 +08:00
ibuler
fe8f594cb4 perf: remove footer 2025-01-22 17:09:16 +08:00
ibuler
64db1176a6 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-22 16:30:43 +08:00
ibuler
27d175a06e perf: update zone detail 2025-01-22 16:30:31 +08:00
zhaojisen
3b96b3c90b Perf: Optimism Interactive Effect 2025-01-21 18:55:51 +08:00
zhaojisen
32183336a2 Perf: Optimism Summery Card 2025-01-21 18:36:32 +08:00
ibuler
fb9d9d6480 perf: merge with remote 2025-01-21 17:50:26 +08:00
ibuler
7394ff27a5 perf: update menu 2025-01-21 17:48:44 +08:00
feng
6093d8915c perf: engine 2025-01-21 17:09:06 +08:00
ibuler
83bb13b806 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-20 19:34:34 +08:00
ibuler
c9062a9e26 perf: update i18n 2025-01-20 19:34:20 +08:00
feng
6dc7cc0b37 perf: pam perm 2025-01-20 18:11:05 +08:00
ibuler
aa631678f8 perf: add it 2025-01-20 18:05:29 +08:00
ibuler
1c36d1b3c6 perf: use close to reslove except confirm 2025-01-20 18:05:01 +08:00
feng
90050bf87d perf: checkaccountautomation perm 2025-01-20 16:37:48 +08:00
zhaojisen
58bb69c252 Perf: Remove isPam item 2025-01-20 11:07:27 +08:00
ibuler
14c3b249a7 perf: update pam 2025-01-15 17:20:17 +08:00
ibuler
4589c4abaf Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-15 17:04:49 +08:00
ibuler
94f1959d40 perf: 修改添加 update secret 2025-01-15 17:04:31 +08:00
zhaojisen
e7c63b2d41 Perf: Add Console Account Formatter 2025-01-15 13:22:08 +08:00
ibuler
e2904acff6 perf: update execution 2025-01-15 10:26:44 +08:00
ibuler
3d1a2d6833 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-14 18:12:56 +08:00
ibuler
d1e340f104 perf: update pam risk handle 2025-01-14 18:12:38 +08:00
w940853815
6d8f159975 perf: Optimize risk action checks and filters 2025-01-14 14:52:46 +08:00
ibuler
7075b5c90a perf: update drawer 2025-01-13 11:11:32 +08:00
ibuler
66b3018ace perf: 修改 drawer 2025-01-10 18:33:34 +08:00
ibuler
87ae6242a1 merge: with remote 2025-01-10 18:08:00 +08:00
zhaojisen
de5f1a8bd1 Fixed: Fixed z-index issue between footer and card components\ 2025-01-10 17:58:10 +08:00
ibuler
9cefe70061 perf: update pam 2025-01-10 17:53:44 +08:00
zhaojisen
73cbd4d8d2 Optimism ReviewDrawer Item Style 2025-01-10 17:44:00 +08:00
zhaojisen
02d9f6b116 Perf: Add RiskSummery Item 2025-01-10 15:52:40 +08:00
ibuler
1f5cc25b86 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-09 19:19:05 +08:00
ibuler
63200bca26 perf: 优化 platforms 2025-01-09 19:18:51 +08:00
zhaojisen
305029649e Perf: Add Mission Card 2025-01-09 18:04:08 +08:00
ibuler
cfb7292f36 perf: update tab height 2025-01-09 16:43:12 +08:00
ibuler
582b83d4f5 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-09 16:28:32 +08:00
ibuler
42eaa4996d perf: update page height 2025-01-09 16:28:21 +08:00
feng
df465eef29 perf: dashboard 2025-01-09 16:12:49 +08:00
zhaojisen
b3f8c61df0 Perf: Adjust Card Style 2025-01-09 14:09:11 +08:00
zhaojisen
6f57ef5bcf Perf: Fit SummeryCard style 2025-01-08 17:22:58 +08:00
jiangweidong
7ca47d9015 perf: Check for leaked duplicate passwords. 2025-01-08 16:07:02 +08:00
zhaojisen
b9a0bbf12d Perf: Optimize the DataSummary style 2025-01-08 16:05:07 +08:00
w940853815
4a8c84ee9d perf: Add risk change_password_add handle 2025-01-08 14:34:58 +08:00
zhaojisen
e8e1b35cd3 perf: Add Dashboard Summery 2025-01-08 14:19:57 +08:00
zhaojisen
edd85e700e Fixed: Resolved the issue of duplicate requests by implementing a check for the value of zero. 2025-01-08 11:47:56 +08:00
ibuler
a7378d297f Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-08 10:47:42 +08:00
ibuler
dd75e160c3 perf: update filter 2025-01-08 10:47:29 +08:00
feng
84c78f993b perf: account backup execution detail 2025-01-07 17:54:31 +08:00
zhaojisen
25ba669f67 Perf: Disabled Password Input And Hidden Template Username Input 2025-01-07 15:21:09 +08:00
zhaojisen
3bb3361e2f Perf: Optimize some details 2025-01-07 14:59:27 +08:00
ibuler
d82e557fd1 merge: with remote 2025-01-07 14:36:47 +08:00
ibuler
3c9de27e66 perf: update i18n 2025-01-07 14:35:21 +08:00
feng
276b1a7255 perf: pam translate 2025-01-07 14:20:50 +08:00
feng
31c630ca25 perf: account gilter 2025-01-06 17:29:53 +08:00
feng626
e5eaa05bdb Merge pull request #4575 from jumpserver/pr@pam@pam_dashboard
perf: Pam dashboard
2025-01-06 17:03:24 +08:00
feng626
2431755f2b Merge branch 'pam' into pr@pam@pam_dashboard 2025-01-06 16:55:33 +08:00
feng
29f35d590e perf: Pam dashboard 2025-01-06 16:51:32 +08:00
zhaojisen
ac9451dd1c Perf: Change Connect Formatter To More Higher-level Encapsulation 2025-01-06 15:21:21 +08:00
zhaojisen
b4ee023b93 Perf: Change Connect To Formatter Component 2025-01-06 14:46:50 +08:00
ibuler
28e7321754 perf: update account prop 2025-01-06 14:03:48 +08:00
ibuler
daab079e3c Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-06 11:27:55 +08:00
ibuler
a32f818abd perf: update pam 2025-01-06 11:27:47 +08:00
feng
d8980e66e3 perf: Change secret check_conn_after_change 2025-01-06 10:53:37 +08:00
zhaojisen
153c29fbcc Perf: Add Filer Icon 2025-01-03 18:45:47 +08:00
ibuler
feb3dbabc2 perf: 优化折叠 2025-01-03 18:37:20 +08:00
ibuler
0ac1e0d75a perf: 优化 form 折叠 2025-01-03 18:32:24 +08:00
ibuler
572e61046f Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-03 15:47:08 +08:00
ibuler
9f47b50dac perf: update icon 2025-01-03 15:46:53 +08:00
zhaojisen
5022ca9075 Perf: Remove Unused Tips and Function 2025-01-03 14:51:06 +08:00
fit2bot
fee2123b49 Perf: Add Account Change Or Move To Different Asset (#4567)
* Perf: Add Account Change Or Move To Different Asset

* Fixed: Fixed Add Account And Template input disabled

* Perf: Add Account Operation Bulk Result

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2025-01-03 11:05:49 +08:00
ibuler
78e6d4e367 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-02 19:21:45 +08:00
ibuler
a5b8d51747 perf: update account create 2025-01-02 19:21:31 +08:00
w940853815
e9245dfd19 perf: Add redirect and permissions to AccountCheck, update formatter 2025-01-02 18:20:38 +08:00
ibuler
f605192fe1 perf: update create drawer 2025-01-02 17:19:52 +08:00
ibuler
504adad9fe perf: 优化弹窗 2025-01-02 11:27:06 +08:00
ibuler
cd82d8ee92 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-01-02 09:47:17 +08:00
feng626
d97dbc612c Revert "perf: drawer el-radio-group css"
This reverts commit 368bad6771.
2024-12-31 16:53:24 +08:00
feng
368bad6771 perf: drawer el-radio-group css 2024-12-31 16:39:58 +08:00
ibuler
41cc618a49 perf: 修改更新 2024-12-31 16:31:10 +08:00
w940853815
4f0f1b372e perf: Account discover use drawer component 2024-12-31 16:03:45 +08:00
ibuler
acfac6d45f perf: form 上下结构 2024-12-31 15:48:23 +08:00
ibuler
1a3f483654 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-31 14:23:07 +08:00
ibuler
559177ea32 perf: 优化 detail 2024-12-31 14:22:50 +08:00
zhaojisen
c9f9264c87 Perf: Remove different jump paths for different types of hosts 2024-12-30 18:47:05 +08:00
ibuler
8fabd32426 perf: update detail card 2024-12-30 18:01:13 +08:00
ibuler
6a34bb426c Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-30 17:29:08 +08:00
ibuler
a1edc55ca0 perf: 修改详情布局 2024-12-30 17:29:01 +08:00
zhaojisen
d1366f161d Perf: Connect when select custom protocol 2024-12-30 16:57:07 +08:00
zhaojisen
b58754b6c5 Perf: Add Connect Protocol 2024-12-30 16:22:14 +08:00
feng
ee3e68f3ac perf: Change secret push account add drwaer 2024-12-30 15:21:59 +08:00
ibuler
3a0af18f74 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-27 19:09:04 +08:00
ibuler
24f30ab198 perf: update detail 2024-12-27 19:08:51 +08:00
w940853815
72b9447b12 fix: Update query param names in AssetCreateUpdate and BaseList 2024-12-27 18:08:21 +08:00
zhaojisen
7e24454743 Perf: Change Connect Params 2024-12-27 17:22:14 +08:00
ibuler
48d81dbd19 perf: update create form 2024-12-27 17:20:59 +08:00
ibuler
cdf0a9eed1 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-27 11:04:17 +08:00
ibuler
59cf22a421 perf: 优化 drawer 2024-12-27 11:04:03 +08:00
w940853815
41a34fb2d7 fix: View account discover execution detail 2024-12-27 10:41:41 +08:00
ibuler
4164ea4086 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-26 19:09:17 +08:00
ibuler
a2db27163e perf: 修改 col 宽度 2024-12-26 19:09:05 +08:00
w940853815
5a0b4ec6aa fix: Update discover AccountDetail api url 2024-12-26 19:08:28 +08:00
ibuler
4cfb1a6f37 perf: update account create 2024-12-26 17:18:04 +08:00
ibuler
e2f7fd0d77 perf: update using drawer 2024-12-26 14:34:54 +08:00
ibuler
80d530a2ed perf: update drawer create 2024-12-24 19:20:30 +08:00
ibuler
a1a06e1cbf Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-24 18:40:23 +08:00
ibuler
6bec731396 perf: update pam 2024-12-24 18:37:58 +08:00
w940853815
ac40823319 perf: Update status action to handle multiple accounts 2024-12-24 18:36:27 +08:00
zhaojisen
ef063898ca Perf: Add Windows GUI connect 2024-12-24 16:07:48 +08:00
ibuler
b27a801b04 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-24 15:35:52 +08:00
ibuler
4bcee2fc2d perf: update draw create 2024-12-24 15:35:39 +08:00
feng
b0672bb543 perf: Push account 2024-12-24 10:22:52 +08:00
ibuler
7b0ea02ad4 perf: update asset create 2024-12-23 19:25:52 +08:00
ibuler
eaf7ba5f43 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-20 18:53:50 +08:00
ibuler
28b4aa0d55 perf: update asset create 2024-12-20 18:53:35 +08:00
wangruidong
d9ec7917f3 perf: Delete gather_account 2024-12-20 18:53:02 +08:00
feng
ac6040177a perf: Account push list 2024-12-20 11:03:57 +08:00
ibuler
48e4027525 perf: update draw 2024-12-19 11:07:47 +08:00
ibuler
2955b4800f perf: update asset create 2024-12-18 19:46:57 +08:00
ibuler
395b204da3 perf: update action 2024-12-18 11:41:42 +08:00
ibuler
71ebd6bf56 Merge branch 'pam_new_draw' into pam 2024-12-16 17:59:55 +08:00
ibuler
0494ce7f5b Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-16 17:59:40 +08:00
ibuler
fdf869cd46 perf: update pam 2024-12-16 17:59:32 +08:00
ibuler
7dfca604c2 perf: update draw create update 2024-12-16 14:41:52 +08:00
ibuler
b4abcd4c90 perf: update draw 2024-12-12 19:03:03 +08:00
wangruidong
70777f8335 perf: Add AccountDetail page 2024-12-12 16:01:31 +08:00
ibuler
d62c87b858 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-12 09:44:28 +08:00
wangruidong
743187b4b3 fix: risk check perms 2024-12-11 16:36:38 +08:00
ibuler
5c1f24af6a perf: update template 2024-12-11 11:39:27 +08:00
ibuler
9477bfa2c1 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-11 10:09:12 +08:00
ibuler
1ba58f476f perf: update async 2024-12-11 10:09:07 +08:00
feng
02600d7a1b perf: Remove push account extra api 2024-12-10 19:36:06 +08:00
ibuler
2126c92e07 perf: update status 2024-12-10 16:51:22 +08:00
ibuler
af774a8835 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-10 15:46:44 +08:00
ibuler
b93fad1f91 perf: update check 2024-12-10 15:46:38 +08:00
zhaojisen
ef43be0cb7 perf: Add drawer 2024-12-09 18:52:46 +08:00
ibuler
8b6eea0267 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-09 17:10:36 +08:00
ibuler
d0da22738f perf: update handler 2024-12-09 17:10:30 +08:00
wangruidong
18eda16851 perf: delete gather account 2024-12-09 16:17:39 +08:00
feng
610e9b9efa perf: Account push 2024-12-09 11:19:18 +08:00
ibuler
a0c7d60719 perf: update table actions 2024-12-09 09:38:49 +08:00
zhaojisen
60ba0d8f02 perf: drawer realize 2024-12-06 19:06:09 +08:00
ibuler
b9afb05f1b perf: update risk batch selected 2024-12-06 19:00:41 +08:00
ibuler
fcf9ea2b79 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-06 11:38:40 +08:00
ibuler
430b1117c9 perf: update quick filter style 2024-12-06 11:38:27 +08:00
zhaojisen
a65023c8f7 style: Optimized style 2024-12-06 11:36:20 +08:00
zhaojisen
d6de85ffdd perf:Universal Drawer action assembly 2024-12-05 19:35:34 +08:00
ibuler
5f11d8b54f Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-05 19:10:16 +08:00
ibuler
c7ce602d4c perf: update filter 2024-12-05 19:09:52 +08:00
zhaojisen
d0988da277 perf:Universal Drawer assembly 2024-12-05 18:10:40 +08:00
ibuler
7f13ef35a7 perf: update appliations 2024-12-05 16:07:58 +08:00
ibuler
44348de4ab perf: update card table 2024-12-05 11:15:35 +08:00
ibuler
be82fe1bde Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-04 18:34:42 +08:00
ibuler
2e472dad93 perf: update name space 2024-12-04 18:34:10 +08:00
feng
bbfb237f23 perf: Account backup report 2024-12-04 16:30:19 +08:00
feng
390224613a perf: Change secret report 2024-12-02 19:10:29 +08:00
zhaojisen
7e0c677ad3 perf: Remove back icon 2024-12-02 17:23:04 +08:00
zhaojisen
9936f2b806 perf: Added pam asset drawer 2024-12-02 17:16:46 +08:00
zhaojisen
bfde8bd28b style: Adjust style 2024-12-02 16:07:24 +08:00
ibuler
4b309d950c Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-02 15:20:41 +08:00
zhaojisen
688f06ebac style: Adjust style 2024-12-02 14:26:02 +08:00
ibuler
6fb3b552eb perf: pam update 2024-12-02 14:24:28 +08:00
feng
f27e7bdad4 perf: Change secret record table dashboard 2024-12-02 11:37:49 +08:00
fit2bot
2ee139c92b perf: Change secret dashboard (#4473)
* perf: Change secret dashboard

* style: Modify layout

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: zhaojisen <1301338853@qq.com>
2024-12-02 10:33:46 +08:00
fit2bot
7a6c156aaa feat: PAM Service (#4474)
* feat: PAM Service

* perf: Remove useless

* perf: Add go module download value

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
2024-12-02 10:33:13 +08:00
zhaojisen
11d40b4be1 perf: Add pam template 2024-11-28 18:05:04 +08:00
wangruidong
b772580f99 feat: Add Account Activity List 2024-11-28 17:02:11 +08:00
zhaojisen
fafdb6be5b perf: Basic drawer show 2024-11-28 10:48:37 +08:00
ibuler
2f984530e3 perf: update handler 2024-11-27 19:38:58 +08:00
ibuler
68b39bbc3d Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-11-25 17:16:42 +08:00
ibuler
d21dc57305 perf: update pam 2024-11-25 17:16:09 +08:00
zhaojisen
c58d826898 fixed: Change path naming method 2024-11-22 15:00:11 +08:00
zhaojisen
7e80361635 perf: Add pam connect 2024-11-22 15:00:11 +08:00
ibuler
b25d2016a6 perf: using checkbox replace switch 2024-11-18 14:35:43 +08:00
ibuler
636630fe57 perf: update pam 2024-11-14 19:01:25 +08:00
ibuler
e18726efc2 perf: update accout check 2024-11-13 18:46:24 +08:00
ibuler
823c26aa5e Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-11-13 11:03:05 +08:00
ibuler
c0c9d56408 perf: 修改 pam 2024-11-13 11:02:04 +08:00
zhaojisen
ff4adde897 perf: Add pam connect 2024-11-11 18:38:01 +08:00
ibuler
45ae7cab21 perf: 阶段完成页面 2024-11-06 16:40:35 +08:00
ibuler
429f5aed90 perf: change table 2024-11-05 17:20:46 +08:00
ibuler
d8999ffc06 perf: update icon 2024-11-05 17:08:37 +08:00
ibuler
fd745f0a26 perf: update account risk list 2024-11-04 18:41:20 +08:00
ibuler
322d12f27f perf: update accout check 2024-11-01 19:06:39 +08:00
ibuler
a1bc8ac5bc perf: update accout check 2024-11-01 18:04:53 +08:00
ibuler
9271cb2e1a perf: 更新账号发现 2024-11-01 16:38:21 +08:00
ibuler
0e7c682f72 perf: update gather account 2024-10-29 19:23:29 +08:00
ibuler
c0b4029917 perf: add account status action 2024-10-28 18:57:03 +08:00
ibuler
b1acb62889 perf: update table action 2024-10-25 10:55:35 +08:00
ibuler
26fd9b1813 perf: 更新 quick filter 2024-10-24 14:42:39 +08:00
ibuler
4fabdfdc5f perf: 完善过滤 2024-10-23 18:52:50 +08:00
ibuler
6e894c31a1 perf: update route 2024-10-22 17:30:30 +08:00
ibuler
d8a6fd96ce perf: support options 2024-10-21 17:02:22 +08:00
ibuler
7c5c5f966d perf: asset add account info 2024-10-18 15:21:58 +08:00
ibuler
8b25fd198e perf: change account 2024-10-16 18:48:37 +08:00
ibuler
762fa4c17e perf: 完成一些快速筛选 2024-10-15 18:26:53 +08:00
ibuler
73cc319e7b perf: table action flex 2024-10-15 15:15:46 +08:00
ibuler
d90aba37cf perf: update loader 2024-10-15 13:58:56 +08:00
ibuler
d775ffa501 perf: format 2024-10-14 18:10:07 +08:00
ibuler
e8cf8347e9 perf: 基本完成框架 2024-10-14 14:49:20 +08:00
ibuler
7ff1da71d4 perf: updat asset list and account list action 2024-10-11 19:22:39 +08:00
ibuler
a23a0d0197 perf: update perm 2024-10-11 17:59:00 +08:00
ibuler
1477712c78 perf: 修改 Pam 2024-09-19 09:57:54 +08:00
ibuler
77a0100add perf: add pam panel 2024-09-12 18:56:34 +08:00
ibuler
833e44024f perf: change pkg deps 2024-09-12 11:33:33 +08:00
ibuler
9b7c4ed353 chore: lock the pull request when workflow start 2024-09-12 10:22:01 +08:00
wangruidong
41f841532f feat: LDAP HA 2024-09-11 18:26:49 +08:00
feng
0b9f47dd84 feat: Postgresql support ssl 2024-09-11 18:12:33 +08:00
wangruidong
d32a376e8c feat: Support playbook, adhoc share 2024-09-11 18:02:03 +08:00
ibuler
0f8a8845df perf: change gateway gateway tip 2024-09-11 15:26:57 +08:00
wangruidong
8bb2c66b99 perf: Add task description 2024-09-09 18:59:25 +08:00
ibuler
b3d0be2f60 perf: update platform icon 2024-09-06 11:15:07 +08:00
ibuler
5a94ddd976 perf: api can set radio and checkbox tip 2024-09-06 11:14:03 +08:00
ibuler
7b9627a80b perf: support change gateway platform 2024-09-06 11:10:46 +08:00
feng
5fcfecc060 perf: Acl action add notify and warn 2024-09-06 11:08:21 +08:00
wangruidong
f4d7a2283c feat: Add announcement start and end dates 2024-09-06 10:56:03 +08:00
feng
40bb8410d3 perf: System settings task cleanup add change secret and push record retention days 2024-09-02 10:18:13 +08:00
fit2bot
45344ac620 perf: ldap import user error msg (#4333)
* perf: ldap import user error msg

* fix: Duplication on new code

---------

Co-authored-by: wangruidong <940853815@qq.com>
2024-08-30 17:01:18 +08:00
feng
5b894c9667 perf: View the internal message and convert the content into markdown 2024-08-29 17:28:18 +08:00
ZhaoJiSen
d89bd15b6d Merge pull request #4337 from jumpserver/pr@dev@fix_table_reload
fixed: Fixed an issue where tables could not be refreshed
2024-08-29 13:06:40 +08:00
zhaojisen
5e640dd45c fixed: Fixed an issue where tables could not be refreshed 2024-08-29 11:50:23 +08:00
fit2bot
09aa750794 chore: update checkout action 2024-08-28 11:34:09 +08:00
吴小白
744b215800 feat: bump node from 16.20 to 20.15 2024-08-27 11:07:37 +08:00
ibuler
f4e11da053 perf: revert pre org if logout 2024-08-23 15:40:16 +08:00
ibuler
2e6b5706d5 perf: remove tab in query 2024-08-21 18:04:19 +08:00
feng
440a5b27ef perf: Asset authorization request asset optimization mini limit 300 2024-08-21 11:34:17 +08:00
feng
932e16844e perf: Role detail title translate 2024-08-20 11:29:02 +08:00
feng
aff2e439dd perf: Ztree cannot be dragged under global organization 2024-08-20 10:45:21 +08:00
ZhaoJiSen
a618794c14 Merge pull request #4319 from jumpserver/pr@dev@fix_assets_tree
fixed: asset tree height
2024-08-15 17:51:17 +08:00
zhaojisen
8dd66c400a fixed: asset tree height 2024-08-15 17:49:14 +08:00
ZhaoJiSen
ac3ce464b7 Merge pull request #4318 from jumpserver/pr@dev@fix_aoumnt_formatter
fixed: Fixed an issue where the details list data would not refresh after the data was updated
2024-08-15 17:43:07 +08:00
zhaojisen
4d01c6dabe fixed: Fixed an issue where the details list data would not refresh after the data was updated 2024-08-15 17:39:59 +08:00
ZhaoJiSen
47eeac23eb Merge pull request #4317 from jumpserver/pr@dev@ticket_flow
perf: Ticket flow detail error
2024-08-15 16:42:58 +08:00
feng
592f783245 perf: Ticket flow detail error 2024-08-15 16:42:01 +08:00
Ewall555
c34ac6a56f perf: Translate ticket cancel button 2024-08-15 15:50:36 +08:00
Bai
9a7162cc9e perf: i18n for ldap user import 2024-08-15 15:49:25 +08:00
ZhaoJiSen
5edf2f34dd Merge pull request #4313 from jumpserver/pr@dev@fix_cloud_button
fixed: Fixed the issue that can be edited and deleted under the default cloud synchronization policy
2024-08-15 12:07:42 +08:00
zhaojisen
859d824195 fixed: Fixed the issue that can be edited and deleted under the default cloud synchronization policy 2024-08-15 12:06:36 +08:00
ZhaoJiSen
c382cc633e Merge pull request #4312 from jumpserver/pr@dev@fix_quick_job
fixed: Fixed the issue that the shortcut command could not get the account
2024-08-15 11:06:21 +08:00
zhaojisen
653e24773f fixed: Fixed the issue that the shortcut command could not get the account 2024-08-15 10:59:13 +08:00
wangruidong
ae489610ee perf: Translate batch approval 2024-08-14 19:28:11 +08:00
ZhaoJiSen
b5e85c66e4 Merge pull request #4311 from jumpserver/pr@dev@fix_icon_show
fixed: common icon
2024-08-14 19:01:49 +08:00
zhaojisen
4060fa4c4a fixed: common icon 2024-08-14 18:59:13 +08:00
ZhaoJiSen
9630b79daa Merge pull request #4310 from jumpserver/pr@dev@fix_common_icon
fixed: common icon
2024-08-14 18:55:52 +08:00
zhaojisen
ad93917387 fixed: common icon 2024-08-14 18:52:40 +08:00
feng
691590da7b perf: Cloud sync task interval to number 2024-08-14 18:52:19 +08:00
feng
71828fd78b perf: Translate 2024-08-14 16:38:04 +08:00
ZhaoJiSen
5a45f31ac4 Merge pull request #4305 from jumpserver/pr@dev@fix_ticket_tree
fixed: Fixed missing action book nodes in ticket details
2024-08-14 16:32:37 +08:00
zhaojisen
44901eee23 fixed: Fixed missing action book nodes in ticket details 2024-08-14 16:30:49 +08:00
ZhaoJiSen
2d91fa107d Merge pull request #4304 from jumpserver/pr@dev@fix_storage_textarea
fixed:Fixed the common item in the storage Settings to be a text field
2024-08-14 15:48:20 +08:00
zhaojisen
7a6ade4bd9 fixed:Fixed the common item in the storage Settings to be a text field 2024-08-14 15:46:31 +08:00
wangruidong
951778668f perf: profile page go to some page error 2024-08-13 18:16:04 +08:00
zhaojisen
0aca23bf38 fixed: internationalization issues 2024-08-13 17:50:49 +08:00
wangruidong
9b97dc9a74 perf: add auto generate ssh-key 2024-08-13 17:43:47 +08:00
feng
32cd030479 fix: Cloud sync task regions display 2024-08-09 17:40:50 +08:00
wangruidong
607bb476db perf: asset name edit add icon 2024-08-09 16:33:58 +08:00
feng
1d676ec9b7 perf: Domain detail gateway translate 2024-08-09 10:45:52 +08:00
wangruidong
614ebb4121 fix: platform page asset not allow go to detail page 2024-08-08 17:34:42 +08:00
ZhaoJiSen
8c2719a95d Merge pull request #4291 from jumpserver/pr@dev@fix_load
perf: add button loading status
2024-08-08 15:00:45 +08:00
zhaojisen
c6b0a958a6 perf: add button loading status 2024-08-08 14:53:42 +08:00
ZhaoJiSen
3edebf3f4f Merge pull request #4290 from jumpserver/pr@dev@fix_loading
perf: add button loading status
2024-08-08 14:47:26 +08:00
zhaojisen
f63405978e perf: add button loading status 2024-08-08 14:46:39 +08:00
fit2bot
c582c8de98 chore: remove build test 2024-08-08 13:50:57 +08:00
fit2bot
c44e79ed3b perf: add button loading status (#4285)
* perf: add button loading status

* perf: add button loading status

* perf: add button loading status

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2024-08-08 11:37:38 +08:00
feng
fc7d5b9c29 perf: Asset authorization: The number of accounts displayed is incorrect ignore @SPEC 2024-08-07 17:51:15 +08:00
Eric
335febd4a5 perf: update session page i18n 2024-08-07 17:45:52 +08:00
wangruidong
5ea2918fe7 feat: Allow users to customize asset name and comment 2024-08-07 16:47:54 +08:00
ZhaoJiSen
7668d10ba5 Merge pull request #4282 from jumpserver/pr@dev@fix_continue_add
fixed: Restore continues to add the ability to clear the form
2024-08-06 14:20:53 +08:00
zhaojisen
df15d141da fixed: Restore continues to add the ability to clear the form 2024-08-06 14:14:37 +08:00
wangruidong
e2f4bbde79 feat: support configuring multiple SSH keys for users 2024-08-05 15:21:14 +08:00
feng
3ca7de42af perf: Optimization settings auth org select2 2024-08-02 17:51:25 +08:00
Bai
e6a577ba9b perf: assets internal display for false 2024-08-02 16:04:59 +08:00
feng
6290179460 perf: Third-party user login settings default organization 2024-08-02 15:52:42 +08:00
ZhaoJiSen
4f3c9e9353 Merge pull request #4276 from jumpserver/pr@dev@fix_add_continue
fixed: Fixed the issue when adding
2024-08-01 14:57:54 +08:00
zhaojisen
aa28a8f765 fixed: Fixed the issue when adding 2024-08-01 14:57:01 +08:00
ZhaoJiSen
98d0a52fa2 Merge pull request #4275 from jumpserver/pr@dev@fix_filter_param
fixed: Filtering parameters
2024-07-31 14:30:54 +08:00
zhaojisen
8d9e1ffadb fixed: Filtering parameters 2024-07-31 14:29:49 +08:00
zhaojisen
b3be312a4d fixed: Fixed page refresh when tree nodes are clicked 2024-07-31 11:23:07 +08:00
feng
7c41d148aa perf: Support WeCom DingTalk FeiShu Lark Slack attribute mapping 2024-07-30 17:51:55 +08:00
feng
6dee911642 perf: Approval process role selection supports multiple strategies 2024-07-30 16:37:32 +08:00
wangruidong
6dd35e5173 feat: add assets amount field to platform page 2024-07-26 13:44:22 +08:00
halo
fdaa33f68d perf: Email service authentication username is optional 2024-07-26 11:39:31 +08:00
feng
0b813bb719 perf: Del profile scheduled request 2024-07-25 18:22:26 +08:00
fit2bot
7ba6b8d4e4 perf: fix session i18n default (#4258)
* perf: fix session i18n default

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-07-24 10:03:24 +08:00
ibuler
ef99e25fde perf: workflow 2024-07-23 17:12:37 +08:00
github-actions[bot]
d1e7b907e3 perf: Update Dockerfile with new base image tag 2024-07-23 16:52:36 +08:00
ibuler
83f7dda5e7 perf: change base image 2024-07-23 16:52:36 +08:00
ibuler
80f929fdea perf: change build
perf: using cache

perf: using pnpm
2024-07-23 16:13:36 +08:00
feng
1ec3d02933 perf: You can modify sudo permissions multiple times 2024-07-22 18:17:50 +08:00
ZhaoJiSen
fdf148cc2b Merge pull request #4250 from jumpserver/pr@dev@fix_validation_refresh
fixed: Fixed an issue where the validation date does not refresh
2024-07-22 14:57:28 +08:00
ZhaoJiSen
c9e6ef89dc Merge pull request #4249 from jumpserver/pr@dev@fix_add_continue
fixed: Fixed an issue where the data would not refresh after the Save and Continue Add button was successfully added
2024-07-22 14:57:03 +08:00
zhaojisen
59f9f88f8b fixed: Fixed an issue where the validation date does not refresh 2024-07-22 14:48:51 +08:00
zhaojisen
16417ae843 fixed: Fixed an issue where the data would not refresh after the Save and Continue Add button was successfully added 2024-07-22 10:31:54 +08:00
ZhaoJiSen
58bd0a17c8 Merge pull request #4246 from jumpserver/pr@dev@fix_asset_refresh
fixed: Fixed an issue with asset refresh when clicked
2024-07-18 12:36:55 +08:00
zhaojisen
c4a1eb6938 fixed: Fixed an issue with asset refresh when clicked 2024-07-18 12:33:28 +08:00
feng
b7d9031889 perf: Translate 2024-07-17 18:05:19 +08:00
feng
96b29a9dc2 perf: Feishu lark support attributes settings 2024-07-17 17:00:02 +08:00
zhaojisen
336e176639 style: Code Editor style change 2024-07-17 16:52:03 +08:00
zhuoyang
2df4a9d66d fix:vue.config.js 2024-07-17 16:11:17 +08:00
feng
45a102cff1 perf: Translate 2024-07-17 11:40:17 +08:00
ZhaoJiSen
57ebfa0812 Merge pull request #4235 from jumpserver/pr@dev@fix_editor_style
style: Editor style adjustments
2024-07-17 11:14:53 +08:00
zhaojisen
4e9dd57efe style: Editor style adjustments 2024-07-17 11:13:05 +08:00
ZhaoJiSen
3fcc4ca160 Merge pull request #4229 from jumpserver/pr@dev@fix_params_push
fixed: Fixed the issue that parameter push parameters could not be saved
2024-07-17 11:01:02 +08:00
feng626
958760811c Merge pull request #4230 from jumpserver/pr@dev@ticket
perf: Del ticket comment mistake date
2024-07-17 10:54:50 +08:00
feng
b60e0251c2 perf: Del ticket comment mistake date 2024-07-17 10:51:40 +08:00
zhaojisen
3db0ed756e fixed: Fixed the issue that parameter push parameters could not be saved 2024-07-17 10:51:15 +08:00
feng626
453c4b1e4e Merge pull request #4222 from jumpserver/pr@dev@download
perf: Downloading files does not trigger the beforeunload event
2024-07-16 12:35:32 +08:00
feng
bf4d8ce7a6 perf: Downloading files does not trigger the beforeunload event 2024-07-16 12:34:18 +08:00
wangruidong
34effdbe15 perf: 社区版移除magnus 2024-07-15 19:27:16 +08:00
zhaojisen
274db466f2 fixed:Fixed an issue where the user was unable to enter non-MD content 2024-07-15 19:09:05 +08:00
ZhaoJiSen
cbe697f9dc Merge pull request #4218 from jumpserver/pr@dev@fix_job_tooltip
fixed: Fixed the tooltip shortcut command interface issue
2024-07-15 18:31:28 +08:00
zhaojisen
fb7acb100e fixed: Fixed the tooltip shortcut command interface issue 2024-07-15 18:28:15 +08:00
feng626
ebb36847df Merge pull request #4213 from jumpserver/pr@dev@cloud_sync_install
perf: Cloud sync instance execution add trigger
2024-07-15 18:02:46 +08:00
feng
beba4f1994 perf: Cloud sync instance execution add trigger 2024-07-11 17:15:58 +08:00
ZhaoJiSen
452796e3f5 Merge pull request #4212 from jumpserver/pr@dev@fix_params_remain
fixed: Fixed an issue where push parameters could not be saved when adding an asset account
2024-07-11 15:34:42 +08:00
zhaojisen
02a7969d90 fixed: Fixed an issue where push parameters could not be saved when adding an asset account 2024-07-11 15:32:19 +08:00
zhaojisen
798dbec151 fixed :Event bus shutdown 2024-07-11 15:20:51 +08:00
ibuler
0e11a56e37 perf: table search two times, one init one search 2024-07-11 15:20:01 +08:00
ibuler
be5344344c perf: view cache 2024-07-11 15:18:41 +08:00
ibuler
e75d711e0a perf: nest field change may be lead blink 2024-07-11 15:17:07 +08:00
wangruidong
46ee116f3e fix: role display error when update user 2024-07-11 15:07:29 +08:00
ZhaoJiSen
f4b304338f Merge pull request #4207 from jumpserver/pr@dev@fix_switch_showTooltip
fixed: Fixed tooltip issue with switch button
2024-07-11 10:48:46 +08:00
zhaojisen
e93e78307c fixed: Fixed tooltip issue with switch button 2024-07-11 10:47:33 +08:00
wangruidong
d22079446f perf: profile improvement mfa disabled 2024-07-10 14:21:06 +08:00
ibuler
d57b99b00c perf: phone code api 2024-07-09 19:24:07 +08:00
ZhaoJiSen
e7321356af Merge pull request #4197 from jumpserver/pr@dev@fix_card_style
style: Fine-tuning styles
2024-07-09 18:58:39 +08:00
zhaojisen
a0edc2c527 style: Fine-tuning styles 2024-07-09 18:54:45 +08:00
ibuler
10ebcfd64d perf: tags display inline 2024-07-09 16:08:55 +08:00
ibuler
a3fedb9697 perf: license display for community edition 2024-07-09 16:03:18 +08:00
吴小白
1eb8a18c66 fix: FromAsCasing keywords 2024-07-09 16:02:18 +08:00
wangruidong
f491c57c34 perf: display newly invited users at the top of the list 2024-07-09 15:54:31 +08:00
ZhaoJiSen
50b7f54652 Merge pull request #4193 from jumpserver/pr@dev@fix_menu_heighlight
fixed: Missing menu highlight in command group detail page
2024-07-09 11:12:00 +08:00
zhaojisen
5bf298a5bf fixed: Missing menu highlight in command group detail page 2024-07-09 11:07:01 +08:00
wangruidong
124ff9a8c2 fix: foot content allow blank 2024-07-08 19:24:34 +08:00
ZhaoJiSen
387ab4f1b3 Merge pull request #4186 from jumpserver/pr@dev@fix_item_empty
fixed: Fixed an issue where the field is empty
2024-07-08 18:55:00 +08:00
zhaojisen
d6fbdfa7ea fixed: Fixed an issue where the field is empty 2024-07-08 18:51:10 +08:00
feng626
cd4260fd8d Merge pull request #4184 from jumpserver/pr@dev@translate
perf: Translate
2024-07-05 16:37:29 +08:00
feng
baeece62d3 perf: Translate 2024-07-05 16:36:24 +08:00
wangruidong
576c8f5891 fix: update platform with update protocols 2024-07-05 15:07:10 +08:00
feng626
5e97600807 Merge pull request #4182 from jumpserver/pr@dev@translate
perf: Translate
2024-07-04 18:15:04 +08:00
feng
4e2eb3a37d perf: Translate 2024-07-04 18:13:49 +08:00
feng626
e92173f8e8 Merge pull request #4181 from jumpserver/pr@dev@applet
perf: Virtualapp and appprovider tab perm
2024-07-04 16:46:45 +08:00
feng
412d9c804e perf: Virtualapp and appprovider tab perm 2024-07-04 16:46:00 +08:00
ZhaoJiSen
b84a725d4a Merge pull request #4179 from jumpserver/pr@dev@fix_split_job
perf: split job management
2024-07-04 16:37:39 +08:00
feng626
58b39743e0 Merge pull request #4180 from jumpserver/pr@dev@apple
perf: Apple host detail perm
2024-07-04 16:33:39 +08:00
feng
7651443c25 perf: Apple host detail perm 2024-07-04 16:32:20 +08:00
zhaojisen
8d64e331d1 perf: split job management 2024-07-04 16:04:26 +08:00
zhaojisen
f873254248 fixed: remove acl rules table item 2024-07-03 15:35:40 +08:00
ZhaoJiSen
c569d0c21c Merge pull request #4176 from jumpserver/pr@dev@fix_cloud_sync
fixed: Online synchronous import
2024-07-03 15:09:09 +08:00
zhaojisen
95d1e23cf8 fixed: Online synchronous import 2024-07-03 15:06:07 +08:00
ibuler
a976948388 perf: cloud privider 2024-07-03 14:46:52 +08:00
ZhaoJiSen
38aadbd8e4 Merge pull request #4174 from jumpserver/pr@dev@fix_user_remove
fixed: User group remove item. TAPD: 1043469
2024-07-03 13:26:22 +08:00
zhaojisen
257ddd9517 fixed: User group remove item. TAPD: 1043469 2024-07-03 13:18:58 +08:00
ZhaoJiSen
2630eddb41 Merge pull request #4173 from jumpserver/pr@dev@fix_cloud_origin
fixed: cloud origin bug. TAPD: 1043263
2024-07-03 11:18:19 +08:00
zhaojisen
5d84b7c874 fixed: cloud origin bug. TAPD: 1043263 2024-07-03 11:11:40 +08:00
ZhaoJiSen
017884e7cc Merge pull request #4172 from jumpserver/pr@dev@fix_auth_refresh
fixed: Fixed the issue that the button text would not refresh when the personal information page unbind authentication. TAPD: 1043567
2024-07-03 10:25:18 +08:00
zhaojisen
682528367d fixed: Fixed the issue that the button text would not refresh when the personal information page unbind authentication. TAPD: 1043567 2024-07-03 10:17:23 +08:00
ibuler
d1b343dfd4 perf: sub form perfermence 2024-07-03 10:05:56 +08:00
wangruidong
1e120f6b77 fix: Resolve issue with update permissions preventing data import 2024-07-02 16:34:37 +08:00
ZhaoJiSen
e59c129e50 Merge pull request #4169 from jumpserver/pr@dev@fix_output_height
style: output height
2024-07-02 15:31:58 +08:00
zhaojisen
4ad17c33a5 style: output height 2024-07-02 15:28:03 +08:00
ZhaoJiSen
31179d665e Merge pull request #4167 from jumpserver/pr@dev@fix_action_width
style: Tweak the width of the action button in English mode
2024-07-02 15:11:27 +08:00
wangruidong
8476cd3dd9 fix: Adhoc chdir invalid 2024-07-02 15:06:28 +08:00
zhaojisen
d442f9bc7d style: Tweak the width of the action button in English mode 2024-07-02 14:58:59 +08:00
ZhaoJiSen
f7c48072c4 Merge pull request #4166 from jumpserver/pr@dev@fix_search_style
style: Fine-tune the search box style
2024-07-02 14:57:19 +08:00
zhaojisen
2690f1904b style: Fine-tune the search box style 2024-07-02 14:37:40 +08:00
wangruidong
6d72a5af4a fix: modify view_workbench deps 2024-07-02 14:28:12 +08:00
ibuler
c4ddfb7d64 perf: community user profile index err 2024-07-02 14:11:22 +08:00
ibuler
d388cb3059 perf: user detail permed assets 2024-07-02 14:10:34 +08:00
ibuler
07223c0e31 perf: select perform 2024-07-02 14:09:45 +08:00
ZhaoJiSen
6a492a83bf Merge pull request #4164 from jumpserver/pr@dev@fix_import_dialog
fixed: Fixed export button not clicking。 TAPD:1043498
2024-07-02 13:58:51 +08:00
zhaojisen
1f6346dbe1 fixed: Fixed export button not clicking。TAPD:1043498 2024-07-02 13:55:22 +08:00
feng626
4ab788364e Merge pull request #4161 from jumpserver/pr@dev@applet
perf: Applet rbac
2024-07-02 11:25:58 +08:00
feng
9849c0e47b perf: Applet rbac 2024-07-02 11:24:30 +08:00
wangruidong
3d86e75bc8 perf: Translate 2024-07-02 10:52:06 +08:00
ibuler
265466c549 perf: community user profile index err 2024-07-01 19:48:48 +08:00
ZhaoJiSen
7e3808c4b9 Merge pull request #4155 from jumpserver/pr@dev@fix_table_select
fixed: Fixed an issue with Select2 component and table in user list
2024-07-01 19:30:01 +08:00
ibuler
7c141b5183 perf: user detail tab user authorization rules 2024-07-01 19:29:02 +08:00
zhaojisen
cccec1aa1b fixed: Fixed an issue with Select2 component and table in user list 2024-07-01 19:28:00 +08:00
wangruidong
7c3effe1d9 fix: no perms can view workbench 2024-07-01 19:00:35 +08:00
wangruidong
4717b21abb fix: no perms can view workbench 2024-07-01 19:00:35 +08:00
wangruidong
44bd9cb8c7 perf: User filter by attribute add tags 2024-07-01 18:13:31 +08:00
feng626
117bccc520 Merge pull request #4151 from jumpserver/pr@dev@cloud_Account
perf: Cloud account error handling
2024-07-01 17:41:32 +08:00
feng
fb86ac4060 perf: Cloud account error handling 2024-07-01 17:40:47 +08:00
wangruidong
dae1fef629 fix: su_method undefined 2024-07-01 16:51:40 +08:00
feng626
455496adcf Merge pull request #4148 from jumpserver/pr@dev@mfa
perf: User first login mfa control
2024-07-01 16:48:00 +08:00
feng
3b50431e57 perf: User first login mfa control 2024-07-01 16:46:58 +08:00
ibuler
27765ca866 perf: view caches bug 2024-07-01 16:22:40 +08:00
feng626
9dad31c75a Merge pull request #4146 from jumpserver/pr@dev@platform_glolab_org
perf: Platform glolab org
2024-07-01 16:11:56 +08:00
feng
04067f5729 perf: Platform glolab org 2024-07-01 16:09:46 +08:00
ZhaoJiSen
edcff7d640 Merge pull request #4144 from jumpserver/pr@dev@fix_repeated_request
fixed: Fixed an issue with duplicate requests
2024-07-01 15:55:35 +08:00
zhaojisen
1b5f20f9e4 fixed: Fixed an issue with duplicate requests 2024-07-01 15:51:54 +08:00
ibuler
add8bd0f01 perf: version value 2024-07-01 15:45:22 +08:00
wangruidong
83c5cf4231 perf: Translate 2024-07-01 15:16:48 +08:00
ibuler
fc4ffe53a5 perf: json many to many field, set timeout to submit 2024-07-01 14:49:53 +08:00
ZhaoJiSen
92e66981a8 Merge pull request #4140 from jumpserver/pr@dev@fix_tag_dialog_close
fixed: Fixed an issue where Tag Dialog could not be closed when jumping
2024-07-01 13:58:38 +08:00
zhaojisen
98153ff98c fixed: Fixed an issue where Tag Dialog could not be closed when jumping 2024-07-01 13:54:55 +08:00
feng626
89246186d0 Merge pull request #4139 from jumpserver/pr@dev@translate
perf: Translate
2024-07-01 10:15:19 +08:00
feng
31faca5d3f perf: Translate 2024-07-01 10:14:11 +08:00
ibuler
ed371dba4f perf: account secret tool tip show delay 2024-06-28 19:02:03 +08:00
ibuler
0ac4337f98 perf: lang change 2024-06-28 19:01:43 +08:00
feng626
526a2eb1d8 Merge pull request #4138 from jumpserver/pr@dev@account_gather
perf: Account gather execution list add trigger
2024-06-28 18:55:27 +08:00
feng
9ce7ebd600 perf: Account gather execution list add trigger 2024-06-28 18:54:33 +08:00
ibuler
3e00c06766 perf: change dumplidate title to -dumplicate 2024-06-28 18:28:56 +08:00
feng626
2c9e1f6d3a Merge pull request #4136 from jumpserver/pr@dev@account_cloud_translate
perf: Cloud account strategy translate
2024-06-28 17:35:42 +08:00
feng
0a57f3afc7 perf: Cloud account strategy translate 2024-06-28 17:34:13 +08:00
ZhaoJiSen
ee31b501af Merge pull request #4135 from jumpserver/pr@dev@fix_file_transfer
perf: file transfer
2024-06-28 17:24:59 +08:00
zhaojisen
4e79074cef perf: file transfer 2024-06-28 17:19:51 +08:00
ibuler
ada6479177 perf: lang setting from core 2024-06-28 16:39:35 +08:00
wangruidong
32585e4abc perf: Modify Label to Tags 2024-06-28 15:28:28 +08:00
ZhaoJiSen
861bce244e Merge pull request #4132 from jumpserver/pr@dev@fix_remove_fields
fixed: The summary and parameter fields were removed
2024-06-28 11:20:58 +08:00
zhaojisen
5412647971 fixed: The summary and parameter fields were removed 2024-06-28 11:18:23 +08:00
ZhaoJiSen
887496fe51 Merge pull request #4131 from jumpserver/pr@dev@fix_assets_tree_refresh
fixed: Fixed an issue where the right table would not refresh when a node in the asset tree was clicked
2024-06-28 10:36:34 +08:00
zhaojisen
1f3d29560d fixed: Fixed an issue where the right table would not refresh when a node in the asset tree was clicked 2024-06-28 10:33:29 +08:00
wangruidong
d3c018dc4a perf: Task log optimize 2024-06-28 10:25:44 +08:00
ZhaoJiSen
8a7f358b06 Merge pull request #4129 from jumpserver/pr@dev@fix_jobs_adhoc
fixed: adhoc style change
2024-06-27 18:40:42 +08:00
zhaojisen
42ea79858f fixed: adhoc style change 2024-06-27 18:36:56 +08:00
wangruidong
e60dd28212 perf: add account backup execution perm 2024-06-27 16:23:40 +08:00
wangruidong
4eefb448ed perf: add change labeled resource perm 2024-06-27 16:06:08 +08:00
wangruidong
918b6dbe8e perf: add comment 2024-06-27 15:01:03 +08:00
wangruidong
34154178e2 fix: markdown not applying github styles 2024-06-27 11:01:52 +08:00
ibuler
060fc4719c perf: use other algo replace crypto uuid 2024-06-27 10:16:29 +08:00
ibuler
ea44fe7c13 perf: change krry paging 2024-06-26 19:29:12 +08:00
zhaojisen
6264caf8a8 fixed: route warning 2024-06-26 19:28:48 +08:00
ibuler
2b3537ac7e perf: translate some word 2024-06-26 19:28:23 +08:00
feng626
86efbbcd82 Merge pull request #4120 from jumpserver/pr@dev@asset_perm
fix: Asset authorization cannot be imported
2024-06-26 17:06:04 +08:00
feng
40b8b3f739 fix: Asset authorization cannot be imported 2024-06-26 17:04:14 +08:00
ZhaoJiSen
40a18d7efb Merge pull request #4119 from jumpserver/pr@dev@fix_tips_show
fixed: tip message show
2024-06-26 16:55:54 +08:00
zhaojisen
517917947a fixed: tip message show 2024-06-26 16:51:14 +08:00
wangruidong
b6b97cb3a5 perf: Translate ticket action 2024-06-26 15:47:53 +08:00
wangruidong
46a8e53c51 fix: allow class attribute 2024-06-26 15:47:32 +08:00
ZhaoJiSen
0a6a628be5 Merge pull request #4115 from jumpserver/pr@dev@fix_cloud_button
fixed: Fixed the issue that some button clicks of cloud platform account could not be operated
2024-06-26 14:39:16 +08:00
zhaojisen
1238a62a3c fixed: Fixed the issue that some button clicks of cloud platform account could not be operated 2024-06-26 14:33:42 +08:00
wangruidong
aaff23d261 perf: No filter content in template management search dropdown in task center 2024-06-26 11:29:17 +08:00
feng626
9df71344ed Merge pull request #4112 from jumpserver/pr@dev@rbac_translate
perf: Translate
2024-06-25 19:10:14 +08:00
feng
7acf008adc perf: Translate 2024-06-25 19:09:01 +08:00
ZhaoJiSen
7f2bab1a30 Merge pull request #4111 from jumpserver/pr@dev@fix_auto_search_export
fixed: Fixed the abnormal behavior of the export pop-up when exporting
2024-06-25 18:25:06 +08:00
zhaojisen
6eaa8b9a85 fixed: Fixed the abnormal behavior of the export pop-up when exporting 2024-06-25 18:21:15 +08:00
ibuler
ea9f067f35 perf: json many to many 2024-06-25 17:30:56 +08:00
ZhaoJiSen
564b04850a Merge pull request #4109 from jumpserver/pr@dev@fix_id_error
fixed: Fixed an issue where clicking the user/group field in the authorization rule of the user detail page would jump to an error
2024-06-25 17:10:22 +08:00
zhaojisen
3f42ad7d18 fixed: Fixed an issue where clicking the user/group field in the authorization rule of the user detail page would jump to an error 2024-06-25 17:06:52 +08:00
ZhaoJiSen
1b7ffaeda3 Merge pull request #4108 from jumpserver/pr@dev@fix_plateform_tab
fixed: Fixed an issue where the correct tab could not be located after creating the platform
2024-06-25 14:03:55 +08:00
zhaojisen
8fad0019f8 fixed: Fixed an issue where the correct tab could not be located after creating the platform 2024-06-25 13:59:39 +08:00
zhaojisen
f06d28dab1 fixed: Fixed an issue where MFA validation would open twice 2024-06-25 12:41:53 +08:00
fit2bot
5b3d20972a perf: ztree auto height (#4106)
Co-authored-by: ibuler <ibuler@qq.com>
2024-06-25 11:40:43 +08:00
ZhaoJiSen
20f97f96b8 Merge pull request #4105 from jumpserver/pr@dev@fix_auto_tarnsform
fixed: Fixed an issue where the message subscription page would not be automatically checked
2024-06-25 10:33:09 +08:00
zhaojisen
a952c0b216 fixed: Fixed an issue where the message subscription page would not be automatically checked 2024-06-25 10:29:07 +08:00
wangruidong
1edb374a90 perf: Make LDAP sync import interval optional in settings form 2024-06-25 10:16:39 +08:00
feng626
39b43d6eff Merge pull request #4103 from jumpserver/pr@dev@translate
perf: Translate
2024-06-24 20:07:19 +08:00
feng
0b3eb69749 perf: Translate 2024-06-24 20:06:00 +08:00
wangruidong
440a3fa7fe perf: favor & disfavor msg 2024-06-24 19:39:44 +08:00
ZhaoJiSen
16e9bf37ea Merge pull request #4101 from jumpserver/pr@dev@fix_table_reload
fixed: Fixed an issue where tables could not be refreshed after creation
2024-06-24 19:31:33 +08:00
zhaojisen
448e4fac32 fixed: Fixed an issue where tables could not be refreshed after creation 2024-06-24 19:27:30 +08:00
ZhaoJiSen
e819bc5aee Merge pull request #4100 from jumpserver/pr@dev@fix_table_action
style: Fixed the bottom border of the operation column button in the table
2024-06-24 19:20:28 +08:00
zhaojisen
662e29c4c7 style: Fixed the bottom border of the operation column button in the table 2024-06-24 19:12:20 +08:00
ZhaoJiSen
195f0cd69a Merge pull request #4099 from jumpserver/pr@dev@fix_mfa_dialog
fixed: Fixed an issue with MFA popover not closing
2024-06-24 17:05:48 +08:00
zhaojisen
d4fff004c9 fixed: Fixed an issue with MFA popover not closing 2024-06-24 17:00:11 +08:00
老广
de89e7e80a Merge pull request #4095 from jumpserver/v4
Merge v4 to dev
2024-06-24 16:46:10 +08:00
ibuler
cd94116465 perf: list table help tip 2024-06-24 16:42:27 +08:00
ibuler
78706a0fb6 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-24 16:21:52 +08:00
ibuler
bee96b9e09 perf: use v-sanitize except v-html 2024-06-24 16:21:34 +08:00
feng626
47b5e4ba90 Merge pull request #4098 from jumpserver/pr@v4@translate
perf: Translate
2024-06-24 15:56:53 +08:00
feng
6583c27600 perf: Translate 2024-06-24 15:55:40 +08:00
ZhaoJiSen
ebba329a0d Merge pull request #4097 from jumpserver/pr@v4@fix_cloud_sync
fixed:Fixed an issue where resources were not displayed in cloud synchronization
2024-06-24 15:24:17 +08:00
zhaojisen
0aadfe5d24 fixed:Fixed an issue where resources were not displayed in cloud synchronization 2024-06-24 15:16:50 +08:00
ibuler
5e7e4151a3 merge: with remote 2024-06-24 15:04:40 +08:00
ibuler
4d418221d6 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-24 14:54:58 +08:00
ibuler
2d81cc857b perf: bulk delete msg display 2024-06-24 14:51:32 +08:00
ZhaoJiSen
b0ab3bf434 Merge pull request #4096 from jumpserver/pr@v4@fix_perm_rules
fixed: Fixed the issue that the latest authorization rule could not be displayed when the asset authorization was clicked again after successfully creating the asset authorization
2024-06-24 14:49:19 +08:00
zhaojisen
8eb381b81c fixed: Fixed the issue that the latest authorization rule could not be displayed when the asset authorization was clicked again after successfully creating the asset authorization 2024-06-24 14:38:42 +08:00
wangruidong
2e7611ad92 perf: Disable scheduled tasks for the community edition in account push 2024-06-24 11:51:28 +08:00
ZhaoJiSen
7955afcf35 Merge pull request #4094 from jumpserver/pr@v4@fix_system_role
fixed: Fixed the empty error message when the role detail page was removed
2024-06-24 11:45:36 +08:00
zhaojisen
8e8ee7c495 fixed: Fixed the empty error message when the role detail page was removed 2024-06-24 11:42:57 +08:00
ZhaoJiSen
f3f1da452e Merge pull request #4092 from jumpserver/pr@v4@fix_assets_perms
fixed: Fixed asset authorization jump error
2024-06-24 11:37:13 +08:00
zhaojisen
3efe6efa0b fixed: Fixed asset authorization jump error 2024-06-24 11:32:43 +08:00
ibuler
37453aaa11 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-24 11:10:57 +08:00
ibuler
47c26e93df perf: passkey help info 2024-06-24 11:05:14 +08:00
wangruidong
e3f5f948c3 perf: Optimize SSH key form in personal information settings 2024-06-24 11:00:34 +08:00
feng626
17d0dab859 Merge pull request #4090 from jumpserver/pr@v4@translate
perf: Translate
2024-06-24 10:57:03 +08:00
feng
02f5f4261e perf: Translate 2024-06-24 10:48:33 +08:00
Gerry.tan
5ccaa3b77d perf: 优化用户校验页面对密码进行加密传输 2024-06-24 10:38:00 +08:00
ibuler
fc4f10a7ea Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-24 09:55:30 +08:00
ibuler
6d127bdee7 perf: 修改图标 2024-06-24 09:55:20 +08:00
feng626
00c5968380 Merge pull request #4089 from jumpserver/pr@v4@rbac_perm
perf: Edit rbac perms
2024-06-21 19:07:16 +08:00
feng
0f8e02c738 perf: Edit rbac perms 2024-06-21 19:04:59 +08:00
wangruidong
77c1af3dcf fix: The left asset tree refreshes every time a shortcut command is executed 2024-06-21 18:03:15 +08:00
ZhaoJiSen
ad52d17bda Merge pull request #4085 from jumpserver/pr@v4@fix_remote_detail
fixed: Fixed an issue where the app card would not jump when clicked
2024-06-21 10:57:18 +08:00
zhaojisen
d45e18fac6 fixed: Fixed an issue where the app card would not jump when clicked 2024-06-21 10:53:35 +08:00
feng626
5432306b1a Merge pull request #4084 from jumpserver/pr@v4@rbac
perf: System setting perm
2024-06-20 19:18:56 +08:00
feng
b1000227c0 perf: System setting perm 2024-06-20 19:17:54 +08:00
ZhaoJiSen
9d86a63b52 Merge pull request #4083 from jumpserver/pr@v4@fix_white_page
fixed: Fixed a blank page when users logged in for the first time
2024-06-20 18:47:31 +08:00
zhaojisen
32d6fc95be fixed: Fixed a blank page when users logged in for the first time 2024-06-20 18:44:07 +08:00
ZhaoJiSen
d7ff7c8038 Merge pull request #4081 from jumpserver/pr@v4@fix_dialog_close
fixed: Fixed an issue where MFA forms could not be closed
2024-06-20 18:13:39 +08:00
zhaojisen
b042bf4b55 fixed: Fixed an issue where MFA forms could not be closed 2024-06-20 18:10:22 +08:00
ZhaoJiSen
b315f65bcd Merge pull request #4080 from jumpserver/pr@v4@fix_table_width
style: table width
2024-06-20 16:38:51 +08:00
zhaojisen
ead06c5eae style: table width 2024-06-20 16:34:31 +08:00
ZhaoJiSen
b8b488274f Merge pull request #4079 from jumpserver/pr@v4@fix_role_sys
fixed: Fixed an issue where the delete prompt was incorrect when the user had only one organization role
2024-06-20 15:49:58 +08:00
zhaojisen
e54ac05df2 fixed: Fixed an issue where the delete prompt was incorrect when the user had only one organization role 2024-06-20 15:45:08 +08:00
ZhaoJiSen
6146ffc9c3 Merge pull request #4078 from jumpserver/pr@v4@fix_privileged_show
fixed: Change the way the unprivileged account field is displayed in the table
2024-06-20 15:16:25 +08:00
zhaojisen
0fcd8c134d fixed: Change the way the unprivileged account field is displayed in the table 2024-06-20 15:10:25 +08:00
ZhaoJiSen
ccac4745ea Merge pull request #4077 from jumpserver/pr@v4@fix_tags
fixed: Fixed an issue where clicking the Delete flag
2024-06-20 14:57:59 +08:00
zhaojisen
70dba5a317 fixed: Fixed an issue where clicking the Delete flag 2024-06-20 14:55:08 +08:00
feng626
f6adb3b1c3 Merge pull request #4075 from jumpserver/pr@v4@translate_all
perf: Translate
2024-06-19 19:37:07 +08:00
w940853815
27d3637330 Revert "fix: 待我审批列表页面默认过滤出还未审批的工单"
This reverts commit 91c44d0500.
2024-06-19 19:33:40 +08:00
feng
0b4b551d56 perf: Translate 2024-06-19 19:32:25 +08:00
wangruidong
9c8ceb04f0 perf: Disable editing labels for the root organization 2024-06-19 15:46:46 +08:00
ibuler
cd1e371acb Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-19 13:17:23 +08:00
ibuler
8e0117a100 fix: tree bug 2024-06-19 13:17:06 +08:00
ZhaoJiSen
1b0bb1a711 Merge pull request #4070 from jumpserver/pr@v4@fix_perm_delete
fixed: Fixed the issue that the authorization file could not be deleted
2024-06-19 11:45:24 +08:00
zhaojisen
392d150396 fixed: Fixed the issue that the authorization file could not be deleted 2024-06-19 11:42:09 +08:00
ZhaoJiSen
c3114609f5 Merge pull request #4069 from jumpserver/pr@v4@fix_phone_require
perf: Mobile phone is set as a required field
2024-06-19 11:32:13 +08:00
zhaojisen
1e82ca3f66 perf: Mobile phone is set as a required field 2024-06-19 11:27:55 +08:00
ZhaoJiSen
e4c7b1d8cf Merge pull request #4068 from jumpserver/pr@v4@fix_refresh
fixed: Fixed resource refresh issues
2024-06-19 10:58:50 +08:00
zhaojisen
942b74be8e fixed: Fixed resource refresh issues 2024-06-19 10:55:32 +08:00
feng626
7841669db7 Merge pull request #4067 from jumpserver/pr@v4@translate_account
perf: Translate account
2024-06-18 19:39:42 +08:00
feng
a0382dc984 perf: Translate account 2024-06-18 19:37:34 +08:00
ibuler
fdb52fb4f4 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-18 19:23:21 +08:00
ZhaoJiSen
38aa42ff9b Merge pull request #4066 from jumpserver/pr@v4@fix_account_template
fixed: Fixed the issue of abnormal automatic push items when editing template account
2024-06-18 19:22:31 +08:00
ibuler
802bf6f1e3 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-18 19:19:22 +08:00
zhaojisen
ae9312983a fixed: Fixed the issue of abnormal automatic push items when editing template account 2024-06-18 19:16:36 +08:00
ZhaoJiSen
c156250c90 Merge pull request #4065 from jumpserver/pr@v4@fix_export_default
fixed: Fixed export module default options
2024-06-18 18:07:40 +08:00
zhaojisen
5dcdbb702f fixed: Fixed export module default options 2024-06-18 18:02:20 +08:00
wangruidong
ccd7b319c8 fix: 审计台仪表盘今日数据有问题 2024-06-18 17:59:18 +08:00
ibuler
4750f8388a Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-18 17:53:56 +08:00
ibuler
3fb47fb6ea perf: 优化资产创建更新 labels 2024-06-18 17:53:36 +08:00
feng626
55637c7fa1 Merge pull request #4063 from jumpserver/pr@dev@account_template
fix: Account tempalte update secret failed
2024-06-18 14:54:14 +08:00
feng
4e95c88318 fix: Account tempalte update secret failed 2024-06-18 14:52:50 +08:00
feng626
eba323fb64 Merge pull request #4062 from jumpserver/pr@v4@account_edit
fix: Account tempalte update secret failed
2024-06-18 14:48:23 +08:00
feng
53b00421d2 fix: Account tempalte update secret failed 2024-06-18 14:47:18 +08:00
ZhaoJiSen
cc77c1ebaf Merge pull request #4060 from jumpserver/pr@v4@fix_account_tooltip
perf: Added tooltip information to view account secret
2024-06-18 11:27:13 +08:00
zhaojisen
5ea3ae3a0c perf: Added tooltip information to view account secret 2024-06-18 11:23:03 +08:00
ZhaoJiSen
76b6aebac4 Merge pull request #4059 from jumpserver/pr@v4@fix_plateform_database
fixed:Fixed issues with custom platform databases
2024-06-17 20:27:54 +08:00
zhaojisen
1e1f2f3bd9 fixed:Fixed issues with custom platform databases 2024-06-17 20:21:17 +08:00
feng626
085b11e262 Merge pull request #4058 from jumpserver/pr@v4@account_backup
perf: Account backup detail
2024-06-17 20:20:28 +08:00
feng
4eb556e1bb perf: Account backup detail 2024-06-17 20:18:38 +08:00
feng626
e4a0ef311b Merge pull request #4057 from jumpserver/pr@v4@record_secret
perf: Record secret translate
2024-06-17 19:50:21 +08:00
feng
9073e9fa68 perf: Record secret translate 2024-06-17 19:49:29 +08:00
feng626
29ceb66837 Merge pull request #4056 from jumpserver/pr@v4@translate
perf: Translate
2024-06-17 19:22:18 +08:00
feng
5184252e5f perf: Translate 2024-06-17 19:20:58 +08:00
ZhaoJiSen
cad65469a4 Merge pull request #4055 from jumpserver/pr@v4@fix_countdown
fixed: Fixed an issue where the countdown stopped at 2 seconds
2024-06-17 19:15:17 +08:00
zhaojisen
03051c6a8f fixed: Fixed an issue where the countdown stopped at 2 seconds 2024-06-17 19:11:34 +08:00
ZhaoJiSen
a25392f934 Merge pull request #4054 from jumpserver/pr@v4@fix_do_list
style: Perform the list button style
2024-06-17 18:42:25 +08:00
zhaojisen
ba4fc027e6 style: Perform the list button style 2024-06-17 18:38:30 +08:00
feng626
3b21e8f858 Merge pull request #4053 from jumpserver/pr@v4@change_account
fix: Change secret log not view
2024-06-17 17:52:01 +08:00
feng
31a2a97bee fix: Change secret log not view 2024-06-17 17:51:17 +08:00
ZhaoJiSen
bf1ae6570c Merge pull request #4052 from jumpserver/pr@v4@fix_cloud_import
fixed: Fixed the issue when clicking import during the process of creating cloud account
2024-06-17 17:49:35 +08:00
wangruidong
1ff49ca16d perf: 系统设置-组织管理:最新创建成功后返回列表未按创建时间排序 2024-06-17 17:30:34 +08:00
zhaojisen
29ddc06c4b fixed: Fixed the issue when clicking import during the process of creating cloud account 2024-06-17 17:24:31 +08:00
ZhaoJiSen
8a6d56e09f Merge pull request #4051 from jumpserver/pr@v4@fix_auth_rules
fixed: Fixed an issue where the jump of skippable table data failed
2024-06-17 16:22:46 +08:00
zhaojisen
b739d3f435 fixed: Fixed an issue where the jump of skippable table data failed 2024-06-17 16:22:04 +08:00
ZhaoJiSen
82d2c06eff Merge pull request #4050 from jumpserver/pr@v4@fix_account_privileged
fixed: The account list detail page does not refresh after opening and closing the privilege list field
2024-06-17 14:58:46 +08:00
zhaojisen
adf8617abf fixed: The account list detail page does not refresh after opening and closing the privilege list field 2024-06-17 14:57:58 +08:00
ZhaoJiSen
286275142a Merge pull request #4049 from jumpserver/pr@v4@fix_asset_perm
perf: Fixed an issue with the asset authorization detail page jumping to the basic page after adding a user
2024-06-17 11:38:29 +08:00
zhaojisen
1b0d46bdfb perf: Fixed an issue with the asset authorization detail page jumping to the basic page after adding a user 2024-06-17 11:34:46 +08:00
ZhaoJiSen
d9864afa8c Merge pull request #4048 from jumpserver/pr@v4@fix_blank_page
fixed: Fixed an issue where clicking on a task name would lead to a blank page
2024-06-17 10:38:03 +08:00
zhaojisen
c0beb480d4 fixed: Fixed an issue where clicking on a task name would lead to a blank page 2024-06-17 10:30:33 +08:00
ZhaoJiSen
20b7b87cff Merge pull request #4046 from jumpserver/pr@v4@fix_assets_clone
fixed: Fixed platform error when cloning assets
2024-06-14 19:48:55 +08:00
zhaojisen
e374906dee fixed: Fixed platform error when cloning assets 2024-06-14 19:43:54 +08:00
feng626
3459529d08 Merge pull request #4045 from jumpserver/pr@v4@activity
perf: Activities timestamp international
2024-06-14 19:12:17 +08:00
feng
4d67c7e2ff perf: Activities timestamp international 2024-06-14 19:11:06 +08:00
ZhaoJiSen
6cbec0c39e Merge pull request #4044 from jumpserver/pr@v4@fix_card_style
style: Fixed inconsistent card styles
2024-06-14 16:01:08 +08:00
zhaojisen
8c074a9f9a style: Fixed inconsistent card styles 2024-06-14 15:56:53 +08:00
ZhaoJiSen
e37ca4c34f Merge pull request #4043 from jumpserver/pr@v4@fix_validate_message
fixed: Fixed the problem that when the number of disabled days of inactive users in the authentication security page meets the required number of days, the verification content will still exist after successful submission
2024-06-14 15:00:03 +08:00
zhaojisen
a8c85826de fixed: Fixed the problem that when the number of disabled days of inactive users in the authentication security page meets the required number of days, the verification content will still exist after successful submission 2024-06-14 14:56:41 +08:00
ZhaoJiSen
91ed7636ff Merge pull request #4042 from jumpserver/pr@v4@fix_account_list_dialgo
fixed: Fixed the issue that the create account window did not close after creating an account in the account list
2024-06-14 11:00:32 +08:00
zhaojisen
8db03bf315 fixed: Fixed the issue that the create account window did not close after creating an account in the account list 2024-06-14 10:55:56 +08:00
ZhaoJiSen
793ced1758 Merge pull request #4041 from jumpserver/pr@v4@fix_reload_groups
fixed: Fixed the issue of manual refresh for batch update users
2024-06-13 19:05:04 +08:00
ZhaoJiSen
9ef07fb494 Merge pull request #4040 from jumpserver/pr@v4@fix_account_list_icon
style: Fixed the display layout for viewing account details in the account list
2024-06-13 19:03:12 +08:00
zhaojisen
349c5116ea fixed: Fixed the issue of manual refresh for batch update users 2024-06-13 19:01:30 +08:00
zhaojisen
93949d9fd7 style: Fixed the display layout for viewing account details in the account list 2024-06-13 17:46:13 +08:00
ibuler
eedcad947e Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-13 17:11:47 +08:00
ZhaoJiSen
5e17b74684 Merge pull request #4039 from jumpserver/pr@v4@fix_arrow_icon
style: Change shuttle box icon
2024-06-13 17:10:18 +08:00
zhaojisen
99f027e0ee style: Change shuttle box icon 2024-06-13 16:47:20 +08:00
wangruidong
91c44d0500 fix: 待我审批列表页面默认过滤出还未审批的工单 2024-06-13 16:15:35 +08:00
ZhaoJiSen
04de130e02 Merge pull request #4038 from jumpserver/pr@v4@fix_assets_error
fixed: Fixed the Error message when updating assets
2024-06-13 15:44:58 +08:00
zhaojisen
30444565a8 fixed: Fixed the Error message when updating assets 2024-06-13 15:41:41 +08:00
ZhaoJiSen
c9b72491b6 Merge pull request #4037 from jumpserver/pr@v4@fix_assets_skip
fixed: Fixed an issue where Dialog does not close when the asset list is authorized for reclicking the jump
2024-06-13 15:06:18 +08:00
zhaojisen
86b687d27b fixed: Fixed an issue where Dialog does not close when the asset list is authorized for reclicking the jump 2024-06-13 15:02:37 +08:00
Bai
03b0219a1e Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-13 14:09:53 +08:00
Bai
8ddc2cda92 perf: i18n cookie default en and expired 365d and remove storage i18n 2024-06-13 14:09:34 +08:00
ibuler
c3d9da1186 perf: 修改 asset dialog 2024-06-13 13:02:19 +08:00
ZhaoJiSen
b1b28f93c5 Merge pull request #4035 from jumpserver/pr@v4@fix_ztree_input_style
style: Fine-tune the asset tree input style
2024-06-13 11:27:19 +08:00
zhaojisen
a465a093c9 style: Fine-tune the asset tree input style 2024-06-13 11:22:55 +08:00
zhaojisen
3d362db71a style: Fine-tune the asset tree input style 2024-06-13 11:04:43 +08:00
wangruidong
0b3a9844f7 fix: Crontab - Failed to set minute range 2024-06-13 10:40:22 +08:00
ZhaoJiSen
3ea506adca Merge pull request #4033 from jumpserver/pr@v4@fix_cloud_style_adjust
style: Fine-tuning styles
2024-06-13 10:31:40 +08:00
zhaojisen
bb37dde0e0 style: Fine-tuning styles 2024-06-13 10:27:23 +08:00
wangruidong
c1e21905df fix: Modify some translations 2024-06-12 19:36:52 +08:00
ibuler
9445ac1efe Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-12 19:29:44 +08:00
ibuler
0f6e12f80b fix: some i18n bug 2024-06-12 19:29:35 +08:00
feng626
94181dbb46 Merge pull request #4031 from jumpserver/pr@v4@remove_account
perf: Platform automation add remove account method
2024-06-12 19:23:28 +08:00
feng
988eec7224 perf: Platform automation add remove account method 2024-06-12 19:22:02 +08:00
ZhaoJiSen
4a604f4f6a Merge pull request #4030 from jumpserver/pr@v4@fix_plateform_create
fix: Fixed the issue that when creating a device in the platform list, the new device needs to refresh before it can be displayed
2024-06-12 19:14:28 +08:00
zhaojisen
cc244c6af6 fix: Fixed the issue that when creating a device in the platform list, the new device needs to refresh before it can be displayed 2024-06-12 19:11:10 +08:00
ibuler
b97ef23bf8 merge: with remote 2024-06-12 19:06:34 +08:00
ibuler
0952e9e9ae perf: change asset permission detail bug 2024-06-12 18:59:29 +08:00
ZhaoJiSen
7391c9e675 Merge pull request #4029 from jumpserver/pr@v4@fix_region
fix: Fixed the issue that the region was displayed incorrectly when updating the cloud platform account
2024-06-12 18:42:56 +08:00
zhaojisen
757184c459 fix: Fixed the issue that the region was displayed incorrectly when updating the cloud platform account 2024-06-12 18:38:53 +08:00
Bai
85a4247d9b perf: Update default language en 2024-06-12 18:38:05 +08:00
wangruidong
9b36f51015 fix: Viewing account collection task details leads to a blank page 2024-06-12 18:02:38 +08:00
wangruidong
60d8f00723 fix: Clicking on gateway numbers in domain list leads to blank page 2024-06-12 17:20:16 +08:00
feng626
d9d0f922bb Merge pull request #4026 from jumpserver/pr@v4@account_cloud_sync_del
fix: Deleting released assets, prompting deletion failure
2024-06-12 16:37:45 +08:00
feng
040d049742 fix: Deleting released assets, prompting deletion failure 2024-06-12 16:34:46 +08:00
ibuler
53044e0551 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-12 16:13:50 +08:00
ibuler
59f0a16544 perf: 优化 tag 2024-06-12 16:13:34 +08:00
feng626
60f44c6759 Merge pull request #4025 from jumpserver/pr@v4@account
perf: Account task filter optimization
2024-06-12 15:30:30 +08:00
feng
2cb1ae1ab7 perf: Account task filter optimization 2024-06-12 15:25:58 +08:00
ZhaoJiSen
bf8e6118c2 Merge pull request #4024 from jumpserver/pr@v4@fix_cloud_delete
fix: Fixed the issue that the data was not refrefied when jumping back to the page after clicking delete on the cloud synchronization detail page
2024-06-12 13:45:19 +08:00
zhaojisen
a561a62ef5 fix: Fixed the issue that the data was not refrefied when jumping back to the page after clicking delete on the cloud synchronization detail page 2024-06-12 13:42:09 +08:00
wangruidong
982f9e5635 fix: Gateway list not displaying data after create 2024-06-12 10:57:00 +08:00
ibuler
ca57e8106b Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-11 19:40:32 +08:00
ibuler
d0ae764ab6 perf: 优化 tags 关联 2024-06-11 19:39:59 +08:00
feng626
104e711aec Merge pull request #4022 from jumpserver/pr@v4@fix_cloud_params
fix: Cloud synchronization region parameters
2024-06-11 19:10:26 +08:00
zhaojisen
1dde0cba15 fix: Cloud synchronization region parameters 2024-06-11 19:00:15 +08:00
zhaojisen
3981570360 fix: Cloud synchronization region parameters 2024-06-11 18:59:14 +08:00
zhaojisen
bba9951b9b style: Modify the style of the cloud sync page when there is no data spatio-temporal state 2024-06-11 18:49:28 +08:00
feng
95b58f3c96 perf: Complete asset hardware information 2024-06-11 18:49:03 +08:00
feng
f3e55a58ce perf: Workbench session table spacing 2024-06-11 18:48:43 +08:00
ibuler
f706d38e2d Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-11 18:47:23 +08:00
ibuler
e88f84e438 perf: 优化高度 2024-06-11 18:47:17 +08:00
ZhaoJiSen
9ca80bda50 Merge pull request #4020 from jumpserver/pr@v4@fix_activeMenu
fix: Fixed activeMenu duplicate issue
2024-06-11 18:30:48 +08:00
zhaojisen
19c71d4ddd fix: Fixed activeMenu duplicate issue 2024-06-11 18:27:23 +08:00
feng626
601acb63bb Merge pull request #4018 from jumpserver/pr@v4@fix_region_style
style: Optimize the styling of region forms in cloud sync
2024-06-11 18:26:07 +08:00
zhaojisen
4f3a1cac43 style: Optimize the styling of region forms in cloud sync 2024-06-11 18:22:15 +08:00
ibuler
c1085cce70 perf: change >>> to ::v-deep 2024-06-11 18:06:03 +08:00
wangruidong
128b9c79ba fix: 工单-待我审批默认筛选打开的工单 2024-06-11 17:46:09 +08:00
ibuler
8331e8b58c Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-11 17:13:59 +08:00
ibuler
8e81a9fca4 perf: 修改 icon 2024-06-11 17:13:40 +08:00
feng626
df11f56a40 Merge pull request #4011 from jumpserver/pr@v4@fix_cloud_style
style: Reconstruct the cloud synchronization part of the style
2024-06-11 15:23:56 +08:00
feng626
71b21f78e1 Merge branch 'v4' into pr@v4@fix_cloud_style 2024-06-11 15:23:47 +08:00
ZhaoJiSen
174117161e Merge pull request #4016 from jumpserver/pr@v4@fix_cloud_triggerMode
fix: Fixed the issue that the dialog box did not close when clicking the cloud platform account details to jump to the cloud platform details page during the last step of creating the cloud
2024-06-11 14:28:54 +08:00
ZhaoJiSen
affdcc3225 Merge pull request #4014 from jumpserver/pr@v4@fix_cloud_location
fix: Fixed the issue that the dialog box did not close when clicking the cloud platform account details to jump to the cloud platform details page during the last step of creating the cloud
2024-06-11 14:27:02 +08:00
zhaojisen
165d5dfef3 fix: Fixed the issue that the dialog box did not close when clicking the cloud platform account details to jump to the cloud platform details page during the last step of creating the cloud 2024-06-11 14:24:23 +08:00
ibuler
94ae70a2c2 perf: 修改 icon 2024-06-11 11:44:47 +08:00
ibuler
acef2eff3a perf: 修改一些 icon 2024-06-11 11:02:24 +08:00
zhaojisen
7d7208a1bf fix: Fixed the issue that the dialog box did not close when clicking the cloud platform account details to jump to the cloud platform details page during the last step of creating the cloud 2024-06-11 10:46:49 +08:00
ibuler
56f66a169c perf: 修改 icon 2024-06-11 10:24:49 +08:00
ibuler
4caf3b2f86 perf: change icon remote unuse attr 2024-06-07 18:35:55 +08:00
ibuler
e58911d9cf Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-07 18:17:05 +08:00
ibuler
c03c9dac30 perf: 统一 icon 大小 2024-06-07 18:15:39 +08:00
wangruidong
19858a4467 fix: ACls add User login page 2024-06-07 18:05:11 +08:00
zhaojisen
1b5b4188b5 style: Reconstruct the cloud synchronization part of the style 2024-06-07 17:16:17 +08:00
ibuler
689b25b743 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-07 17:01:40 +08:00
ibuler
5ee2ed14af perf: 修改 icon 2024-06-07 17:01:23 +08:00
halo
4eda83f83d perf: 优化图标不对齐的问题 2024-06-07 15:55:20 +08:00
feng626
eecfebe66f Merge pull request #4010 from jumpserver/pr@v4@cloud_account
perf: Cloud Sync Provider Error
2024-06-07 15:32:54 +08:00
feng
e1d48a62e2 perf: Cloud Sync Provider Error 2024-06-07 15:32:08 +08:00
zhaojisen
00bd0e52ef fix: Fixed the bug that the information returned by the interface would be displayed when creating a cloud platform account 2024-06-07 14:06:12 +08:00
halo
4cd0071054 feat: 支持批量测试资产可连接性 2024-06-07 11:18:35 +08:00
wangruidong
aa3c9762c9 fix: Crontab - Failed to set minute range 2024-06-07 11:01:45 +08:00
ibuler
6fac279db7 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-07 10:35:04 +08:00
ibuler
0f013cd7a0 perf: 修改 accounts 2024-06-07 10:34:31 +08:00
wangruidong
dac84749fd fix: edit access key redirect blank page 2024-06-06 19:17:20 +08:00
wangruidong
b2f650cab0 perf: profile improvement mfa cancel hide 2024-06-06 17:34:37 +08:00
ibuler
a3a58040a0 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-06 16:55:24 +08:00
ibuler
659a3864f7 perf: rechange asset permission accounts 2024-06-06 16:55:07 +08:00
zhaojisen
a1a5dfdbfd fix: Under the asset authorization rule page, click on the table data to jump to the problem of failure 2024-06-06 15:19:11 +08:00
ibuler
a89c32e668 perf: 修改 asset permission 中的 accounts 2024-06-06 14:19:03 +08:00
fit2bot
903a1ecda4 style: Adjust the card style of cloud platform page (#3997)
Co-authored-by: zhaojisen <1301338853@qq.com>
Co-authored-by: 老广 <ibuler@qq.com>
2024-06-06 14:12:59 +08:00
ibuler
3802520958 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-05 19:34:16 +08:00
ibuler
54acd85586 perf: 修改 permission accounts 2024-06-05 19:33:21 +08:00
feng626
3c41aa44eb Merge pull request #3999 from jumpserver/pr@v4@asset_add_icons
perf: Asset platform add icon
2024-06-05 17:10:28 +08:00
feng
b830674abc perf: Asset platform add icon 2024-06-05 17:09:32 +08:00
wangruidong
1949d76654 fix: profile page click some button redirect to a blank page 2024-06-05 16:25:08 +08:00
wangruidong
67a2a9be6a If non-existent values are entered into the select component, won't trigger a search request. 2024-06-05 16:01:46 +08:00
wangruidong
82689b48ba If non-existent values are entered into the select component, won't trigger a search request. 2024-06-05 15:59:52 +08:00
ibuler
455f732250 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-04 19:07:07 +08:00
ibuler
5494bec24a perf: 修改 labels 支持颜色 2024-06-04 19:03:56 +08:00
feng626
1eedf42be0 Merge pull request #3996 from jumpserver/pr@v4@console_dashboard
perf: console dashboard add user asset route
2024-06-04 11:01:12 +08:00
feng
5d0c8535f2 perf: console dashboard add user asset route 2024-06-04 10:55:58 +08:00
ibuler
a0c9a72c1d perf: 修改 card table 2024-06-04 10:43:54 +08:00
ibuler
f927a2a3cc perf: action 添加 token 2024-06-04 10:32:48 +08:00
ibuler
7fbbb75fed Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-03 19:36:29 +08:00
ibuler
897198b785 perf: 修改 cloud privider 2024-06-03 19:36:14 +08:00
Bai
04e7d66667 perf: Update cloud provider svg 2024-06-03 19:14:33 +08:00
Bai
b6c81dacf7 perf: Update i18n 2024-06-03 15:08:37 +08:00
Bai
f4c9637949 perf: Update i18n 2024-06-03 14:20:47 +08:00
Bai
141d4208e1 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-06-03 11:44:52 +08:00
Bai
46d1969254 perf: Update i18n 2024-06-03 11:44:30 +08:00
feng626
0cf0e04705 Merge pull request #3993 from jumpserver/pr@v4@workbench_mysession
perf: workbench my session translate
2024-06-03 11:12:31 +08:00
feng
e6a3b1e9e1 perf: workbench my session translate 2024-06-03 11:11:47 +08:00
feng626
35fa8ed374 Merge pull request #3992 from jumpserver/pr@v4@translate
perf: translate
2024-06-03 10:25:56 +08:00
feng
38856deaa7 perf: translate 2024-06-03 10:24:13 +08:00
wangruidong
f573a3a7ab perf: action i18n 2024-05-31 16:32:20 +08:00
ibuler
500d3e15c3 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-31 15:17:19 +08:00
ibuler
bbee6cafdf perf: 优化 ai chat bot 2024-05-31 15:17:03 +08:00
wangruidong
5053b0a89a perf: i18n 2024-05-31 15:12:09 +08:00
Gerry.tan
ca40cb34da feat: 新增 dameng 图标 2024-05-31 11:11:06 +08:00
ibuler
024e4a1d96 perf: 修改 menu.scss 2024-05-30 17:40:58 +08:00
ibuler
f791a2cfcf Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-30 16:47:22 +08:00
ibuler
962bad10aa perf: 修改三级菜单激活的问题 2024-05-30 16:46:43 +08:00
wangruidong
288c6af300 fix: adhoc,file transfer select account error 2024-05-30 15:18:11 +08:00
ibuler
7eb5be9081 perf: 修复三级菜单 2024-05-30 15:04:50 +08:00
ibuler
fcd049721d Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-30 14:26:06 +08:00
ibuler
efaec831e8 perf: 修改菜单 2024-05-30 14:25:48 +08:00
吴小白
d2f9256fb0 Merge pull request #3988 from jumpserver/pr@v4@perf_docker_build
perf: 优化构建
2024-05-30 13:22:47 +08:00
吴小白
4811b4af5b perf: 优化构建 2024-05-30 13:18:47 +08:00
jiangweidong
bf2e9d4471 feat: refactoring sync module (#3980)
* feat: refactoring sync module

* perf: Optimization

* perf: Optimization

* perf: Optimization

* perf: Compress image size and remove console log

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-05-29 18:44:08 +08:00
ibuler
15978c968e perf: 修改菜单 2024-05-29 18:18:39 +08:00
zhaojisen
b46fc915f3 fix: 修复当存在遮罩层时按下 / 也会聚焦的 bug 2024-05-29 14:54:15 +08:00
zhaojisen
a12e17b39c style: 微调 nav title 样式 2024-05-29 14:53:49 +08:00
ibuler
1cc8b626a6 perf: 优化菜单 2024-05-28 19:29:13 +08:00
ibuler
f13f5e455b perf: modify menu style 2024-05-28 17:30:26 +08:00
ibuler
7de34ac9a2 merge: with remote 2024-05-28 16:05:41 +08:00
ibuler
fb38ba1c9d perf: 修改 chat 兼容 luna 2024-05-28 16:04:32 +08:00
zhaojisen
5d6a58421f style: 重写 menu 样式 2024-05-28 14:11:38 +08:00
ibuler
3cc89b8469 perf: 修改菜单 2024-05-28 14:11:38 +08:00
ibuler
c9826a7520 perf: 修改 tab 选择 2024-05-28 14:11:38 +08:00
Bai
2b7a874c1e perf: i18n import 2024-05-28 10:11:24 +08:00
ibuler
a8a79df6b4 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-27 17:30:27 +08:00
ibuler
f07e14e62f perf: 修改 tab 选择 2024-05-27 17:30:10 +08:00
Bai
ee1b38a88d Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-27 15:08:43 +08:00
Bai
32af035674 perf: i18n Tools 2024-05-27 15:08:32 +08:00
zhaojisen
6cbc7d0220 style: 微调切换按钮 hover 效果,修改 DataTree 隐藏按钮位置 2024-05-27 15:08:25 +08:00
zhaojisen
bfa3836cc2 style: 微调 datatree 样式 2024-05-27 15:07:48 +08:00
ibuler
c8f6d0b595 perf: 修改 tab page 定位 2024-05-27 15:06:44 +08:00
Bai
f6ddd44ccb perf: i18n bai 2024-05-27 11:12:54 +08:00
ibuler
e813ce3fef Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-27 11:07:03 +08:00
ibuler
8234ea338b perf: 修改 label 为 tag 2024-05-27 11:06:45 +08:00
feng626
7ba78302b0 Merge pull request #3979 from jumpserver/pr@v4@ticket
perf: ticket translate
2024-05-27 10:59:50 +08:00
feng
4143c2c32d perf: ticket translate 2024-05-27 10:58:39 +08:00
ibuler
68fa8f30c0 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-24 19:17:27 +08:00
ibuler
e0f9b819d2 perf: 高级感 2024-05-24 19:15:36 +08:00
zhaojisen
9b9b096749 style: 修复功能设置菜单中公告页面在移动端适配问题 2024-05-24 18:56:45 +08:00
fit2bot
c03c8b2299 style: 资产树样式微调 (#3976)
* style: 资产树样式微调

* style: 资产树样式微调

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2024-05-24 18:55:27 +08:00
zhaojisen
2e78e5e5c6 style: 微调 Dashboard 面板日期按钮边框以及侧边栏切换系统角色时默认展开项 2024-05-24 18:54:47 +08:00
ibuler
d2fc125642 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-24 18:05:29 +08:00
ibuler
51fb493462 perf: 优化菜单 2024-05-24 18:05:14 +08:00
wangruidong
838f6e06b5 perf: modify file transfer boot step help tips 2024-05-24 16:33:50 +08:00
ibuler
ebe131d4a4 perf: 修改菜单 2024-05-24 15:44:22 +08:00
zhaojisen
ccd739d570 style: 侧边菜单按钮头部样式微调 2024-05-24 14:57:42 +08:00
ibuler
503a2ed934 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-24 14:57:05 +08:00
ibuler
d1f59f2bde perf: 优化菜单 2024-05-24 14:56:56 +08:00
ibuler
48daa0f04a perf: 添加图标 2024-05-24 14:52:59 +08:00
Bai
28a2248491 Merge branch 'v4_baisse' into v4 2024-05-24 14:42:57 +08:00
Bai
c4433592f4 perf: i18n System Settings End 2024-05-24 14:41:39 +08:00
老广
576c51fcac Merge pull request #3972 from jumpserver/pr@v4@fix_menu_style
style: 整合改造 menu 样式以及 table button 样式
2024-05-24 10:54:08 +08:00
老广
aaf8b3ea51 Merge branch 'v4' into pr@v4@fix_menu_style 2024-05-24 10:53:55 +08:00
zhaojisen
d8ba39ebf2 style: 整合改造 menu 样式以及 table button 样式 2024-05-24 10:35:16 +08:00
ibuler
e9e63cd11b Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-23 19:10:17 +08:00
ibuler
5fc23c15f0 merge: with remote 2024-05-23 19:10:04 +08:00
feng626
8015ceeed5 Merge pull request #3971 from jumpserver/pr@v4@echart
fix: echarts init fail
2024-05-23 18:47:56 +08:00
feng
5068a126be fix: echarts init fail 2024-05-23 18:43:37 +08:00
ibuler
5996d89e4c perf: 修改 detail card 2024-05-23 18:26:36 +08:00
ibuler
23f6502d99 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-23 18:26:06 +08:00
ibuler
c4a13e06e5 perf: 修改 card 2024-05-23 18:24:35 +08:00
zhaojisen
080565bea6 perf: 新增按键 t 使得 Search 组件自动 focus 2024-05-23 18:24:18 +08:00
wangruidong
f7ab833cb8 fix: dashboard card alignment 2024-05-23 18:22:48 +08:00
ibuler
b8025ae5bb Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-23 15:19:12 +08:00
ibuler
9247c6c4f3 perf: 修改 help text warning 2024-05-23 15:13:54 +08:00
ibuler
061981688d perf: 修改 form help text,增加 warning 2024-05-23 14:58:31 +08:00
feng626
d2e07bcf69 Merge pull request #3969 from jumpserver/pr@v4@action
perf: table center
2024-05-22 19:19:30 +08:00
feng
d44d209c21 perf: table center 2024-05-22 19:18:17 +08:00
Bai
3672716ee6 merged: Merge to v4 (bai) 2024-05-22 18:08:52 +08:00
Bai
1ef850a09f perf: i18n System Settings -> Authentication-OIDC 2024-05-22 17:51:32 +08:00
wangruidong
ce4b3f2a35 perf: create asset authorization rule account display grid 2024-05-22 17:40:08 +08:00
ibuler
8f229001aa Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-22 16:47:06 +08:00
ibuler
035597d330 perf: 修改 auto form check box 2024-05-22 16:46:51 +08:00
feng626
4f0ec2e6e3 Merge pull request #3967 from jumpserver/pr@v4@adhoc_view_asset
perf: adhoc view asset tree
2024-05-22 15:42:12 +08:00
feng
ebe4cce3ac perf: adhoc view asset tree 2024-05-22 15:41:02 +08:00
feng626
4a0af806f5 Merge pull request #3966 from jumpserver/pr@v4@file_tranfer
perf: file tranfer view asset
2024-05-22 15:15:57 +08:00
feng
51b26395ad perf: file tranfer view asset 2024-05-22 15:14:19 +08:00
zhaojisen
73f75e6515 perf: 列表移除按钮新增 confirm 对话框 2024-05-22 14:01:25 +08:00
zhaojisen
771c3f5516 style: 统一 table 中按钮样式 2024-05-22 14:00:04 +08:00
ibuler
fd9d08eb0c perf: 优化 help text 位置 2024-05-22 11:27:19 +08:00
ibuler
44bfaad9cb Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-21 16:42:42 +08:00
ibuler
8931331466 perf: 修改 form 的 placeholder 2024-05-21 16:42:25 +08:00
feng626
a450c8d3dc Merge pull request #3961 from jumpserver/pr@v4@tree_width
perf: asset tree width
2024-05-21 16:36:52 +08:00
feng
1151d501f5 perf: asset tree width 2024-05-21 16:35:46 +08:00
feng
d725e5497d perf: console dashboard api 2024-05-21 16:26:34 +08:00
zhaojisen
b6b042407d style:资产树 hover 样式与 header 右侧 icon 高度 2024-05-21 16:26:07 +08:00
zhaojisen
4f215cbc49 fix:修复点击不同 tab 标签时刷新页面后 tab 标签丢失或变为同一个的问题 2024-05-21 16:25:27 +08:00
Bai
dd7329930c perf: i18n System Settings -> Features 2024-05-21 16:11:24 +08:00
ibuler
acfc1fc942 perf: 统一 tooltip 2024-05-21 16:01:36 +08:00
ibuler
aed40c518e perf: tooltip 全局添加 delay 2024-05-21 15:30:29 +08:00
ibuler
2d7fae677b Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-21 14:50:40 +08:00
ibuler
50077dd0ac perf: button disable add tip 2024-05-21 14:50:24 +08:00
wangruidong
5dafd7217e perf: session detail page optimize 2024-05-21 10:47:37 +08:00
Bai
2ffcf7bd26 perf: i18n System Settings -> General,Org,Notifications 2024-05-20 18:39:12 +08:00
Eric
334fb0c6e9 perf: 调整组件日志显示 2024-05-20 18:32:16 +08:00
ibuler
51ffebb04f merge: with dev 2024-05-20 18:22:23 +08:00
ibuler
9754395e62 perf: 支持 help text as placeholder 2024-05-20 18:06:06 +08:00
zhaojisen
bb5766c85d fix:修复 Select2 组件中当没有初始选项时手动添加时样式隐藏的问题 2024-05-20 14:49:19 +08:00
ibuler
fc27497535 perf: 修改 form 样式 2024-05-20 11:18:30 +08:00
吴小白
31221c1d6e Merge pull request #3954 from jumpserver/pr@v4@fix_docker_build
perf: 修正构建缺失依赖
2024-05-20 08:57:39 +08:00
吴小白
1cf2ef60e8 perf: 修正构建缺失依赖 2024-05-20 08:52:47 +08:00
zhaojisen
13cad16712 fix:修复 Select2 组件中 tag 值在渲染时由id转为name导致的长度变化问题 2024-05-17 19:09:12 +08:00
ibuler
7c2f13f883 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-17 19:08:38 +08:00
ibuler
cbaef4cc6c perf: 修改样式 2024-05-17 19:08:24 +08:00
wangruidong
37182779f9 perf: column width modify 2024-05-17 18:33:02 +08:00
feng626
cc97affc16 Merge pull request #3949 from jumpserver/pr@v4@tree
perf: asset tree type tree width css
2024-05-17 17:45:44 +08:00
feng
af5d3778c3 perf: asset tree type tree width css 2024-05-17 17:44:32 +08:00
feng626
ef25720797 Merge pull request #3948 from jumpserver/pr@v4@tree
perf: gather account and connect asset tree css
2024-05-17 17:17:36 +08:00
feng
20a08e650d perf: gather account and connect asset tree css 2024-05-17 17:16:23 +08:00
feng626
fe8c610f3d Merge pull request #3947 from jumpserver/pr@v4@account
perf: account translate
2024-05-17 16:56:27 +08:00
feng
a33f907ba5 perf: account translate 2024-05-17 16:55:41 +08:00
ibuler
e78569b325 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-17 16:31:27 +08:00
ibuler
f6cb3fb118 perf: 整理 role permisson 2024-05-17 16:30:19 +08:00
zhaojisen
7798ae79d7 style:修复功能设置公告中两个文本域的边框与原样式冲突问题 2024-05-17 10:22:55 +08:00
zhaojisen
c8d1bb0276 style:修复复合型表单头部区域边框消失问题 2024-05-17 10:22:29 +08:00
ibuler
ce2a62d198 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-17 09:56:21 +08:00
ibuler
fd0e1a7b5e perf: 优化 account 2024-05-17 09:56:08 +08:00
feng626
c93fed32ef Merge pull request #3944 from jumpserver/pr@v4@account_related
perf: account related translate
2024-05-16 19:38:56 +08:00
feng
4023537b8a perf: account related translate 2024-05-16 19:37:40 +08:00
feng626
e2712005e4 Merge pull request #3943 from jumpserver/pr@v4@translate
perf: account automation translate
2024-05-16 19:12:43 +08:00
feng
aea72bcc6e perf: account automation translate 2024-05-16 19:10:09 +08:00
Eric
40ef074522 perf: Loki 日志 2024-05-16 19:01:19 +08:00
ibuler
6aa021e4a6 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-16 13:58:38 +08:00
zhaojisen
ac97dbf8ba style:alert 提示信息 2024-05-16 13:55:29 +08:00
zhaojisen
87d7a291f0 style:修复 organization 在禁用时的背景被覆盖 2024-05-16 13:54:57 +08:00
zhaojisen
e8f3950072 style:优化 organization 组件的样式 2024-05-16 13:54:15 +08:00
ibuler
56f6c17275 perf: 优先选择上个 org 切换 2024-05-16 13:53:47 +08:00
ibuler
2fd2fc5f62 perf: 修改布局 2024-05-16 13:31:47 +08:00
feng626
145e6db3ec Merge pull request #3936 from jumpserver/pr@v4@fix_card_table
perf: card table css
2024-05-16 11:14:53 +08:00
feng
63d1983914 perf: card table css 2024-05-16 11:13:44 +08:00
ibuler
333c68e33f Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-15 19:34:33 +08:00
ibuler
739ce9da27 perf: 优化菜单的 scrollbar 2024-05-15 19:32:48 +08:00
zhaojisen
aadc032b31 style:修复 header 组件中 Organization 组件下拉滚动条的样式 2024-05-15 19:22:02 +08:00
zhaojisen
2b90faa98e style:修复远程应用页面无法滚动的问题,以及 header 中 icon 未对齐的问题 2024-05-15 19:21:08 +08:00
zhaojisen
e68e4b2a24 style:改变 dashboard 中 buttonGroup 的样式 2024-05-15 19:20:39 +08:00
ibuler
e1bde89b29 fix: 修复切换到全局组织回不来的问题
perf: 修改组织切换
2024-05-15 19:14:58 +08:00
feng626
2c541d465c Merge pull request #3934 from jumpserver/pr@v4@translate
perf: translate
2024-05-15 18:53:22 +08:00
feng
329a02bf07 perf: translate 2024-05-15 18:51:44 +08:00
feng626
e9da168c9f Merge pull request #3930 from jumpserver/pr@dev@mfa
perf: User personal settings mfa new window opens
2024-05-15 16:41:15 +08:00
feng
c19ef24ec9 perf: User personal settings mfa new window opens 2024-05-15 16:40:17 +08:00
ibuler
2c7d662c22 perf: 修改 i18n 2024-05-15 16:14:23 +08:00
wangruidong
fb7c4a8b2a fix: 竖屏审批工单时,动作显示不出来 2024-05-15 15:33:03 +08:00
ibuler
920eeded4d perf: 修改 border-radius 2024-05-15 14:40:03 +08:00
ibuler
740b51d405 perf: 统一 bolder 2024-05-15 11:18:11 +08:00
ibuler
cee00b0382 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-14 19:17:59 +08:00
ibuler
4bbd59787a perf: 优化 card 2024-05-14 19:15:35 +08:00
wangruidong
acdc7c6e49 fix: number items select not display 2024-05-14 18:57:05 +08:00
ibuler
a5f190685b perf: 修改 view cache 2024-05-14 17:25:33 +08:00
ibuler
fd53727f12 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-14 16:29:17 +08:00
ibuler
cea843bcbc perf: 添加组件缓存 2024-05-14 16:29:08 +08:00
zhaojisen
dda5e79a77 style: 整合 navheader 中的样式 2024-05-14 13:55:06 +08:00
fit2bot
f9dd7bd74b style: 修改远程商店中,每个 card 的展示方式 (#3917)
Co-authored-by: zhaojisen <1301338853@qq.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-05-14 13:54:06 +08:00
zhaojisen
2ef68977bd style: 修复 form 表单中复合型输入框的 border 样式不一致问题 2024-05-14 13:51:30 +08:00
zhaojisen
673d2e3ef2 style: 调整批量上传中已上传区域提示信息样式,以及下方 output 区域当浏览器视口变小时内部的 Terminal 组件溢出容器的问题 2024-05-14 13:50:35 +08:00
zhaojisen
17b172e3f1 style: 修复 TagSearch 组件中下拉 icon 未居中的问题 2024-05-14 13:49:31 +08:00
wangruidong
acde080e48 perf: file transfer add boot step help tips 2024-05-14 10:39:53 +08:00
wangruidong
b139d8d049 perf: ad-hoc icon modify 2024-05-14 10:39:53 +08:00
jiangweidong
1c39041de2 perf: cloud sync module adjustment (#3912)
* perf: cloud sync module adjustment

* perf: optimize interface settings

* fix: cloud edit - previous step and next step will failed
2024-05-13 18:39:19 +08:00
Bai
cd6d9e1687 test 2024-05-13 16:06:48 +08:00
Bai
57746a9daf Merge branch 'v4_bai' into v4 2024-05-13 16:00:25 +08:00
ibuler
2e961e7875 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-13 15:28:57 +08:00
ibuler
5fc368c86b perf: 修改翻译 2024-05-13 15:28:29 +08:00
zhaojisen
37abeb5735 style: 修改 DataActions 中收缩框的样式 2024-05-13 10:44:01 +08:00
feng626
e34d34526f Merge pull request #3914 from jumpserver/pr@v4@account_backup_translate
perf: account backup translate
2024-05-11 19:48:30 +08:00
feng
3eb249dcfd perf: account backup translate 2024-05-11 19:46:52 +08:00
ibuler
3f96888e1a Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-11 19:39:55 +08:00
ibuler
59df06676d perf: 修改 help text 2024-05-11 19:34:23 +08:00
zhaojisen
26a0f39ee8 style: 修改下拉菜单存在禁用项时颜色值接近的问题 2024-05-11 14:58:25 +08:00
ibuler
b63df1eee3 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-11 14:42:08 +08:00
ibuler
fdd906c982 perf: 修改 domain -> zone 2024-05-11 14:41:34 +08:00
Bai
0f9d5b94ff perf: i18n Personal Settings -> All sub menu 2024-05-11 11:20:27 +08:00
wangruidong
428ba49f9c perf: 根据type生成导出文件名 2024-05-11 10:02:53 +08:00
zhaojisen
98b222a9bf style: 移除表单中 table 的圆角样式 2024-05-10 19:08:32 +08:00
ibuler
7602d6e270 fix: 修复自动切换到 root org 回不来的问题 2024-05-10 19:07:46 +08:00
ibuler
6c0c1aa9d4 perf: 统一样式 2024-05-10 14:03:06 +08:00
feng626
6f41ed1c27 Merge pull request #3908 from jumpserver/pr@v4@execytion
perf: Execution history output button is not displayed
2024-05-10 11:39:05 +08:00
feng
8b773e9899 perf: Execution history output button is not displayed 2024-05-10 11:38:00 +08:00
wangruidong
b51acbd268 perf: i18n && columns modify 2024-05-10 10:08:29 +08:00
wangruidong
6e66a17fe3 perf: batch transfer css && scroll button optimize 2024-05-10 10:07:40 +08:00
feng626
88855305e1 Merge pull request #3905 from jumpserver/pr@v4@system_tools
perf: System Tools Test Stop Button Optimization
2024-05-09 17:09:34 +08:00
feng
53f61ad31b perf: System Tools Test Stop Button Optimization 2024-05-09 17:07:32 +08:00
feng626
650b1c0102 Merge pull request #3900 from jumpserver/pr@v4@quick_job
perf: Workbench shortcut command execution and stop buttons switch each other
2024-05-09 15:56:40 +08:00
feng
77be9ddf8d perf: Workbench shortcut command execution and stop buttons switch each other 2024-05-09 15:53:29 +08:00
Bai
ad7527c4ae perf: i18n Personal Settings -> Profile 2024-05-09 15:29:10 +08:00
zhaojisen
68563a198d feat: 新增自定义 table 的 Dialog 中全选功能 2024-05-09 10:41:55 +08:00
feng626
8a6459e828 Merge pull request #3898 from jumpserver/pr@v4@account
perf: 优化账号相关翻译
2024-05-08 18:14:56 +08:00
feng
846f3c6c5b perf: 优化账号相关翻译 2024-05-08 18:13:06 +08:00
ibuler
f843dde3d6 perf: 修改主题设置方式 2024-05-08 16:24:16 +08:00
fit2bot
ef7db30658 style: 还原 table 中操作列按钮样式,以及步骤条相关样式 (#3896)
Co-authored-by: zhaojisen <1301338853@qq.com>
Co-authored-by: 老广 <ibuler@qq.com>
2024-05-08 11:07:00 +08:00
ibuler
b6f430c0db Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-05-08 11:00:26 +08:00
ibuler
8b07b6ca5d perf: 详情统一文案 2024-05-08 11:00:13 +08:00
吴小白
f1171d06a8 perf: 优化 Dockerfile 2024-05-08 09:53:22 +08:00
ibuler
e01201be81 perf: data form border 2024-05-07 19:27:44 +08:00
ibuler
1e21a5fb05 perf: change color 2024-05-07 18:58:06 +08:00
ibuler
df0e7ee6ae perf: 修改一些 css 2024-05-07 17:56:18 +08:00
fit2bot
d30066bcf9 style: v4 版本统一样式、颜色 (#3893)
Co-authored-by: zhaojisen <1301338853@qq.com>
Co-authored-by: 老广 <ibuler@qq.com>
2024-05-07 17:34:53 +08:00
ibuler
0ca7d3a2ad perf: 修改我的资产 table 2024-05-07 17:30:16 +08:00
wangruidong
7b62ce2d33 fix: 批量传输下载结果文件名undefined 2024-05-07 14:42:06 +08:00
jiangweidong
6ed40c45b0 perf: 云同步支持同步完成后自动删除云端已经释放的资产 2024-05-07 14:40:29 +08:00
ibuler
2b9af5070b perf: 统一修改一些翻译 2024-04-30 15:20:28 +08:00
ibuler
94065bb38c perf: change deps 2024-04-30 11:13:10 +08:00
ibuler
63c02eb14a perf: 修改 chatai 2024-04-29 18:58:16 +08:00
ibuler
a3c387d445 perf: 修改 yarn.lock 2024-04-29 14:24:27 +08:00
ibuler
9abca0ea0d merge: with dev 2024-04-29 10:53:14 +08:00
ibuler
b1c43d0b04 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-04-28 19:13:57 +08:00
ibuler
a1fcdb39b9 perf: 修改 v4 表现 2024-04-28 19:10:22 +08:00
feng626
077ea93bc3 Merge pull request #3887 from jumpserver/revert-3886-pr@v4@ticket
Revert "perf: remove ticket feature"
2024-04-28 18:26:33 +08:00
feng626
82b14b6542 Revert "perf: remove ticket feature" 2024-04-28 18:23:30 +08:00
feng626
6ef985207c Merge pull request #3886 from jumpserver/pr@v4@ticket
perf: remove ticket feature
2024-04-28 18:11:47 +08:00
feng
13d0c99e8c Revert yarn.lock to original state 2024-04-28 18:11:10 +08:00
feng626
0c7051eac0 Merge pull request #3880 from jumpserver/pr@v4@kael
perf: kael migrated koko
2024-04-28 18:06:39 +08:00
feng
b14c636f94 Revert yarn.lock to original state 2024-04-28 18:02:24 +08:00
feng
049cd35a1c perf: remove ticket model 2024-04-28 17:44:14 +08:00
ibuler
e7986b57b2 perf: workbench performence 2024-04-28 16:05:11 +08:00
ibuler
3dbac1fe2e perf: 优化菜单激活 2024-04-28 11:01:20 +08:00
wangruidong
31238e0398 fix: 命令存储创建es后跳转路由不对 2024-04-28 10:24:44 +08:00
ibuler
42425dc61b perf: 修改全局菜单 2024-04-26 17:33:15 +08:00
wangruidong
676ac2bbf6 perf: 创建、更新用户时MFA选项根据系统设置选项进行动态渲染 2024-04-26 11:35:12 +08:00
ibuler
5261dce34f perf: default open all menu 2024-04-26 11:32:53 +08:00
ibuler
1ef34efed6 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-04-26 11:14:05 +08:00
ibuler
593c97c165 perf: change left side menu height 2024-04-26 11:13:00 +08:00
feng
6540c0a165 perf: kael migrated koko 2024-04-25 18:38:56 +08:00
Bai
d5415b84c9 feat: Support asset tree node drag to another one 2024-04-24 18:06:12 +08:00
wangruidong
411051f921 perf: index page typo 2024-04-24 18:04:33 +08:00
ibuler
907e3ba729 perf: 优化自定义平台 2024-04-24 15:47:14 +08:00
ibuler
afa1a9fd9f perf: 修改 font 2024-04-23 19:00:45 +08:00
ibuler
07afdbe0f8 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-04-23 17:27:14 +08:00
ibuler
dcd59ca69f perf: 修改 labels 组件 2024-04-23 17:27:00 +08:00
zhaojisen
98ae943db0 fix: 修复侧边栏激活时文字右移的问题 2024-04-23 17:26:36 +08:00
Bai
5e91917ba4 perf: 优化 Web 资产详情时根据 autofill 类型返回对应的 spec_info 信息 2024-04-23 13:08:59 +08:00
zhaojisen
c4361b4c17 perf: 修复默认值相关内容,优化按钮禁用条件 2024-04-23 10:17:43 +08:00
Bai
70b5ec3683 fix: Fixed User first login long wait.(SYSTEM ORG) 2024-04-22 19:17:11 +08:00
Bai
c93a061852 fix: Linux Platform id is not 1, create gateway error 2024-04-22 15:54:56 +08:00
ibuler
8e06dde724 perf: 修改一些 table 宽度 2024-04-22 15:10:08 +08:00
feng626
4351d20a1e Merge pull request #3867 from jumpserver/pr@dev@asset
perf: 新建/更新资产时,新tab页面打开
2024-04-22 14:17:29 +08:00
feng
ce23d53e3c perf: 新建/更新资产时,新tab页面打开 2024-04-22 14:16:59 +08:00
wangruidong
32fc16126f perf: dashboard typo 2024-04-22 13:24:52 +08:00
ibuler
71ca5a87f1 perf: 优化菜单 2024-04-19 19:13:34 +08:00
ibuler
c9b1d2fb5b perf: 修改 table 显示 2024-04-18 21:25:15 +08:00
wangruidong
b9a99148e3 perf: 修改用户详情页-资产授权规则默认字段展示 2024-04-18 15:47:42 +08:00
ibuler
2a4b99484b perf: 修改查看 account 密码,切换 route 查询多次 2024-04-18 13:39:45 +08:00
ibuler
bd26894135 perf: 优化查看 account secret api 次数 2024-04-18 13:29:20 +08:00
ibuler
981fe00c5f perf: 优化修改 table label 2024-04-18 13:14:56 +08:00
wangruidong
01e55d7f6e perf: 全局组织禁用资产的测试可连接性 2024-04-18 11:40:10 +08:00
wangruidong
d0a7201683 perf: 优化查看资产账号列表过长显示不全 2024-04-18 11:25:52 +08:00
feng626
e2dcc98ab3 Merge pull request #3856 from jumpserver/pr@dev@dashboard
perf: dashboard 数字保留小数后两位
2024-04-17 20:05:45 +08:00
feng
8dd4f89395 perf: dashboard 数字保留小数后两位 2024-04-17 20:04:53 +08:00
ibuler
373661d35a perf: 优化 labels 宽度 2024-04-17 20:01:42 +08:00
feng
33a997f3bb fix: 仪表盘计算不准确 2024-04-17 19:16:59 +08:00
ibuler
1be5f23204 perf: 修改 view hover 支持切换 2024-04-17 16:03:32 +08:00
wangruidong
1adee78456 perf: QuickJob asset tree css 2024-04-17 14:45:12 +08:00
ibuler
baf2b6cd9b perf: view secret request many times 2024-04-17 14:25:36 +08:00
ibuler
723123fa50 perf: 优化菜单展开 2024-04-17 14:10:35 +08:00
ibuler
7bf1c2056c perf: 优化菜单 2024-04-16 19:40:31 +08:00
jiangweidong
28e756e163 perf: 优化云同步测试账号再次打开后不显示上次选的地域信息 2024-04-16 17:44:17 +08:00
老广
251873a7e9 Merge pull request #3850 from jumpserver/pr@dev@perf_krry_page
perf: 优化 krry paging
2024-04-16 17:33:20 +08:00
wangruidong
ff9bd42322 perf: 适配手机端 2024-04-16 15:40:30 +08:00
ibuler
2c245020cd perf: 优化 krry paging
chrome: remove debug
2024-04-16 14:34:20 +08:00
wangruidong
429d2fec40 perf: asset tree css 2024-04-16 11:38:40 +08:00
feng626
c2f8fe45a1 Merge pull request #3848 from jumpserver/pr@dev@records
fix: 改密推送任务记录查看失败
2024-04-16 10:36:08 +08:00
feng
caa5e7df75 fix: 改密推送任务记录查看失败 2024-04-16 10:34:05 +08:00
ibuler
8a439dec8d fix: 修复先删除标签resource,再创建报错 2024-04-15 19:43:51 +08:00
ibuler
eabf5a117d perf: account template support labels 2024-04-15 19:43:31 +08:00
ibuler
74c0a562e9 perf: 修改翻译和 ztree 高度 2024-04-15 16:28:10 +08:00
wangruidong
c30672a014 fix: 会话详情中文件传输显示有误 2024-04-15 14:42:40 +08:00
ibuler
65856db131 perf: 支持拖动 2024-04-15 11:23:08 +08:00
ibuler
5d67012121 perf: 优化 chat gpt 2024-04-12 14:21:00 +08:00
wangruidong
5c5df32181 perf: 优化停止任务log输出 2024-04-12 11:29:41 +08:00
Bai
ce831df717 fix: I18n 2024-04-12 11:20:26 +08:00
feng626
04688930ad Merge pull request #3841 from jumpserver/pr@dev@change_secret
fix: 改密任务记录搜索失败
2024-04-12 11:03:01 +08:00
feng
ae5787ae52 fix: 改密任务记录搜索失败 2024-04-12 11:01:39 +08:00
wangruidong
1dfdfe3932 fix: xss处理后无class属性 2024-04-11 19:23:52 +08:00
ibuler
573cf454ce perf: 修改 chat ai 2024-04-11 18:45:08 +08:00
wangruidong
f409abbf79 perf: 修改按钮样式,添加网关label 2024-04-11 17:33:55 +08:00
ibuler
0d81b7839b perf: 修改一些布局 2024-04-11 14:56:00 +08:00
wangruidong
a6232da3d0 perf: 修改任务停止日志输出提示 2024-04-11 14:40:35 +08:00
feng626
2690538db6 Merge pull request #3837 from jumpserver/pr@dev@logo
fix: 点击logo前端页面卡住
2024-04-11 14:38:35 +08:00
feng
6d0af7a149 fix: 点击logo前端页面卡住 2024-04-11 14:32:05 +08:00
ibuler
5b00ab795d perf: 修改 ztree style 2024-04-11 13:47:22 +08:00
Bai
babc048eb0 fix: Session duration recurring 2024-04-11 11:01:36 +08:00
ibuler
86709e3604 perf: asset tree style 2024-04-10 18:58:12 +08:00
wangruidong
d49be903e8 perf: Domain detail add gateways 2024-04-10 16:46:47 +08:00
Bai
332058b0ea perf: Domain detail add asset 2024-04-10 16:46:47 +08:00
feng
e355abc1af perf: 切换zh hant 2024-04-10 15:31:39 +08:00
Bai
99200d58bb feat: LDAP User Auth support cache user_dn 2024-04-09 20:11:06 +08:00
ibuler
61bb97efa9 perf: xss attack 2024-04-09 17:09:01 +08:00
fit2bot
c5e030e2fe perf: Update user orgs roles (#3829)
* perf: Update user orgs roles

* perf: Update user orgs roles

---------

Co-authored-by: Bai <baijiangjie@gmail.com>
2024-04-09 16:51:05 +08:00
ibuler
38a9468fd2 perf: 修改 acls 和 automations 布局 2024-04-09 16:01:21 +08:00
fit2bot
8a60ad774f perf: Update user orgs roles (#3828)
Co-authored-by: Bai <baijiangjie@gmail.com>
2024-04-09 15:44:07 +08:00
hzhfit2cloud
b08e6de527 支持中文繁体 2024-04-09 15:20:39 +08:00
feng
a96851686f fix: 修复xss漏洞 工单查不到数据问题 2024-04-08 18:56:22 +08:00
wangruidong
1b0adbfe71 fix: Web资产克隆,选择器信息丢失 2024-04-08 18:54:43 +08:00
wangruidong
c28419438b fix: 虚拟账号列表排序无效 2024-04-08 16:34:10 +08:00
ibuler
cf3ba419f4 perf: 修改自动化 2024-04-08 14:31:17 +08:00
jiangweidong
8807f24bcd perf: 云同步支持火山引擎 2024-04-08 14:04:56 +08:00
Bai
b8a914eb02 perf: ROOT Org show orgs-and-roles in user-detail page 2024-04-08 14:02:10 +08:00
wangruidong
8bbc66a281 fix: 授权资产查看账号失败 2024-04-08 11:35:13 +08:00
ibuler
c94fad4145 perf: app 迁移位置 2024-04-08 11:11:08 +08:00
ibuler
f371a968b7 perf: 优化 page margin 2024-04-07 19:27:52 +08:00
ibuler
e163318c5a perf: deep 优化写法 2024-04-07 19:03:40 +08:00
ibuler
bb6be97bee perf: 兼容之前的 help message,更名 help tip 2024-04-07 18:06:07 +08:00
ibuler
cb454d83a1 perf: 修改样式 2024-04-07 17:46:24 +08:00
ibuler
6b5d13e8b8 perf: 统一 css 2024-04-07 17:03:05 +08:00
ibuler
5f9b124a7b perf: 优化 page help, tab help 2024-04-07 16:53:03 +08:00
feng626
19bab778ca Merge pull request #3818 from jumpserver/pr@dev@user_session
fix: 修复用户下线失败问题
2024-04-03 16:41:43 +08:00
feng
134bcda895 fix: 修复用户下线失败问题 2024-04-03 16:14:54 +08:00
wangruidong
8b725fa4f6 perf: TransferSelect Dialog手机端适配 2024-04-02 19:21:33 +08:00
wangruidong
205f8bc280 fix: 勾选指定账号时,数量显示有问题 2024-04-02 19:20:44 +08:00
wangruidong
4963446b74 fix: 统一成模板 2024-04-02 19:19:40 +08:00
wangruidong
98be3903db fix: 华为交换机执行快捷命令报错 2024-04-02 18:51:19 +08:00
wangruidong
2cb7a859a8 perf: 授权的资产列表中支持查看某个资产授权的账号 2024-04-02 17:06:55 +08:00
ibuler
f7a48c04b8 perf: help tip and help text 2024-04-02 11:33:12 +08:00
ibuler
9315dab053 perf: form help tip style 2024-04-01 19:24:28 +08:00
ibuler
274d14d905 perf: account push and change secret 2024-04-01 17:51:55 +08:00
ibuler
9625dbf3ed perf: asset tree 2024-04-01 17:51:37 +08:00
ibuler
eef16080d4 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-03-29 18:59:57 +08:00
ibuler
66cf423598 perf: input with unit component 2024-03-29 18:59:44 +08:00
wangruidong
d51571c530 perf: 搜索框和右侧在同一水平线上 2024-03-29 18:29:50 +08:00
ibuler
53187cb8aa perf: cron tab better 2024-03-29 17:57:50 +08:00
wangruidong
bf0d19ac0b perf: 工单页面去掉一些筛选字段 2024-03-29 14:17:44 +08:00
wangruidong
28062f5d60 perf: Web,ChatGPT资产测试可连接性按钮禁用 2024-03-28 18:20:35 +08:00
ibuler
720dee578a fix: 修复创建账号时,资产没有默认值的问题 2024-03-28 18:15:50 +08:00
老广
a8cdbc0b22 Merge pull request #3807 from jumpserver/pr@v4@fix_account_add_default_asset
fix: 修复创建账号时,资产没有默认值的问题
2024-03-28 18:15:25 +08:00
ibuler
7845a1901b perf: 修改账号相关的一些内容 2024-03-28 18:14:58 +08:00
feng626
cc0d78a4e7 Merge pull request #3809 from jumpserver/pr@dev@role
fix: 修改content type 权限
2024-03-28 15:22:13 +08:00
feng
9f0b904043 fix: 修改content type 权限 2024-03-28 15:21:31 +08:00
ibuler
e3d8476396 fix: 修复创建账号时,资产没有默认值的问题 2024-03-28 07:11:18 +00:00
ibuler
88d9238c17 perf: 修改 table 布局 2024-03-28 14:47:48 +08:00
ibuler
fdb35eafc1 perf: 修改布局 2024-03-27 17:50:28 +08:00
dependabot[bot]
90cbb25d47 build(deps): bump express from 4.18.2 to 4.19.2
Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.19.2.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 16:18:44 +08:00
dependabot[bot]
450d9562c3 build(deps): bump ip from 1.1.8 to 1.1.9
Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
- [Commits](https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9)

---
updated-dependencies:
- dependency-name: ip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 16:18:19 +08:00
dependabot[bot]
a69eec5ef6 build(deps): bump axios from 0.21.1 to 0.28.0
Dependabot couldn't find the original pull request head commit, a01b1986d1e53870ecc18abd7ee72104fba7a08b.
2024-03-27 16:17:56 +08:00
wangruidong
5f6fc7e3b4 fix: 待审批列表显示没有过滤的问题 2024-03-27 16:10:22 +08:00
wangruidong
62b6ca026e perf: 优化资产、网域、网关的操作体验 2024-03-27 16:02:39 +08:00
Bai
006f258938 perf: Optimize the context menu for right-clicking on the asset tree. 2024-03-27 10:56:47 +08:00
ibuler
2bbd785ada perf: 优化 sub form 缩进 2024-03-26 19:18:07 +08:00
ibuler
f30294c2ae perf: 优化子表单 2024-03-26 18:30:18 +08:00
feng626
756b7db6b6 Merge pull request #3798 from jumpserver/pr@dev@perm_asset
perf: 资产授权列表优化
2024-03-26 18:07:51 +08:00
feng
a8d7c01f94 perf: 资产授权列表优化 2024-03-26 18:06:37 +08:00
feng
0c7e7ecc99 feat: 拆分 feishu lark 2024-03-26 17:11:22 +08:00
ibuler
95267a5581 perf: 修改 ztree 2024-03-26 14:52:36 +08:00
ibuler
a860cf1a13 perf: 优化布局 2024-03-25 18:17:37 +08:00
feng626
342a70c441 Merge pull request #3795 from jumpserver/pr@dev@asset_perm
fix: 资产授权列表没有有效期字段
2024-03-22 16:01:12 +08:00
wangruidong
815247f5b5 perf: 封装SwitchFormatter组件 2024-03-22 15:28:13 +08:00
wangruidong
e6721a9905 feat: 支持开启、关闭定时任务执行 2024-03-22 15:28:13 +08:00
feng
d6305fddfd fix: 资产授权列表没有有效期字段 2024-03-22 14:47:15 +08:00
ibuler
f2cf4fb4a0 perf: 修改 tab page 2024-03-21 19:12:37 +08:00
ibuler
3323a39767 perf: 修改 tab page 2024-03-21 16:42:29 +08:00
Eric
6db2d5ae31 perf: 支持发布机卸载远程应用 2024-03-21 16:12:13 +08:00
ibuler
9ed323321a perf: form hidden 改成 v-if 2024-03-21 14:43:50 +08:00
feng626
9b43bba6f8 Merge pull request #3790 from jumpserver/pr@dev@change_secret_record
feat: 改密记录可批量重试 新增更多过滤选项
2024-03-21 11:09:26 +08:00
feng
f9d89b30e2 feat: 改密记录可批量重试 新增更多过滤选项 2024-03-21 11:08:30 +08:00
feng626
be29794b4c Merge pull request #3788 from jumpserver/pr@dev@change_secret
perf: 改密记录可查看密文
2024-03-21 11:05:11 +08:00
ibuler
968089201a Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-03-20 18:09:23 +08:00
ibuler
d232d61350 perf: 优化翻译和布局 2024-03-20 18:09:03 +08:00
jiangweidong
97bf4f1b97 feat: 云账号测试支持选择地域 2024-03-20 16:39:12 +08:00
Bai
76e7684e26 perf: 优化 Session 支持 duration 字段 2024-03-20 15:52:23 +08:00
wangruidong
3cc2be8874 fix: 快捷命令布局问题 2024-03-19 18:06:16 +08:00
ibuler
cd1d0c3746 perf: 修改 icon 大小 2024-03-19 17:53:51 +08:00
wangruidong
2bfd764da7 perf: 支持导出收集账号列表的数据 2024-03-18 18:02:58 +08:00
wangruidong
daf3defe14 perf: 修改oracle默认数据库提示 2024-03-18 18:02:34 +08:00
Eric
d8c165ca78 perf: 支持发布机仅初始化配置 2024-03-18 15:52:22 +08:00
ibuler
780c55e99e perf: 优化 detail card 2024-03-15 19:19:05 +08:00
feng
42115b2c30 perf: 改密记录可查看密文 2024-03-15 17:29:23 +08:00
老广
447013abf5 Merge pull request #3784 from jumpserver/pr@dev@perf_asset_tree
perf: 优化资产树 root 节点宽度
2024-03-15 14:43:24 +08:00
老广
2b9e508a5c Merge pull request #3785 from jumpserver/pr@v4@perf_asset_tree
perf: 优化资产树 root 节点宽度
2024-03-15 14:43:03 +08:00
ibuler
44216326f9 perf: 优化资产树 root 节点宽度 2024-03-15 06:38:32 +00:00
ibuler
a68328ae83 perf: 优化资产树 root 节点宽度 2024-03-15 14:38:10 +08:00
ibuler
f9cd35ac74 perf: 修改 applet detail 2024-03-15 14:24:30 +08:00
feng
fd64e71a3b perf: 优化user secret key 处理逻辑 2024-03-15 11:46:44 +08:00
ibuler
06cfed009a perf: 优化表单 2024-03-15 10:45:02 +08:00
feng626
7b990a264f Merge pull request #3782 from jumpserver/pr@dev@translate
perf: translate
2024-03-15 10:34:20 +08:00
feng
7687917aae perf: translate 2024-03-15 10:33:13 +08:00
wangruidong
02b71619de perf: 支持终断批量快捷命令执行的任务 2024-03-14 11:18:04 +08:00
Bai
da90b23f99 perf: 优化我的资产页面不能编辑 Labels 的问题 2024-03-14 11:08:58 +08:00
wangruidong
b8090abcdc perf: 添加oracle默认数据库提示 2024-03-14 11:08:31 +08:00
ibuler
dc94ff58c3 perf: 修改 accounts 创建 2024-03-13 18:53:19 +08:00
feng626
45b07dd628 Merge pull request #3777 from jumpserver/pr@dev@customize_footer
feat: 自定义footer
2024-03-12 14:34:44 +08:00
feng
ad7a6a5579 feat: 自定义footer 2024-03-12 14:22:28 +08:00
wangruidong
67c8521d5c fix: 自动任务跳转执行列表显示结果不准确的问题 2024-03-12 11:18:33 +08:00
wangruidong
18fc63b8c0 feat: 支持一键导出批量命令执行日志 2024-03-12 11:01:27 +08:00
ibuler
6b87a2ad31 perf: 修改翻译 2024-03-11 19:20:32 +08:00
w940853815
64d2854e49 Revert "fix: 刷新页面搜索条件丢失的问题"
This reverts commit 99f83a6bc4.
2024-03-11 18:20:24 +08:00
ibuler
9c7606e59b perf: 修改 tab 变量 2024-03-11 17:09:29 +08:00
ibuler
5f0fdf326b perf: 修改 action 组件 2024-03-11 14:33:37 +08:00
ibuler
cd550054d8 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-03-07 18:32:29 +08:00
ibuler
cb634bea1e perf: 修改翻译 2024-03-07 18:32:21 +08:00
Bai
3d93f708be perf: i18n settings-tools not done. 2024-03-07 16:14:53 +08:00
wangruidong
99f83a6bc4 fix: 刷新页面搜索条件丢失的问题 2024-03-07 14:22:20 +08:00
feng626
ca9f90624e Merge pull request #3772 from jumpserver/pr@dev@detail_formatter
perf: 支持点击“转到”后进行颜色标识
2024-03-06 19:11:00 +08:00
feng
05edf98514 perf: 支持点击“转到”后进行颜色标识 2024-03-06 19:10:04 +08:00
Bai
45b8c622bc perf: 优化界面设置页面主题Logo预览的背景颜色 2024-03-06 17:53:01 +08:00
Bai
6c315e1669 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-03-06 17:07:36 +08:00
Bai
0fee313f18 perf: 优化界面设置页面主题Logo预览的背景颜色 2024-03-06 17:07:16 +08:00
feng626
bcb817b30d Merge pull request #3770 from jumpserver/pr@v4@translate
perf: translate and width
2024-03-06 16:51:19 +08:00
ibuler
33c75915ca perf: 修改文案 2024-03-06 16:50:20 +08:00
feng
89ed35815c perf: translate and width 2024-03-06 16:44:26 +08:00
ibuler
69d244b227 perf: 修改文案 2024-03-05 19:01:24 +08:00
ibuler
047ed5a6f8 perf: 修改 detail 中的一些宽度 2024-03-05 16:23:31 +08:00
feng626
faf1fb60b7 Merge pull request #3769 from jumpserver/pr@dev@account_gather
feat: 账号收集任务可单独添加资产
2024-03-05 15:00:27 +08:00
feng
f28825ba74 feat: 账号收集任务可单独添加资产 2024-03-05 14:59:02 +08:00
wangruidong
3626fd024d fix: 刷新页面根据搜索条件过滤出对应的资源 2024-03-04 19:13:18 +08:00
ibuler
61acec17ee Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-03-04 19:08:53 +08:00
ibuler
2438c2fd04 perf: 优化菜单显示 2024-03-04 19:08:45 +08:00
feng626
79ec0610a8 Merge pull request #3766 from jumpserver/revert-3764-pr@dev@fix_url_search
Revert "fix: 刷新页面根据搜索条件过滤出对应的资源"
2024-03-04 17:54:35 +08:00
Bryan
eee5889d51 Revert "fix: 刷新页面根据搜索条件过滤出对应的资源" 2024-03-04 17:53:46 +08:00
feng626
038ec49d5e Merge pull request #3764 from jumpserver/pr@dev@fix_url_search
fix: 刷新页面根据搜索条件过滤出对应的资源
2024-03-04 17:41:49 +08:00
feng626
5f06b7bde9 Merge pull request #3765 from jumpserver/pr@v4@jpb
fix: job management route jump and translate
2024-03-04 14:44:36 +08:00
feng
59bb23232f fix: job management route jump and translate 2024-03-04 14:41:26 +08:00
wangruidong
669ffc73fd fix: 刷新页面根据搜索条件过滤出对应的资源 2024-03-04 14:24:39 +08:00
ibuler
64eacb5237 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-03-01 17:14:15 +08:00
ibuler
7804d741a0 perf: 修改 asset tree 2024-03-01 17:13:58 +08:00
feng626
278562e855 Merge pull request #3763 from jumpserver/pr@dev@account_push
perf: 社区版账号推送,隐藏掉定时推送按钮
2024-03-01 16:57:37 +08:00
feng
fafa088a5e perf: 社区版账号推送,隐藏掉定时推送按钮 2024-03-01 16:51:06 +08:00
feng626
31b9158e3d Merge pull request #3762 from jumpserver/pr@v4@translate
perf: translate
2024-03-01 15:42:36 +08:00
feng
a5bd2965d0 perf: translate 2024-03-01 15:40:15 +08:00
wangruidong
1ff65a2293 fix: sftp会话详情禁用监控按钮 2024-02-29 14:33:39 +08:00
Bai
1c69c61432 fix: 修复文件传输权限位 2024-02-29 14:13:42 +08:00
wangruidong
191143fb17 perf:drag files tips add padding 2024-02-28 20:52:32 +08:00
wangruidong
046870e366 fix: 隐藏停止任务按钮 2024-02-28 20:51:59 +08:00
feng626
b44af12f3b Merge pull request #3756 from jumpserver/pr@dev@push_params
fix: 平台中的改密参数和推送参数没了
2024-02-28 18:49:47 +08:00
feng
d9a9c7e229 fix: 平台中的改密参数和推送参数没了 2024-02-28 18:48:06 +08:00
feng626
8be48c87a8 Merge pull request #3754 from jumpserver/pr@v4@translate
perf: account translate
2024-02-28 17:32:37 +08:00
feng
5aeb57fb61 perf: account translate 2024-02-28 17:26:05 +08:00
ibuler
b0ae5d4299 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-28 17:05:30 +08:00
ibuler
fb6ac84fb3 perf: 修改布局 2024-02-28 17:05:21 +08:00
wangruidong
e32c44aaa3 perf: tab name capitalize first letter with / 2024-02-28 10:00:43 +08:00
wangruidong
55dfa5889b perf: 终断任务按钮状态变化优化 2024-02-28 10:00:13 +08:00
wangruidong
b35b5bd774 fix: 远程应用账号列表排版问题 2024-02-28 09:59:52 +08:00
ibuler
4baf71d8dc Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-27 19:37:00 +08:00
ibuler
8b0d7bb422 perf: 修改布局 2024-02-27 19:36:47 +08:00
feng626
80e44e302f Merge pull request #3753 from jumpserver/pr@v4@translate
perf: account translate
2024-02-27 19:17:25 +08:00
feng
009770bb04 perf: account translate 2024-02-27 19:16:21 +08:00
feng626
1ee9e5df78 Merge pull request #3751 from jumpserver/pr@dev@push_account
fix: 【资产列表】资产详情中推送账号,推送参数未获取平台的参数
2024-02-27 16:56:50 +08:00
feng
2fe6cb37e6 fix: 【资产列表】资产详情中推送账号,推送参数未获取平台的参数 2024-02-27 16:55:48 +08:00
Bai
e2d7d8edd8 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-27 14:59:41 +08:00
Bai
2d9b4ddd0b perf: i18n settings-Storage done. 2024-02-27 14:59:32 +08:00
ibuler
a58ed5e1a9 perf: 优化布局 2024-02-27 14:57:15 +08:00
feng626
da570e21ee Merge pull request #3747 from jumpserver/pr@dev@luna
fix: 跳转到 luna 组织不对
2024-02-27 10:23:55 +08:00
wangruidong
16adcd299a perf: 平台参数联动逻辑优化 2024-02-26 19:49:26 +08:00
wangruidong
df8a464c36 fix: Web资产的选择器未根据平台参数联动 2024-02-26 16:40:15 +05:00
ibuler
2595b8bc8e perf: 优化 label 宽度 2024-02-26 19:34:36 +08:00
wangruidong
52e121cfdb perf: 禁用redis/clickhouse测试可连接性按钮 2024-02-26 15:53:20 +05:00
feng626
f014fc6426 Merge pull request #3748 from jumpserver/pr@dev@user_group
perf: Default组织下,标签关联用户资源,去掉组件用户
2024-02-26 17:21:00 +08:00
feng
88a6c2bb2b perf: Default组织下,标签关联用户资源,去掉组件用户 2024-02-26 17:08:05 +08:00
ibuler
ee270f419c Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-26 16:54:36 +08:00
ibuler
4b6c9d7705 perf: 优化布局 2024-02-26 16:54:07 +08:00
feng
8fa31fe0c2 fix: 跳转到 luna 组织不对 2024-02-26 16:24:50 +08:00
Bai
445eb31db1 perf: i18n settings-Features done. 2024-02-26 15:47:12 +08:00
wangruidong
8f246c18e1 perf: 作业日志添加任务类型 2024-02-26 13:43:25 +08:00
Bai
c8151d94ba Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-23 18:01:21 +08:00
Bai
8dd5ca8bc8 perf: i18n settings-notifications done. 2024-02-23 18:01:13 +08:00
feng626
8a6f0b57d4 Merge pull request #3744 from jumpserver/pr@v4@translate
perf: 修改工作台相关翻译
2024-02-23 17:21:34 +08:00
feng
7b91c26689 perf: 修改工作台相关翻译 2024-02-23 17:20:59 +08:00
ibuler
6083a2a9aa Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-23 15:17:42 +08:00
ibuler
31608ce4ee perf: 美化 nav header 2024-02-23 15:17:32 +08:00
Bai
5e36cddca3 perf: i18n settings-org done. 2024-02-23 15:16:39 +08:00
wangruidong
56bae6ee84 perf: permissions table col modify 2024-02-22 18:34:34 +08:00
feng626
0d870b62de Merge pull request #3741 from jumpserver/pr@v4@translate
perf: 翻译
2024-02-22 17:45:57 +08:00
feng
c453134fa3 perf: 翻译 2024-02-22 17:44:45 +08:00
ibuler
8012a5783e perf: 修改按钮字体 2024-02-22 16:45:37 +08:00
wangruidong
9d999a7119 fix: LDAP用户导入会超时 2024-02-22 11:37:58 +08:00
ibuler
c9d231f8f4 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-22 11:35:41 +08:00
ibuler
97b182f06e perf: 修改字体 2024-02-22 11:34:49 +08:00
wangruidong
82b33b5ab4 perf: table col modify 2024-02-22 10:42:04 +08:00
ibuler
2f7d5336e2 perf: 修改 sql query counter 2024-02-21 15:22:30 +08:00
wangruidong
dc8f237fec fix: 类别、类型排序无效 2024-02-21 14:21:38 +08:00
jiangweidong
41d0615ab5 feat: 支持工单链接直接免密审批 2024-02-21 11:39:57 +08:00
ibuler
f425da1555 Merge branch 'v4' of github.com:jumpserver/lina into v4 2024-02-20 19:02:07 +08:00
ibuler
2d5278aa80 perf: 修改翻译 2024-02-20 19:01:52 +08:00
feng626
fadc3e7dd0 Merge pull request #3736 from jumpserver/pr@dev@account
perf: 账号收集添加资产名称模糊搜索
2024-02-20 18:41:58 +08:00
feng
152f56b496 perf: 账号收集添加资产名称模糊搜索 2024-02-20 18:39:48 +08:00
wangruidong
ed4f8dea90 perf: 终断批量快捷命令执行的任务 2024-02-20 15:13:11 +08:00
feng626
dced020a20 Merge pull request #3734 from jumpserver/pr@dev@perm_user
perf: 授权用户列表显示角色
2024-02-19 14:48:46 +08:00
feng
bf3c87575c perf: 授权用户列表显示角色 2024-02-19 14:43:01 +08:00
Eric
dadb54090c perf: 会话活动日志 2024-02-06 18:32:53 +08:00
ibuler
3f683b012c perf: 修改 ai chat 的位置 2024-02-06 17:59:13 +08:00
ibuler
ed91112531 perf: 修改 ai chat 的位置 2024-02-06 17:58:52 +08:00
ibuler
e224f30de6 perf: 修改图标 2024-02-06 15:34:26 +08:00
wangruidong
ecb1e91136 fix: Web资产选择器需跟平台的参数适配 2024-02-05 18:17:33 +08:00
wangruidong
454947f08b perf: 支持改密日志记录保留天数 2024-02-05 18:07:04 +08:00
feng
3ff6c6fe2f fix: 导出下载更新模版用不同的action 去对应后台serializer 2024-02-05 17:51:56 +08:00
Bai
527cc4d727 fix: 修复用户登录403的问题(DEFAULT组织由后端进行设置) 2024-02-05 16:52:31 +08:00
wangruidong
3b4201d2bf perf: 修改翻译 2024-02-05 15:54:42 +08:00
老广
bb66fe6e98 Merge pull request #3724 from jumpserver/pr@v4@perf_i18n
perf: 修改翻译
2024-02-05 14:19:08 +08:00
ibuler
9d096dd994 perf: 修改翻译 2024-02-05 14:13:53 +08:00
ibuler
c0d4ec7dba merge: with dev 2024-02-05 10:06:15 +08:00
ibuler
b91287a974 perf: 优化菜单 2024-02-05 09:52:58 +08:00
wangruidong
ba109da324 perf: 禁止用户自身更新自己的某些属性 2024-02-04 18:01:21 +08:00
jiangweidong
2a92c7657c perf: 支持账号批量更新功能 (#3717) 2024-02-04 17:50:22 +08:00
feng626
beb8ace5bd Merge pull request #3723 from jumpserver/pr@dev@asset_select
perf: 改密推送 选择资产支持标签搜索
2024-02-04 17:29:13 +08:00
feng
5e1225524c perf: 改密推送 选择资产支持标签搜索 2024-02-04 17:27:46 +08:00
wangruidong
931042eb2f perf: 国际电话区号选项从api返回 2024-02-04 14:52:50 +08:00
ibuler
94bf737584 perf: 优化 i18n 2024-02-04 10:24:52 +08:00
feng626
383577bb18 Merge pull request #3721 from jumpserver/pr@dev@ssh_key
perf: 【模版账号】创建/更新 模版账号表单中,希望增加上传密钥按钮
2024-02-02 18:44:59 +08:00
feng
f9e94386de perf: 【模版账号】创建/更新 模版账号表单中,希望增加上传密钥按钮 2024-02-02 18:41:11 +08:00
feng
5879eed926 perf: 优化用户session 会话过期 2024-02-02 17:54:46 +08:00
fit2bot
6960ff471c perf: 整理了一遍翻译 (#3718)
* stash

* perf: 修改 i18n 支持

* perf: 修改翻译

* perf: 修改 i18n

* perf: 整理了一遍翻译

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-02-01 16:02:57 +08:00
wangruidong
e1e54bf7a3 fix: 控制台,审计台仪表盘图表显示不对 2024-01-31 13:55:05 +08:00
ibuler
9e0c43589d perf: 优化首页日期 tab 按钮的颜色 2024-01-31 10:00:11 +08:00
wangruidong
ca3b0cfce5 perf: crontab修改提示翻译 2024-01-30 17:48:25 +08:00
jiangweidong
245b3f4ad2 perf: 资源详情页面标题长度超过一行则省略表示 2024-01-29 16:52:12 +08:00
ibuler
ea575e0515 perf: 优化数量显示,异步获取 hover 的内容 2024-01-29 16:50:42 +08:00
“huailei000”
ff63d2ca39 perf: 优化快捷命令输出框跟随浏览器高度 2024-01-29 16:49:38 +08:00
feng626
045af27999 Merge pull request #3711 from jumpserver/pr@dev@account_template
feat: 账号模版可导入导出
2024-01-29 16:42:45 +08:00
feng626
257365932c Merge pull request #3710 from jumpserver/pr@dev@account_bulk_test
feat: 批量测试账号可连接性
2024-01-29 16:42:18 +08:00
feng
aca4e4077f feat: 账号模版可导入导出 2024-01-29 16:19:19 +08:00
feng
ce80d36b8b feat: 批量测试账号可连接性 2024-01-29 14:40:49 +08:00
wangruidong
7dd5256303 perf: 用户详情 - 授权资产减少默认字段 2024-01-25 17:19:09 +08:00
wangruidong
fcf1093b4c perf: 安全模式返回授权的资产 2024-01-25 17:08:15 +08:00
feng626
5f9e9afffb Merge pull request #3709 from jumpserver/pr@dev@translate
perf: 翻译
2024-01-25 14:36:18 +08:00
feng
1bba9980c2 perf: 翻译 2024-01-25 14:35:13 +08:00
halo
6cbcee7656 perf: 指定账号enter异常刷新整个页面 2024-01-22 06:38:19 +00:00
halo
2084c50f95 perf: 资产授权弹窗选择时点击遮罩退出问题 2024-01-22 06:37:53 +00:00
“huailei000”
20d98bf09e perf: 优化更多操作高度;优化快捷命令右侧图标;优化账号管理列表-定期执行在中、英文状态下的宽度 2024-01-19 10:32:38 +00:00
“huailei000”
05c2f1f859 perf: 快捷命令toolbar增加折叠功能 2024-01-19 10:31:36 +00:00
“huailei000”
1e9107ec4a perf: 兼容luna显示智能问答 2024-01-19 09:23:19 +00:00
wangruidong
96a3f0a334 fix: 网关列表资产数量点击详情中没有资产 2024-01-18 08:11:46 +00:00
“huailei000”
6938299940 perf: 会话详情添加文件传输;操作日志默认显示动作、资源类型 2024-01-18 08:10:58 +00:00
wangruidong
0d1eb82fca perf: The cron interval execution must be greater than 10 minutes 2024-01-18 08:06:14 +00:00
feng626
ddf268e8ec Merge pull request #3695 from jumpserver/revert-3692-pr@dev@login_expire
Revert "perf: 登录过期自动退出"
2024-01-17 21:11:10 +08:00
老广
ae6fb878da Revert "perf: 登录过期自动退出" 2024-01-17 21:07:33 +08:00
feng626
d7099c118b Merge pull request #3692 from jumpserver/pr@dev@login_expire
perf: 登录过期自动退出
2024-01-17 15:58:16 +08:00
feng
1b73591366 perf: 登录过期自动退出 2024-01-17 15:47:21 +08:00
ibuler
6f3f66df73 perf: auto decide create in new page or current page in asset or permission 2024-01-15 19:37:47 +08:00
ibuler
598020a89b perf: revert asset create with labels 2024-01-15 19:36:48 +08:00
wangruidong
5bad1f397d fix: capitalizeFirst error 2024-01-15 19:35:16 +08:00
ibuler
327ebeaa53 perf: set default colunms width 2024-01-15 16:39:14 +08:00
“huailei000”
88486e2b00 perf: 优化时间区间选择组件选择时间不准确问题 2024-01-14 22:57:36 -08:00
“huailei000”
faf8521c91 perf: 优化标签列表-资产数量弹窗中的搜索条件不显示在url中 2024-01-14 22:29:42 -08:00
feng
ccd74fb76f fix: m2m 表单渲染错乱 2024-01-14 22:14:48 -08:00
ibuler
d76c6fdbd8 perf: 优化 tag search 避免多次请求 2024-01-14 18:29:12 -08:00
ibuler
ea87c9d148 perf: 优化授权的资产 2024-01-12 18:14:50 +08:00
wangruidong
af6a55d3f4 feat: 同步ldap用户消息通知 2024-01-12 12:02:42 +05:00
“huailei000”
c052961efe perf: 优化仪表盘翻译 2024-01-11 14:43:24 +08:00
“huailei000”
57d339f513 perf: 优化批量操作图标大小 2024-01-11 14:43:01 +08:00
ibuler
2853b48144 perf: 优化搞定远端翻译 2024-01-11 14:37:19 +08:00
ibuler
3eb113a5cb perf: 修改翻译方式 2024-01-10 18:31:38 +08:00
ibuler
1b60735808 perf: 修改翻译不规范 2024-01-10 17:08:26 +08:00
feng626
097771175d Merge pull request #3678 from jumpserver/pr@dev@dashboard_translate
perf: 前端dashboard 翻译
2024-01-09 17:49:43 +08:00
feng
0922557abc perf: 前端dashboard 翻译 2024-01-09 17:40:37 +08:00
feng626
6842da1960 Merge pull request #3676 from jumpserver/pr@dev@perm_create
perf: 【资产授权】选择资产弹窗左侧树中,去掉搜索、刷新按钮
2024-01-08 17:26:27 +08:00
feng
eb839b4113 perf: 【资产授权】选择资产弹窗左侧树中,去掉搜索、刷新按钮 2024-01-08 17:25:34 +08:00
“huailei000”
7e3e8fbf2f perf: 替换批量更新图标 2024-01-08 16:04:37 +08:00
jiangweidong
3800151763 perf: 邮箱支持exchange协议 2024-01-08 12:34:50 +05:00
ibuler
0121505f28 perf: 优化页面显示 2024-01-08 14:49:12 +08:00
ibuler
b9a6f5d3ac perf: 修复标签导入和搜索的问题 2024-01-03 17:07:15 +08:00
feng626
179b568b16 Merge pull request #3672 from jumpserver/pr@dev@history_account
feat: 历史账号定期删除 可设置保留数量
2024-01-03 11:04:22 +08:00
feng
c563697efd feat: 历史账号定期删除 可设置保留数量 2024-01-02 19:10:54 +08:00
fit2bot
fa9281aa92 perf: 优化节点树 (#3670)
Co-authored-by: ibuler <ibuler@qq.com>
2024-01-02 16:18:54 +08:00
feng
cc8d94f666 fix: Default组织下,标签关联用户资源,去掉组件用户 2023-12-29 11:14:26 +05:00
“huailei000”
1416405644 perf: 优化批量更新资产不能使用问题 2023-12-29 11:10:04 +05:00
wangruidong
d29b3effbc fix: 更新用户组权限问题 2023-12-29 07:41:28 +05:00
wangruidong
bd9456ba2d fix: 创建用户失败 2023-12-28 15:35:22 +05:00
wangruidong
0c9d5d9b6b fix: 用户角色修改后更新页面与用户列表页显示不一致 2023-12-28 15:35:22 +05:00
Bai
b19ddd6799 fix: 修复组件中没有暴露 SQLServer 端口的问题 2023-12-28 14:52:41 +05:00
wangruidong
ea48b6ebf3 perf: 修改文件上传超时时间 2023-12-27 18:57:17 +08:00
“huailei000”
fba2f77874 perf: 优化智能问答返回显示系统消息 2023-12-27 17:11:20 +08:00
wangruidong
3c900ce387 perf: 账号删除添加提示确认框 2023-12-27 14:07:15 +05:00
“huailei000”
7df11b907f perf: 优化资产详情页面布局 2023-12-27 15:27:43 +08:00
wangruidong
cdd51a9c16 perf: 统计任务执行结果 2023-12-26 15:45:08 +08:00
wangruidong
51a4c013d3 perf: 修改文件上传超时时间 2023-12-26 10:48:36 +08:00
feng
111aafb4bb fix: 【用户登录会话失效问题】SESSION_COOKIE_AGE 配置不生效的问题 2023-12-25 13:24:02 +05:00
“huailei000”
81f0b13730 perf: 优化网关克隆平台显示不正确问题 2023-12-25 15:10:10 +08:00
“huailei000”
a36a9e7645 perf: 智能问答禁止密码自动填充 2023-12-22 13:23:17 +05:00
Eric
cfe6db6ec5 perf: 虚拟应用增加许可证验证 2023-12-22 12:24:08 +05:00
“huailei000”
ccb221559a perf: 账号收集翻译 2023-12-22 11:33:43 +08:00
“huailei000”
ace8501648 perf: 实体组织下批量更新用户可以选择用户组 2023-12-21 17:29:38 +08:00
“huailei000”
ff627bb0db perf: 优化chat滚动条宽度 2023-12-21 16:19:59 +08:00
ibuler
dba8d84f2d perf: 优化导入 dialog 大小 2023-12-21 15:38:34 +08:00
wangruidong
e24bfff6ab fix: 同名文件可以删除任意一个 2023-12-21 15:38:15 +08:00
wangruidong
cdcc4226db perf: 界面设置提交后不刷新页面 2023-12-21 15:37:26 +08:00
“huailei000”
09b52738ca perf: 优化站内信布局;显示站内信关闭按钮 2023-12-21 11:02:42 +08:00
“huailei000”
e324b16e1b perf: 优化标签管理编辑按钮位置 2023-12-21 10:26:20 +08:00
fit2bot
1b52e4cb93 perf: 优化 label search (#3634)
Co-authored-by: ibuler <ibuler@qq.com>
2023-12-20 20:48:00 +08:00
“huailei000”
6ac31b05e5 perf: window资产密文类型不是密码时不能设置推送参数 2023-12-20 19:37:57 +08:00
wangruidong
6c24c9a2d9 fix: 账号备份开启拆分两部分后再关闭还是会拆成两份发送邮件 2023-12-20 16:25:17 +05:00
fit2bot
b79ef4f7a8 perf: 更新白名单后返回列表页 (#3630)
Co-authored-by: wangruidong <940853815@qq.com>
2023-12-20 19:18:04 +08:00
“huailei000”
d584f83f59 perf: 用户列表全局组织下可以批量更新用户,不能更新用户组 2023-12-20 19:00:00 +08:00
feng626
22ed0ec0ca Merge pull request #3629 from jumpserver/pr@dev@user
perf: 更新创建用户 权限位关联,用户角色 select2
2023-12-20 18:29:09 +08:00
feng
436e9e59f1 perf: 更新创建用户 权限位关联,用户角色 select2 2023-12-20 18:27:44 +08:00
wangruidong
ba63d52275 fix: 添加资产id查询条件 2023-12-20 15:14:45 +05:00
“huailei000”
aa48e24881 perf: 全局组织下禁止批量更新 2023-12-20 17:57:29 +08:00
“huailei000”
f59b33a27f perf: 优化标签组件内容为空时面板的位置 2023-12-20 17:38:57 +08:00
ibuler
9f87708b96 perf: 修改拼写错误 2023-12-20 17:02:57 +08:00
Eric
78819e9a04 perf: 页面配置是否启用 Vitual App 2023-12-20 13:19:49 +05:00
“huailei000”
8e981d52eb perf: 优化标签管理编辑 2023-12-20 15:52:33 +08:00
wangruidong
9f4c798ddb perf: 修改文件上传超时时间 2023-12-19 16:18:36 +05:00
ibuler
7eac62635b perf: 支持点击 label 搜索 2023-12-19 17:00:50 +08:00
ibuler
3739d710f8 perf: 标签支持多个搜索 2023-12-19 15:26:10 +08:00
“huailei000”
aae5aa9d7f perf: 标签列表关联成功资产后刷新列表 2023-12-19 14:54:19 +08:00
“huailei000”
88be5d5fe8 perf: 优化资产选择节点组件取消不能关闭弹窗问题 2023-12-19 13:57:37 +08:00
fit2bot
6ac54c9865 perf: 优化 labels list 显示 (#3617)
* perf: 修改 label list 显示

* perf: 优化 labels list 显示

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-18 22:38:35 +08:00
ibuler
5cefbbfb51 perf: 修改 labels 关联 2023-12-18 18:06:18 +08:00
ibuler
f10e31bd60 perf: 修复标签搜索 2023-12-15 18:32:28 +08:00
wangruidong
e8e8b5bfca perf: 文件传输提示优化 2023-12-15 18:12:19 +08:00
“huailei000”
19adbca7b3 perf:优化资产授权详情授权用户、授权资产点击多选框会全部选中问题 2023-12-15 15:11:05 +08:00
feng626
ba28d5619a Merge pull request #3612 from jumpserver/pr@dev@acl_rules
perf: acl 自定义规则添加首次登录选项
2023-12-15 14:16:26 +08:00
feng
68363a4c52 perf: acl 自定义规则添加首次登录选项 2023-12-15 14:13:43 +08:00
“huailei000”
f947fa8d36 perf: 优化新建聊天不重新创建socket 2023-12-15 11:03:45 +08:00
ibuler
c1d0994781 perf: 优化 chat css 2023-12-14 19:53:17 +08:00
fit2bot
fde576fe8b perf: 上传目标目录指定在/tmp下 (#3608)
Co-authored-by: wangruidong <940853815@qq.com>
2023-12-14 19:45:27 +08:00
“huailei000”
27864be41d perf: 优化chat初始化socket 2023-12-14 19:32:31 +08:00
ibuler
9d461be4a0 perf: 优化聊天样式 2023-12-14 19:12:03 +08:00
“huailei000”
bcbfe114d8 perf: 优化点击新聊天提示词没有重置问题 2023-12-14 17:37:13 +08:00
ibuler
af8448adeb merge: with dev 2023-12-14 16:59:46 +08:00
fit2bot
9b7a360ea1 perf: chat增加提示词 (#3603)
Co-authored-by: “huailei000” <2280131253@qq.com>
Co-authored-by: huailei <31801270+huailei000@users.noreply.github.com>
2023-12-14 16:37:48 +08:00
ibuler
3bf7eed52e perf: 修复资产详情中 label 的问题 2023-12-14 16:36:59 +08:00
ibuler
c1d80469db perf: 修改 prompt 2023-12-14 14:07:38 +08:00
jiangweidong
e6a1039387 feat: 云同步支持设置策略关系、支持不匹配不符合策略的资产 (#3592) 2023-12-14 11:31:23 +08:00
wangruidong
ad7b2c4e8f perf: 上传大小限制从接口获取 2023-12-14 11:27:56 +08:00
fit2bot
d51a787598 perf: 使用slot处理文件列表 (#3599)
* perf: 使用slot处理文件列表

* perf: 大小文件超出限制不上传

---------

Co-authored-by: wangruidong <940853815@qq.com>
2023-12-14 10:34:06 +08:00
ibuler
2ac9183047 perf: 修改 icon 颜色 2023-12-14 10:30:42 +08:00
ibuler
3b9f0b56fb perf: 优化右侧聊天 2023-12-13 18:08:42 +08:00
“huailei000”
d900a8d5a3 perf: 已锁定的ip按钮增加个数显示 2023-12-13 17:16:16 +08:00
fit2bot
6daa16b3ca perf: add strip-ansi (#3596)
* perf: 修改 requrements

* perf: add strip-ansi

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-13 16:38:45 +08:00
“huailei000”
28891234db perf: 优化socket地址 2023-12-13 16:34:24 +08:00
ibuler
1d7bdcb512 perf: 修改 requrements 2023-12-13 16:31:41 +08:00
“huailei000”
0964031922 perf: 优化chat 停止按钮位置 2023-12-13 16:14:15 +08:00
ibuler
6568f47760 perf: 优化文件上传的样式 2023-12-13 11:24:04 +08:00
“huailei000”
448e89c733 perf: update yarn.lock 2023-12-13 11:20:11 +08:00
“huailei000”
68dccaa93c perf: 优化抽屉按钮效果 2023-12-13 10:54:50 +08:00
“huailei000”
b0cefb05e0 perf: 优化chat提示 2023-12-12 19:48:35 +08:00
wangruidong
d6bf4c86df perf: 显示上传文件大小 2023-12-12 19:07:02 +08:00
feng626
993ded5ca8 Merge pull request #3586 from jumpserver/pr@dev@perf_chat
perf: chat
2023-12-12 18:52:19 +08:00
huailei
951df9e63a Merge branch 'dev' into pr@dev@perf_chat 2023-12-12 18:51:43 +08:00
“huailei000”
4b98806b3e perf: chat 2023-12-12 18:50:19 +08:00
ibuler
536520c78c perf: 优化英语翻译 2023-12-12 18:43:51 +08:00
ibuler
63650912b8 perf: placeholder 字体大小 2023-12-12 18:43:31 +08:00
feng626
b65069adeb Merge pull request #3583 from jumpserver/pr@dev@translate
perf: 翻译
2023-12-12 16:35:00 +08:00
feng
7bd3179488 perf: 翻译 2023-12-12 16:33:16 +08:00
feng
bf6ecca1fa perf: 翻译 2023-12-12 16:32:54 +08:00
ibuler
69449740df perf: 修改一下大小 2023-12-12 14:16:35 +08:00
feng626
591f3ae39a Merge pull request #3579 from jumpserver/pr@dev@system_task
perf: 【优化系统任务】支持显示 执行周期、下次开始时间 字段
2023-12-12 14:16:12 +08:00
ibuler
463d2b16bf perf: chatai icon 2023-12-12 11:13:15 +08:00
feng
cc47d93988 perf: 【优化系统任务】支持显示 执行周期、下次开始时间 字段 2023-12-12 11:06:53 +08:00
fit2bot
19e42c48e4 feat: 支持批量发送文件 (#3574)
* feat: 支持批量发送文件

* feat: 支持批量发送文件

* perf: 同名文件处理

---------

Co-authored-by: wangruidong <940853815@qq.com>
2023-12-12 10:40:41 +08:00
“huailei000”
6b37c71b6d feat: 添加chat聊天 2023-12-11 18:24:24 +08:00
feng
3af6b1d1fe feat: 系统设置配置gpt 2023-12-11 18:24:24 +08:00
fit2bot
2445ecb6e5 perf: 优化 select2 成 transfer select2 (#3576)
* feat: 添加 tranSelect

* perf: 优化 select2 成 transfer select2

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-11 16:14:06 +08:00
feng626
a5ae4110da Merge pull request #3578 from jumpserver/pr@dev@applet
perf: 远程应用上传过程中,如果应用不存在,则创建该应用;如果已存在,则进行应用更新。
2023-12-11 14:29:11 +08:00
feng
dc4378b637 perf: 远程应用上传过程中,如果应用不存在,则创建该应用;如果已存在,则进行应用更新。 2023-12-11 14:26:43 +08:00
Eric
91f2de7797 perf: 添加 panda 监控显示 2023-12-11 14:14:39 +08:00
Eric
29b2829199 perf: 完善 app provider 详情页 2023-12-08 18:48:15 +08:00
feng626
4e23a34af9 Merge pull request #3572 from jumpserver/pr@dev@delete_account_automation
feat: 同步删除远程机器账号
2023-12-08 14:14:28 +08:00
feng
2bd1aaa03e feat: 同步删除远程机器账号 2023-12-07 21:07:29 +08:00
halo
96e23ddb52 fix: 修复字段翻译问题 2023-12-07 14:10:37 +08:00
fit2bot
351e250688 feat: support virtual app (#3558)
* feat: support virtual app

* perf: virtual host 详情

* perf: 调整 virtual app 卡片展示

* perf: 调整 route

* perf: 增加翻译

* perf: 优化更换名称

---------

Co-authored-by: Eric <xplzv@126.com>
2023-12-06 10:38:04 +08:00
liufei20151013
e8ebd1aa64 feat: 云同步支持 ZStack 2023-12-05 17:35:41 +08:00
jiangweidong
6adca44180 perf: 用户列表可展示更多api返回的字段信息 2023-12-05 17:28:33 +08:00
ibuler
f3699069c5 perf: 优化创建 label 2023-12-05 15:15:55 +08:00
fit2bot
2f298a32c3 perf: 修改标签 (#3516)
* perf: 支持全局的 labels

* perf: 修改标签

* perf: 修改 labes

* stash

* pref: stash it

* perf: stash

* perf: 优化 labels

* perf: 优化 tabs

* perf: 优化 tag

* perf: 基本完成

* perf: 优化 labels 创建搜索

* perf: 优化 labels

* perf: 优化完成标签功能

* perf: 修改 label name

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-05 10:30:56 +08:00
fit2bot
3ba81a43cb feat: 资产详情页面添加历史执行命令列表页面 (#3568)
* feat: 资产详情页面添加历史执行命令列表页面

---------

Co-authored-by: wangruidong <940853815@qq.com>
2023-12-04 15:20:57 +08:00
fit2bot
813f17b52f perf: 优化工单处理提示消息页面 (#3567)
Co-authored-by: wangruidong <940853815@qq.com>
2023-11-30 11:40:04 +08:00
jiangweidong
0fc292b1ad perf: 支持slack通知和认证 (#3556) 2023-11-29 17:50:09 +08:00
fit2bot
f3f5bbe114 feat: 用户详情展示所有会话 (#3563)
Co-authored-by: wangruidong <940853815@qq.com>
2023-11-28 19:07:08 +08:00
feng626
8c732f00e1 Merge pull request #3566 from jumpserver/pr@dev@random
perf: 随机密码生成规则添加可排除字符选项
2023-11-28 14:48:41 +08:00
feng
f91b8c75df perf: 随机密码生成规则添加可排除字符选项 2023-11-28 14:45:58 +08:00
jiangweidong
e86b88bf05 feat: 支持深信服云平台和阿里云专有云 2023-11-27 11:12:14 +08:00
“huailei000”
bf3a2d748d perf: 限制上传logo图片的格式;优化打开文件速度 2023-11-24 18:59:46 +08:00
wangruidong
8a4b81e2e5 feat: 支持备案配置 2023-11-24 13:56:28 +08:00
wangruidong
34406ec32d fix: SFTP对象存储,禁用设为默认存储 2023-11-24 10:32:56 +08:00
feng626
3269a2a3ff Merge pull request #3554 from jumpserver/pr@dev@perf_ldap_user_websocket
perf: ldap接口请求换成websocket连接
2023-11-23 15:05:32 +08:00
feng626
5d50844753 Merge pull request #3555 from jumpserver/pr@dev@add_all_member
perf: 给用户组添加全部成员时,二次确认下
2023-11-22 19:06:04 +08:00
feng
97cc73a4fa perf: 给用户组添加全部成员时,二次确认下 2023-11-22 19:04:56 +08:00
wangruidong
574dae6236 perf: ldap接口请求换成websocket连接 2023-11-22 16:40:10 +08:00
“huailei000”
84c413f51a perf: 优化日志审计默认筛选截止时间多一天 2023-11-22 15:03:56 +08:00
“huailei000”
87a1cce4ca perf: 优化table列表溢出提示没有复制成功问题 2023-11-22 11:01:46 +08:00
吴小白
be89b5d6f2 Merge pull request #3547 from jumpserver/pr@dev@fix_version
fix: 修正 actions version 获取错误
2023-11-17 09:42:52 +08:00
吴小白
200c727426 fix: 修正 actions version 获取错误 2023-11-17 08:20:27 +08:00
wangruidong
d563f66ba1 perf: 修改翻译 2023-11-16 16:21:58 +08:00
feng626
4592eeddd3 Merge pull request #3544 from jumpserver/pr@dev@user_session
perf: 在线会话添加活跃状态过滤
2023-11-16 14:41:50 +08:00
feng
d73a07dff2 perf: 在线会话添加活跃状态过滤 2023-11-16 14:40:16 +08:00
“huailei000”
e8857bf150 perf: ldap导入用户不显示操作栏 2023-11-16 10:48:15 +08:00
wangruidong
0abe33053f perf: 修改翻译 2023-11-15 19:33:51 +08:00
“huailei000”
dc9161c6a7 perf:优化el-data-table组件分页多选记录不准确问题 2023-11-15 19:03:56 +08:00
老广
d588be696b Merge pull request #3540 from jumpserver/pr@dev@perf_winrm_private
perf: 修改 winrm 用户不能连接
2023-11-15 15:40:03 +08:00
ibuler
4b2c806f28 perf: 修改 winrm 用户不能连接 2023-11-15 15:39:15 +08:00
老广
e28b026ead Merge pull request #3539 from jumpserver/pr@dev@fix_select_options_error
fix: 对象存储下拉无法自动加载
2023-11-15 14:58:55 +08:00
wangruidong
c7414e0199 fix: 对象存储下拉无法自动加载 2023-11-15 14:51:38 +08:00
“huailei000”
5a478ebaba perf: 优化用户详情字段不显示问题 2023-11-15 12:17:40 +08:00
老广
08577f0ae5 Merge pull request #3536 from jumpserver/pr@dev@perf_ticket_item_error
perf: 优化工单详情页面渲染卡顿问题
2023-11-15 11:43:16 +08:00
“huailei000”
38527c6a41 perf: 优化工单详情页面渲染卡顿问题 2023-11-15 11:41:23 +08:00
“huailei000”
01c5b7c4a8 perf: 优化登录复核页面卡顿不显示问题 2023-11-15 10:07:01 +08:00
wangruidong
b0b3e0d1c9 fix: 更新组件批量更新去掉sftp选项 2023-11-14 19:25:44 +08:00
jiangweidong
5bc273d057 fix: 云同步任务详情界面删除无用的按钮 2023-11-14 19:23:27 +08:00
wangruidong
e128576763 fix: 作业日志筛选用户出错 2023-11-14 19:22:58 +08:00
“huailei000”
58f4dca599 perf: 优化 TagInput 组件失去焦点后没有自动填充值问题 2023-11-14 17:29:21 +08:00
老广
a6dd7f23c7 Merge pull request #3530 from jumpserver/pr@dev@fix_user_confirm_dialog
perf: 优化用户确认窗口
2023-11-14 14:23:22 +08:00
ibuler
a267d46464 perf: 优化用户确认窗口 2023-11-14 14:19:33 +08:00
“huailei000”
8c829ee498 perf: 优化markdown组件判断 2023-11-14 14:02:49 +08:00
ibuler
bcfa95de06 perf: 修改用户确认 2023-11-14 13:44:54 +08:00
“huailei000”
56745ae944 perf: 优化个人信息详情字段信息显示 2023-11-14 11:35:04 +08:00
wangruidong
5a664f8c2c fix: 账号备份详情页显示sftp服务器信息 2023-11-13 17:06:18 +08:00
ibuler
1fd29e13f8 perf: 修改 reload 2023-11-13 14:55:27 +08:00
ibuler
af863dae75 perf: 修改 table reload 2023-11-13 14:44:38 +08:00
“huailei000”
b1254d2b87 perf: 优化markdown组件样式 2023-11-10 18:25:58 +08:00
“huailei000”
d350cadd4c perf: 优化资产账号模版反复勾选同一个账号会出现无法选中的问题 2023-11-10 16:10:31 +08:00
“huailei000”
cfe9ebd747 perf: 优化创建账号-指定账号组件重复选择问题;优化创建工单-制定账号重复选择问题 2023-11-10 11:16:56 +08:00
“huailei000”
03177d4ce9 perf: 调整公告背景颜色 2023-11-09 19:22:38 +08:00
ibuler
a55b0da22b perf: 优化用户确认 2023-11-09 18:48:42 +08:00
feng626
1b0bdf25ae Merge pull request #3514 from jumpserver/pr@dev@online_session_active
perf: 在线用户根据websocket添加用户是否活跃状态
2023-11-09 18:15:08 +08:00
“huailei000”
c746cdc639 perf: 平台列表不显示更多操作 2023-11-09 18:08:29 +08:00
“huailei000”
3cf6b6f639 perf: 优化保存快捷命令时,命令不能为空 2023-11-09 18:08:02 +08:00
feng
a1bf8f9ab7 perf: 在线用户根据websocket添加用户是否活跃状态 2023-11-08 16:51:16 +08:00
“huailei000”
5449d74d53 perf: 优化select2组件远程搜索结果为空时是否开启远程搜索状态没有动态更新问题;创建工单搜索资产时不显示问题 2023-11-08 10:21:15 +08:00
jiangweidong
dc401f80b9 fix: 解决更新云同步任务时,优先级无法更新问题 2023-11-07 17:18:45 +08:00
wangruidong
379cd2386a perf: 账号备份增加sftp方式 2023-11-07 15:37:04 +08:00
wangruidong
4e7bdb9c69 perf: 对象存储增加sftp 2023-11-07 15:37:04 +08:00
feng626
41449fb538 Merge pull request #3485 from jumpserver/pr@dev@gather_account
feat: 账号收集添加资产账号信息变化通知
2023-11-07 13:00:45 +08:00
feng626
a75488217c Merge pull request #3495 from jumpserver/pr@dev@su_from
fix: 账号 切换自 翻译修复
2023-11-07 11:09:18 +08:00
feng
8e32792696 fix: 账号 切换自 翻译修复 2023-11-07 11:08:28 +08:00
feng626
b47caf0287 Merge pull request #3493 from jumpserver/pr@dev@account_change_push
fix: 改密 推送 详情里执行任务的权限不对
2023-11-06 18:05:39 +08:00
feng
715ae856f0 fix: 改密 推送 详情里执行任务的权限不对 2023-11-06 18:01:39 +08:00
“huailei000”
19ae27e6c2 perf: ztree父节点是选中状态,点击展开后子节点默认显示选中状态 2023-11-06 16:22:11 +08:00
halo
2132bacff5 feat: 工作台支持配置显示系统工具 2023-11-03 17:34:14 +08:00
老广
e57c5a20d0 Merge pull request #3487 from jumpserver/pr@dev@perf_add_ip_group_access
perf: 更新字段修改
2023-11-02 15:39:48 +08:00
老广
3d35f0aafe Merge pull request #3488 from jumpserver/pr@dev@perf_tag_input
perf: 优化 tab input
2023-11-02 15:38:52 +08:00
ibuler
68ac03db9e perf: 优化 tab input 2023-11-02 15:33:30 +08:00
wangruidong
7b5471a451 perf: 更新字段修改 2023-11-02 15:16:58 +08:00
ibuler
7f052ac85e perf: 优化 tag input 2023-11-02 11:07:20 +08:00
feng
64e75eb9ff feat: 账号收集添加资产账号信息变化通知 2023-11-02 10:50:18 +08:00
ibuler
8e75e5d5e3 perf: 优化 json field m2m 2023-11-02 10:36:00 +08:00
“huailei000”
1810e6833c perf: 公告支持markdown预览 2023-11-01 01:19:09 -05:00
wangruidong
8c7c012785 perf: 添加访问IP控制 2023-10-31 02:45:03 -05:00
feng626
378d82518a Merge pull request #3479 from jumpserver/pr@dev@change_secret_records
feat: 改密记录 推送记录可单独执行
2023-10-31 14:10:53 +08:00
wangruidong
728b04c8e3 perf: 修改语言位置 2023-10-30 21:54:40 -05:00
老广
b8611f095a Merge pull request #3478 from jumpserver/pr@dev@feat_apple_host_support_same_account
feat: 发布机支持使用同名账号连接
2023-10-31 10:19:30 +08:00
feng
f49a1184e2 feat: 改密记录 推送记录可单独执行 2023-10-30 18:42:14 +08:00
dependabot[bot]
77a4441018 build(deps): bump browserify-sign from 4.2.1 to 4.2.2
Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.2.
- [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: browserify-sign
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 14:30:10 +08:00
ibuler
18f1f0de79 feat: 发布机支持使用同名账号连接 2023-10-30 11:37:22 +08:00
dependabot[bot]
d252c7dd08 build(deps): bump @babel/traverse from 7.20.1 to 7.23.2
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.20.1 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 10:38:38 +08:00
dependabot[bot]
e5547f8a4c build(deps): bump crypto-js from 4.1.1 to 4.2.0
Bumps [crypto-js](https://github.com/brix/crypto-js) from 4.1.1 to 4.2.0.
- [Commits](https://github.com/brix/crypto-js/compare/4.1.1...4.2.0)

---
updated-dependencies:
- dependency-name: crypto-js
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 10:37:50 +08:00
jiangweidong
63d6578991 fix: 云账号详情页面更新报错 2023-10-30 10:30:12 +08:00
ibuler
da00ae84a8 perf: 资产授权添加协议 2023-10-30 10:14:01 +08:00
ibuler
74a905ee85 perf: 资产授权添加协议 2023-10-30 10:14:01 +08:00
“huailei000”
a03e985df3 perf: table tooltip 修改鼠标移上图标显示 2023-10-25 16:53:58 +08:00
吴小白
2d6005a4e0 perf: 优化构建 2023-10-25 16:38:41 +08:00
“huailei000”
c4ca28d2d9 perf: 优化table组件内容溢出省略时,鼠标可以移入tooltip 2023-10-25 16:37:59 +08:00
wangruidong
3934c17f52 perf: 增加语言切换功能 2023-10-25 03:03:17 -05:00
“huailei000”
51717f8583 perf: 优化创建api key后关闭弹窗列表不刷新问题 2023-10-25 10:47:17 +08:00
“huailei000”
67e99702c1 perf: 远程应用名称不能包含() 2023-10-24 19:30:50 +08:00
feng626
27ce5a3785 Merge pull request #3462 from jumpserver/pr@dev@account_change_secret
fix: 修改账号改密执行权限
2023-10-24 10:51:35 +08:00
feng
49122bb213 fix: 修改账号改密执行权限 2023-10-24 10:49:41 +08:00
halo
263c4d3f89 fix: 修复权限树自动选择的问题 2023-10-23 04:29:49 -05:00
wangruidong
2ed203dc32 perf: 添加作业中心执行历史配置字段 2023-10-23 04:23:15 -05:00
“huailei000”
742a06ea2d perf: 优化LDAP用户列表导入全部用户失败后没有提示信息问题 2023-10-20 16:15:20 +08:00
“huailei000”
1ad4e2c62e perf: 调整账号列表页面默认激活的tab 2023-10-19 19:15:24 +08:00
jiangweidong
7e29a3e836 fix: 新创建的云同步任务策略为空的问题 2023-10-19 03:57:31 -05:00
“huailei000”
3a66e8323c perf:优化折线图显示不准确问题 2023-10-19 14:38:03 +08:00
feng626
4852e3d26a Merge pull request #3446 from jumpserver/pr@dev@profile
perf: 修改profile icon
2023-10-19 10:44:23 +08:00
feng
80509dc15f perf: 修改profile icon 2023-10-19 10:43:32 +08:00
“huailei000”
601bd4740c perf: 优化账号推送,推送参数不准确问题 2023-10-18 05:53:42 -05:00
老广
62be5885db Merge pull request #3444 from jumpserver/pr@dev@perf_date_expired
perf: 优化日期,去掉 nwaring
2023-10-18 05:53:02 -05:00
ibuler
62e49567cc perf: 优化日期,去掉 nwaring 2023-10-18 18:51:46 +08:00
feng626
f2eff11d66 Merge pull request #3443 from jumpserver/pr@dev@command_filter_acl
fix: 命令过滤,点击命令组跳转到了规则基本信息,而不是命令组那里
2023-10-18 18:46:28 +08:00
feng
ae61586f95 fix: 命令过滤,点击命令组跳转到了规则基本信息,而不是命令组那里 2023-10-18 18:43:46 +08:00
“huailei000”
a08fbc3b77 perf: 优化table组件在有查询条件的情况下列表会重复请求接口的问题 2023-10-18 04:31:22 -05:00
ibuler
53d130f1cf perf: 优化个人设置 2023-10-18 04:30:39 -05:00
ibuler
c05992ce50 perf: 修改许可证 2023-10-18 04:30:18 -05:00
feng626
52522b7095 Merge pull request #3441 from jumpserver/pr@dev@session_ticket
perf: 资产登录工单 去掉session信息
2023-10-18 17:07:34 +08:00
feng
af3f6c5900 perf: 资产登录工单 去掉session信息 2023-10-18 17:06:46 +08:00
ibuler
7b15ca4955 perf: 优化角色创建时权限没有提示 2023-10-17 02:23:35 -05:00
“huailei000”
031016330a perf: 优化查看账号密码控制台报错问题 2023-10-16 15:03:00 +08:00
老广
e274640d2e Merge pull request #3433 from jumpserver/pr@dev@refactor_confirm
perf: 优化确认操作
2023-10-13 17:27:27 +08:00
ibuler
bd3352424c perf: 优化用户确认 2023-10-13 17:24:45 +08:00
ibuler
f8ec2bce0c merge: with dev 2023-10-13 17:06:01 +08:00
ibuler
81f34f0154 perf: remove debug 2023-10-13 17:01:38 +08:00
ibuler
759e205bfb perf: 优化确认操作 2023-10-13 16:55:21 +08:00
halo
fc5029e88a feat: 增加DB2图标 2023-10-13 02:59:35 -05:00
Bai
6fa8052878 fix: 修复连接令牌过期按钮被禁用的问题 2023-10-13 01:36:27 -05:00
feng626
0dc62712d4 Merge pull request #3431 from jumpserver/pr@dev@ticket
perf: 工单配置社区版隐藏
2023-10-13 11:18:43 +08:00
feng
23b08590cf perf: 工单配置社区版隐藏 2023-10-13 11:05:23 +08:00
feng626
8d8ab483e1 Merge pull request #3430 from jumpserver/pr@dev@platform
perf: 资产批量更新平台字段,根据平台约束协议自动生效
2023-10-12 18:11:37 +08:00
feng
fb757686e3 perf: 资产批量更新平台字段,根据平台约束协议自动生效 2023-10-12 16:56:43 +08:00
“huailei000”
6a8161dcaf perf:创建api key,弹窗关闭后刷新列表 2023-10-12 15:51:09 +08:00
ibuler
ae2391f07f perf: 优化数据库必填 2023-10-12 14:50:30 +08:00
ibuler
50a9ce35ad perf: 重构用户确认 2023-10-12 13:57:41 +08:00
“huailei000”
2d2a4be3a2 perf: 优化账号收集、账号改密、账号备份多次点击执行次数不能正常跳转到执行列表问题 2023-10-11 21:58:25 -05:00
Bai
e055429ff2 perf: 优化用户详情 phone 显示 2023-10-11 04:48:54 -05:00
“huailei000”
8727bac560 perf: 登录资产复核增加跳转会话入口 2023-10-11 04:26:04 -05:00
ibuler
fd018dc5ac perf: 仅本地用户允许使用 passkey 2023-10-11 04:24:38 -05:00
“huailei000”
4c3673aef2 perf: 优化账号模版同步更新账号信息 2023-10-11 04:23:29 -05:00
feng626
4eb61373e0 Merge pull request #3423 from jumpserver/pr@dev@profile
perf: 左上角profile accesskey 改成个人设置
2023-10-11 14:21:34 +08:00
feng
8e8dd38e2e perf: 左上角profile accesskey 改成个人设置 2023-10-11 14:21:00 +08:00
jiangweidong
f8b7720e2c feat: 支持自定义短信认证(文件) 2023-10-10 22:19:57 -05:00
ibuler
50af6fe017 perf: 优化确认的 dialog 2023-10-10 18:24:14 +08:00
feng626
8bc617c4a7 Merge pull request #3421 from jumpserver/pr@dev@user_notice
perf: 用户首次登录 条款和条件 提示优化
2023-10-10 18:23:47 +08:00
feng
f75d69601b perf: 用户首次登录 条款和条件 提示优化 2023-10-10 18:22:35 +08:00
Aaron3S
f54d819ec8 feat: 快捷命令增加设置执行目录 2023-10-10 07:49:57 +05:00
Eric
c50db4089c perf: 隐藏设置 terminal_theme_name 2023-10-10 07:42:12 +05:00
feng626
a6d7cc1215 Merge pull request #3416 from jumpserver/pr@dev@asset_notice
feat: 登录资产消息提示
2023-10-07 17:46:39 +08:00
feng
f6a2fcbbea feat: 登录资产消息提示 2023-10-07 17:44:27 +08:00
feng
071822e665 fix: 系统设置 邮件设置 不能设置后缀 2023-09-27 13:17:52 +05:00
“huailei000”
063dc9f8e1 perf: 优化资产授权详情、账号改密详情中已经添加了的资产没有给出标记还能重复选择的问题 2023-09-27 13:16:39 +05:00
“huailei000”
66e90f189c perf: 列表搜索框退格键可以删除搜索条件 2023-09-26 15:11:56 +08:00
feng626
bdd1a86568 Merge pull request #3410 from jumpserver/pr@dev@user_login_reminder
feat: 用户登录提醒
2023-09-25 16:26:10 +08:00
feng
01d0c9a0c2 feat: 用户登录提醒 2023-09-25 16:24:56 +08:00
“huailei000”
d42bd25371 perf: 修复平台列表导出模版错误问题 2023-09-21 16:18:29 +08:00
“huailei000”
2d07b10961 perf: 调整仪表盘翻译 2023-09-21 15:30:17 +08:00
ibuler
77fb9ef528 perf: 优化 passkey 报错 2023-09-21 12:23:50 +08:00
“huailei000”
b5950b795b fix: 修复组织角色添加用户报错问题 2023-09-20 18:42:08 +08:00
fit2bot
097817e02c perf: 修改模版平台参数无法设置 (#3402)
* perf: 修改模版平台参数无法设置

* perf: remove debug

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-09-20 14:09:31 +08:00
“huailei000”
cf7a77ce2e perf: 优化账号推送参数设置弹窗不能打开问题 2023-09-20 11:32:48 +08:00
feng626
e72850bff8 Merge pull request #3400 from jumpserver/pr@dev@user_setting
perf: 用户个人设置加上密钥是否设置
2023-09-19 16:30:31 +08:00
feng
4669cbfc83 perf: 用户个人设置加上密钥是否设置 2023-09-19 16:29:58 +08:00
Bai
cf8ad2a581 perf: 优化 es host help_text 提示 # 不支持 # 字符 2023-09-19 15:31:38 +08:00
“huailei000”
b776d0157b perf: 优化工单详情信息显示 2023-09-19 15:28:39 +08:00
“huailei000”
9aaee957af perf: 资产授权列表-指定账号字段不计算到账号个数里 2023-09-19 14:24:35 +08:00
老广
0bc681ea08 Merge pull request #3396 from jumpserver/pr@dev@perf_account_template_auto_push
perf: 修复自动推送按钮在不是 password 和 ssh_key 时禁用
2023-09-19 11:30:04 +08:00
ibuler
ea89ce1796 perf: 修复自动推送按钮在不是 password 和 ssh_key 时禁用 2023-09-19 11:17:22 +08:00
老广
e8a37a9c5b Merge pull request #3395 from jumpserver/pr@dev@perf_change_accont_template_password_rules
perf: 修改密码规则
2023-09-19 11:00:42 +08:00
ibuler
1350573ee2 perf: 修改翻译 2023-09-19 10:58:47 +08:00
ibuler
ba83bb14f3 perf: 修改密码规则 2023-09-18 19:33:47 +08:00
“huailei000”
7ae5adf49c perf: 在资产列表的资产树选择完节点后,创建资产能自动选择节点 2023-09-18 14:31:26 +08:00
ibuler
85a1385b4b perf: 优化创建用户默认角色 2023-09-18 14:02:03 +08:00
feng626
4da8eb12dc Merge pull request #3392 from jumpserver/pr@dev@push_now
perf: windows 账号 密钥类型为ssh 隐藏自动推送
2023-09-17 18:26:43 +08:00
feng
bf1be51c39 perf: windows 账号 密钥类型为ssh 隐藏自动推送 2023-09-17 18:25:33 +08:00
feng
3bbe9eccc1 perf: 修改usersession api 2023-09-15 17:25:41 +08:00
Bai
65e84b9b41 fix: 修改资产授权默认过期时间为 70 years 2023-09-15 14:27:40 +08:00
ibuler
0619900fd7 perf: 修改短信 sms 2023-09-15 14:26:49 +08:00
feng626
9ecc759dac Merge pull request #3390 from jumpserver/pr@dev@user_session
perf: 在线用户列表默认显示 认证方式
2023-09-15 10:50:24 +08:00
feng
946787e876 perf: 在线用户列表默认显示 认证方式 2023-09-15 10:49:28 +08:00
feng
54c30fcc0d feat: 用户在线session 控制 2023-09-14 16:25:51 +08:00
Aaron3S
83d730cf0f feat: 支持 ansible raw 模块 2023-09-13 19:30:10 +08:00
“huailei000”
7f7173432d perf: 优化crontab,周日的值修改为0 2023-09-13 19:26:56 +08:00
Bai
c1e5f1c1ce fix: 修复角色详情用户Name显示问题 2023-09-12 15:53:35 +08:00
fit2bot
ca3a99a5cf perf: 修改 passkey (#3382)
* perf: 修改 passkey

* perf: 完成 passkey

* perf: 修改 passkey icon

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-09-11 18:34:44 +08:00
feng626
95831c3ff7 Merge pull request #3383 from jumpserver/pr@dev@tranlate
perf: 翻译
2023-09-11 15:31:49 +08:00
feng
b5abf3e6ad perf: 翻译 2023-09-11 15:31:05 +08:00
feng626
9e4f519fc5 Merge pull request #3381 from jumpserver/pr@dev@usersetting
feat: 个人设置
2023-09-11 14:37:52 +08:00
feng
b712ec4183 feat: 个人设置 2023-09-10 15:44:05 +08:00
jiangweidong
35936ad01e feat: 系统工具支持traceroute (#3379) 2023-09-06 10:31:21 +08:00
ibuler
de5aed0f58 perf: 修改 protocol 说明 2023-09-04 13:50:26 +08:00
老广
5cb8cec835 Merge pull request #3376 from jumpserver/pr@dev@perf_session_list
perf: 优化会话列表
2023-08-31 17:11:50 +08:00
feng626
d66b2a8a87 Merge pull request #3362 from jumpserver/pr@dev@unlockip
feat: 可查看全局被限制的ip 并且可以解锁
2023-08-30 17:31:37 +08:00
feng
d06637afd4 feat: 可查看全局被限制的ip 并且可以解锁 2023-08-30 17:30:53 +08:00
“huailei000”
b27d88859f perf: 优化系统设置-邮件设置提交后页面空白问题 2023-08-30 16:40:10 +08:00
feng626
61580e096b Merge pull request #3377 from jumpserver/pr@dev@mysql_ssl
feat: mysql 证书
2023-08-30 15:16:05 +08:00
feng
da5d67ccbe feat: mysql 证书 2023-08-30 15:14:01 +08:00
ibuler
85a88616b0 perf: 优化会话列表 2023-08-30 14:34:16 +08:00
老广
3d3dfcafd3 Merge pull request #3374 from jumpserver/pr@dev@perf_route_children
perf: 修改路由 children active menu
2023-08-29 19:20:17 +08:00
ibuler
d51e025f04 perf: 修改路由 children active menu 2023-08-29 19:17:57 +08:00
老广
e78d201bd5 Merge pull request #3373 from jumpserver/pr@dev@feat_settings_tool_ping_telnet_multi
feat: telnet、ping支持批量测试,增加IP格式提示
2023-08-29 19:06:20 +08:00
老广
e1836eb1c6 Merge pull request #3372 from jumpserver/pr@dev@perf_change_some_helptext
perf: 修改云同步说明文案
2023-08-29 18:23:37 +08:00
ibuler
085447255b perf: 修改一些提示文案 2023-08-29 18:22:39 +08:00
jiangweidong
e3da28221e feat: telnet、ping支持批量测试,增加IP格式提示 2023-08-29 17:50:26 +08:00
ibuler
b276bbad34 perf: 修改云同步说明文案 2023-08-29 17:39:53 +08:00
老广
f534b292ce Merge pull request #3371 from jumpserver/pr@dev@perf_cloud_sync
perf: 优化同步
2023-08-29 16:25:13 +08:00
ibuler
a02e5363e0 perf: 修改云同步 2023-08-29 16:18:39 +08:00
ibuler
a0dbb3d7b0 perf: 优化同步 2023-08-29 16:14:35 +08:00
老广
b6e955f4b7 Merge pull request #3367 from jumpserver/pr@dev@perf_cloud_sync_None_err
fix: 策略删除动作和规则时提示404
2023-08-29 11:26:38 +08:00
老广
902662681c Merge pull request #3370 from jumpserver/pr@dev@perf_applet_host_tip
perf: 修改发布机的说明
2023-08-29 11:25:07 +08:00
ibuler
0196d42ffc perf: 修改发布机的说明 2023-08-29 11:24:09 +08:00
“huailei000”
a0a7590769 perf: 优化资产授权用户、资产选择之后下拉菜单选项还能继续选择问题 2023-08-29 10:23:08 +08:00
老广
b18c045a1b Merge pull request #3369 from jumpserver/pr@dev@perf_template
perf: 修改账号模版
2023-08-28 15:44:10 +08:00
ibuler
e0411010d1 perf: 修改账号模版 2023-08-28 15:19:20 +08:00
jiangweidong
757c48ebc8 fix: 策略删除时提示404 2023-08-25 14:02:23 +08:00
老广
38ea835df5 Merge pull request #3361 from jumpserver/pr@dev@perf_change_icon
perf: 修改一些 icon
2023-08-25 10:26:09 +08:00
老广
869b94d365 Merge pull request #3363 from jumpserver/pr@dev@perf_announcement_markdown
perf: 公告支持markdown语法
2023-08-25 10:25:42 +08:00
老广
25a8f43345 Merge pull request #3364 from jumpserver/pr@dev@fix_dynamic_input_glint_quit_problem
fix: 解决自动化动态列表组件添加内容会频闪退闪的问题
2023-08-25 10:25:09 +08:00
jiangweidong
7f2cb97bd7 perf: 去掉多余的内容 2023-08-25 10:06:28 +08:00
jiangweidong
580c005bc6 fix: 解决自动化动态列表组件添加内容会频闪闪退的问题 2023-08-25 10:02:51 +08:00
“huailei000”
e22d46bb38 perf: 公告支持markdown语法 2023-08-23 19:16:36 +08:00
ibuler
8d7dd81ebd perf: 修改一些 icon 2023-08-21 15:13:00 +08:00
老广
d5aa439fee Merge pull request #3359 from jumpserver/pr@dev@add_tips
perf: 添加 DOMAINS 不设置 报错的提示
2023-08-18 15:02:55 +08:00
ibuler
095492e5a3 perf: 添加 DOMAINS 不设置 报错的提示 2023-08-18 07:02:09 +00:00
feng
a4e2cadedd perf: vault 为企业版 2023-08-17 16:18:25 +05:00
feng626
29b35ff2a9 Merge pull request #3354 from jumpserver/pr@dev@vault
perf: 优化功能设置顺序
2023-08-17 16:21:55 +08:00
feng
4b137f855e perf: 优化功能设置顺序 2023-08-17 16:18:58 +08:00
feng626
d836b46966 Merge pull request #3353 from jumpserver/pr@dev@label
fix: 标签跳转问题
2023-08-17 15:13:30 +08:00
feng
f9d7d68c77 fix: 标签跳转问题 2023-08-17 15:12:43 +08:00
Eric
cafc5879a0 perf: 发布机可支持添加网域 2023-08-17 14:27:09 +08:00
feng626
2ec88c3591 Merge pull request #3351 from jumpserver/pr@dev@vault
perf:  优化 vault 配置
2023-08-17 12:12:46 +08:00
feng
c37212a5ce perf: 优化 vault 配置 2023-08-17 11:42:55 +08:00
“huailei000”
f9c334b003 fix: 修复当列表有额外查询参数时,导致导出选项判断不准确问题 2023-08-16 17:06:37 +08:00
老广
d43d4137d7 Merge pull request #3347 from jumpserver/pr@dev@fix_accountadd
fix: 修复账号列表添加账号时会明文显示的问题
2023-08-16 10:51:07 +08:00
Bai
614565ba9c fix: 修复账号列表添加账号时会明文显示的问题 2023-08-16 10:44:46 +08:00
老广
575015616f Merge pull request #3337 from jumpserver/pr@dev@revert_build
revert: 还原构建
2023-08-15 18:39:13 +08:00
老广
26fac22b82 Merge pull request #3346 from jumpserver/pr@dev@perf_setting
perf: 再次修改设置
2023-08-15 17:02:25 +08:00
ibuler
40b7c62099 merge: with dev 2023-08-15 17:01:41 +08:00
ibuler
017486e961 perf: 再次修改设置 2023-08-15 16:59:28 +08:00
“huailei000”
7bb4567345 perf: 优化系统设置-基本设置控制台报错问题 2023-08-15 14:38:36 +08:00
老广
76c78df007 Merge pull request #3344 from jumpserver/pr@dev@perf_setting
perf: 修改系统设置布局
2023-08-15 13:53:15 +08:00
ibuler
ff6ac297b9 perf: 整理完成 2023-08-15 13:49:08 +08:00
ibuler
6b953506e4 perf: 修改系统设置布局 2023-08-14 19:41:47 +08:00
feng626
7ec130f033 Merge pull request #3343 from jumpserver/pr@dev@automation
perf: automation 任务详情添加id
2023-08-14 18:50:42 +08:00
feng
2f9e00de2e perf: automation 任务详情添加id 2023-08-14 18:49:27 +08:00
“huailei000”
e479dbfcb5 perf: 优化命令存储-主机helptext 2023-08-14 16:54:20 +08:00
feng626
1e5b6f970d Merge pull request #3340 from jumpserver/pr@dev@perm
perf: 角色权限选择工作台时自动关联connectiontoken权限
2023-08-14 16:37:28 +08:00
feng
e7222fb63c perf: 角色权限选择工作台时自动关联connectiontoken权限 2023-08-14 16:29:18 +08:00
feng626
f9617a92a8 Merge pull request #3339 from jumpserver/pr@dev@applet_host
perf: applethost 搜索框优化
2023-08-14 14:24:56 +08:00
feng
38e1b070cf perf: applethost 搜索框优化 2023-08-14 14:23:58 +08:00
feng626
f75d97305f Merge pull request #3338 from jumpserver/pr@dev@applethost
perf: 远程应用批量部署多选优化
2023-08-14 11:25:54 +08:00
feng
7df0cc78b1 perf: 远程应用批量部署多选优化 2023-08-14 11:24:24 +08:00
吴小白
a8a90930b9 revert: 还原构建 2023-08-14 11:23:18 +08:00
Eric
69dbf2f5da perf: 优化会话暂停的组件判断 2023-08-11 13:45:55 +05:00
feng626
fc8339d659 Merge pull request #3334 from jumpserver/pr@dev@vault
perf: 优化vault配置界面
2023-08-11 16:01:41 +08:00
feng
eada8d319d perf: 优化vault配置界面 2023-08-11 15:55:46 +08:00
“huailei000”
11940428a0 perf: 优化组件监控 2023-08-11 14:38:28 +08:00
老广
af2544e24b Merge pull request #3331 from jumpserver/pr@dev@perf_change_edtion
perf: 修改 applet 翻译
2023-08-10 17:32:36 +08:00
ibuler
4546952388 perf: 修改 applet 翻译 2023-08-10 17:30:50 +08:00
老广
a0c849f29d Merge pull request #3330 from jumpserver/pr@dev@applet_add_enterprise
perf: applet 添加 entperpise 标记
2023-08-10 15:32:31 +08:00
ibuler
fb9cd1614a perf: applet 添加 entperpise 标记 2023-08-10 14:40:46 +08:00
“huailei000”
c1543183a2 perf: 优化组件监控组件 2023-08-10 09:09:13 +05:00
Aaron3S
03dc3e993c feat: 增加批量sql支持 2023-08-09 19:43:46 +08:00
Aaron3S
8719ffee8e feat: 增加批量sql支持 2023-08-09 19:43:46 +08:00
Eric
cc60f2c1f5 perf: 优化代码 2023-08-09 19:43:25 +08:00
Eric
f042692dbf perf: 工单会话暂停控制 2023-08-09 19:43:25 +08:00
Eric
3d8dc619ad perf: 支持其他组件的暂停会话 2023-08-09 19:43:25 +08:00
Bai
b223c73a47 perf: 优化账号列表显示其他字段 2023-08-09 17:05:48 +08:00
Eric
53e313517d feat: 支持最大会话连接时长 2023-08-09 10:38:22 +08:00
老广
56bea8eaf4 Merge pull request #3324 from jumpserver/pr@dev@perf_ztree_chk_css
perf: 优化 ztree chk 样式
2023-08-08 17:13:09 +08:00
老广
992025e618 Merge pull request #3323 from jumpserver/pr@dev@perf_dashboard_data
perf: 优化首页 rank 的宽度
2023-08-08 17:12:48 +08:00
ibuler
205d301578 perf: 优化 ztree chk 样式 2023-08-08 17:08:49 +08:00
ibuler
4daccc9df3 perf: 优化首页 rank 的宽度 2023-08-08 16:37:05 +08:00
老广
ac802fff59 Merge pull request #3319 from jumpserver/pr@dev@perf_ticket_session
perf: 优化工单方式打开会话监控
2023-08-08 16:18:16 +08:00
老广
a6b0da60a3 Merge pull request #3320 from jumpserver/pr@dev@fix_msg_subscribe_for_xss
fix: 修复系统设置 > 消息订阅 > 修改订阅人 因为用户名导致的 xss
2023-08-08 16:17:49 +08:00
ibuler
45c860797a fix: 修复系统设置 > 消息订阅 > 修改订阅人 因为用户名导致的 xss 2023-08-08 11:07:34 +08:00
Eric
e636aa24c8 perf: 优化工单方式打开会话监控 2023-08-08 10:37:24 +08:00
老广
86b37eeeba Merge pull request #3318 from jumpserver/pr@dev@perf_org_delete
perf: System 组织不允许删除
2023-08-08 10:28:16 +08:00
ibuler
61cf9e7f14 perf: System 组织不允许删除 2023-08-08 10:27:26 +08:00
fit2bot
344e49e7ec perf: 同名账号定义一些策略 (#3311)
* perf: 同名账号定义一些策略

* perf: 修改虚拟账号

* perf: 修改更新后的 route

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-08-08 10:16:52 +08:00
老广
3ebdacafd0 Merge pull request #3316 from jumpserver/pr@dev@fix_strategy_cannot_export
fix: 云同步策略不支持导出
2023-08-08 09:57:06 +08:00
“huailei000”
e1ae467823 feat: 创建资产-选择模版添加搜索功能 2023-08-07 18:21:58 +08:00
jiangweidong
65c1ab450b fix: 云同步策略不支持导出 2023-08-07 17:55:54 +08:00
feng626
cbe3efdb18 Merge pull request #3309 from jumpserver/pr@dev@account_backup
feat: 账号备份密钥拆分
2023-08-07 15:50:36 +08:00
feng
e5eaa5bcfa feat: 账号备份密钥拆分 2023-08-07 15:47:25 +08:00
fit2bot
df687c0c06 perf: TagInput 组件增加替换显示密码功能;命令存储-主机不明文显示密码 (#3301)
Co-authored-by: “huailei000” <2280131253@qq.com>
Co-authored-by: huailei <31801270+huailei000@users.noreply.github.com>
2023-08-07 15:03:05 +08:00
feng626
1cc00517f5 Merge pull request #3314 from jumpserver/pr@dev@check_unused_users
feat: 检测不常用账号
2023-08-07 14:45:03 +08:00
jiangweidong
f3a6d6c02b perf: 优化批量审批翻译 2023-08-07 14:19:56 +08:00
feng
7bf33a9011 feat: 检测不常用账号 2023-08-07 11:35:06 +08:00
ibuler
7948a59b80 perf: 去掉 telnet 的全员设置 2023-08-07 10:37:33 +08:00
jiangweidong
af9f715357 feat: 云同步增加同步策略 (#3264)
* feat: 云同步逻辑更新

* feat: 云同步增加同步策略

* perf: 优化

* perf: 优化提交逻辑,平台和网域只允许设置一次

* perf: 策略抽离,有列表、详情、同步任务可便捷添加策略

* fix: 修改组件层级关系

* perf: 去掉不需要的

* perf: 优化变量名称、策略添加优先级
2023-08-07 10:33:04 +08:00
吴小白
202f8a357c perf: 更新 node 16.17.1 2023-08-07 10:20:13 +08:00
jiangweidong
3e75c781b3 feat: 系统工具改为异步,增加tcpdump工具 2023-08-07 10:19:48 +08:00
吴小白
3c3ed27eb2 Merge pull request #3310 from jumpserver/pr@dev@fix_build
fix: 修正构建错误
2023-08-04 17:59:54 +08:00
吴小白
fd0e23e35f perf: 更新 node 16.5 2023-08-04 17:55:04 +08:00
吴小白
c09a2df142 fix: 修正构建错误 2023-08-04 17:35:50 +08:00
“huailei000”
36737a6f25 perf: 命令记录列表增加账号字段 2023-08-03 16:19:21 +08:00
feng626
e4af9ccc1e Merge pull request #3304 from jumpserver/pr@dev@task_search
perf: 任务添加显示项 过滤项
2023-08-02 17:51:43 +08:00
feng
3c256c6fdc perf: 任务添加显示项 过滤项 2023-08-02 17:49:47 +08:00
“huailei000”
1e36f59b23 perf: 最近会话连接资产时增加login_account参数 2023-08-02 16:48:35 +08:00
feng626
aec6ee8376 Merge pull request #3302 from jumpserver/pr@dev@applet_host_deployment
feat: 批量部署发布机
2023-08-01 17:42:28 +08:00
feng
526b049495 feat: 批量部署发布机 2023-08-01 17:38:31 +08:00
Eric
5bef5a59a9 perf: 完善工单 session 变化 2023-08-01 17:26:15 +08:00
Eric
1e371a4e32 perf: 优化 session 的状态 2023-08-01 17:26:15 +08:00
Eric
0f6fd0ed70 feat: 支持暂停会话操作 2023-08-01 17:26:15 +08:00
feng626
fc1aefbb54 Merge pull request #3251 from jumpserver/pr@dev@vault
feat: vault 添加系统配置
2023-07-31 17:57:41 +08:00
feng
7561f1224d perf: merge dev 2023-07-31 17:56:20 +08:00
老广
0932132add Merge pull request #3299 from jumpserver/pr@dev@refactor_path
perf: 修改一些组件路径,原来的太难找了
2023-07-31 14:50:21 +08:00
ibuler
8492882633 perf: 修改一些组件路径,原来的太难找了 2023-07-31 14:45:27 +08:00
老广
11698255f6 Merge pull request #3297 from jumpserver/pr@dev@perf_tmp_passwd_icon
perf: 修改临时密码的 icon
2023-07-31 10:53:48 +08:00
ibuler
53eee6c857 perf: 修改临时密码的 icon 2023-07-31 10:34:40 +08:00
老广
f2bc4d6f22 Merge pull request #3296 from jumpserver/pr@dev@perf_applet_host_account_create
perf: 修改隐藏
2023-07-28 16:16:54 +08:00
ibuler
e50b16b13b perf: 修改隐藏 2023-07-28 16:16:03 +08:00
老广
232c30cadb Merge pull request #3295 from jumpserver/pr@dev@perf_applet_host_account_create
perf: 修改应用发布机账号生成
2023-07-28 11:07:38 +08:00
jiangweidong
3142da16ae feat: 支持批量审批工单 (#3273) 2023-07-28 10:49:11 +08:00
ibuler
741f8b847e Merge branch 'dev' into pr@dev@perf_applet_host_account_create 2023-07-28 10:44:05 +08:00
ibuler
b6d00a1784 perf: 修改应用发布机账号生成 2023-07-28 10:42:54 +08:00
jiangweidong
2f122f7fbe feat: 系统工具增加服务器时间及nmap工具 (#3289) 2023-07-28 10:42:28 +08:00
feng626
c3c46b759e Merge pull request #3294 from jumpserver/pr@dev@ldap
perf: 优化ldap交互
2023-07-27 19:14:55 +08:00
feng
a1c4013a69 perf: 优化ldap交互 2023-07-27 19:12:20 +08:00
老广
8aa9690a61 Merge pull request #3293 from jumpserver/pr@dev@perf_same_ztree
perf: 统一 ztree css
2023-07-27 18:37:29 +08:00
ibuler
30c0100a0b perf: 统一 ztree css 2023-07-27 18:18:52 +08:00
fit2bot
134dd17f3f perf: 添加应用市场链接 (#3292)
* perf: 添加应用市场链接

* perf: 修改版本号

* perf: 修改高度

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-07-27 16:52:58 +08:00
feng626
505642baec Merge pull request #3291 from jumpserver/pr@dev@asset_perm_account
perf: 修改AccountFormatter 请求方法为post
2023-07-27 14:04:14 +08:00
feng
c08964ee34 perf: 修改AccountFormatter 请求方法为post 2023-07-27 14:03:14 +08:00
老广
9df443667c Merge pull request #3290 from jumpserver/pr@dev@perf_protocols
perf: 修改 protocols 显示
2023-07-26 18:39:51 +08:00
ibuler
8fd8e9c1d4 perf: 修改 protocols 显示 2023-07-26 18:33:34 +08:00
feng
aa3ab5e138 perf: 配置信息修改 2023-07-24 19:43:46 +08:00
“huailei000”
a7df8706e5 perf: 工作台概况会话添加连接方式 2023-07-24 19:20:24 +08:00
“huailei000”
c200781322 perf: 修改github配置 2023-07-21 14:59:04 +08:00
老广
75c7778a10 Merge pull request #3261 from jumpserver/dependabot/npm_and_yarn/semver-5.7.2
build(deps): bump semver from 5.7.1 to 5.7.2
2023-07-21 10:28:11 +08:00
老广
c30e919573 Merge pull request #3271 from jumpserver/dependabot/npm_and_yarn/word-wrap-1.2.4
build(deps): bump word-wrap from 1.2.3 to 1.2.4
2023-07-21 10:27:45 +08:00
老广
ffff648e6d Merge pull request #3284 from jumpserver/pr@dev@perf_account_default_show
perf: 优化账号,默认实现是否激活
2023-07-21 10:27:19 +08:00
ibuler
981e676fa2 perf: 优化账号,默认实现是否激活 2023-07-20 20:22:36 +08:00
ibuler
664855d4b0 perf: 优化从 url 中获取端口 2023-07-20 17:37:58 +08:00
老广
c79637095a Merge pull request #3281 from jumpserver/pr@dev@remove_debug_msg
perf: 去掉 debug msg
2023-07-20 16:42:25 +08:00
ibuler
2a96abdd4a perf: 去掉 debug msg 2023-07-20 16:25:11 +08:00
老广
9541b97b23 Merge pull request #3280 from jumpserver/pr@dev@perf_add_debug
perf: 修改 debug msg
2023-07-20 16:11:00 +08:00
ibuler
52518a9ff3 perf: 修改 debug msg 2023-07-20 16:08:11 +08:00
“huailei000”
24a1c11288 perf: 优化账号详情推送弹窗点击关闭图标下次点击不能正常打开问题 2023-07-20 15:58:37 +08:00
老广
313aebaf50 Merge pull request #3278 from jumpserver/pr@dev@perf_add_debug_msg
perf: 添加 setTimeout
2023-07-20 15:21:57 +08:00
ibuler
5c6373e689 perf: 添加 setTimeout 2023-07-20 15:20:41 +08:00
老广
09fe3ea107 Merge pull request #3277 from jumpserver/pr@dev@perf_add_debug_msg
perf: 添加 debug msg
2023-07-20 15:06:10 +08:00
ibuler
ccf081b608 perf: 添加 debug msg 2023-07-20 15:04:44 +08:00
Bai
80ce3293a1 fix: 优化导入组件导入数据时全部使用 patch 方法; 解决一些表格数据库不全时引来的问题; 2023-07-19 19:58:40 +08:00
“huailei000”
4ed282ff2b perf: 优化连续批量更新用户报错问题 2023-07-19 19:50:18 +08:00
老广
dd8957cb69 Merge pull request #3274 from jumpserver/pr@dev@perf_protocol_setting_reset
perf: 优化 nestfield 重置不会变更的问题
2023-07-19 19:42:24 +08:00
ibuler
36c687b854 perf: 精简写法 2023-07-19 19:30:51 +08:00
ibuler
e22ecb6fe8 perf: 优化 nestfield 重置不会变更的问题 2023-07-19 18:46:20 +08:00
ibuler
b77440284f perf: 优化 Platform 中自动化 select 的宽度 2023-07-19 08:38:03 +05:00
老广
93d866328c Merge pull request #3270 from jumpserver/pr@dev@perf_domain_platform
perf: 优化网关更新时协议显示
2023-07-19 10:18:33 +08:00
dependabot[bot]
42c7b278c5 build(deps): bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-18 21:21:13 +00:00
“huailei000”
14ba501f2b perf: 优化网关更新时协议显示 2023-07-18 19:57:31 +08:00
ibuler
f072546083 perf: 优化账号模版表单,在弹窗中新窗口打开 2023-07-18 18:12:54 +08:00
“huailei000”
8f9ebcdfa9 perf: 界面设置上传组件控制上传类型 2023-07-18 18:10:58 +08:00
老广
7b76917768 Merge pull request #3267 from jumpserver/pr@dev@perf_promise
perf: 修改 资产详情的 card 和 账号模版密文类型
2023-07-18 10:34:10 +08:00
ibuler
e4d4bc84b6 perf: 修改 资产详情的 card 和 账号模版密文类型 2023-07-18 10:24:03 +08:00
老广
62cf19e70e Merge pull request #3263 from jumpserver/pr@dev@perf_connection_action
perf: 优化一些 rbac 权限位,着重 connection token 的
2023-07-17 10:24:59 +08:00
老广
2cb36f89f0 Merge pull request #3265 from jumpserver/pr@dev@perf_can_unbind_from_other_source
perf: 用户在认证方式和用户来源一致时,无法解绑此类认证
2023-07-17 10:24:16 +08:00
老广
9946ad75ad Merge pull request #3266 from jumpserver/pr@dev@perf_promise
perf: 修改平台 protocols 的下拉选择,可以更改
2023-07-17 10:21:16 +08:00
ibuler
abd8919225 perf: 修改平台 protocols 的下拉选择,可以更改 2023-07-17 10:11:54 +08:00
jiangweidong
6e5e760689 perf: 用户在认证方式和用户来源一致时,无法解绑此类认证 2023-07-14 18:21:45 +08:00
ibuler
1235895973 perf: 优化一些 rbac 权限位,着重 connection token 的 2023-07-13 16:01:03 +08:00
“huailei000”
59f9025e42 perf: 调整用户登录、连接方式文案 2023-07-13 10:57:45 +08:00
Bai
d06bda6d40 perf: 优化 is_active 到 Other 中 2023-07-12 20:33:21 +08:00
fangfang.dong
a8099089b2 feat: 系统设置 - 终端设置 - 端点规则: 新增字段is_active控制是否启用 2023-07-12 20:33:21 +08:00
dependabot[bot]
fd0c14e1c0 build(deps): bump semver from 5.7.1 to 5.7.2
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-11 12:33:01 +00:00
Aaron3S
9a04c81238 feat: 增加两个组件的名称 2023-07-11 19:16:18 +08:00
老广
f1b3e5038f Merge pull request #3259 from jumpserver/pr@dev@perf_protocol_setting
perf: 修改账号配置
2023-07-11 17:28:42 +08:00
ibuler
f6fe08607b perf: 修改账号配置 2023-07-11 17:27:16 +08:00
老广
6f2ca3e26a Merge pull request #3258 from jumpserver/pr@dev@add_gpt_add_default_addr
perf: 优化修改默认值
2023-07-11 14:48:50 +08:00
ibuler
3ed9ac0d9b perf: 优化修改默认值 2023-07-11 14:47:07 +08:00
老广
821ed14f40 Merge pull request #3257 from jumpserver/pr@dev@add_gpt_proxy
perf: gpt 添加 proxy
2023-07-11 14:40:21 +08:00
老广
6f0ee734e5 Merge pull request #3255 from jumpserver/pr@dev@feat_acl_command_warning
feat: 新增危险命令告警类型: Warning
2023-07-11 12:20:14 +08:00
老广
9a5b174eb1 Merge pull request #3242 from jumpserver/pr@dev@perf_component_jsoneditor
perf: json编辑器组件增加参数控制是否可拖拽;默认可以拖拽高度
2023-07-11 12:19:29 +08:00
老广
c27e1c97f2 Merge pull request #3241 from jumpserver/pr@dev@perf_component_weekcronselect
perf: 优化时间选择组件,鼠标指针超出容器时页面显示错乱问题
2023-07-11 12:17:27 +08:00
ibuler
1b4e01d19e perf: gpt 添加 proxy 2023-07-11 11:47:41 +08:00
老广
28c836b1f6 Merge pull request #3249 from jumpserver/pr@dev@feat_chatgpt_support
feat: 支持 chatgpt 资产
2023-07-11 09:58:04 +08:00
fangfang.dong
fc85eaf6b9 feat: 新增危险命令告警类型: Warning 2023-07-10 16:22:22 +08:00
老广
678d17a4e7 Merge pull request #3256 from jumpserver/pr@dev@perf_platform_protocol
perf: 优化 protocol setting
2023-07-07 19:02:27 +08:00
ibuler
ddf9780f9c perf: 优化 protocol setting 2023-07-07 18:51:20 +08:00
fangfang.dong
d47bd4acad feat: 新增危险命令告警类型: Warning 2023-07-07 15:22:25 +08:00
jiangweidong
09dabb5d3f feat: 云同步支持UCloud公有云 (#3253) 2023-07-04 18:24:50 +08:00
Eric_Lee
9eea051884 Merge pull request #3254 from jumpserver/revert-3250-pr@dev@perf_xrdp_rdp7
Revert "perf: 新增 xrdp 协议 rdp7 端口 3390"
2023-07-04 18:02:19 +08:00
老广
f6a3eb1349 Revert "perf: 新增 xrdp 协议 rdp7 端口 3390" 2023-07-04 17:36:21 +08:00
feng
433f3a34cb perf: 改密与推送保持一致 2023-07-04 17:34:51 +08:00
老广
aa790944f6 Merge pull request #3246 from jumpserver/pr@dev@feat_support_anonymous_account
feat: 支持授权匿名账号
2023-07-04 11:46:49 +08:00
ibuler
57167fc821 perf: 优化修改 chatgpt 支持 2023-07-04 09:53:28 +08:00
feng
fb70719cba feat: vault 添加系统配置 2023-07-04 00:55:45 +08:00
ibuler
5988892840 perf: 修改端口可以从 url 中获取 2023-07-03 19:44:53 +08:00
老广
af11e1bf0c Merge pull request #3244 from jumpserver/pr@dev@perf_permission_joblog
perf: 作业日志增加权限位控制
2023-07-03 16:36:03 +08:00
老广
09416b13d3 Merge pull request #3245 from jumpserver/pr@dev@perf_route_user_roles
perf: 点击角色列表组织默认切换到全局组织,在角色列表不能点击切换组织
2023-07-03 16:35:30 +08:00
老广
478745f534 Merge pull request #3250 from jumpserver/pr@dev@perf_xrdp_rdp7
perf: 新增 xrdp 协议 rdp7 端口 3390
2023-07-03 16:29:45 +08:00
ibuler
3de2bf73ea perf: 修改 i18n 2023-07-03 11:24:36 +08:00
Eric
3b877739a3 perf: endpoint 增加 rdp7_port 2023-06-30 18:41:49 +08:00
ibuler
06899d6932 perf: 修改 chatgpt 支持 2023-06-30 18:31:50 +08:00
Eric
6f3d21bb77 perf: 新增 xrdp 协议 rdp7 端口 3390 2023-06-30 18:12:00 +08:00
ibuler
b7da517ad7 feat: 支持 chatgpt 资产 2023-06-30 17:34:45 +08:00
“huailei000”
598b6b12e8 perf: 点击角色列表组织默认切换到全局组织,在角色列表不能点击切换组织 2023-06-30 15:59:31 +08:00
ibuler
400ceac737 perf: 修改协议设置 2023-06-30 15:55:20 +08:00
老广
34de6d8775 Merge pull request #3247 from jumpserver/pr@dev@perf_dev_env
perf: 调整 luna 的 proxy 的配置,支持 luna 录像播放
2023-06-30 15:53:11 +08:00
Eric
080542633a perf: 调整 luna 的 proxy 的配置,支持 luna 录像播放 2023-06-29 15:20:14 +08:00
ibuler
653f26137b perf: 修改翻译 2023-06-27 16:45:40 +08:00
ibuler
c86f0cc08d feat: 支持授权匿名账号 2023-06-27 16:41:27 +08:00
“huailei000”
541c6c5fe5 perf: json编辑器组件增加参数控制是否可拖拽;默认可以拖拽高度 2023-06-27 15:58:33 +08:00
“huailei000”
c36a210cd4 perf: 作业日志增加权限位控制 2023-06-25 15:56:41 +08:00
“huailei000”
b9f26df5e6 perf: 优化时间选择组件,鼠标指针超出容器时页面显示错乱问题 2023-06-21 18:28:32 +08:00
老广
dd0baa7b00 Merge pull request #3239 from jumpserver/pr@dev@perf_sql_display
perf: 修改 sql 显示
2023-06-21 14:35:26 +08:00
ibuler
524105278b perf: 修改 sql 显示 2023-06-21 14:08:11 +08:00
老广
2656546e3b Merge pull request #3236 from jumpserver/pr@dev@feat_assets_detail
feat: 控制台 - 资产管理 - 资产详情 新增标签增删功能
2023-06-21 13:37:34 +08:00
ibuler
ecaf1ceace pref: 添加 sql debug 2023-06-21 12:03:26 +08:00
“huailei000”
cf515a18de perf: 替换批量更新图标 2023-06-21 11:18:13 +08:00
Eric
a0ab7d3f32 perf: 修复 terminal 显示问题 2023-06-21 11:17:38 +08:00
fangfang.dong
467c3f7288 feat: 控制台 - 资产管理 - 资产详情 新增标签增删功能 2023-06-20 17:35:49 +08:00
老广
f68eaee8c8 Merge pull request #3231 from jumpserver/pr@dev@perf_org_change_global
perf: 优化手动切换到全局后,点击菜单回到上个非全局组织的问题
2023-06-20 16:01:31 +08:00
老广
163f661386 Merge pull request #3232 from jumpserver/pr@dev@applet_host_add_help_text
perf: 添加应用发布机说明,可以通过标签选择
2023-06-20 15:45:04 +08:00
老广
e54bc076d6 Merge pull request #3233 from jumpserver/pr@dev@perf_help_text
perf: 优化一些说明文案
2023-06-20 15:44:33 +08:00
ibuler
1fbf04ae51 perf: 优化一些说明文案 2023-06-20 15:21:41 +08:00
ibuler
f002c4aa3d perf: 添加应用发布机说明,可以通过标签选择 2023-06-20 14:19:43 +08:00
ibuler
f67bd39067 perf: 添加应用发布机说明,可以通过标签选择 2023-06-20 14:14:39 +08:00
ibuler
5c60624b2d perf: 优化手动切换到全局后,点击菜单回到上个非全局组织的问题 2023-06-19 18:48:21 +08:00
fangfang.dong
488684f293 fix: 修复创建用户时 先输入密码再选择来源为LDAP 密码项仍可输入未隐藏的BUG 2023-06-19 17:10:14 +08:00
Bai
5c511345bf fix: 修复 Endpoint Host 被禁用的问题 2023-06-19 16:37:40 +08:00
老广
be85a91ccd Merge pull request #3224 from jumpserver/pr@dev@change_attr_form
perf: 优化 attr form 字段选择
2023-06-15 18:31:43 +08:00
ibuler
94a02a2e7e perf: 修改冲突 2023-06-15 18:30:46 +08:00
ibuler
e60a33a2b1 perf: 修改 json attr form 表单 2023-06-15 18:28:16 +08:00
ibuler
8449dafd55 perf: 优化 attr form 字段选择 2023-06-15 17:59:23 +08:00
“huailei000”
a787737290 perf: 优化同步设置组织下拉框显示过长问题 2023-06-15 15:10:53 +08:00
老广
fa517c8325 Merge pull request #3220 from jumpserver/pr@dev@perf_attr_change_value
perf: 修改 change value
2023-06-15 14:42:36 +08:00
老广
0748b6ce0c Merge pull request #3221 from jumpserver/pr@dev@perf_org_change_on_create
perf: 修改 更新切换
2023-06-15 14:42:16 +08:00
ibuler
59ee3eff17 perf: 修改 更新切换 2023-06-15 14:31:31 +08:00
ibuler
5cc17de1e0 perf: 修改 change value 2023-06-15 14:28:04 +08:00
feng626
42aacd9df5 Merge pull request #3218 from jumpserver/pr@dev@translate
fix: 修改用户登录和连接方式的详情翻译
2023-06-15 12:45:55 +08:00
feng
bb27171b09 fix: 修改用户登录和连接方式的详情翻译 2023-06-15 12:44:55 +08:00
feng626
ccc163ef07 Merge pull request #3217 from jumpserver/pr@dev@user_change_password
fix: 修改密码时 判断管理员校验规则失败
2023-06-15 12:14:50 +08:00
feng
e63630fce7 fix: 修改密码时 判断管理员校验规则失败 2023-06-15 11:29:03 +08:00
“huailei000”
17748c56c9 perf: 优化自定义资产列表不显示操作问题 2023-06-15 11:03:36 +08:00
老广
d880e5cb8c Merge pull request #3215 from jumpserver/pr@dev@perf_user_json_attr_disabled
perf: 优化 json user field
2023-06-15 10:32:39 +08:00
ibuler
310fe8068a perf: 优化 json user field 2023-06-15 10:31:40 +08:00
Eric
8670c3988d perf: 优化翻译 2023-06-14 21:07:41 +08:00
Bai
b5144625ee perf: 优化 命令过滤 菜单位置 2023-06-14 20:15:13 +08:00
“huailei000”
58b6d75ccf perf: 优化ladp中组织名称过长显示的问题 2023-06-14 20:02:03 +08:00
“huailei000”
c9ec67cc50 perf: 优化平台列表tab页点击导出会导出全部数据问题 2023-06-14 19:02:16 +08:00
“huailei000”
e4d1533091 perf: 优化连接方式详情用户、资产跳转报错问题 2023-06-14 18:31:50 +08:00
老广
97440860d9 Merge pull request #3208 from jumpserver/pr@dev@perf_route_replace
perf: 修改切换组织时的 url 替换
2023-06-14 16:45:08 +08:00
ibuler
3dd31dc76e perf: 替换路由中的 uuid 2023-06-14 16:35:56 +08:00
feng626
1822d72a9b Merge pull request #3209 from jumpserver/pr@dev@perm_asset
perf: 授权切换组织报错
2023-06-14 16:21:35 +08:00
feng
3267839327 perf: 授权切换组织报错 2023-06-14 16:20:47 +08:00
ibuler
17d73f2b3c perf: 修改切换组织时的 url 替换 2023-06-14 16:10:42 +08:00
“huailei000”
ec49241272 perf: 删除资产授权规则详情账号页面的“删除”按钮;删除用户详情页面资产授权规则页的“删除”/“克隆”按钮 2023-06-14 14:37:43 +08:00
feng626
c2e10b8a34 Merge pull request #3205 from jumpserver/pr@dev@website
perf: 资产website script暂时不展示特殊信息
2023-06-14 11:19:59 +08:00
feng
29813e7ce1 perf: 资产website script暂时不展示特殊信息 2023-06-14 11:18:42 +08:00
Aaron3S
919d95b56b fix: 修复playbook文件树无法点击的问题 2023-06-14 11:07:12 +08:00
feng626
5f95fc0422 Merge pull request #3200 from jumpserver/pr@dev@user_perm
fix: 修改node asset 关联的权限位
2023-06-14 10:36:22 +08:00
feng
49a4000086 fix: 修改node asset 关联的权限位 2023-06-14 10:35:14 +08:00
老广
9c7818313e Merge pull request #3199 from jumpserver/pr@dev@perf_select2_componenet
perf: 优化 select2 组件
2023-06-13 19:38:00 +08:00
ibuler
705e236279 merge: with dev 2023-06-13 19:36:59 +08:00
ibuler
d4ecb33c78 perf: 去掉注释内容 2023-06-13 19:34:05 +08:00
ibuler
67e45ad284 perf: 优化修改select2 2023-06-13 19:32:39 +08:00
ibuler
8cb72c3d82 perf: 优化 select2 组件 2023-06-13 19:26:38 +08:00
“huailei000”
b65a007d37 perf: 资产详情添加账号后关闭弹窗 2023-06-13 15:40:33 +08:00
“huailei000”
e487ee24af perf: 资产登录用户匹配结果不显示操作 2023-06-13 14:42:54 +08:00
feng626
bfbc78e342 Merge pull request #3196 from jumpserver/pr@dev@asset_login_acl
fix: 修复创建资产登录规则-选择指定资产-指定账号下拉框显示的是组织下的所有账号问题
2023-06-13 14:36:15 +08:00
feng
54879a8174 fix: 修复创建资产登录规则-选择指定资产-指定账号下拉框显示的是组织下的所有账号问题 2023-06-13 14:34:52 +08:00
老广
36634a2ce5 Merge pull request #3195 from jumpserver/pr@dev@perf_select2_filter
perf: 优化 select 本地搜索
2023-06-13 13:27:41 +08:00
ibuler
07920a4917 perf: 优化 select 本地搜索 2023-06-13 13:24:20 +08:00
老广
25932587a5 Merge pull request #3194 from jumpserver/pr@dev@perf_json_attr_form_dialog
perf: json attr form 更改 name 和 match 方式后,不再清空 value
2023-06-13 12:42:22 +08:00
ibuler
d98534d039 perf: json attr form 更改 name 和 match 方式后,不再清空 value 2023-06-13 12:41:32 +08:00
feng626
6cb5d6ac46 Merge pull request #3193 from jumpserver/pr@dev@connect-method-acls
perf: 连接方式 添加详情页
2023-06-13 11:31:41 +08:00
feng
fab461c10d perf: 连接方式 添加详情页 2023-06-13 11:29:59 +08:00
“huailei000”
644980bc40 perf: 资产登录详情、命令过滤详情里的列表不显示操作功能 2023-06-13 11:19:49 +08:00
老广
a56e3843bf Merge pull request #3191 from jumpserver/pr@dev@perf_action_display
perf: 优化 action 显示
2023-06-13 10:09:29 +08:00
ibuler
5ca188c014 perf: 优化 action 显示 2023-06-13 09:51:46 +08:00
“huailei000”
510cf48def perf: 修改账号推送详情标题不正确问题 2023-06-12 18:29:36 +08:00
feng626
e64fdab7fc Merge pull request #3189 from jumpserver/pr@dev@usergroup
perf: 修改用户组添加全部用户api的权限位
2023-06-12 18:16:26 +08:00
feng
aaec496642 perf: 修改用户组添加全部用户api的权限位 2023-06-12 18:14:49 +08:00
“huailei000”
80c05c9b65 perf: 优化资产列表显示 2023-06-12 18:05:08 +08:00
feng626
c9159838f5 Merge pull request #3187 from jumpserver/pr@dev@accounts
fix: 工单账号组建默认值为空
2023-06-12 17:06:09 +08:00
feng
b8e005f4b1 fix: 工单账号组建默认值为空 2023-06-12 17:03:59 +08:00
feng626
6e73ded101 Merge pull request #3185 from jumpserver/pr@dev@perms_user
perf: 优化授权详情用户组切换组织一些资源不存在抛出html错误
2023-06-12 16:28:45 +08:00
feng
6926556fa3 perf: 优化授权详情用户组切换组织一些资源不存在抛出html错误 2023-06-12 16:24:01 +08:00
老广
24971c1112 Merge pull request #3183 from jumpserver/pr@dev@perf_json_attr_select_match
perf: 优化 Json attr field 选择
2023-06-12 16:14:03 +08:00
“huailei000”
763792f42e perf: 用户登录列表不显示用户字段 2023-06-12 16:12:28 +08:00
ibuler
0ff28d2626 perf: 优化 Json attr field 选择 2023-06-12 16:10:55 +08:00
老广
f607eeda42 Merge pull request #3182 from jumpserver/pr@dev@perf_acl_global_org
perf: 限制 connect method acl 和 user login acl 为 global org
2023-06-12 15:48:10 +08:00
ibuler
c0145f4ec4 perf: 限制 connect method acl 和 user login acl 为 global org 2023-06-12 15:43:54 +08:00
feng626
7c995c005b Merge pull request #3179 from jumpserver/pr@dev@user_add
perf: 用户组添加 user 显示优化
2023-06-09 18:53:42 +08:00
feng
21f4f003bb perf: 用户组添加 user 显示优化 2023-06-09 18:52:44 +08:00
老广
fbbac6cea5 Merge pull request #3178 from jumpserver/pr@dev@perf_account_add_error
perf: 优化 account 添加
2023-06-09 18:43:21 +08:00
ibuler
302400e350 perf: 优化 account 添加 2023-06-09 18:41:52 +08:00
“huailei000”
b2120678dd perf: 优化TagInput组件样式 2023-06-09 18:37:43 +08:00
feng626
03c7755703 Merge pull request #3176 from jumpserver/pr@dev@user_phone
perf: 用户手机添加默认值及账号模版详情切换至显示
2023-06-09 18:32:58 +08:00
feng
21373574de perf: 用户手机添加默认值及账号模版详情切换至显示 2023-06-09 18:31:54 +08:00
“huailei000”
342ee31c72 perf: 优化命令过滤指定账号-选择账号显示不全问题 2023-06-09 18:21:28 +08:00
feng626
7aa8afec44 Merge pull request #3174 from jumpserver/pr@dev@account
perf: 修改创建资产账号的顺序及账号模版批量添加隐藏su_from_username字段
2023-06-09 16:23:30 +08:00
feng
d6b54c9879 perf: 修改创建资产账号的顺序及账号模版批量添加隐藏su_from_username字段 2023-06-09 16:18:52 +08:00
老广
b1952a180f Merge pull request #3173 from jumpserver/pr@dev@perf_asset_json_filter_platform_m2m
perf: 资产根据属性筛选允许多选
2023-06-08 18:40:33 +08:00
ibuler
d3a7fb63b9 perf: 资产根据属性筛选允许多选 2023-06-08 18:34:43 +08:00
jiangweidong
53cfdbd3a1 feat: 支持文件上传下载备份 (#3118)
* feat: 支持文件上传下载备份

* perf: 修改下载sftp文件api接口

* perf: 优化FTP审计中文件下载提示

* perf: 优化文件上传下载审计文件的提示信息
2023-06-08 18:06:37 +08:00
ibuler
41cd77d75e fix: 修复一个正则表达式不被 safari 支持的问题 2023-06-08 15:48:53 +08:00
老广
15ac510c6f Merge pull request #3170 from jumpserver/pr@dev@perf_acls_connect_methods
perf: 用户登录 ACL 挪到控制中
2023-06-08 14:51:26 +08:00
老广
31e005eca7 Merge pull request #3171 from jumpserver/pr@dev@fix_btoa_error
perf: 修复 btoa 的报错,首先 encode 一下
2023-06-08 14:50:54 +08:00
ibuler
842ea3cbf3 perf: 修复 btoa 的报错,首先 encode 一下 2023-06-08 14:50:08 +08:00
ibuler
9f893af74b perf: ACL 中添加一些 help text 2023-06-08 14:37:12 +08:00
ibuler
5274dc4e6b perf: 修改翻译 2023-06-08 13:50:01 +08:00
ibuler
64441e4836 perf: 还是放到权限管理中 2023-06-08 11:28:03 +08:00
fangfang.dong
43997eeac1 feat: 系统设置 - 短信服务 - 多平台配置测试手机号: 增加区号显示与修改功能 2023-06-08 11:03:06 +08:00
ibuler
1b95af54c1 perf: acls 菜单 2023-06-08 10:58:18 +08:00
ibuler
e79f95a822 perf: 修改翻译 2023-06-07 17:55:53 +08:00
ibuler
fb85e168e7 perf: 用户登录 ACL 挪到控制中 2023-06-07 17:41:40 +08:00
feng626
521cafa2af Merge pull request #3168 from jumpserver/pr@dev@fix_ticket
fix: 修复工单选择账号无法按照对应资产节点过滤账号,以及自己申请的工单不能关闭
2023-06-05 15:58:39 +08:00
feng
bb9f905dd4 fix: 修复工单选择账号无法按照对应资产节点过滤账号,以及自己申请的工单不能关闭 2023-06-05 15:57:19 +08:00
nut
3eda4381bb Update Assets.vue 2023-06-02 18:27:23 +08:00
nut
080acf57f7 Update index.vue 2023-06-02 18:27:23 +08:00
nut
9c137e6763 Update ja.json 2023-06-02 18:27:23 +08:00
nut
75f5363602 Update en.json 2023-06-02 18:27:23 +08:00
nut
32f6d5dc4a Update zh.json 2023-06-02 18:27:23 +08:00
fangfangdong
21265aa983 feat: 资产平台详情添加资产列表页(只显示当前组织下的资产) 2023-06-02 18:27:23 +08:00
feng626
e11441e5a7 Merge pull request #3165 from jumpserver/pr@dev@user_list
perf: 用户列表不显示is_superuser
2023-05-31 19:24:44 +08:00
feng
e7624f47bf perf: 用户列表不显示is_superuser 2023-05-31 19:20:13 +08:00
ibuler
7276b19a92 perf: 优化 nest fields 支持是否隐藏 2023-05-31 16:52:25 +08:00
fangfangdong
32fa172197 feat: 系统设置-安全设置 支持配置 作业中心命令黑名单 2023-05-31 14:59:16 +08:00
老广
aa80a07bfc Merge pull request #3161 from jumpserver/pr@dev@perf_platform_automation
perf: 修改 platform automation 的显示
2023-05-30 19:37:41 +08:00
ibuler
fd97a6c4a2 perf: 修改 platform automation 的显示 2023-05-30 19:35:33 +08:00
fangfangdong
9b355a2942 style: 调整国际化文件中时间单位显示方式 2023-05-30 16:59:19 +08:00
ibuler
0431f7108a perf: 优化 perm action 中的 helptext 2023-05-29 19:47:57 +08:00
ibuler
3500ab89f5 perf: 登录资产的 ACL 支持 ip 控制 2023-05-29 19:47:57 +08:00
feng
fcdcf29efa feat: 用户组绑定所有用户 2023-05-29 16:27:00 +08:00
feng
49d74271c8 feat: 用户组一键添加全部用户 2023-05-29 16:27:00 +08:00
Bai
9a7eca3cf8 perf: 优化终端端点 Host 字段默认端点禁止修改 2023-05-26 17:21:19 +08:00
feng
dc686f2af7 fix: 修改k8s修改不了端口问题 2023-05-26 14:56:49 +08:00
feng626
172c6d69a1 Merge pull request #3148 from jumpserver/pr@dev@ldap_import_orgs
perf: ldap 能多组织同步用户
2023-05-25 17:37:18 +08:00
feng
3f2a846184 perf: 账号模版改密的helptext用到修改资产协议上了 2023-05-25 17:05:40 +08:00
ibuler
48ac797b59 perf: LDAP 测试 api 改为异步的 2023-05-25 16:54:54 +08:00
halo
92962bdc5a feat: 支持删除已收集的账号 2023-05-25 14:47:48 +08:00
Bai
ca4889a19a perf: 优化 API 调用最大超时时间为 2 min 2023-05-25 14:47:21 +08:00
ibuler
e4631a5309 perf: 优化 list field 组件为 tag input 2023-05-25 14:45:43 +08:00
jiangweidong
62eced61d2 feat: 支持自定义短信认证 2023-05-25 14:44:00 +08:00
feng626
7a8df3fb7b Merge pull request #3150 from jumpserver/pr@dev@unable_to_delete_all_users
perf: 删除全部用户错误提示
2023-05-25 11:38:07 +08:00
feng
91ef3cfaab perf: 删除全部用户错误提示 2023-05-25 11:22:13 +08:00
吴小白
c92843e973 perf: 更新 nginx 镜像版本 2023-05-25 10:16:48 +08:00
feng
47372df4d2 perf: ldap 能多组织同步用户 2023-05-24 19:10:39 +08:00
老广
143e913554 Merge pull request #3101 from jumpserver/pr@dev@perf_m2m_json_field
feat: ACL 中选择可以根据属性进行选择
2023-05-24 15:21:28 +08:00
ibuler
61b2b0fb23 merge: with dev 2023-05-24 15:18:12 +08:00
ibuler
54ac31920c perf: 修改默认值 2023-05-24 15:15:43 +08:00
ibuler
4eaeff0a18 perf: 去掉 console.log 2023-05-24 14:30:52 +08:00
ibuler
08c16aae72 perf: 拆分为多个文件 2023-05-23 15:28:20 +08:00
feng626
bf5e218edc Merge pull request #3142 from jumpserver/pr@dev@ndoe_tree
perf: 资产树显示节点详情的key
2023-05-22 15:50:09 +08:00
feng
e8dbd99f74 perf: 资产树显示节点详情的key 2023-05-22 15:49:15 +08:00
Bai
9ab2acfa5b fix: 修复系统管理员不能互相更新的问题 2023-05-19 18:08:30 +08:00
jiangweidong
d3cbb48e05 fix: 展示手机号码 2023-05-19 17:02:32 +08:00
jiangweidong
170dde2ba5 fix: 去掉手机区号和手机号之间的空格 2023-05-19 17:02:32 +08:00
Bai
021eb1fd5b perf: 优化资产平台详情显示ID字段;优化组件监控显示Video-Worker名称 2023-05-19 16:01:17 +08:00
ibuler
1b2c85d86d perf: 修改完成 m2m json field 2023-05-18 21:33:58 +08:00
ibuler
3a5aa7bf90 perf: 优化 Json field 2023-05-18 17:31:56 +08:00
ibuler
936de3c9fb perf: stash json 2023-05-17 18:50:16 +08:00
ibuler
09bd49941f perf: 修改 asset login acl 2023-05-08 10:49:09 +08:00
ibuler
edc74c8dfb perf: 修改翻译 2023-05-08 10:38:03 +08:00
ibuler
4556d3f4fe perf: 修改 m2m placeholder 2023-05-06 19:51:10 +08:00
ibuler
e521868cd2 Perf: 前端好像差不多了 2023-05-06 19:00:59 +08:00
ibuler
d3d6a0e890 perf: 优化 JSONManyToMany 字段 2023-05-05 19:10:13 +08:00
ibuler
26d8154db8 feat: 支持 json m2m field 2023-04-27 16:46:38 +08:00
1124 changed files with 53009 additions and 26064 deletions

View File

@@ -22,4 +22,6 @@ VUE_APP_LOGOUT_PATH = '/core/auth/logout/'
# Dev server for core proxy
VUE_APP_CORE_HOST = 'http://localhost:8080'
VUE_APP_CORE_WS = 'ws://localhost:8080'
VUE_APP_KOKO_HOST = 'http://localhost:5000'
VUE_APP_KOKO_WS = 'ws://localhost:5000'
VUE_APP_ENV = 'development'

72
.github/workflows/build-base-image.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: Build and Push Base Image
on:
push:
branches:
- 'pr*'
paths:
- 'package.json'
- 'package-lock.json'
- 'yarn.lock'
- 'Dockerfile-base'
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Lock Pull Request
run: |
curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-d '{"state":"pending", "description":"Action running, merge disabled", "context":"Lock PR"}' \
"https://api.github.com/repos/${{ github.repository }}/statuses/${{ github.sha }}"
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract date
id: vars
run: echo "IMAGE_TAG=$(date +'%Y%m%d_%H%M%S')" >> $GITHUB_ENV
- name: Extract repository name
id: repo
run: echo "REPO=$(basename ${{ github.repository }})" >> $GITHUB_ENV
- name: Build and push multi-arch image
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
file: Dockerfile-base
tags: jumpserver/${{ env.REPO }}-base:${{ env.IMAGE_TAG }}
- name: Update Dockerfile
run: |
sed -i 's|-base:.* AS stage-build|-base:${{ env.IMAGE_TAG }} AS stage-build|' Dockerfile
- name: Commit changes
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add Dockerfile
git commit -m "perf: Update Dockerfile with new base image tag"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Unlock Pull Request
run: |
curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-d '{"state":"success", "description":"Action running, merge disabled", "context":"Lock PR"}' \
"https://api.github.com/repos/${{ github.repository }}/statuses/${{ github.sha }}"

View File

@@ -1,32 +0,0 @@
name: "Run Build Test"
on:
push:
branches:
- pr@*
- repr@*
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- uses: docker/build-push-action@v3
with:
context: .
push: false
tags: jumpserver/lina:test
file: Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- uses: LouisBrunner/checks-action@v1.5.0
if: always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Check Build
conclusion: ${{ job.status }}

View File

@@ -0,0 +1,46 @@
name: "Run Build Test"
on:
push:
paths:
- 'Dockerfile'
- 'Dockerfile*'
- 'package.json'
- 'yarn.lock'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
component: [ lina ]
version: [ v4 ]
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Prepare Build
run: |
sed -i 's@registry.npmmirror.com@registry.yarnpkg.com@g' yarn.lock
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Image
uses: docker/build-push-action@v5
with:
context: .
push: true
file: Dockerfile
tags: ghcr.io/jumpserver/${{ matrix.component }}:${{ matrix.version }}
platforms: linux/amd64
build-args: |
VERSION=${{ matrix.version }}
APT_MIRROR=http://deb.debian.org
NPM_REGISTRY=https://registry.yarnpkg.com
outputs: type=image,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@@ -10,3 +10,4 @@ jobs:
- uses: jumpserver/action-generic-handler@master
env:
GITHUB_TOKEN: ${{ secrets.PRIVATE_TOKEN }}
I18N_TOKEN: ${{ secrets.I18N_TOKEN }}

View File

@@ -19,9 +19,7 @@ jobs:
id: get_version
run: |
TAG=$(basename ${GITHUB_REF})
VERSION=${TAG/v/}
echo "::set-output name=TAG::$TAG"
echo "::set-output name=VERSION::$VERSION"
- name: Create Release
id: create_release
uses: release-drafter/release-drafter@v5
@@ -33,17 +31,27 @@ jobs:
tag: ${{ steps.get_version.outputs.TAG }}
- uses: actions/setup-node@v2
with:
node-version: '14.16'
build-and-release:
needs: create-realese
name: Build and Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build it and upload
uses: jumpserver/action-build-upload-assets@node10
node-version: '20.15'
- name: Install dependencies
run: yarn install
- name: Build web
run: |
sed -i "s@version-dev@${{ steps.get_version.outputs.TAG }}@g" src/layout/components/NavHeader/About.vue
yarn build
- name: Create Upload Assets
run: |
rm -rf build/*
mv lina lina-${{ steps.get_version.outputs.TAG }}
tar -czf lina-${{ steps.get_version.outputs.TAG }}.tar.gz lina-${{ steps.get_version.outputs.TAG }}
echo $(md5sum lina-${{ steps.get_version.outputs.TAG }}.tar.gz | awk '{print $1}') > build/lina-${{ steps.get_version.outputs.TAG }}.tar.gz.md5
mv lina-${{ steps.get_version.outputs.TAG }}.tar.gz build/
- name: Release Upload Assets
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
files: |
build/lina-${{ steps.get_version.outputs.TAG }}.tar.gz
build/lina-${{ steps.get_version.outputs.TAG }}.tar.gz.md5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-realese.outputs.upload_url }}

2
.gitignore vendored
View File

@@ -17,3 +17,5 @@ tests/**/coverage/
*.sln
.env.development
.python-version
helper.json

View File

@@ -1,24 +1,14 @@
FROM node:14.16 as stage-build
ARG TARGETARCH
ARG NPM_REGISTRY="https://registry.npmmirror.com"
WORKDIR /data
RUN set -ex \
&& npm config set registry ${NPM_REGISTRY} \
&& yarn config set registry ${NPM_REGISTRY}
ADD package.json yarn.lock /data
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked,id=lina \
yarn install
FROM jumpserver/lina-base:20240723_084702 AS stage-build
ARG VERSION
ENV VERSION=$VERSION
ADD . /data
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked,id=lina \
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked \
sed -i "s@version-dev@${VERSION}@g" src/layout/components/NavHeader/About.vue \
&& yarn build
FROM nginx:alpine
FROM nginx:1.24-bullseye
COPY --from=stage-build /data/lina /opt/lina
COPY nginx.conf /etc/nginx/conf.d/default.conf

22
Dockerfile-base Normal file
View File

@@ -0,0 +1,22 @@
FROM node:20.15-bullseye-slim
ARG DEPENDENCIES=" \
g++ \
make \
python3"
RUN set -ex \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache \
&& apt-get update \
&& apt-get -y install --no-install-recommends ${DEPENDENCIES} \
&& echo "no" | dpkg-reconfigure dash
WORKDIR /data
COPY package.json yarn.lock ./
ARG NPM_MIRROR="https://registry.npmjs.org"
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked,id=yarn-cache \
sed -i "s|https://registry.npmmirror.com|${NPM_MIRROR}|g" yarn.lock \
&& yarn install

View File

@@ -0,0 +1,10 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"prettier.printWidth": 100,
"prettier.singleAttributePerLine": true,
"editor.wordWrap": "on"
}

View File

@@ -5,5 +5,6 @@
"@/*": ["src/*"]
}
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@@ -1,13 +1,13 @@
{
"name": "vue-admin-template",
"version": "4.2.1",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"license": "MIT",
"name": "lina",
"version": "v4.0.0",
"description": "JumpServer Web UI",
"author": "JumpServer Team <support@fit2cloud.com>",
"license": "GPL-3.0-or-later",
"scripts": {
"dev": "vue-cli-service serve",
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"dev": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve",
"serve": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve",
"build": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
@@ -20,26 +20,31 @@
"vue-i18n-report": "vue-i18n-extract report -v './src/**/*.?(js|vue)' -l './src/i18n/langs/**/*.json'",
"vue-i18n-report-json": "vue-i18n-extract report -v './src/**/*.?(js|vue)' -l './src/i18n/langs/**/*.json' -o /tmp/abc.json",
"vue-i18n-report-add-miss": "vue-i18n-extract report -v './src/**/*.?(js|vue)' -l './src/i18n/langs/**/*.json' -a",
"diff-i18n": "python ./src/i18n/langs/i18n-util.py diff en ja",
"apply-i18n": "python ./src/i18n/langs/i18n-util.py apply en ja"
"diff-i18n": "python ./src/i18n/langs/i18n-util.py diff en ja zh_Hant",
"apply-i18n": "python ./src/i18n/langs/i18n-util.py apply en ja zh_Hant"
},
"dependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.13.12",
"@fontsource/open-sans": "^5.0.24",
"@traptitech/markdown-it-katex": "^3.6.0",
"@ztree/ztree_v3": "3.5.44",
"axios": "0.21.1",
"axios": "0.28.0",
"axios-retry": "^3.1.9",
"caniuse-lite": "^1.0.30001642",
"cron-parser": "^4.0.0",
"crypto-js": "^4.1.1",
"css-color-function": "^1.3.3",
"decimal.js": "^10.4.3",
"deepmerge": "^4.2.2",
"echarts": "^4.7.0",
"element-ui": "2.13.2",
"dompurify": "^3.1.6",
"echarts": "4.7.0",
"element-ui": "2.15.14",
"eslint-plugin-html": "^6.0.0",
"highlight.js": "^11.9.0",
"install": "^0.13.0",
"jquery": "^3.6.1",
"js-cookie": "2.2.0",
"jsencrypt": "^3.2.1",
"krry-transfer": "^1.7.3",
"less": "^3.10.3",
"less-loader": "^5.0.0",
"lodash": "^4.17.21",
@@ -54,12 +59,15 @@
"lodash.set": "^4.3.2",
"lodash.topairs": "^4.3.0",
"lodash.values": "^4.3.0",
"markdown-it": "^13.0.2",
"markdown-it-link-attributes": "^4.0.1",
"moment": "^2.29.4",
"moment-parseformat": "^4.0.0",
"normalize.css": "7.0.0",
"npm": "^7.8.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"v-sanitize": "^0.0.13",
"vue": "2.6.10",
"vue-codemirror": "4.0.6",
"vue-cookie": "^1.1.4",
@@ -79,13 +87,14 @@
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@babel/core": "7.0.0",
"@babel/core": "7.18.6",
"@babel/register": "7.0.0",
"@vue/cli-plugin-babel": "3.6.0",
"@vue/cli-plugin-eslint": "^3.9.1",
"@vue/cli-plugin-unit-jest": "3.6.3",
"@vue/cli-service": "3.6.0",
"@vue/test-utils": "1.0.0-beta.29",
"@vue/runtime-dom": "3.5.13",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
@@ -93,6 +102,7 @@
"chalk": "2.4.2",
"compression-webpack-plugin": "^6.1.1",
"connect": "3.6.6",
"deasync": "^0.1.29",
"element-theme-chalk": "^2.13.1",
"eslint": "^5.15.3",
"eslint-plugin-vue": "5.2.2",
@@ -109,8 +119,9 @@
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "0.7.2",
"serve-static": "^1.13.2",
"strip-ansi": "^7.1.0",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"svgo": "1.2.4",
"vue-i18n-extract": "^1.1.1",
"vue-template-compiler": "2.6.10"
},

View File

@@ -2,34 +2,70 @@
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta content="0" http-equiv="Expires">
<meta content="no-cache" http-equiv="Pragma">
<meta content="no-cache" http-equiv="Cache-control">
<meta content="no-cache" http-equiv="Cache">
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<title><%= webpackConfig.name %></title>
<link rel="stylesheet" href="<%= BASE_URL %>theme/element-ui.css">
<link href="<%= BASE_URL %>theme/element-ui.css" rel="stylesheet">
<style>
#loading {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: white;
z-index: 9999;
}
.spinner {
width: 50px;
height: 50px;
border: 5px solid rgba(0, 0, 0, 0.1);
border-radius: 50%;
border-top-color: #3498db;
animation: spin 1s infinite linear;
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
</style>
</head>
<body>
<noscript>
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<script>
window.onload = function() {
if (location.pathname === '/') {
location.pathname = '/ui/'
}
const pathname = window.location.pathname
if (pathname.startsWith('/core')) {
return
}
if(pathname.indexOf('/ui') === -1) {
window.location.href = window.location.origin + '/ui/#' + pathname
}
window.onload = function () {
if (location.pathname === '/') {
location.pathname = '/ui/'
}
const pathname = window.location.pathname
if (pathname.startsWith('/core')) {
return
}
if (pathname.indexOf('/ui') === -1) {
window.location.href = window.location.origin + '/ui/#' + pathname
}
if (pathname.startsWith('/ui/#/chat')) {
window.location.href = window.location.origin + pathname
}
}
</script>
<div id="app"></div>
<div id="app">
</div>
<div id="loading">
<div class="spinner"></div>
</div>
<!-- built files will be auto injected -->
</body>
</html>

View File

@@ -21,32 +21,39 @@
}
.el-alert--info.is-light {
background-color: light-9;
color: light-2;
background-color: rgba(255, 255, 255, 0.5);
color: info;
border: 1px solid;
}
.el-alert--info .el-alert__description {
color: light-2;
color: info;
}
.el-pagination.is-background {
.el-pagination__total,
.el-pagination__sizes,
.el-pager {
color: var(--color-icon-primary);
}
}
.el-pagination.is-background .el-pager li:not(.disabled):hover {
color: white;
color: #fff;
background-color: primary;
}
.el-pagination.is-background .btn-next,
.el-pagination.is-background .btn-prev,
.el-pagination.is-background .el-pager li {
margin: 0 5px;
background-color: white;
color: #606266;
min-width: 28px;
border-radius: 2px;
border: 1px solid #DCDFE6;
font-size: 12px;
line-height: 26px;
font-weight: 400;
margin: 0 5px;
background-color: #fff;
color: var(--color-icon-primary);
min-width: 28px;
border-radius: 2px;
border: 1px solid #DCDFE6;
font-size: 12px;
font-weight: 400;
}
.el-breadcrumb__inner,
@@ -85,8 +92,12 @@
td .el-button.el-button--mini {
padding: 1px 5px;
padding: 1px 6px;
line-height: 1.5;
.el-icon--right {
margin-bottom: 2px;
}
}
.el-tabs__item.is-active, .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
@@ -191,7 +202,7 @@ td .el-button.el-button--mini {
}
.el-input--small .el-input__icon {
line-height: 34px;
line-height: 30px;
}
.option-group .el-select-dropdown__item.hover, .option-group .el-select-dropdown__item.selected {
@@ -224,8 +235,10 @@ td .el-button.el-button--mini {
}
.el-tag.el-tag--info .el-tag__close {
color: #333333!important;
background-color: inherit;
display: inline-block;
margin-top: 3px;
color: var(--color-text-primary);
background-color: inherit;
}
.el-tag.el-tag--info.is-hit {
@@ -280,7 +293,7 @@ td .el-button.el-button--mini {
}
.el-textarea__inner {
border-radius: 0;
color: var(--color-text-primary);
}
.el-pagination.is-background .number {
@@ -313,11 +326,11 @@ td .el-button.el-button--mini {
.el-tooltip__popper.is-light {
background: #FFF;
max-width: 500px;
border: 1px solid #e7eaec;
}
.el-tooltip__popper.is-light .popper__arrow {
border-bottom-color: #e7eaec !important;
box-shadow: 0 1.6px 3.6px 0 rgba(0, 0, 0, .132), 0 .3px .9px 0 rgba(0, 0, 0, .108);
line-height: 1.5;
padding: 10px;
}
.el-dialog__headerbtn .el-dialog__close {
@@ -326,7 +339,7 @@ td .el-button.el-button--mini {
}
.el-table__header thead tr th {
border-bottom: 1px solid #e7e7e7 !important;
/*border-bottom: 1px solid #e7e7e7 !important;*/
}
.el-table .cell,
@@ -423,14 +436,34 @@ td .el-button.el-button--mini {
flex-direction: column;
}
.el-dialog .el-dialog__header .el-dialog__title {
color: var(--color-text-primary);
}
.el-dialog .el-dialog__body {
max-height: 90vh;
max-height: 80vh;
overflow: auto;
padding: 30px;
}
.el-dialog .el-dialog__body .el-transfer-panel .el-transfer-panel__body .el-input__inner,
.el-dialog .el-dialog__body .el-transfer-panel .el-transfer-panel__header .el-checkbox__label,
.el-dialog .el-dialog__body .el-transfer-panel .el-transfer-panel__body .el-checkbox-group .el-checkbox.el-transfer-panel__item {
color: var(--color-text-primary);
}
.el-dialog .el-dialog__body .opera .el-button.is-disabled,
.el-dialog .el-dialog__body .el-transfer-panel .vip-footer .el-button.is-disabled {
color: var(--color-input-border);
}
.el-dialog .el-dialog__body .opera .el-button.is-disabled.el-button--primary {
color: #fff;
}
.el-dialog .el-dialog__body form {
padding-right: 20px;
margin-right: 20px;
}
.el-dialog .el-dialog__footer {

View File

@@ -16,6 +16,3 @@ export default {
}
}
</script>
<style>
</style>

View File

@@ -42,8 +42,10 @@ export function getCommandFilterList(data) {
export function getCategoryTypes() {
return request({
url: '/api/v1/assets/categories/',
url: '/api/v1/assets/categories/?limit=1000',
method: 'get'
}).then(res => {
return res.results
})
}

9
src/api/component.js Normal file
View File

@@ -0,0 +1,9 @@
import request from '@/utils/request'
export function getLokiLog(data) {
return request({
url: `/api/v1/terminal/loki/logs/`,
method: 'get',
params: data
})
}

View File

@@ -44,3 +44,30 @@ export function renameFile(playbookId, node) {
data: node
})
}
export function createJob(form) {
return request({
url: '/api/v1/ops/jobs/',
method: 'post',
data: form
})
}
export function StopJob(form) {
return request({
url: '/api/v1/ops/job-executions/stop/',
method: 'post',
data: form
})
}
export function JobUploadFile(form) {
return request({
url: '/api/v1/ops/jobs/upload/',
method: 'post',
headers: { 'Content-Type': 'multipart/form-data' },
timeout: 60 * 60 * 1000,
data: form
})
}

View File

@@ -8,24 +8,11 @@ export function terminateSession(data) {
})
}
export function getSessionDetail(id) {
export function toggleLockSession(data) {
return request({
url: `/api/v1/terminal/sessions/${id}/`,
method: 'get'
})
}
export function getSessionCommands(id) {
return request({
url: `/api/v1/terminal/commands/?session_id=${id}`,
method: 'get'
})
}
export function getTerminalDetail(id) {
return request({
url: `/api/v1/terminal/terminals/${id}/`,
method: 'get'
url: '/api/v1/terminal/tasks/toggle-lock-session/',
method: 'post',
data: data
})
}

View File

@@ -25,12 +25,28 @@ export function importLicense(formData) {
data: formData
})
}
export function testLdapSetting(data) {
return request({
disableFlashErrorMsg: true,
url: '/api/v1/settings/ldap/testing/config/',
method: 'post',
data: data
export function testLdapSetting(data, refresh = true) {
let url = '/api/v1/settings/ldap/testing/config/'
if (refresh) {
url = url + '?refresh=1'
}
return new Promise((resolve, reject) => {
request({
disableFlashErrorMsg: true,
url: url,
method: 'post',
data: data
}).then(res => {
if (res.status !== 'running') {
resolve(res)
} else {
setTimeout(() => {
resolve(testLdapSetting(data, false))
}, 1000)
}
}).catch(error => {
reject(error)
})
})
}

View File

@@ -12,7 +12,6 @@ export function getProfile(token) {
return request({
url: '/api/v1/users/profile/',
method: 'get'
// params: { token }
})
}
@@ -66,10 +65,6 @@ export function logout() {
})
}
export function refreshSessionIdAge() {
return getProfile()
}
export default {
getProfile,
getUserList

BIN
src/assets/img/chat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="transparent" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot "><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>

After

Width:  |  Height:  |  Size: 406 B

View File

@@ -0,0 +1 @@
<svg t="1717741737122" class="icon" viewBox="0 0 1653 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5514" width="200" height="200"><path d="M344.8620198 721.82988526a57.857089 57.857089 0 0 1-46.13274501-56.07295017v-308.4012244a59.89610558 59.89610558 0 0 1 46.13274501-56.07295017l286.35436058-62.06256065 30.07549089-122.72329718H328.80476645A210.78331632 210.78331632 0 0 0 116.61962599 327.28021902v364.47417458a213.71440233 213.71440233 0 0 0 212.18514046 212.31257895h332.48710482l-30.07549089-122.21354321zM1178.05508073 116.49690269H843.01920461l30.58524561 122.72329718 286.35436059 62.06256065a57.98452749 57.98452749 0 0 1 46.132745 56.07295017v308.4012244a60.15098257 60.15098257 0 0 1-46.13274502 56.07295017l-286.35436057 62.06256066-30.58524561 122.72329716H1178.05508073a212.44001744 212.44001744 0 0 0 212.94977139-212.82233291V327.28021902A213.33208686 213.33208686 0 0 0 1178.05508073 116.49690269z" fill="#F76E05" p-id="5515"></path><path d="M631.21638038 495.49906876h244.29964793v30.07549166H631.21638038z" fill="#F76E05" p-id="5516"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743450082" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="39383" width="200" height="200"><path d="M18.753 17.145h468.424l-0.02 468.426H18.774V17.145h-0.02z m0 0" fill="#F25022" p-id="39384"></path><path d="M534.999 17.145h468.422c0 156.141 0.022 312.283-0.02 468.426H535.038c-0.06-156.162-0.039-312.285-0.039-468.426z m0 0" fill="#80BA01" p-id="39385"></path><path d="M18.753 533.352c156.141 0.058 312.282-0.019 468.424 0.058v468.386H18.753V533.352z m0 0" fill="#02A4EF" p-id="39386"></path><path d="M535.018 533.41c156.124-0.058 312.243-0.019 468.383-0.019v468.422H534.999c0.019-156.163-0.02-312.28 0.019-468.403z m0 0" fill="#FFB902" p-id="39387"></path></svg>

After

Width:  |  Height:  |  Size: 721 B

View File

@@ -0,0 +1 @@
<svg t="1717743450082" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="39383" width="200" height="200"><path d="M18.753 17.145h468.424l-0.02 468.426H18.774V17.145h-0.02z m0 0" fill="#F25022" p-id="39384"></path><path d="M534.999 17.145h468.422c0 156.141 0.022 312.283-0.02 468.426H535.038c-0.06-156.162-0.039-312.285-0.039-468.426z m0 0" fill="#80BA01" p-id="39385"></path><path d="M18.753 533.352c156.141 0.058 312.282-0.019 468.424 0.058v468.386H18.753V533.352z m0 0" fill="#02A4EF" p-id="39386"></path><path d="M535.018 533.41c156.124-0.058 312.243-0.019 468.383-0.019v468.422H534.999c0.019-156.163-0.02-312.28 0.019-468.403z m0 0" fill="#FFB902" p-id="39387"></path></svg>

After

Width:  |  Height:  |  Size: 721 B

View File

@@ -0,0 +1 @@
<svg t="1717743183519" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="34140" width="200" height="200"><path d="M521.30666655 248.79999969c4.93333313 0 9.14666625 0.73333312 12.66666657 2.17333406l181.97333343 106.71999938a34.00000031 34.00000031 0 0 0 26.83999969-0.61333313l168.72-94.69333312L520.06666624 36.26666656 128.02666624 262.38666687l171.20000063 95.93333344c3.69333375 1.63999969 7.8 2.46666656 12.33333281 2.46666656 4.93333313 0 9.04000031-0.82666687 12.33333375-2.46666656l184.45333312-107.04c4.32-1.63999969 8.64-2.46666656 12.96-2.46666656" fill="#5BCA87" p-id="34141"></path><path d="M763.02666687 421.28a34.39999969 34.39999969 0 0 0-9.52000032 23.28l3 200.17333312a28.74666656 28.74666656 0 0 1-9.86666625 22.04000063l-4.54666687 4.38666656-167.49333375 103.39999969a34.89333375 34.89333375 0 0 0-10.39999969 7.56c-5.86666687 5.83999969-8.93333344 13.39999969-9.19999969 22.65333375l2.79999938 186.6 384-230.04-6.61333313-441.36-161.47999968 93.43999969a40.89333375 40.89333375 0 0 0-10.68 7.86666656" fill="#EC5D3E" p-id="34142"></path><path d="M292.4400003 667.69333344a30.40000031 30.40000031 0 0 1-9.86666718-21.58666688V444.68c0-8.44000031-3.29333344-16.13333344-9.87999938-23.13333375a55.63999969 55.63999969 0 0 0-10.8-7.71999938l-162.85333406-90.66666656V765.46666625l387.42666656 222.40000031V801.25333344c-0.21333375-9.25333312-3.40000031-16.75999969-9.57333281-22.51999969a31.81333312 31.81333312 0 0 0-10.8-7.40000063l-168.72-99.31999968-4.93333313-4.32z" fill="#2464F5" p-id="34143"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743357432" class="icon" viewBox="0 0 1228 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="37305" width="200" height="200"><path d="M779.7248 289.8944h37.4784l106.8032-106.8032 5.2736-45.3632A480.1024 480.1024 0 0 0 148.224 371.968c11.8784-4.864 25.088-5.632 37.4784-2.2528l213.6064-35.2256s10.9056-17.9712 16.4864-16.896a266.496 266.496 0 0 1 364.6976-27.6992h-0.768z" fill="#EA4335" p-id="37306"></path><path d="M1076.224 371.9168a481.28 481.28 0 0 0-145.1008-233.8304l-149.9136 149.9136a266.496 266.496 0 0 1 97.792 211.3536v26.624a133.4272 133.4272 0 1 1 0 266.8544h-266.752l-26.624 26.9824v160l26.624 26.624h266.752A347.0336 347.0336 0 0 0 1076.224 371.9168" fill="#4285F4" p-id="37307"></path><path d="M344.9856 1004.9536h266.8544v-213.6064H344.9856a132.608 132.608 0 0 1-55.0912-12.032l-37.4784 11.6224-107.5712 106.8032-9.3696 37.4784a345.1904 345.1904 0 0 0 209.5104 69.7344" fill="#34A853" p-id="37308"></path><path d="M344.9856 311.9616a347.0336 347.0336 0 0 0-209.5104 622.1312l154.7776-154.7776a133.4272 133.4272 0 1 1 176.5376-176.4864L621.568 448a346.6752 346.6752 0 0 0-276.5824-136.0384" fill="#FBBC05" p-id="37309"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743147068" class="icon" viewBox="0 0 1027 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32927" width="200" height="200"><path d="M402.3125 208.25c16.875-5.62500027 33.75-8.4375 50.625-11.24999973 19.68749973 25.3125 25.3125 59.0625 33.75 89.99999946 5.62500027 33.75 11.24999973 67.5 11.24999973 101.25 5.62500027 22.50000027 2.81249973 47.81250027 2.81250054 70.31250054s-2.81249973 42.1875 0 64.68749946c0 30.93750027-2.81249973 59.0625-2.81250054 90.00000027-5.62500027 19.68749973 0 39.37500027-5.62499946 59.0625-8.4375-2.81249973-11.24999973-11.24999973-14.06250027-16.875-33.75-50.625-64.68750027-101.25-92.8125-154.68749973-28.12499973-56.25000027-56.25000027-112.49999973-59.0625-177.1875-5.62500027-50.625 28.12499973-98.43750027 75.9375-115.31250027z m174.37500027-8.4375c5.62500027-2.81249973 8.4375 0 14.06249946 0 22.50000027 5.62500027 47.81250027 8.4375 67.5 22.50000027s36.56249973 33.75 42.1875 56.24999946c8.4375 28.12499973 5.62500027 59.0625 0 87.18750054-8.4375 36.56249973-25.3125 70.31249973-42.1875 104.06249973-5.62500027 11.24999973-11.24999973 19.68749973-16.875 30.93750027-8.4375 19.68749973-22.50000027 39.37500027-33.75 59.0625-19.68749973 33.75-39.37500027 61.87499973-59.0625 95.62499973-2.81249973 2.81249973-5.62500027 11.24999973-11.24999973 5.62500027-2.81249973-33.75-5.62500027-67.5-8.4375-104.06250054-5.62500027-44.99999973-2.81249973-87.18749973-2.81249973-132.18749946 2.81249973-28.12499973 2.81249973-59.0625 5.62499946-87.18750054 5.62500027-33.75 11.24999973-70.31249973 22.50000027-104.06249973 11.24999973-8.4375 11.24999973-25.3125 22.50000027-33.75zM222.31250027 309.5c2.81249973 0 5.62500027 5.62500027 8.4375 8.4375 81.56250027 106.87500027 154.68749973 219.375 213.74999973 340.31249973 5.62500027 8.4375 11.24999973 19.68749973 11.24999973 30.93750027-11.24999973-2.81249973-19.68749973-8.4375-28.12499973-14.06250027-53.43749973-28.12499973-106.87500027-59.0625-160.3125-89.99999946-19.68749973-14.06250027-39.37500027-28.12499973-56.25000027-42.1875-33.75-22.50000027-56.25000027-64.68750027-53.43749973-106.87500027 2.81249973-50.625 30.93750027-92.8125 64.68750027-126.5625z m582.1875 0h5.62499946c14.06250027 19.68749973 33.75 39.37500027 45.00000054 61.87499973 11.24999973 19.68749973 16.875 44.99999973 19.68749973 67.5 0 25.3125-8.4375 53.43749973-28.12499973 73.12500027-11.24999973 11.24999973-19.68749973 22.50000027-33.75 30.93750027-64.68750027 50.625-135 90.00000027-208.12500027 126.5625-11.24999973 5.62500027-19.68749973 14.06250027-33.75 14.06249946 2.81249973-14.06250027 11.24999973-28.12499973 16.875-39.37499946 47.81250027-98.43750027 106.87500027-191.25000027 171.56249973-281.25000054 14.06250027-14.06250027 30.93750027-33.75 45.00000054-53.43749973z m-705.93750027 225.00000027c2.81249973-2.81249973 0-8.4375 5.62500027-11.25000054 8.4375 2.81249973 16.875 8.4375 22.49999946 11.25000054 101.25 56.25000027 202.5 112.49999973 300.93750027 174.37499946 2.81249973 2.81249973 5.62500027 5.62500027 5.62500027 8.4375H239.18750027c-39.37500027 0-75.9375-16.875-104.06250054-44.99999973-22.50000027-25.3125-42.1875-59.0625-44.99999973-92.8125 5.62500027-14.06250027 2.81249973-28.12499973 8.4375-44.99999973z m810-2.81250054c5.62500027-2.81249973 14.06250027-8.4375 19.68749973-5.62499946 0 14.06250027 5.62500027 30.93750027 5.62500027 44.99999973-2.81249973 19.68749973-2.81249973 36.56249973-11.24999973 53.43749973-5.62500027 14.06250027-14.06250027 30.93750027-25.3125 42.1875-14.06250027 11.24999973-22.50000027 25.3125-39.37500027 33.75-16.875 14.06250027-42.1875 16.875-61.87499973 19.68750054h-202.5c2.81249973-2.81249973 2.81249973-5.62500027 5.62499946-8.4375 101.25-64.68750027 205.31249973-123.75000027 309.37500027-180.00000054zM242 748.25c36.56249973-2.81249973 73.12500027 0 109.6875-5.62500027 25.3125 0 53.43749973-2.81249973 78.74999973 0-5.62500027 11.24999973-19.68749973 16.875-28.12499973 22.50000027-28.12499973 19.68749973-56.25000027 36.56249973-87.18749973 50.625s-67.5 8.4375-92.8125-11.24999973c-19.68749973-14.06250027-36.56249973-36.56249973-47.81250027-56.25000027h67.5z m357.18749973-5.62500027c25.3125-2.81249973 50.625 0 78.75000054 0 33.75 2.81249973 70.31249973 0 106.87499946 5.62500027 25.3125 2.81249973 50.625 0 73.12500027 2.81249973-8.4375 16.875-22.50000027 33.75-36.56249973 47.81250027-22.50000027 22.50000027-56.25000027 33.75-87.18750054 28.12499973-28.12499973-8.4375-50.625-25.3125-75.9375-39.37499946-14.06250027-8.4375-25.3125-16.875-39.37499946-25.3125-8.4375-8.4375-14.06250027-11.24999973-19.68750054-19.68750054z" fill="#C71F1E" p-id="32928"></path></svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743099498" class="icon" viewBox="0 0 2030 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30911" width="200" height="200"><path d="M1669.09384945 432.48813594c15.51186469 21.69491531 27.11864437 51.1457625 25.81694906 112.86779625-17.46440719 193.78983094-181.96610156 316.14915281-345.76271156 316.14915281-177.24745781 0-302.04745781-127.56610125-377.111865-270.10169531C954.30062883 557.72203344 941.44639195 520.13559312 929.35147664 487.59322063c-23.701695 32.21694937-73.6542375 84.77288156-99.09152531 109.23389812A629.15254219 629.15254219 0 0 0 890.24639133 720.81355906c20.01355969 31.18644094 70.508475 101.74915219 142.69830562 157.61355938 65.62711875 50.60338969 128.59661062 81.68135625 199.81016906 99.41694937a487.81016906 487.81016906 0 0 0 354.65762719-50.00677968c128.81355937-73.81694906 219.60678-209.78983031 236.04067781-350.96949188-31.72881375-52.61016937-100.501695-114.76610156-154.35932156-144.37966031zM585.37859508 381.12542375a238.96949156 238.96949156 0 0 1 126.96949125 36.39322031c30.53559281-32.5423725 57.54576281-66.16949156 85.58644125-100.06779656A370.54915219 370.54915219 0 0 0 214.66673039 621.01694937a373.09830469 373.09830469 0 0 0 4.39322062 57.00339c10.3593225 12.79999969 114.71186438 4.12203375 130.98305063-10.52203406a242.49491531 242.49491531 0 0 1-4.55593219-46.48135594 239.89152563 239.89152563 0 0 1 239.89152563-239.89152562zM585.37859508 992a370.6576275 370.6576275 0 0 1-320.97627094-185.38305094c4.98983062-6.61694906 121.60000031-19.57966125 149.42372812-18.00678a239.07796594 239.07796594 0 0 0 171.55254282 72.29830594s147.52542375 11.33559281 285.39661031-97.62711937c0 0 51.85084781 73.87118625 91.66101656 101.64067781 0 0-130.00677938 127.07796656-377.05762687 127.07796656z" fill="#E1251B" p-id="30912"></path><path d="M1545.05317101 74.305085C1369.9209682 0.70508469 1199.0735107 22.18305125 1030.23283195 146.27796594 881.35147664 255.67457656 822.1243582 365.88474594 726.88367976 460.47457625c-113.89830469 113.13898313-199.32203344 151.21355906-267.06440718 176.81355938-69.96610125 26.46779625-167.59322062 44.52881344-240.75932157 40.51525406a371.41694906 371.41694906 0 0 0 45.34237313 128.59661062c186.79322063-3.19999969 318.48135562-74.68474594 403.41694875-126.48135656 74.2508475-45.28813594 185.97966094-159.34915219 244.61016937-233.22033844 94.21016906-118.56271219 216.94915219-231.97288125 329.16610219-267.55254281 156.7457625-49.62711844 309.1525425 19.79661 383.02372875 117.85762688 6.61694906 8.62372875 145.13898281 58.3593225 188.691525 95.78305125C1797.31079883 324.88135625 1721.8124932 148.61016969 1545.05317101 74.305085z" fill="#E1251B" p-id="30913" class="custom-cursor-on-hover"></path><path d="M1809.24300164 377.81694875A497.35593188 497.35593188 0 0 0 1526.39554383 286.91525469c-122.63050875 0-245.42372906 47.78305125-331.82372813 132.88135594-62.86101656 61.83050812-93.4508475 112.00000031-163.14576281 195.57966093a570.35932219 570.35932219 0 0 0 92.63728781 108.47457563c9.00339-13.12542375 59.66101688-84.82711875 97.62711844-135.21355875 48.81355969-64.10847469 98.38644094-115.36271156 173.5593225-145.03050844a350.04745781 350.04745781 0 0 1 427.498305 139.3355925A486.02033906 486.02033906 0 0 0 1809.24300164 377.81694875z" fill="#E1251B" p-id="30914" class="custom-cursor-on-hover"></path></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743116713" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31939" width="200" height="200"><path d="M718.5408 453.8368c-4.1984 0-8.3968-0.7168-12.5952-0.7168a103.8336 103.8336 0 0 0-67.8912 25.088 139.6736 139.6736 0 0 0 13.6192-60.3136 133.12 133.12 0 0 0-2.4576-25.7024 139.5712 139.5712 0 0 0-274.432 0 133.12 133.12 0 0 0-2.4576 25.7024 139.6736 139.6736 0 0 0 13.6192 60.3136 103.8336 103.8336 0 0 0-67.8912-25.088c-4.1984 0-8.3968 0-12.5952 0.7168a104.5504 104.5504 0 1 0 101.0688 159.4368 116.736 116.736 0 0 0 6.144-11.0592 105.1648 105.1648 0 0 0 4.9152-76.6976 62.6688 62.6688 0 0 1 27.3408 20.48l2.6624 3.8912a83.2512 83.2512 0 0 1 133.9392-3.3792l4.7104 6.8608 51.2 73.9328a84.0704 84.0704 0 0 0 62.464 34.6112h5.5296a104.5504 104.5504 0 0 0 12.5952-208.384z" fill="#E6002D" p-id="31940"></path><path d="M512 0a512 512 0 1 0 512 512A512 512 0 0 0 512 0z m200.8064 732.3648h-6.8608a152.4736 152.4736 0 0 1-120.5248-58.9824S509.2352 564.6336 508.0064 563.2a42.1888 42.1888 0 0 0-32.4608-15.2576 40.96 40.96 0 0 0-24.064 7.5776l122.88 175.4112a62.5664 62.5664 0 0 0 77.0048 20.48A97.5872 97.5872 0 0 1 593.92 783.5648a97.0752 97.0752 0 0 1-95.5392-39.1168l-49.4592-70.656a174.8992 174.8992 0 1 1-143.36-290.5088 209.7152 209.7152 0 0 1 413.9008 0 174.7968 174.7968 0 0 1-6.144 349.0816z" fill="#E6002D" p-id="31941"></path></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg t="1717746661932" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="60936" width="200" height="200"><path d="M29.696 541.696A30.72 30.72 0 0 0 59.52 512 452.16 452.16 0 0 1 512 59.456a439.68 439.68 0 0 1 225.664 61.44l16.704 10.432 7.04 4.608-3.84 7.488c-1.216 2.496-1.536 6.592-1.536 16.64 0 44.352 37.504 81.856 81.856 81.856s81.856-37.504 81.856-81.856a83.008 83.008 0 0 0-108.544-77.824l-8.96 3.136-4.48 1.792-4.096-2.624A520.768 520.768 0 0 0 512 0C230.4 0 0 230.4 0 512c0 15.68 14.08 29.696 29.696 29.696z m588.16-186.24c-13.056-93.568-37.12-164.224-62.336-203.584a383.808 383.808 0 0 0-43.776-2.752c-14.784 0-29.568 1.088-43.776 2.752-25.216 39.36-49.28 109.44-62.4 203.584z m221.696 0a365.504 365.504 0 0 0-203.52-184.96c21.312 51.392 36.608 115.456 45.888 184.96z m-497.472 0c9.28-69.504 24.576-133.568 45.952-184.96a365.504 365.504 0 0 0-203.584 184.96z m520.512 250.688a358.4 358.4 0 0 0 0-188.288H688c2.688 31.232 3.84 62.4 3.84 94.144 0 31.744-1.664 62.912-3.84 94.144z m-237.568 0c2.176-29.568 3.84-61.312 3.84-94.144 0-33.408-1.664-64.64-3.84-94.144H398.976c-2.752 29.568-3.84 61.312-3.84 94.144 0 33.408 1.664 64.64 3.84 94.144z m-289.024 0A1073.92 1073.92 0 0 1 332.16 512c0-31.744 1.152-62.912 3.84-94.144H161.408a358.4 358.4 0 0 0 0 188.288zM512 1024c281.6 0 512-230.4 512-512a30.72 30.72 0 0 0-29.696-29.696 30.72 30.72 0 0 0-29.76 29.696A452.16 452.16 0 0 1 512 964.544a439.68 439.68 0 0 1-225.664-61.44l-16.704-10.432-7.04-4.608 3.84-7.488c1.216-2.496 1.536-6.592 1.536-16.64 0-44.352-37.504-81.856-81.856-81.856s-81.856 37.504-81.856 81.856a83.008 83.008 0 0 0 108.544 77.824l8.96-3.136 4.48-1.792 4.096 2.624A520.768 520.768 0 0 0 512 1024z m-0.256-149.12c14.72 0 29.568-1.088 43.776-2.752 25.152-39.36 49.28-109.44 62.4-203.584H405.568c13.12 93.568 37.184 164.224 62.4 203.584 14.208 1.664 28.992 2.752 43.776 2.752z m124.224-21.312a365.504 365.504 0 0 0 203.584-185.024h-157.632c-9.28 69.504-24.576 133.568-45.952 184.96z m-247.936 0c-21.376-51.456-36.672-115.52-45.952-185.024H184.448a365.504 365.504 0 0 0 203.52 184.96z" fill="#448CF7" p-id="60937"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1 @@
<svg t="1717747391666" class="icon" viewBox="0 0 1333 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4694" width="200" height="200"><path d="M1018.488284 0.541672L1314.82427 0a18.458499 18.458499 0 0 1 13.083451 31.500282L894.070504 465.337499a18.458499 18.458499 0 0 1-26.104401 0L720.079363 317.450758a18.458499 18.458499 0 0 1 0-26.093983L1005.477751 5.937553a18.458499 18.458499 0 0 1 13.02095-5.406298zM1018.488284 1023.446662l296.335986 0.552088a18.458499 18.458499 0 0 0 13.083451-31.500282L894.070504 558.650834a18.458499 18.458499 0 0 0-26.104401 0L720.079363 706.547992a18.458499 18.458499 0 0 0 0 26.1044l285.398388 285.398388a18.458499 18.458499 0 0 0 13.02095 5.406298z" fill="#054496" p-id="4695"></path><path d="M821.319852 500.275312L327.34668 5.416715A18.437665 18.437665 0 0 0 314.29448 0H18.510582A18.479332 18.479332 0 0 0 5.437549 31.531532l466.566676 467.400018a18.500166 18.500166 0 0 1 0 26.146067L5.458382 992.425551a18.489749 18.489749 0 0 0 13.083451 31.562782h295.74223a18.437665 18.437665 0 0 0 13.052201-5.416715l493.973172-494.858596a16.593899 16.593899 0 0 0 0-23.448127z" fill="#87BB4C" p-id="4696"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg t="1717746166860" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="51952" width="200" height="200"><path d="M928.856 10.912H95.142C42.814 10.912 0 53.726 0 106.054v224.202h231.25v-36.64c0-28.418 23.046-51.454 51.464-51.454h458.58c28.42 0 51.456 23.036 51.456 51.456v36.64H1024V106.052c0-52.328-42.816-95.142-95.144-95.142zM792.75 730.38c0 28.42-23.036 51.466-51.456 51.466h-458.58c-28.418 0-51.464-23.046-51.464-51.466v-36.63H0v224.194c0 52.336 42.816 95.142 95.144 95.142h833.714c52.328 0 95.142-42.806 95.142-95.142V693.752H792.75v36.63zM0.006 627.628h231.25V396.38H0.006v231.25z m792.74 0h231.25V396.38H792.748v231.25z" fill="#E72F52" p-id="51953"></path></svg>

After

Width:  |  Height:  |  Size: 713 B

View File

@@ -0,0 +1 @@
<svg t="1717743207396" class="icon" viewBox="0 0 1402 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="35171" width="200" height="200"><path d="M1216.84017881 832.26669714c-22.01770438 22.42169837-66.05311315 55.95324845-143.01407896 55.95324845H600.84945441c143.01407897-139.88312044 264.01045355-257.44554135 275.01930505-268.65639054a860.50843905 860.50843905 0 0 1 65.9521143-61.60917245c55.04426026-50.29732444 98.9786702-55.8522496 137.45915242-55.85224962 55.04426026 0 98.9786702 22.32069952 137.56015263 55.95324846 76.96096581 72.71902281 76.96096581 201.4922929 0 274.2113157z m93.42374503-363.79711171a304.81390494 304.81390494 0 0 0-225.42897111-100.79664655c-77.06196465 0-143.01407897 27.97662354-203.51226695 72.71902278-22.01770438 22.52269721-54.94326142 44.84339811-82.51589098 78.47594568-21.91670555 22.32069952-494.89335097 492.5703818-494.89335097 492.57038317 27.47163072 5.55492517 60.59918544 5.55492517 87.96981869 5.55492517h599.42694635c44.03540877 0 76.96096581 0 110.08852053-5.55492517a335.11349765 335.11349765 0 0 0 203.41126672-89.58579738c126.45030092-123.21834493 126.45030092-330.265563 5.45392772-453.3829077z" fill="#00A3FF" p-id="35172"></path><path d="M528.73642327 435.44302817c-60.80118311-45.14639325-121.70336508-67.66909045-193.51339969-67.66909045a306.02588827 306.02588827 0 0 0-226.74195328 101.60463453 333.80051551 333.80051551 0 0 0 5.55492517 462.97777956c55.24625795 50.80231726 110.59351474 78.98093847 176.94962165 84.63686387l127.1572928-124.22833194h-71.91103484c-71.91103347-5.65592402-116.14843991-28.27962006-143.72106809-56.45824128a206.03723244 206.03723244 0 0 1-5.55492656-282.29120635c38.68247989-39.49046924 82.91988635-56.45824127 138.26714315-56.45824267 33.12755473 0 82.91988635 5.65592402 132.71221657 56.55924012 22.11870323 22.52269721 82.91988635 67.66909045 105.03858956 90.29278788h5.55492518l82.91988496-84.73786132v-5.65592401c-38.68247989-39.49046924-99.58466186-90.29278651-132.71221658-118.57240794" fill="#00C8DC" p-id="35173"></path><path d="M1114.32655611 290.00498256A436.81913102 436.81913102 0 0 0 705.58504746 7.00678432c-218.3590661 0-391.87473546 160.8908378-425.507283 360.66615456 16.76577435 0 33.63254755-5.45392634 55.95324845-5.45392634 22.42169837 0 50.49932212 5.45392634 72.82002164 5.45392634 27.97662354-138.67113711 151.19496845-238.55879549 296.73401291-238.55879412a310.06583359 310.06583359 0 0 1 279.96823856 177.55561331s5.55492517 5.55492517 5.55492517 0c39.18747409-5.55492517 84.03087084-16.66477551 123.21834492-16.66477551 0 5.55492517 0 5.55492517 0 0" fill="#006EFF" p-id="35174"></path></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743207396" class="icon" viewBox="0 0 1402 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="35171" width="200" height="200"><path d="M1216.84017881 832.26669714c-22.01770438 22.42169837-66.05311315 55.95324845-143.01407896 55.95324845H600.84945441c143.01407897-139.88312044 264.01045355-257.44554135 275.01930505-268.65639054a860.50843905 860.50843905 0 0 1 65.9521143-61.60917245c55.04426026-50.29732444 98.9786702-55.8522496 137.45915242-55.85224962 55.04426026 0 98.9786702 22.32069952 137.56015263 55.95324846 76.96096581 72.71902281 76.96096581 201.4922929 0 274.2113157z m93.42374503-363.79711171a304.81390494 304.81390494 0 0 0-225.42897111-100.79664655c-77.06196465 0-143.01407897 27.97662354-203.51226695 72.71902278-22.01770438 22.52269721-54.94326142 44.84339811-82.51589098 78.47594568-21.91670555 22.32069952-494.89335097 492.5703818-494.89335097 492.57038317 27.47163072 5.55492517 60.59918544 5.55492517 87.96981869 5.55492517h599.42694635c44.03540877 0 76.96096581 0 110.08852053-5.55492517a335.11349765 335.11349765 0 0 0 203.41126672-89.58579738c126.45030092-123.21834493 126.45030092-330.265563 5.45392772-453.3829077z" fill="#00A3FF" p-id="35172"></path><path d="M528.73642327 435.44302817c-60.80118311-45.14639325-121.70336508-67.66909045-193.51339969-67.66909045a306.02588827 306.02588827 0 0 0-226.74195328 101.60463453 333.80051551 333.80051551 0 0 0 5.55492517 462.97777956c55.24625795 50.80231726 110.59351474 78.98093847 176.94962165 84.63686387l127.1572928-124.22833194h-71.91103484c-71.91103347-5.65592402-116.14843991-28.27962006-143.72106809-56.45824128a206.03723244 206.03723244 0 0 1-5.55492656-282.29120635c38.68247989-39.49046924 82.91988635-56.45824127 138.26714315-56.45824267 33.12755473 0 82.91988635 5.65592402 132.71221657 56.55924012 22.11870323 22.52269721 82.91988635 67.66909045 105.03858956 90.29278788h5.55492518l82.91988496-84.73786132v-5.65592401c-38.68247989-39.49046924-99.58466186-90.29278651-132.71221658-118.57240794" fill="#00C8DC" p-id="35173"></path><path d="M1114.32655611 290.00498256A436.81913102 436.81913102 0 0 0 705.58504746 7.00678432c-218.3590661 0-391.87473546 160.8908378-425.507283 360.66615456 16.76577435 0 33.63254755-5.45392634 55.95324845-5.45392634 22.42169837 0 50.49932212 5.45392634 72.82002164 5.45392634 27.97662354-138.67113711 151.19496845-238.55879549 296.73401291-238.55879412a310.06583359 310.06583359 0 0 1 279.96823856 177.55561331s5.55492517 5.55492517 5.55492517 0c39.18747409-5.55492517 84.03087084-16.66477551 123.21834492-16.66477551 0 5.55492517 0 5.55492517 0 0" fill="#006EFF" p-id="35174"></path></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1 @@
<svg t="1717745876738" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="50950" width="200" height="200"><path d="M494.272 0L347.968 89.088l146.304 86.4V0z m43.904 175.552l146.304-87.488L538.176 0v175.552z m0 731.392l146.304-87.872-146.304-87.68v175.552z m-43.904 0V731.52l-146.304 88.128 146.304 87.36m409.6-205.696L757.568 614.4v175.552l146.304-88.704M289.472 614.4l-146.304 87.68 146.304 87.872V614.4z m468.096-73.152l146.304-88.128-146.304-87.424v175.552z m-468.096 0V365.696L143.168 453.632l146.304 87.68m614.4-336.768L757.568 117.12V292.48l146.304-88m-614.4-87.488l-146.304 88.32 146.304 87.168V117.12z m629.056 307.2V248.704l-146.304 88.256 146.304 87.296m-789.952 0l146.304-88.064-146.304-87.488v175.552z m146.304 146.432L128.576 482.752v175.552l146.304-87.616m497.344 0.192l146.304 87.424V482.752L772.224 570.88m-438.848 43.52v175.552l146.304-88L333.376 614.4m380.352 175.552V614.4l-146.304 87.68 146.304 87.872M333.376 307.2l146.304-88.128-146.304-87.424V307.2z m380.352 541.248l-146.304 88.768L713.728 1024v-175.552z m0-555.904V131.648L567.424 212.672l146.304 79.872" fill="#57B382" p-id="50951"></path><path d="M494.272 0v175.552L347.968 89.088 494.272 0m43.904 175.552V0l146.304 88.064-146.304 87.488m0 731.392V731.52l146.304 87.68-146.304 87.808m-43.904 0l-146.304-87.36 146.304-88.128v175.488z m409.6-205.696l-146.304 88.704V614.4l146.304 86.848M289.472 614.4v175.552L143.168 702.08 289.472 614.4m468.096-73.152V365.696l146.304 87.424-146.304 88.128m-468.096 0L143.168 453.632l146.304-87.936v175.552z m614.4-336.64L757.568 292.48V117.12l146.304 87.488m-614.4-87.488V292.48L143.168 205.44l146.304-88.384m629.056 307.2l-146.304-87.296 146.304-88.32V424.32z m-789.952 0V248.704l146.304 87.488-146.304 88.064m146.304 146.432l-146.304 87.616V482.752l146.304 87.936m497.344 0.192l146.304-88.128v175.552L772.224 570.88m-438.848 43.52l146.304 87.552-146.304 88V614.4z m380.352 175.552l-146.304-87.936L713.728 614.4v175.552zM333.376 307.2V131.648l146.304 87.424L333.376 307.2m380.352 541.248V1024l-146.304-86.784 146.304-88.768m0-555.904L567.424 212.672l146.304-81.024v160.896z" fill="#57B382" p-id="50952" class="custom-cursor-on-hover"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1 @@
<svg t="1717746510567" class="icon" viewBox="0 0 1351 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="55261" width="200" height="200"><path d="M416.92885 824.173591c-56.901379 30.927289-130.232881 35.397249-203.685192-3.745101a159.190971 159.190971 0 0 1-65.35806-64.754011c-79.130368-147.025432 15.826074-294.775723 150.770533-309.635319 7.369393-0.845668 14.738786-1.328907 22.228989-1.328907 59.317574 0 112.353042 25.732471 149.320817 66.324538a249.50832 249.50832 0 0 1-26.457329-111.628184c0-16.188503 1.691336-31.893767 4.590769-47.236601a320.508194 320.508194 0 0 0-127.575067-26.45733c-6.161296 0-12.201782 0.604049-18.242268 0.966478C83.252396 339.122556-77.424535 571.198033 39.036038 806.897801c25.370042 51.344132 66.686967 93.748345 117.668669 119.601625 115.614904 58.713525 230.50495 50.377654 319.420907 0.966478 31.531338-17.51741 38.659111-59.921622 15.946883-88.070288-0.241619-0.362429-0.483239-0.604049-0.724858-0.966477-18.000649-22.349799-49.290367-27.907046-74.418789-14.255548z" fill="#62B0DB" p-id="55262"></path><path d="M443.869418 399.527417c0-16.188503 1.691336-31.893767 4.590769-47.236602 23.557896-123.709156 137.602274-215.403735 270.855398-203.081143 24.041135 2.174575 46.994982 8.094251 68.740732 16.792551 50.377654-17.879839 104.3796-28.148665 160.91855-28.148665 16.550932 0 32.981054 0.845668 49.169557 2.537004C928.558024 59.448048 827.561096 5.929341 715.328864 0.492904c-204.65167-10.027207-377.167953 134.098792-412.565202 326.18625-4.34915 23.678706-6.886154 47.96146-6.886154 72.848263 0 15.826074 1.208097 31.289718 2.899433 46.511743 7.369393-0.845668 14.738786-1.328907 22.228989-1.328907 59.317574 0 112.473852 25.732471 149.320817 66.324538-16.792551-33.464293-26.457329-71.277736-26.457329-111.507374z" fill="#8FC361" p-id="55263"></path><path d="M1114.725806 778.386706S880.717374 806.172943 749.034777 723.176663c-66.928586-42.162593-43.73312-127.937496 50.015225-152.461869 63.666724-16.671742 302.024306-14.376357 457.989657 13.04745 156.086161 27.423807 124.675634 166.717417-142.313853 194.624462zM1316.961282 782.615047s-67.170206 87.22462-241.981874 113.561139c-72.727453 10.993685-135.06527 13.289069-224.102035 0 0 0-70.311258-18.967126-82.392231 35.638868-14.376357 65.23725 157.656688 128.420735 327.998396 62.458627 172.274664-66.566157 220.477743-211.658634 220.477744-211.658634z" fill="#ADD079" p-id="55264"></path><path d="M1341.244036 531.089205s-44.457978-76.955793-241.136206-131.924217c-195.228511-54.605995-295.86301 15.463644-346.240665-30.202431-24.886803-22.470608-5.194818-77.318222 23.557896-101.480167 46.994982-39.504779 176.744624-83.600328 323.407627-20.416843 214.558067 92.540247 240.411348 284.023657 240.411348 284.023658z" fill="#A2CB70" p-id="55265"></path><path d="M783.948786 456.791225s234.008432-27.786236 365.69103 55.210044c66.928586 42.162593 43.73312 127.937496-50.015225 152.461869-63.666724 16.671742-302.024306 14.376357-457.989658-13.04745-156.086161-27.302997-124.675634-166.717417 142.313853-194.624463z m11.839353 535.42869c146.663003 63.183485 276.412645 19.208746 323.407627-20.416843 28.631904-24.161944 48.444699-78.888749 23.557896-101.480167-50.377654-45.666075-151.012153 24.403564-346.240665-30.20243-196.678228-54.968424-241.136206-131.924217-241.136206-131.924217s25.97409 191.60422 240.411348 284.023657zM579.780355 456.791225s67.170206-87.22462 241.981874-113.561139c72.727453-10.993685 135.06527-13.289069 224.102036 0 0 0 70.311258 18.967126 82.39223-35.638868 14.376357-65.23725-157.656688-128.420735-327.998396-62.458626-172.274664 66.566157-220.477743 211.658634-220.477744 211.658633z" fill="#4885BE" p-id="55266"></path></svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1 @@
<svg t="1717747284124" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2464" width="200" height="200"><path d="M838.4 416c-6.4-70.4-64-115.2-134.4-115.2-19.2 0-38.4 6.4-51.2 6.4-44.8-51.2-115.2-83.2-185.6-83.2-89.6 0-172.8 51.2-211.2 128h-12.8C115.2 352 19.2 448 12.8 576s96 224 224 230.4h294.4c25.6 0 44.8-19.2 44.8-44.8s-19.2-44.8-44.8-44.8H249.6c-70.4 0-134.4-57.6-134.4-128s51.2-128 121.6-134.4c12.8 0 25.6 0 38.4 6.4h6.4l25.6 6.4C320 390.4 390.4 320 473.6 320c57.6 0 108.8 32 140.8 83.2 6.4 6.4 6.4 12.8 6.4 19.2l6.4-6.4c19.2-19.2 51.2-19.2 70.4-19.2 44.8 0 70.4 38.4 70.4 76.8 0 12.8-6.4 25.6-6.4 38.4 12.8 6.4 19.2 19.2 38.4 19.2 6.4-6.4 19.2-12.8 19.2-19.2 64 6.4 115.2 57.6 108.8 128-6.4 57.6-57.6 108.8-121.6 108.8-51.2 0-96-32-115.2-83.2h51.2c6.4 0 12.8-6.4 12.8-12.8s0-6.4-6.4-6.4l-96-128c-6.4-6.4-12.8-12.8-19.2-6.4h-6.4l-96 128c-6.4 6.4-6.4 19.2 6.4 19.2 6.4 0 6.4 6.4 6.4 6.4h57.6c19.2 115.2 128 192 243.2 172.8 115.2-19.2 192-128 172.8-243.2-25.6-96-89.6-160-179.2-179.2z" fill="#F3A22F" p-id="2465"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1 @@
<svg t="1717743387740" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="38378" width="200" height="200"><path d="M912.192 0C973.952 0 1024 50.048 1024 111.808v800.384c0 61.76-50.048 111.808-111.808 111.808H111.808A111.808 111.808 0 0 1 0 912.192V111.808C0 50.048 50.048 0 111.808 0h800.384zM672 185.152c-23.936-1.088-30.912 6.144-30.656 30.4 1.28 116.864 0.832 233.728 0.384 350.592-0.128 37.76 2.368 75.52-3.392 113.216-6.912 45.184-33.92 71.68-76.16 82.88-52.672 13.952-107.136-1.728-131.2-36.736-17.6-25.728-19.84-55.552-19.904-85.632-0.192-120.32-0.448-240.64 0.192-360.96 0.128-18.432-4.032-26.24-24.448-26.24-20.416 0.128-27.136 8-24.128 26.432 4.608 28.16-8.256 37.12-34.24 33.152-23.168-3.456-35.2 5.248-30.912 29.952 5.312 30.4-6.912 42.304-37.248 37.248-20.416-3.392-30.72 2.304-30.144 26.88 1.6 79.04-0.512 158.08 1.024 237.184 2.24 113.088 79.104 204.8 189.632 230.912a462.08 462.08 0 0 0 187.136 5.632c133.12-23.04 214.08-117.824 214.4-252.416V435.2c0-74.496-0.896-148.992 0.448-223.424 0.448-21.76-6.4-27.264-27.2-26.56-41.152 1.536-82.432 1.92-123.52 0z m-422.784 133.76c-16.832-3.84-18.752 7.04-19.2 21.568-0.384 15.296 3.968 22.208 20.736 22.464 18.496 0.32 22.528-7.36 22.528-24.128 0-16.96-7.296-22.144-24.064-19.84z m73.6-65.92l-4.992 0.448c-17.792-2.816-20.928 7.04-20.8 22.272 0 15.104 6.592 19.456 20.864 19.648 15.68 0.256 22.72-4.224 22.656-21.248 0-17.024-6.72-23.04-22.72-20.672z m-134.464 3.904c-10.88 0.384-12.288 7.36-12.608 16-0.448 11.008 2.88 17.664 15.168 16 12.672 1.216 15.168-6.144 14.912-16.768-0.32-11.84-6.656-15.552-17.472-15.232z m68.032-3.648c-11.776 0.32-19.904 1.664-19.52 16.512 0.32 11.776 1.472 19.968 16.448 19.328 11.52-0.448 21.12-0.896 18.944-16.192 1.28-11.904-0.96-20.096-15.872-19.648z m126.592-68.032c-17.088-0.32-20.8 6.848-20.928 22.336-0.128 16.96 6.848 22.656 22.592 20.352 17.664 2.88 20.288-7.04 20.736-21.952 0.512-17.28-7.232-20.48-22.4-20.736z m-58.816 7.104l-4.736 0.32c-12.48-0.96-22.272-0.064-22.336 16.96 0 15.872 7.552 19.072 21.056 18.752 12.352-0.256 22.08-0.64 22.208-17.6 0.128-16.128-7.616-19.648-20.928-18.112z m-137.6 6.016c-9.088-0.128-10.816 5.632-10.432 13.056 0.384 9.088 6.464 10.304 13.632 9.792 7.872-0.64 11.776-4.928 11.008-12.992-0.832-8.832-7.232-9.792-14.208-9.856z m65.728-5.632h-3.584c-11.328 0.32-11.392 7.936-11.456 16.128 0 10.88 6.976 12.544 15.616 12.096 10.368 0.512 12.928-5.248 13.184-14.528 0.32-13.056-7.552-13.952-17.28-13.696z m66.816-55.68c-7.808 0.256-16.832-0.96-17.472 10.56-0.704 11.712 6.592 15.616 17.024 15.744 9.152 0.128 15.424-2.944 15.36-13.312 0.832-11.008-5.952-13.312-14.912-12.992z m-63.68 0.448c-7.936-0.128-12.352 3.072-12.288 11.456 0.128 7.424 2.752 12.8 11.008 13.376 8.32 0.512 11.712-4.288 12.032-12.032 0.64-7.808-2.176-12.608-10.752-12.8z" fill="#3860F4" p-id="38379" class="custom-cursor-on-hover"></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<svg t="1717747341803" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3484" width="200" height="200"><path d="M813.6 65H451.9c-81.8 0-144.7 62.7-144.7 144.1v100.4h-97.5C127.9 309.5 65 372.3 65 453.7v360.5c0 81.4 62.8 144.2 144.7 144.2h358.6c81.8 0 144.7-62.7 144.7-144.2V710.7h100.6c81.8 0 144.7-62.7 144.7-144.2V206c3.2-75.3-62.9-141-144.7-141z m37.8 504.6c-0.4 20.6-17.1 37.3-37.7 37.5H609.2V814c-0.3 20.7-17 37.3-37.7 37.6H209.8c-20.7-0.2-37.4-16.9-37.8-37.6V453.6c0.3-20.7 17.1-37.4 37.8-37.6h204.4V209.1c0-21.9 18.9-37.5 37.8-37.5h361.7c20.6 0.3 37.3 16.9 37.7 37.5v360.5z m0 0" fill="#8FBE48" p-id="3485"></path><path d="M514.8 268.7v235H272.7V745h242.2V510H757V268.7H514.8z m0 0" fill="#F2B624" p-id="3486"></path></svg>

After

Width:  |  Height:  |  Size: 773 B

View File

@@ -0,0 +1 @@
<svg t="1717743222537" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="36225" width="200" height="200"><path d="M830.537143 476.525714L706.413714 961.828571a8.484571 8.484571 0 0 0 0 4.022858 9.069714 9.069714 0 0 0 8.996572 6.948571h248.100571a9.069714 9.069714 0 0 0 9.069714-10.971429l-124.708571-485.302857a9.142857 9.142857 0 0 0-17.334857 0M147.602286 586.386286L51.492571 961.828571a8.996571 8.996571 0 0 0 9.069715 10.971429h191.488a9.142857 9.142857 0 0 0 7.241143-3.291429 8.777143 8.777143 0 0 0 1.755428-3.657142 8.484571 8.484571 0 0 0 0-4.022858L164.864 586.459429a8.777143 8.777143 0 0 0-3.291429-4.534858 9.216 9.216 0 0 0-10.752 0 8.777143 8.777143 0 0 0-3.218285 4.534858" fill="#00E5E5" p-id="36226"></path><path d="M317.074286 275.748571l-175.104 686.08a8.777143 8.777143 0 0 0 1.682285 7.460572c1.682286 2.194286 4.242286 3.437714 6.948572 3.437714h350.354286a9.069714 9.069714 0 0 0 9.069714-10.898286L334.409143 275.748571a8.777143 8.777143 0 0 0-3.291429-4.608 9.216 9.216 0 0 0-10.752 0 8.777143 8.777143 0 0 0-3.291428 4.608" fill="#006EFF" p-id="36227"></path><path d="M619.227429 57.490286A8.777143 8.777143 0 0 0 615.862857 52.955429a9.216 9.216 0 0 0-10.752 0 8.777143 8.777143 0 0 0-3.291428 4.534857L362.569143 961.828571a8.996571 8.996571 0 0 0 8.996571 10.898286h478.354286a9.216 9.216 0 0 0 9.142857-6.875428 8.996571 8.996571 0 0 0 0-4.022858L619.154286 57.490286z" fill="#006EFF" p-id="36228"></path><path d="M443.318857 375.442286L291.474286 961.828571a9.069714 9.069714 0 0 0 9.069714 10.971429l302.957714 0.073143a9.216 9.216 0 0 0 7.314286-3.364572 9.142857 9.142857 0 0 0 1.828571-7.68L460.653714 375.442286a9.216 9.216 0 0 0-8.704-6.290286 9.216 9.216 0 0 0-8.630857 6.290286" fill="#00E5E5" p-id="36229"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1 @@
<svg t="1717746226986" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="52962" width="200" height="200"><path d="M527.36 102.4H450.048L350.0032 266.8544h68.9152L25.6 921.6h263.68l96.256-164.7616H317.1328l299.7248-489.984L527.36 102.4z m124.4672 211.7632l-233.1136 387.584h257.6896l32.512 55.0912H455.168L364.4928 921.6H998.4l-183.7056-327.168H681.472l27.3408-58.0608h69.12l-126.1568-222.208z" fill="#2558E6" p-id="52963"></path></svg>

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,312 +0,0 @@
<template>
<AutoDataForm
v-if="!loading"
ref="AutoDataForm"
v-bind="$data"
@submit="confirm"
/>
</template>
<script>
import AutoDataForm from '@/components/AutoDataForm'
import { UpdateToken, UploadSecret } from '@/components/FormFields'
import Select2 from '@/components/FormFields/Select2'
import AssetSelect from '@/components/AssetSelect'
import { encryptPassword } from '@/utils/crypto'
import { Required, RequiredChange } from '@/components/DataForm/rules'
import AutomationParamsForm from '@/views/assets/Platform/AutomationParamsSetting.vue'
export default {
name: 'AccountCreateForm',
components: {
AutoDataForm
},
props: {
asset: {
type: Object,
default: null
},
platform: {
type: Object,
default: null
},
account: {
type: Object,
default: () => ({})
},
// 默认组件密码加密
encryptPassword: {
type: Boolean,
default: true
},
addTemplate: {
type: Boolean,
default: false
}
},
data() {
return {
loading: true,
usernameChanged: false,
defaultPrivilegedAccounts: ['root', 'administrator'],
iPlatform: {
automation: {},
su_enabled: false,
protocols: [
{
name: 'ssh',
secret_types: ['password', 'ssh_key', 'token', 'access_key']
}
]
},
url: '/api/v1/accounts/accounts/',
form: Object.assign({ 'on_invalid': 'error' }, this.account || {}),
encryptedFields: ['secret'],
fields: [
[this.$t('assets.Asset'), ['assets']],
[this.$t('accounts.AccountTemplate'), ['template']],
[this.$t('common.Basic'), ['name', 'username', 'privileged', 'su_from', 'su_from_username']],
[this.$t('assets.Secret'), [
'secret_type', 'secret', 'ssh_key',
'token', 'access_key', 'passphrase'
]],
[this.$t('common.Other'), ['push_now', 'params', 'on_invalid', 'is_active', 'comment']]
],
fieldsMeta: {
assets: {
rules: [Required],
component: AssetSelect,
label: this.$t('assets.Asset'),
el: {
multiple: false
},
hidden: () => {
return this.platform || this.asset
}
},
template: {
component: Select2,
rules: [Required],
el: {
multiple: false,
ajax: {
url: '/api/v1/accounts/account-templates/',
transformOption: (item) => {
return { label: item.name, value: item.id }
}
}
},
hidden: () => {
return this.platform || this.asset || !this.addTemplate
}
},
on_invalid: {
rules: [Required],
label: this.$t('accounts.AccountPolicy'),
helpText: this.$t('accounts.BulkCreateStrategy'),
hidden: () => {
return this.platform || this.asset
}
},
name: {
rules: [RequiredChange],
on: {
input: ([value], updateForm) => {
if (!this.usernameChanged) {
if (!this.account?.name) {
updateForm({ username: value })
}
const maybePrivileged = this.defaultPrivilegedAccounts.includes(value)
if (maybePrivileged) {
updateForm({ privileged: true })
}
}
}
},
hidden: () => {
return this.addTemplate
}
},
username: {
el: {
disabled: !!this.account?.name
},
on: {
input: ([value], updateForm) => {
this.usernameChanged = true
},
change: ([value], updateForm) => {
const maybePrivileged = this.defaultPrivilegedAccounts.includes(value)
if (maybePrivileged) {
updateForm({ privileged: true })
}
}
},
hidden: () => {
return this.addTemplate
}
},
privileged: {
hidden: () => {
return this.addTemplate
}
},
su_from: {
component: Select2,
hidden: (formValue) => {
return !this.asset?.id || !this.iPlatform.su_enabled
},
el: {
multiple: false,
clearable: true,
ajax: {
url: `/api/v1/accounts/accounts/su-from-accounts/?account=${this.account?.id || ''}&asset=${this.asset?.id || ''}`,
transformOption: (item) => {
return { label: `${item.name}(${item.username})`, value: item.id }
}
}
}
},
su_from_username: {
label: this.$t('assets.UserSwitchFrom'),
hidden: (formValue) => {
return this.platform || this.asset
}
},
secret: {
label: this.$t('assets.Password'),
component: UpdateToken,
hidden: (formValue) => formValue.secret_type !== 'password' || this.addTemplate
},
ssh_key: {
label: this.$t('assets.PrivateKey'),
component: UploadSecret,
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.addTemplate
},
passphrase: {
label: this.$t('assets.Passphrase'),
component: UpdateToken,
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || this.addTemplate
},
token: {
label: this.$t('assets.Token'),
component: UploadSecret,
hidden: (formValue) => formValue.secret_type !== 'token' || this.addTemplate
},
access_key: {
id: 'access_key',
label: this.$t('assets.AccessKey'),
component: UploadSecret,
hidden: (formValue) => formValue.secret_type !== 'access_key' || this.addTemplate
},
secret_type: {
type: 'radio-group',
options: [],
hidden: () => {
return this.addTemplate
}
},
push_now: {
helpText: this.$t('accounts.AccountPush.WindowsPushHelpText'),
hidden: () => {
const automation = this.iPlatform.automation || {}
return !automation.push_account_enabled ||
!automation.ansible_enabled ||
!this.$hasPerm('accounts.push_account') ||
this.addTemplate
}
},
params: {
label: this.$t('assets.PushParams'),
component: AutomationParamsForm,
el: {
method: this.asset?.auto_config?.push_account_method
},
hidden: (formValue) => {
const automation = this.iPlatform.automation || {}
return !formValue.push_now ||
!automation.push_account_enabled ||
!automation.ansible_enabled ||
!this.$hasPerm('accounts.push_account') ||
this.addTemplate
}
},
comment: {
hidden: () => {
return this.addTemplate
}
}
},
hasSaveContinue: false
}
},
async mounted() {
try {
await this.getPlatform()
this.setSecretTypeOptions()
} finally {
this.loading = false
}
},
methods: {
async getPlatform() {
if (this.platform) {
this.iPlatform = this.platform
}
if (!this.asset || !this.asset.platform) {
return
}
const platformId = this.asset.platform.id
this.iPlatform = await this.$axios.get(`/api/v1/assets/platforms/${platformId}/`)
},
setSecretTypeOptions() {
const choices = [
{
label: this.$t('assets.Password'),
value: 'password'
},
{
label: this.$t('assets.SSHKey'),
value: 'ssh_key'
},
{
label: this.$t('assets.Token'),
value: 'token'
},
{
label: this.$t('assets.AccessKey'),
value: 'access_key'
}
]
const secretTypes = []
this.iPlatform.protocols?.forEach(p => {
secretTypes.push(...p['secret_types'])
})
if (!this.form?.secret_type) {
this.form.secret_type = secretTypes[0]
}
this.fieldsMeta.secret_type.options = choices.filter(item => {
return secretTypes.indexOf(item.value) > -1
})
},
confirm(form) {
const secretType = form.secret_type || ''
if (secretType !== 'password') {
form.secret = form[secretType]
}
form.secret = this.encryptPassword ? encryptPassword(form.secret) : form.secret
if (!form.secret) {
delete form['secret']
}
if (this.account?.name) {
this.$emit('edit', form)
} else {
this.$emit('add', form)
}
}
}
}
</script>
<style scoped>
</style>

View File

@@ -1,430 +0,0 @@
<template>
<div>
<ListTable ref="ListTable" :header-actions="headerActions" :table-config="tableConfig" />
<ViewSecret
v-if="showViewSecretDialog"
:account="account"
:url="secretUrl"
:visible.sync="showViewSecretDialog"
/>
<UpdateSecretInfo
v-if="showUpdateSecretDialog"
:account="account"
:visible.sync="showUpdateSecretDialog"
@updateAuthDone="onUpdateAuthDone"
/>
<AccountCreateUpdate
v-if="showAddDialog"
:account="account"
:asset="iAsset"
:title="accountCreateUpdateTitle"
:visible.sync="showAddDialog"
@add="addAccountSuccess"
@bulk-create-done="showBulkCreateResult($event)"
/>
<AccountCreateUpdate
v-if="showAddTemplateDialog"
:account="account"
:add-template="true"
:asset="iAsset"
:title="accountCreateUpdateTitle"
:visible.sync="showAddTemplateDialog"
@add="addAccountSuccess"
@bulk-create-done="showBulkCreateResult($event)"
/>
<ResultDialog
v-if="showResultDialog"
:result="createAccountResults"
:visible.sync="showResultDialog"
/>
</div>
</template>
<script>
import ListTable from '@/components/ListTable/index'
import { ActionsFormatter } from '@/components/TableFormatters'
import ViewSecret from './ViewSecret'
import UpdateSecretInfo from './UpdateSecretInfo'
import AccountCreateUpdate from './AccountCreateUpdate'
import { connectivityMeta } from './const'
import { openTaskPage } from '@/utils/jms'
import ResultDialog from './BulkCreateResultDialog.vue'
export default {
name: 'AccountListTable',
components: {
ResultDialog,
ListTable,
UpdateSecretInfo,
ViewSecret,
AccountCreateUpdate
},
props: {
url: {
type: String,
required: true
},
exportUrl: {
type: String,
default() {
return this.url.replace('/accounts/accounts/', '/accounts/account-secrets/')
}
},
hasLeftActions: {
type: Boolean,
default: false
},
otherActions: {
type: Array,
default: null
},
hasClone: {
type: Boolean,
default: false
},
asset: {
type: Object,
default: null
},
columns: {
type: Array,
default: () => []
},
hasExport: {
type: Boolean,
default: true
},
hasImport: {
type: Boolean,
default: true
},
columnsMeta: {
type: Object,
default: () => {
}
},
columnsDefault: {
type: Array,
default: () => ([
'name', 'username', 'asset', 'privileged',
'secret_type', 'date_updated'
])
},
headerExtraActions: {
type: Array,
default: () => []
}
},
data() {
const vm = this
return {
showViewSecretDialog: false,
showUpdateSecretDialog: false,
showResultDialog: false,
showAddDialog: false,
showAddTemplateDialog: false,
createAccountResults: [],
accountCreateUpdateTitle: this.$t('assets.AddAccount'),
iAsset: this.asset,
account: {},
secretUrl: '',
tableConfig: {
url: this.url,
permissions: {
app: 'assets',
resource: 'account'
},
extraQuery: {
order: '-date_updated'
},
columnsExclude: ['spec_info'],
columns: [
'name', 'username', 'asset', 'privileged',
'secret_type', 'source', 'actions'
],
columnsShow: {
min: ['name', 'username', 'actions'],
default: this.columnsDefault
},
columnsMeta: {
name: {
formatter: function(row) {
const to = {
name: 'AssetAccountDetail',
params: { id: row.id }
}
if (vm.$hasPerm('accounts.view_account')) {
return <router-link to={to}>{row.name}</router-link>
} else {
return <span>{row.name}</span>
}
}
},
asset: {
label: this.$t('assets.Asset'),
formatter: function(row) {
const to = {
name: 'AssetDetail',
params: { id: row.asset.id }
}
if (vm.$hasPerm('assets.view_asset')) {
return <router-link to={to}>{row.asset.name}</router-link>
} else {
return <span>{row.asset.name}</span>
}
}
},
secret_type: {
width: '100px',
formatter: function(row) {
return row.secret_type.label
}
},
source: {
formatter: function(row) {
return row.source.label
}
},
has_secret: {
width: '100px',
formatterArgs: {
showFalse: false
}
},
privileged: {
label: this.$t('assets.Privileged'),
width: '120px',
formatterArgs: {
showText: false,
showFalse: false
}
},
connectivity: connectivityMeta,
actions: {
formatter: ActionsFormatter,
formatterArgs: {
hasUpdate: false, // can set function(row, value)
hasDelete: false, // can set function(row, value)
hasClone: this.hasClone,
moreActionsTitle: this.$t('common.More'),
extraActions: [
{
name: 'View',
title: this.$t('common.View'),
can: this.$hasPerm('accounts.view_accountsecret'),
type: 'primary',
callback: ({ row }) => {
// debugger
vm.secretUrl = `/api/v1/accounts/account-secrets/${row.id}/`
vm.account = row
vm.showViewSecretDialog = false
setTimeout(() => {
vm.showViewSecretDialog = true
})
}
},
{
name: 'ClearSecret',
title: this.$t('common.ClearSecret'),
can: this.$hasPerm('accounts.change_account'),
type: 'primary',
callback: ({ row }) => {
this.$axios.patch(
`/api/v1/accounts/accounts/clear-secret/`,
{ account_ids: [row.id] }
).then(() => {
this.$message.success(this.$tc('common.ClearSuccessMsg'))
})
}
},
{
name: 'Delete',
title: this.$t('common.Delete'),
can: this.$hasPerm('accounts.delete_account'),
type: 'primary',
callback: ({ row }) => {
this.$axios.delete(`/api/v1/accounts/accounts/${row.id}/`).then(() => {
this.$message.success(this.$tc('common.deleteSuccessMsg'))
this.$refs.ListTable.reloadTable()
})
}
},
{
name: 'Test',
title: this.$t('common.Test'),
can: ({ row }) =>
!this.$store.getters.currentOrgIsRoot &&
this.$hasPerm('accounts.change_account') &&
row.asset['auto_config'].ansible_enabled &&
row.asset['auto_config'].ping_enabled,
callback: ({ row }) => {
this.$axios.post(
`/api/v1/accounts/accounts/tasks/`,
{ action: 'verify', accounts: [row.id] }
).then(res => {
openTaskPage(res['task'])
})
}
},
{
name: 'Update',
title: this.$t('common.Update'),
can: this.$hasPerm('accounts.change_account') && !this.$store.getters.currentOrgIsRoot,
callback: ({ row }) => {
const data = {
...this.asset,
...row.asset
}
vm.account = row
vm.iAsset = data
vm.showAddDialog = false
vm.accountCreateUpdateTitle = this.$t('assets.UpdateAccount')
setTimeout(() => {
vm.showAddDialog = true
})
}
}
]
}
},
...this.columnsMeta
}
},
headerActions: {
hasLeftActions: this.hasLeftActions,
hasMoreActions: true,
hasCreate: false,
hasImport: this.hasImport,
hasExport: this.hasExport && this.$hasPerm('accounts.view_accountsecret'),
handleImportClick: ({ selectedRows }) => {
this.$eventBus.$emit('showImportDialog', {
selectedRows,
url: '/api/v1/accounts/accounts/',
name: this?.name
})
},
exportOptions: {
url: this.exportUrl,
mfaVerifyRequired: true,
tips: this.$t('accounts.AccountExportTips')
},
importOptions: {
canImportCreate: this.$hasPerm('accounts.add_account'),
canImportUpdate: this.$hasPerm('accounts.change_account')
},
extraActions: [
{
name: 'add',
title: this.$t('common.Add'),
type: 'primary',
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.accountCreateUpdateTitle = this.$t('assets.AddAccount')
vm.showAddDialog = true
})
}
},
{
name: 'add-template',
title: this.$t('common.TemplateAdd'),
has: !(this.platform || this.asset),
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.accountCreateUpdateTitle = this.$t('assets.AddAccount')
vm.showAddTemplateDialog = true
})
}
},
...this.headerExtraActions
],
extraMoreActions: [
{
name: 'ClearSecrets',
title: this.$t('common.ClearSecret'),
type: 'primary',
fa: 'clean',
can: ({ selectedRows }) => {
return selectedRows.length > 0 && vm.$hasPerm('accounts.change_account')
},
callback: function({ selectedRows }) {
const ids = selectedRows.map(v => { return v.id })
this.$axios.patch(
'/api/v1/accounts/accounts/clear-secret/',
{ account_ids: ids }).then(() => {
this.$message.success(this.$tc('common.ClearSuccessMsg'))
}).catch(err => {
this.$message.error(this.$tc('common.bulkClearErrorMsg' + ' ' + err))
})
}.bind(this)
}
],
canBulkDelete: vm.$hasPerm('accounts.delete_account'),
searchConfig: {
getUrlQuery: false,
exclude: ['asset']
},
hasSearch: true
}
}
},
watch: {
url(iNew) {
this.$set(this.tableConfig, 'url', iNew)
this.$set(this.headerActions.exportOptions, 'url', iNew.replace(/(.*)accounts/, '$1account-secrets'))
}
},
mounted() {
if (this.columns.length > 0) {
this.tableConfig.columns = this.columns
}
if (this.otherActions) {
const actionColumn = this.tableConfig.columns[this.tableConfig.columns.length - 1]
for (const item of this.otherActions) {
actionColumn.formatterArgs.extraActions.push(item)
}
}
},
methods: {
onUpdateAuthDone(account) {
Object.assign(this.account, account)
},
addAccountSuccess() {
this.$refs.ListTable.reloadTable()
},
async getAssetDetail() {
const { query: { asset }} = this.$route
if (asset) {
this.iAsset = await this.$axios.get(`/api/v1/assets/assets/${asset}/`)
}
},
refresh() {
this.$refs.ListTable.reloadTable()
},
showBulkCreateResult(results) {
this.showResultDialog = false
this.createAccountResults = results
setTimeout(() => {
this.showResultDialog = true
}, 100)
}
}
}
</script>
<style lang='scss' scoped>
.cell a {
color: var(--color-info);
}
</style>

View File

@@ -1,99 +0,0 @@
<template>
<Dialog
:destroy-on-close="true"
:title="$tc('assets.UpdateAssetUserToken')"
:visible.sync="visible"
width="50"
@cancel="handleCancel()"
@confirm="handleConfirm()"
v-on="$listeners"
>
<el-form label-position="right" label-width="90px">
<el-form-item :label="$tc('assets.Name')">
<el-input v-model="account['asset_name']" readonly />
</el-form-item>
<el-form-item :label="$tc('assets.Username')">
<el-input v-model="account['username']" readonly />
</el-form-item>
<el-form-item :label="$tc('assets.Password')">
<UpdateToken v-model="authInfo.password" />
</el-form-item>
<el-form-item :label="$tc('assets.SSHSecretKey')">
<UploadKey @input="getFile" />
</el-form-item>
<el-form-item :label="$tc('assets.Passphrase')">
<UpdateToken v-model="authInfo.passphrase" />
</el-form-item>
</el-form>
</Dialog>
</template>
<script>
import Dialog from '@/components/Dialog'
import { UpdateToken, UploadKey } from '@/components/FormFields'
import { encryptPassword } from '@/utils/crypto'
export default {
name: 'UpdateSecretInfo',
components: {
Dialog,
UploadKey,
UpdateToken
},
props: {
account: {
type: Object,
default: () => ({})
},
visible: {
type: Boolean,
default: false
}
},
data() {
return {
secretInfo: {
password: '',
private_key: '',
passphrase: ''
}
}
},
methods: {
handleConfirm() {
const data = {}
if (this.secretInfo.password !== '') {
data.password = encryptPassword(this.secretInfo.password)
}
if (this.secretInfo.private_key !== '') {
data.private_key = encryptPassword(this.secretInfo.private_key)
if (this.secretInfo.passphrase) data.passphrase = this.secretInfo.passphrase
}
this.$axios.patch(
`/api/v1/accounts/accounts/${this.account.id}/`,
data,
{ disableFlashErrorMsg: true }
).then(res => {
this.authInfo = { password: '', private_key: '' }
this.$message.success(this.$tc('common.updateSuccessMsg'))
this.$emit('updateAuthDone', res)
this.$emit('update:visible', false)
}).catch(err => {
const errMsg = Object.values(err.response.data).join(', ')
this.$message.error(this.$tc('common.updateErrorMsg') + ' ' + errMsg)
this.$emit('update:visible', true)
})
},
handleCancel() {
this.$emit('update:visible', false)
},
getFile(file) {
this.secretInfo.private_key = file
}
}
}
</script>
<style scoped>
</style>

View File

@@ -1,26 +0,0 @@
import i18n from '@/i18n/i18n'
import { ChoicesFormatter } from '@/components/TableFormatters'
export const connectivityMeta = {
label: i18n.t('assets.Connectivity'),
formatter: ChoicesFormatter,
formatterArgs: {
faChoices: {
'-': '',
ok: 'fa-check-circle',
err: 'fa-times-circle'
},
classChoices: {
ok: 'text-primary',
err: 'text-danger'
},
getText({ cellValue }) {
if (cellValue?.value === '-') {
return '-'
} else {
return cellValue?.label
}
}
},
width: '100px'
}

View File

@@ -4,6 +4,7 @@
<script>
import DataActions from '@/components/DataActions'
export default {
name: 'ActionsGroup',
components: {
@@ -24,9 +25,7 @@ export default {
},
moreActionsTitle: {
type: String,
default() {
return this.$t('common.MoreActions')
}
default: ''
},
moreActionsPlacement: {
type: String,
@@ -45,8 +44,9 @@ export default {
iMoreAction() {
const defaultBtn = {
name: 'moreActions',
title: this.$t('common.MoreActions'),
title: '',
type: 'primary',
icon: 'el-icon-more',
plain: true
}
const btn = {
@@ -62,7 +62,3 @@ export default {
}
}
</script>
<style scoped>
</style>

View File

@@ -1,73 +0,0 @@
<template>
<el-alert
v-if="enabled && !isViewed()"
class="announcement"
type="success"
:center="false"
:title="title"
@close="onClose"
>
<span class="announcement-main">{{ announcement.content }}</span>
<span v-if="announcement.link">
<el-link :href="announcement.link" target="_blank" type="info" class="link-more">
{{ $t('common.ViewMore') }}
</el-link>
<i class="fa fa-external-link icon" />
</span>
</el-alert>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'Announcement',
data() {
return {
viewedKey: 'AnnouncementViewed'
}
},
computed: {
...mapGetters([
'publicSettings'
]),
announcement() {
const ann = this.publicSettings.ANNOUNCEMENT
return { id: ann['ID'], subject: ann['SUBJECT'], content: ann['CONTENT'], link: ann['LINK'] }
},
enabled() {
return this.publicSettings.ANNOUNCEMENT_ENABLED && (this.announcement.content || this.announcement.subject)
},
title() {
return this.$t('common.Announcement') + ': ' + this.announcement.subject
}
},
methods: {
onClose() {
localStorage.setItem(this.viewedKey, this.announcement.id)
},
isViewed() {
const viewedId = localStorage.getItem(this.viewedKey)
return viewedId === this.announcement.id
}
}
}
</script>
<style scoped>
.announcement >>> .el-alert__content {
width: 100%;
}
.announcement-main {
word-wrap:break-word;
white-space: pre-wrap;
}
.link-more {
font-size: 10px;
margin-left: 10px;
border-bottom: solid 1px;
}
.icon {
vertical-align: text-bottom;
}
</style>

View File

@@ -0,0 +1,278 @@
import { UpdateToken, UploadSecret } from '@/components/Form/FormFields'
import Select2 from '@/components/Form/FormFields/Select2.vue'
import { Required, RequiredChange } from '@/components/Form/DataForm/rules'
import AutomationParamsForm from '@/views/assets/Platform/AutomationParamsSetting.vue'
export const accountFieldsMeta = (vm) => {
const defaultPrivilegedAccounts = ['root', 'administrator']
return {
assets: {
component: Select2,
label: vm.$t('Assets'),
rules: [Required],
el: {
multiple: true,
ajax: {
url: '/api/v1/assets/assets/',
transformOption: (item) => {
return { label: item.name + '(' + item.address + ')', value: item.id }
}
}
},
hidden: () => {
return vm.platform || vm.asset
}
},
template: {
component: Select2,
rules: [Required],
el: {
get disabled() {
return vm.isDisabled
},
multiple: false,
ajax: {
url: '/api/v1/accounts/account-templates/',
transformOption: (item) => {
return { label: item.name, value: item.id }
}
}
},
hidden: () => {
return vm.platform || vm.asset || !vm.addTemplate
}
},
on_invalid: {
rules: [Required],
label: vm.$t('AccountPolicy'),
helpTip: vm.$t('AccountPolicyHelpText'),
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: () => {
return vm.platform || vm.asset
}
},
name: {
label: vm.$t('Name'),
rules: [RequiredChange],
el: {
get disabled() {
return vm.isDisabled
}
},
on: {
input: ([value], updateForm) => {
if (!vm.usernameChanged) {
if (!vm.account?.name) {
updateForm({ username: value })
}
const maybePrivileged = defaultPrivilegedAccounts.includes(value)
if (maybePrivileged) {
updateForm({ privileged: true })
}
}
}
},
hidden: () => {
return vm.addTemplate
}
},
username: {
el: {
get disabled() {
return !!vm.account?.name || vm.isDisabled
}
},
on: {
input: ([value], updateForm) => {
vm.usernameChanged = true
},
change: ([value], updateForm) => {
const maybePrivileged = defaultPrivilegedAccounts.includes(value)
if (maybePrivileged) {
updateForm({ privileged: true })
}
}
},
hidden: () => {
return vm.addTemplate
}
},
privileged: {
label: vm.$t('Privileged'),
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: () => {
return vm.addTemplate
}
},
su_from: {
component: Select2,
hidden: (formValue) => {
return !vm.asset?.id || !vm.iPlatform.su_enabled
},
el: {
multiple: false,
clearable: true,
disabled: {
get disabled() {
return vm.isDisabled
}
},
ajax: {
url: `/api/v1/accounts/accounts/su-from-accounts/?account=${vm.account?.id || ''}&asset=${vm.asset?.id || ''}`,
transformOption: (item) => {
return { label: `${item.name}(${item.username})`, value: item.id }
}
}
}
},
su_from_username: {
label: vm.$t('UserSwitchFrom'),
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => {
return vm.platform || vm.asset || vm.addTemplate
}
},
password: {
label: vm.$t('Password'),
component: UpdateToken,
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => {
return formValue.secret_type !== 'password' || vm.addTemplate
}
},
ssh_key: {
label: vm.$t('PrivateKey'),
component: UploadSecret,
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || vm.addTemplate
},
passphrase: {
label: vm.$t('Passphrase'),
component: UpdateToken,
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => formValue.secret_type !== 'ssh_key' || vm.addTemplate
},
token: {
label: vm.$t('Token'),
component: UploadSecret,
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => formValue.secret_type !== 'token' || vm.addTemplate
},
access_key: {
id: 'access_key',
label: vm.$t('AccessKey'),
component: UploadSecret,
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => formValue.secret_type !== 'access_key' || vm.addTemplate
},
api_key: {
id: 'api_key',
label: vm.$t('ApiKey'),
component: UploadSecret,
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => formValue.secret_type !== 'api_key' || vm.addTemplate
},
secret_type: {
type: 'radio-group',
options: [],
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: () => {
return vm.addTemplate
}
},
push_now: {
helpTip: vm.$t('WindowsPushHelpText'),
hidden: (formValue) => {
const automation = vm.iPlatform.automation || {}
return !automation.push_account_enabled ||
!automation.ansible_enabled ||
!vm.$hasPerm('accounts.push_account') ||
(formValue.secret_type === 'ssh_key' && vm.iPlatform.type.value === 'windows') ||
vm.addTemplate ||
!formValue.secret_reset
}
},
params: {
label: vm.$t('PushParams'),
component: AutomationParamsForm,
el: {},
hidden: (formValue) => {
const automation = vm.iPlatform.automation || {}
vm.fieldsMeta.params.el.method = vm.iPlatform.automation.push_account_method
vm.fieldsMeta.params.el.pushAccountParams = vm.iPlatform.automation.push_account_params
return !formValue.push_now ||
!automation.push_account_enabled ||
!automation.ansible_enabled ||
(formValue.secret_type === 'ssh_key' &&
vm.iPlatform.type.value === 'windows') ||
!vm.$hasPerm('accounts.push_account') ||
vm.addTemplate
}
},
is_active: {
label: vm.$t('IsActive'),
el: {
get disabled() {
return vm.isDisabled
}
}
},
comment: {
label: vm.$t('Comment'),
el: {
get disabled() {
return vm.isDisabled
}
}
},
secret_reset: {
label: vm.$t('SecretReset'),
el: {
get disabled() {
return vm.isDisabled
}
}
}
}
}

View File

@@ -0,0 +1,189 @@
<template>
<AutoDataForm
v-if="!loading"
ref="AutoDataForm"
:class="addTemplate? '': 'account-add'"
:submit-btn-text="submitBtnText"
v-bind="$data"
@submit="confirm"
/>
</template>
<script>
import AutoDataForm from '@/components/Form/AutoDataForm/index.vue'
import { encryptPassword } from '@/utils/crypto'
import { accountFieldsMeta } from '@/components/Apps/AccountCreateUpdateForm/const'
export default {
name: 'AccountCreateForm',
components: {
AutoDataForm
},
props: {
asset: {
type: Object,
default: null
},
platform: {
type: Object,
default: null
},
account: {
type: Object,
default: () => ({})
},
// 默认组件密码加密
encryptPassword: {
type: Boolean,
default: true
},
addTemplate: {
type: Boolean,
default: false
}
},
data() {
return {
loading: true,
isDisabled: false,
usernameChanged: false,
submitBtnText: this.$t('Confirm'),
iPlatform: {
automation: {},
su_enabled: false,
protocols: [
{
name: 'ssh',
secret_types: ['password', 'ssh_key', 'token', 'access_key', 'api_key']
}
]
},
url: '/api/v1/accounts/accounts/',
form: Object.assign({ 'on_invalid': 'error' }, this.account || {}),
encryptedFields: ['secret'],
fields: [
[this.$t('Basic'), ['name', 'username', 'privileged', 'su_from', 'su_from_username', 'template']],
[this.$t('Assets'), ['assets']],
[this.$t('Secret'), [
'secret_type', 'password', 'ssh_key', 'token',
'access_key', 'passphrase', 'api_key',
'secret_reset'
]],
[this.$t('Other'), ['push_now', 'params', 'on_invalid', 'is_active', 'comment']]
],
fieldsMeta: accountFieldsMeta(this),
hasSaveContinue: false
}
},
watch: {
'$route.query': {
handler(nv, ov) {
if (nv && (nv.flag === 'move' || nv.flag === 'copy')) {
this.isDisabled = true
}
},
immediate: true
}
},
async mounted() {
try {
await this.getPlatform()
this.setSecretTypeOptions()
this.getDefaultAssets()
} finally {
this.loading = false
}
},
methods: {
async getDefaultAssets() {
const assetId = this.$route.query.asset_id
if (assetId && !this.form.name) {
this.form.assets = [assetId]
}
},
async getPlatform() {
if (this.platform) {
this.iPlatform = this.platform
}
if (!this.asset || !this.asset.platform) {
return
}
const platformId = this.asset.platform.id
this.iPlatform = await this.$axios.get(`/api/v1/assets/platforms/${platformId}/`)
},
setSecretTypeOptions() {
const choices = [
{
label: this.$t('Password'),
value: 'password'
},
{
label: this.$t('SSHKey'),
value: 'ssh_key'
},
{
label: this.$t('Token'),
value: 'token'
},
{
label: this.$t('AccessKey'),
value: 'access_key'
},
{
label: this.$t('ApiKey'),
value: 'api_key'
}
]
const secretTypes = []
this.iPlatform.protocols?.forEach(p => {
secretTypes.push(...p['secret_types'])
})
if (!this.form?.secret_type) {
this.form.secret_type = secretTypes[0]
}
this.fieldsMeta.secret_type.options = choices.filter(item => {
return secretTypes.indexOf(item.value) > -1
})
},
confirm(form) {
const secretType = form.secret_type || 'password'
form.secret = form[secretType]
form.secret = this.encryptPassword ? encryptPassword(form.secret) : form.secret
// 如果不删除会明文显示
delete form[secretType]
if (!form.secret) {
delete form['secret']
}
if (this.account?.name) {
this.$emit('edit', form)
} else {
this.$emit('add', form)
}
}
}
}
</script>
<style lang='scss' scoped>
.account-add {
::v-deep .el-form-item {
//margin-bottom: 5px;
.help-block {
//margin-bottom: 5px;
}
}
::v-deep .form-group-header {
.hr-line-dashed {
//margin: 5px 0;
}
h3 {
margin-bottom: 10px;
}
}
}
</style>

View File

@@ -0,0 +1,87 @@
<template>
<GenericUpdateFormDialog
v-if="visible"
:form-setting="formSetting"
:selected-rows="selectedRows"
:visible="visible"
v-on="$listeners"
/>
</template>
<script>
import { GenericUpdateFormDialog } from '@/layout/components'
import { accountFieldsMeta } from '@/components/Apps/AccountCreateUpdateForm/const'
import { encryptPassword } from '@/utils/crypto'
export default {
name: 'AccountBulkUpdateDialog',
components: {
GenericUpdateFormDialog
},
props: {
visible: {
type: Boolean,
default: false
},
selectedRows: {
type: Array,
default: () => ([])
}
},
data() {
return {
formSetting: {
url: '/api/v1/accounts/accounts/',
hasSaveContinue: false,
fields: [],
fieldsMeta: accountFieldsMeta(this),
cleanOtherFormValue: (formValue) => {
for (const value of formValue) {
Object.keys(value).forEach((item, index, arr) => {
if (['ssh_key', 'token', 'access_key', 'api_key', 'password'].includes(item)) {
value['secret'] = encryptPassword(value[item])
delete value[item]
}
})
}
return formValue
}
}
}
},
created() {
this.filterFieldsMeta()
},
methods: {
filterFieldsMeta() {
let fields = ['privileged']
const fieldsMeta = {}
const secretFields = ['password', 'ssh_key', 'passphrase', 'token', 'access_key', 'api_key']
const secret_type = this.selectedRows[0].secret_type?.value || 'password'
for (const field of secretFields) {
if (secret_type === 'ssh_key' && field === 'passphrase') {
fields.push('passphrase')
this.formSetting.fieldsMeta['passphrase'].hidden = () => false
continue
}
if (secret_type === field) {
fields.push(field)
this.formSetting.fieldsMeta[field].hidden = () => false
continue
}
delete this.formSetting.fieldsMeta[field]
}
fields = fields.concat(['is_active', 'comment'])
for (const field of fields) {
fieldsMeta[field] = this.formSetting.fieldsMeta[field]
}
this.formSetting.fields = fields
this.formSetting.fieldsMeta = fieldsMeta
}
}
}
</script>
<style scoped>
</style>

View File

@@ -1,36 +1,38 @@
<template>
<Dialog
v-if="iVisible"
:close-on-click-modal="false"
:destroy-on-close="true"
:show-cancel="false"
:show-confirm="false"
<template v-if="iVisible">
<Drawer
:title="title"
:visible.sync="iVisible"
v-bind="$attrs"
width="70%"
v-on="$listeners"
:visible="iVisible"
class="drawer"
@close-drawer="handleCloseDrawer"
>
<AccountCreateUpdateForm
v-if="!loading"
ref="form"
:account="account"
:asset="asset"
:add-template="addTemplate"
@add="addAccount"
@edit="editAccount"
/>
</Dialog>
<Page :title="'null'">
<IBox class="content">
<AccountCreateUpdateForm
v-if="!loading"
ref="form"
:account="account"
:add-template="addTemplate"
:asset="asset"
@add="addAccount"
@edit="editAccount"
/>
</IBox>
</Page>
</Drawer>
</template>
<script>
import Dialog from '@/components/Dialog'
import AccountCreateUpdateForm from '@/components/AccountCreateUpdateForm'
import Drawer from '@/components/Drawer/index.vue'
import AccountCreateUpdateForm from '@/components/Apps/AccountCreateUpdateForm/index.vue'
import IBox from '@/components/IBox/index.vue'
import Page from '@/layout/components/Page/index.vue'
export default {
name: 'CreateAccountDialog',
components: {
Dialog,
IBox,
Drawer,
Page,
AccountCreateUpdateForm
},
props: {
@@ -53,7 +55,7 @@ export default {
title: {
type: String,
default: function() {
return this.$t('assets.AddAccount')
return this.$t('AddAccount')
}
}
},
@@ -92,7 +94,7 @@ export default {
data = formValue
url = `/api/v1/accounts/accounts/bulk/`
if (data.assets.length === 0) {
this.$message.error(this.$tc('assets.PleaseSelectAsset'))
this.$message.error(this.$tc('PleaseSelectAsset'))
return
}
}
@@ -105,17 +107,28 @@ export default {
this.$emit('add', true)
}
}).catch(error => {
this.iVisible = iVisible
this.iVisible = true
this.handleResult(null, error)
})
},
editAccount(form) {
const data = { ...form }
this.$axios.patch(`/api/v1/accounts/accounts/${this.account.id}/`, data).then(() => {
this.iVisible = false
this.$emit('add', true)
this.$message.success(this.$tc('common.updateSuccessMsg'))
}).catch(error => this.setFieldError(error))
const flag = this.$route.query.flag
switch (flag) {
case 'copy':
this.handleAccountOperation(this.account.id, 'copy-to-assets', data)
break
case 'move':
this.handleAccountOperation(this.account.id, 'move-to-assets', data)
break
default:
this.$axios.patch(`/api/v1/accounts/accounts/${this.account.id}/`, data).then(() => {
this.iVisible = false
this.$emit('add', true)
this.$message.success(this.$tc('UpdateSuccessMsg'))
}).catch(error => this.setFieldError(error))
}
},
handleResult(resp, error) {
let bulkCreate = !this.asset
@@ -127,7 +140,7 @@ export default {
}
if (!bulkCreate) {
if (!error) {
this.$message.success(this.$tc('common.createSuccessMsg'))
this.$message.success(this.$tc('CreateSuccessMsg'))
} else {
this.setFieldError(error)
}
@@ -168,11 +181,29 @@ export default {
refsAutoDataForm.setFieldError(current, err)
}
}
},
handleCloseDrawer() {
this.iVisible = false
Reflect.deleteProperty(this.$route.query, 'flag')
},
handleAccountOperation(id, path, data) {
this.$axios.post(`/api/v1/accounts/accounts/${id}/${path}/`, data).then((res) => {
this.iVisible = false
this.$emit('add', true)
this.handleResult(res, null)
}).catch(error => this.handleResult(null, error))
}
}
}
</script>
<style scoped>
<style lang="scss" scoped>
.drawer {
::v-deep .el-drawer__body {
.el-form {
margin-right: 30px;
}
}
}
</style>

View File

@@ -0,0 +1,476 @@
<template>
<div>
<DrawerListTable
ref="ListTable"
:detail-drawer="detailDrawer"
:header-actions="headerActions"
:quick-filters="quickFilters"
:table-config="tableConfig"
/>
<ViewSecret
v-if="showViewSecretDialog"
:account="account"
:url="secretUrl"
:visible.sync="showViewSecretDialog"
/>
<UpdateSecretInfo
v-if="showUpdateSecretDialog"
:account="account"
:visible.sync="showUpdateSecretDialog"
@updateAuthDone="onUpdateAuthDone"
/>
<AccountCreateUpdate
v-if="showAddDialog"
:account="account"
:add-template="addTemplate"
:asset="iAsset"
:title="accountCreateUpdateTitle"
:visible.sync="showAddDialog"
@add="addAccountSuccess"
@bulk-create-done="showBulkCreateResult($event)"
/>
<ResultDialog
v-if="showResultDialog"
:result="createAccountResults"
:visible.sync="showResultDialog"
@close-all="closeAll"
/>
<AccountBulkUpdateDialog
v-if="updateSelectedDialogSetting.visible"
:visible.sync="updateSelectedDialogSetting.visible"
v-bind="updateSelectedDialogSetting"
@update="handleAccountBulkUpdate"
/>
<PasswordHistoryDialog
v-if="showPasswordHistoryDialog"
:account="currentAccountColumn"
:visible.sync="showPasswordHistoryDialog"
/>
</div>
</template>
<script>
import { accountOtherActions, accountQuickFilters, connectivityMeta } from './const'
import { openTaskPage } from '@/utils/jms'
import { ActionsFormatter, PlatformFormatter, SecretViewerFormatter, AccountConnectFormatter } from '@/components/Table/TableFormatters'
import ViewSecret from './ViewSecret.vue'
import UpdateSecretInfo from './UpdateSecretInfo.vue'
import ResultDialog from './BulkCreateResultDialog.vue'
import AccountCreateUpdate from './AccountCreateUpdate.vue'
import PasswordHistoryDialog from './PasswordHistoryDialog.vue'
import DrawerListTable from '@/components/Table/DrawerListTable/index.vue'
import AccountBulkUpdateDialog from '@/components/Apps/AccountListTable/AccountBulkUpdateDialog.vue'
export default {
name: 'AccountListTable',
components: {
ViewSecret,
ResultDialog,
DrawerListTable,
UpdateSecretInfo,
AccountCreateUpdate,
PasswordHistoryDialog,
AccountBulkUpdateDialog
},
props: {
url: {
type: String,
required: true
},
exportUrl: {
type: String,
default() {
return this.url.replace('/accounts/accounts/', '/accounts/account-secrets/')
}
},
hasLeftActions: {
type: Boolean,
default: false
},
otherActions: {
type: Array,
default: null
},
hasClone: {
type: Boolean,
default: true
},
asset: {
type: Object,
default: null
},
columns: {
type: Array,
default: () => []
},
hasExport: {
type: Boolean,
default: true
},
hasImport: {
type: Boolean,
default: true
},
hasDeleteAction: {
type: Boolean,
default: true
},
columnsMeta: {
type: Object,
default: () => {
}
},
columnsDefault: {
type: Array,
default: () => ([
'name', 'username', 'secret', 'asset', 'platform', 'connect'
])
},
headerExtraActions: {
type: Array,
default: () => []
},
extraQuery: {
type: Object,
default: () => ({})
},
showQuickFilters: {
type: Boolean,
default: true
}
},
data() {
const vm = this
return {
addTemplate: false,
currentAccountColumn: {},
showPasswordHistoryDialog: false,
showViewSecretDialog: false,
showUpdateSecretDialog: false,
showResultDialog: false,
showAddDialog: false,
showAddTemplateDialog: false,
detailDrawer: () => import('@/views/accounts/Account/AccountDetail/index.vue'),
createAccountResults: [],
iAsset: this.asset,
account: {},
secretUrl: '',
quickFilters: this.showQuickFilters ? accountQuickFilters(this) : [],
tableConfig: {
url: this.url,
permissions: {
app: 'assets',
resource: 'account'
},
extraQuery: this.extraQuery,
columnsExclude: ['spec_info'],
columnsAdd: ['secret', 'platform', 'connect'],
columnsShow: {
min: ['name', 'username', 'actions'],
default: this.columnsDefault
},
columnsMeta: {
name: {
width: '120px',
formatterArgs: {
can: () => vm.$hasPerm('accounts.view_account'),
getDrawerTitle({ row }) {
return `${row.username}@${row.asset.name}`
}
}
},
secret: {
formatter: SecretViewerFormatter,
width: '130px',
formatterArgs: {
secretFrom: 'api',
hasDownload: false,
actionLeft: true
}
},
connect: {
label: this.$t('Connect'),
width: '80px',
formatter: AccountConnectFormatter,
formatterArgs: {
buttonIcon: 'fa fa-desktop',
titleText: '可选协议',
url: '/api/v1/assets/assets/{id}',
connectUrlTemplate: (row) => `/luna/pam_connect/${row.id}/${row.username}/${row.asset.id}/${row.asset.name}/`,
setMapItem: (id, protocol) => {
this.$store.commit('table/SET_PROTOCOL_MAP_ITEM', {
key: id,
value: protocol
})
}
}
},
platform: {
label: this.$t('Platform'),
width: '120px',
formatter: PlatformFormatter,
formatterArgs: {
platformAttr: 'asset.platform'
}
},
asset: {
formatter: function(row) {
return row.asset.name
}
},
username: {
width: '120px'
},
secret_type: {
formatter: function(row) {
return row.secret_type.label
}
},
source: {
formatter: function(row) {
return row.source.label
}
},
has_secret: {
width: '120px',
formatterArgs: {
showFalse: false
}
},
privileged: {
width: '120px',
formatterArgs: {
showText: false,
showFalse: true
}
},
connectivity: connectivityMeta,
actions: {
formatter: ActionsFormatter,
formatterArgs: {
hasUpdate: false, // can set function(row, value)
hasDelete: true, // can set function(row, value)
hasClone: false,
canDelete: () => vm.$hasPerm('accounts.delete_account'),
moreActionsTitle: this.$t('More'),
extraActions: accountOtherActions(this)
}
},
...this.columnsMeta
}
},
headerActions: {
hasLabelSearch: true,
hasLeftActions: this.hasLeftActions,
hasMoreActions: true,
hasCreate: false,
hasImport: this.hasImport,
hasExport: this.hasExport && this.$hasPerm('accounts.view_accountsecret'),
exportOptions: {
url: this.exportUrl,
mfaVerifyRequired: true,
tips: this.$t('AccountExportTips')
},
importOptions: {
canImportCreate: this.$hasPerm('accounts.add_account'),
canImportUpdate: this.$hasPerm('accounts.change_account')
},
extraActions: [
{
name: 'add',
title: this.$t('Create'),
type: 'primary',
icon: 'plus',
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.addTemplate = false
vm.showAddDialog = true
})
}
},
{
name: 'add-template',
title: this.$t('TemplateAdd'),
has: !(this.platform || this.asset),
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.showAddDialog = true
vm.addTemplate = true
})
}
},
...this.headerExtraActions
],
extraMoreActions: [
{
name: 'TestSelected',
title: this.$t('TestSelected'),
type: 'primary',
icon: 'verify',
can: ({ selectedRows }) => {
return selectedRows.length > 0 &&
['clickhouse', 'redis', 'website', 'chatgpt'].indexOf(selectedRows[0].asset.type.value) === -1 &&
!this.$store.getters.currentOrgIsRoot
},
callback: function({ selectedRows }) {
const ids = selectedRows.map(v => {
return v.id
})
this.$axios.post(
'/api/v1/accounts/accounts/tasks/',
{ action: 'verify', accounts: ids }).then(res => {
openTaskPage(res['task'])
}).catch(err => {
this.$message.error(this.$tc('BulkVerifyErrorMsg' + ' ' + err))
})
}.bind(this)
},
{
name: 'BatchClearSecret',
title: this.$t('ClearSecret'),
type: 'primary',
icon: 'clean',
can: ({ selectedRows }) => {
return selectedRows.length > 0 && vm.$hasPerm('accounts.change_account')
},
callback: function({ selectedRows }) {
const ids = selectedRows.map(v => {
return v.id
})
this.$axios.patch(
'/api/v1/accounts/accounts/clear-secret/',
{ account_ids: ids }).then(() => {
this.$message.success(this.$tc('ClearSuccessMsg'))
}).catch(err => {
this.$message.error(this.$tc('ClearErrorMsg' + ' ' + err))
})
}.bind(this)
},
{
name: 'UpdateSelected',
title: this.$t('UpdateSelected'),
icon: 'batch-update',
can: ({ selectedRows }) => {
return selectedRows.length > 0 &&
!this.$store.getters.currentOrgIsRoot &&
vm.$hasPerm('accounts.change_account') &&
selectedRows.every(i => i.secret_type.value === selectedRows[0].secret_type.value)
},
callback: ({ selectedRows }) => {
vm.updateSelectedDialogSetting.selectedRows = selectedRows
vm.updateSelectedDialogSetting.visible = true
}
}
],
canBulkDelete: vm.$hasPerm('accounts.delete_account'),
searchConfig: {
getUrlQuery: false,
exclude: ['asset']
},
hasSearch: true
},
updateSelectedDialogSetting: {
visible: false,
selectedRows: []
}
}
},
computed: {
accountCreateUpdateTitle() {
if (this.addTemplate) {
return this.$t('AddAccountByTemplate')
} else {
return this.$t('AddAccount')
}
}
},
watch: {
url(iNew) {
this.$set(this.tableConfig, 'url', iNew)
this.$set(this.headerActions.exportOptions, 'url', iNew.replace(/(.*)accounts/, '$1account-secrets'))
}
},
mounted() {
this.setActions()
},
activated() {
// 由于组件嵌套较深,有可能导致 Error in activated hook: "TypeError: Cannot read properties of undefined (reading 'getList')" 的问题
if (this.tabDeactivated) {
setTimeout(() => this.refresh(), 300)
}
},
deactivated() {
this.tabDeactivated = true
},
methods: {
setActions() {
if (this.columns.length > 0) {
this.tableConfig.columns = this.columns
}
if (this.otherActions) {
const actionColumn = this.tableConfig.columns[this.tableConfig.columns.length - 1]
for (const item of this.otherActions) {
actionColumn.formatterArgs.extraActions.push(item)
}
}
},
onUpdateAuthDone(account) {
Object.assign(this.account, account)
},
addAccountSuccess() {
Reflect.deleteProperty(this.$route.query, 'flag')
this.$refs.ListTable.reloadTable()
},
async getAssetDetail() {
const { query: { asset }} = this.$route
if (asset) {
this.iAsset = await this.$axios.get(`/api/v1/assets/assets/${asset}/`)
}
},
refresh() {
this.$refs.ListTable.reloadTable()
},
showBulkCreateResult(results) {
setTimeout(() => {
this.showResultDialog = true
this.createAccountResults = results
}, 350)
},
handleAccountBulkUpdate() {
this.updateSelectedDialogSetting.visible = false
this.$refs.ListTable.reloadTable()
},
closeAll() {
setTimeout(() => {
this.showResultDialog = false
}, 350)
setTimeout(() => {
this.showAddDialog = false
}, 800)
setTimeout(() => {
this.refresh()
}, 1000)
}
}
}
</script>
<style lang="scss" scoped>
.cell a {
color: var(--color-info);
}
</style>

View File

@@ -15,7 +15,7 @@
<script>
import Dialog from '@/components/Dialog/index.vue'
import DataTable from '@/components/DataTable/index.vue'
import DataTable from '@/components/Table/DataTable/index.vue'
export default {
name: 'ResultDialog',
@@ -30,11 +30,11 @@ export default {
}
},
data() {
const errorProp = this.$t('common.Error')
const errorProp = this.$t('Error')
const stateMap = {
'created': this.$tc('common.Created'),
'updated': this.$tc('common.Updated'),
'skipped': this.$tc('common.Skipped')
'created': this.$tc('Created'),
'updated': this.$tc('Updated'),
'skipped': this.$tc('Skipped')
}
const stateClsMap = {
'created': 'color-primary',
@@ -42,16 +42,16 @@ export default {
'skipped': 'color-default'
}
return {
title: this.$t('accounts.AddAccountResult'),
title: this.$t('AddAccountResult'),
config: {
columns: [
{
prop: 'asset',
label: this.$t('assets.Asset')
label: this.$t('Asset')
},
{
prop: 'state',
label: this.$t('common.Status'),
label: this.$t('Status'),
width: '200px',
formatter: (row) => {
if (row.error) {
@@ -71,11 +71,11 @@ export default {
computed: {
summary() {
const labels = {
total: this.$tc('common.Total'),
created: this.$tc('common.Created'),
updated: this.$tc('common.Updated'),
skipped: this.$tc('common.Skipped'),
error: this.$tc('common.Error')
total: this.$tc('Total'),
created: this.$tc('Created'),
updated: this.$tc('Updated'),
skipped: this.$tc('Skipped'),
error: this.$tc('Error')
}
const grouped = _.groupBy(this.result, 'state')
const groupedLength = _.mapValues(grouped, 'length')
@@ -91,7 +91,7 @@ export default {
},
methods: {
closeDialog() {
this.$emit('update:visible', false)
this.$emit('close-all')
}
}
}

View File

@@ -4,7 +4,7 @@
<script>
import { GenericListTableDialog } from '@/layout/components'
import { ShowKeyCopyFormatter } from '@/components/TableFormatters'
import { SecretViewerFormatter } from '@/components/Table/TableFormatters'
export default {
components: {
@@ -23,24 +23,24 @@ export default {
data() {
return {
config: {
title: this.$t('accounts.HistoryPassword'),
title: this.$t('HistoryPassword'),
visible: false,
width: '60%',
tableConfig: {
id: 'history_date',
url: `/api/v1/accounts/account-secrets/${this.account.id}/histories/`,
columns: ['secret', 'secret_type', 'version', 'history_date'],
columns: ['secret', 'version', 'history_date'],
columnsMeta: {
secret: {
label: this.$t('assets.Password'),
formatter: ShowKeyCopyFormatter,
label: this.$t('Password'),
formatter: SecretViewerFormatter,
formatterArgs: {
hasDownload: false,
name: this.account.name
}
},
history_date: {
label: this.$t('accounts.HistoryDate')
label: this.$t('HistoryDate')
},
secret_type: {
width: '200px'

View File

@@ -0,0 +1,112 @@
<template>
<Dialog
:destroy-on-close="true"
:show-cancel="false"
:visible.sync="show"
:width="'50'"
v-bind="$attrs"
@confirm="accountConfirmHandle"
v-on="$listeners"
/>
</template>
<script>
import Dialog from '@/components/Dialog/index.vue'
import { openTaskPage } from '@/utils/jms'
export default {
name: 'RemoveAccount',
components: {
Dialog
},
props: {
accounts: {
type: Array,
default: () => []
},
visible: {
type: Boolean,
default: false
}
},
data() {
return {
show: false,
mfaDialogVisible: true
}
},
computed: {},
mounted() {
const url = `/api/v1/accounts/accounts/tasks/`
this.$axios.post(
url, { disableFlashErrorMsg: true, action: 'remove' }
).then(resp => {
this.$axios.post(
`/api/v1/accounts/accounts/tasks/`,
{
action: 'remove',
gather_accounts: this.accounts.map(account => account.id)
}
).then(res => {
openTaskPage(res['task'])
})
})
},
methods: {
accountConfirmHandle() {
this.show = false
this.mfaDialogVisible = false
},
exit() {
this.$emit('update:visible', false)
}
}
}
</script>
<style lang="scss" scoped>
.item-textarea ::v-deep .el-textarea__inner {
height: 110px;
}
.el-form-item {
border-bottom: 1px solid #EBEEF5;
padding: 5px 0;
margin-bottom: 0;
&:last-child {
border-bottom: none;
}
::v-deep .el-form-item__label {
padding-right: 20px;
line-height: 30px;
}
::v-deep .el-form-item__content {
line-height: 30px;
pre {
margin: 0;
}
}
}
ul {
margin: 0;
}
li {
display: block;
font-size: 13px;
margin-bottom: 8px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
.title {
color: #303133;
font-weight: 500;
}
}
</style>

View File

@@ -0,0 +1,101 @@
<template>
<Dialog
:destroy-on-close="true"
:show-buttons="false"
:title="$tc('UpdateAssetUserToken')"
:visible.sync="iVisible"
width="800px"
v-on="$listeners"
>
<AutoDataForm
:fields="fields"
:fields-meta="fieldsMeta"
:form="init"
:has-reset="false"
:has-save-continue="false"
:url="''"
method="patch"
@submit="handleConfirm"
/>
</Dialog>
</template>
<script>
import Dialog from '@/components/Dialog/index.vue'
import { accountFieldsMeta } from '@/components/Apps/AccountCreateUpdateForm/const'
import { encryptPassword } from '@/utils/crypto'
import AutoDataForm from '@/components/Form/AutoDataForm/index.vue'
export default {
name: 'UpdateSecretInfo',
components: {
AutoDataForm,
Dialog
},
props: {
account: {
type: Object,
default: () => ({})
},
visible: {
type: Boolean,
default: false
}
},
data() {
const accountMeta = accountFieldsMeta(this)
return {
fields: [
'name', 'secret_type', 'password', 'ssh_key', 'token',
'access_key', 'passphrase', 'api_key'
],
fieldsMeta: {
...accountMeta,
name: {
...accountMeta.name,
readonly: true
},
secret_type: {
hidden: () => true
}
},
init: {
...this.account
}
}
},
computed: {
iVisible: {
get() {
return this.visible
},
set(val) {
this.$emit('update:visible', val)
}
}
},
methods: {
handleConfirm(form) {
const secretType = this.account.secret_type.value
const data = {
secret: encryptPassword(form[secretType])
}
this.$axios.patch(
`/api/v1/accounts/accounts/${this.account.id}/`,
data,
{ disableFlashErrorMsg: true }
).then(res => {
this.$message.success(this.$tc('UpdateSuccessMsg'))
this.iVisible = false
}).catch(err => {
const errMsg = Object.values(err.response.data).join(', ')
this.$message.error(this.$tc('UpdateErrorMsg') + ' ' + errMsg)
this.iVisible = false
})
},
handleCancel() {
this.$emit('update:visible', false)
}
}
}
</script>

View File

@@ -1,12 +1,5 @@
<template>
<div>
<div v-if="mfaDialogVisible">
<UserConfirmDialog
:url="url"
@UserConfirmCancel="exit"
@UserConfirmDone="getAuthInfo"
/>
</div>
<Dialog
:destroy-on-close="true"
:show-cancel="false"
@@ -17,15 +10,15 @@
@confirm="accountConfirmHandle"
v-on="$listeners"
>
<el-form :model="secretInfo" class="password-form" label-position="right" label-width="100px">
<el-form-item :label="$tc('assets.Name')">
<el-form :model="secretInfo" class="password-form" label-position="right" label-width="130px">
<el-form-item :label="$tc('Name')">
<span>{{ account['name'] }}</span>
</el-form-item>
<el-form-item :label="$tc('assets.Username')">
<el-form-item :label="$tc('Username')">
<span>{{ account['username'] }}</span>
</el-form-item>
<el-form-item :label="secretTypeLabel">
<ShowKeyCopyFormatter
<SecretViewerFormatter
:cell-value="secretInfo.secret"
:col="{ formatterArgs: {
name: account['name'],
@@ -34,16 +27,16 @@
@input="onShowKeyCopyFormatterChange"
/>
</el-form-item>
<el-form-item v-if="secretType === 'ssh_key'" :label="$tc('assets.sshKeyFingerprint')">
<el-form-item v-if="secretType === 'ssh_key'" :label="$tc('SshKeyFingerprint')">
<span>{{ sshKeyFingerprint }}</span>
</el-form-item>
<el-form-item :label="$tc('common.DateCreated')">
<el-form-item :label="$tc('DateCreated')">
<span>{{ account['date_created'] | date }}</span>
</el-form-item>
<el-form-item :label="$tc('common.DateUpdated')">
<el-form-item :label="$tc('DateUpdated')">
<span>{{ account['date_updated'] | date }}</span>
</el-form-item>
<el-form-item v-if="showPasswordRecord" v-perms="'accounts.view_accountsecret'" :label="$tc('accounts.PasswordRecord')">
<el-form-item v-if="showPasswordRecord" v-perms="'accounts.view_accountsecret'" :label="$tc('PasswordRecord')">
<el-link
:underline="false"
type="success"
@@ -65,10 +58,9 @@
</template>
<script>
import Dialog from '@/components/Dialog'
import PasswordHistoryDialog from './PasswordHistoryDialog'
import UserConfirmDialog from '@/components/UserConfirmDialog'
import { ShowKeyCopyFormatter } from '@/components/TableFormatters'
import Dialog from '@/components/Dialog/index.vue'
import PasswordHistoryDialog from './PasswordHistoryDialog.vue'
import { SecretViewerFormatter } from '@/components/Table/TableFormatters'
import { encryptPassword } from '@/utils/crypto'
export default {
@@ -76,8 +68,7 @@ export default {
components: {
Dialog,
PasswordHistoryDialog,
UserConfirmDialog,
ShowKeyCopyFormatter
SecretViewerFormatter
},
props: {
account: {
@@ -92,10 +83,14 @@ export default {
type: String,
default: ''
},
type: {
type: String,
default: 'account'
},
title: {
type: String,
default: function() {
return this.$tc('assets.AccountDetail')
return this.$tc('Detail')
}
},
showPasswordRecord: {
@@ -128,7 +123,10 @@ export default {
const url = `/api/v1/accounts/account-secrets/${this.account.id}/histories/?limit=1`
this.$axios.get(url, { disableFlashErrorMsg: true }).then(resp => {
this.versions = resp.count
this.showSecretDialog()
})
} else {
this.showSecretDialog()
}
},
methods: {
@@ -142,14 +140,15 @@ export default {
name: this.secretInfo.name,
secret: encryptPassword(this.modifiedSecret)
}
this.$axios.patch(`/api/v1/accounts/accounts/${this.account.id}/`, params).then(() => {
this.$message.success(this.$tc('common.updateSuccessMsg'))
const url = this.type === 'account' ? `/api/v1/accounts/accounts` : `/api/v1/accounts/account-templates`
this.$axios.patch(`${url}/${this.account.id}/`, params).then(() => {
this.$message.success(this.$tc('UpdateSuccessMsg'))
})
},
getAuthInfo() {
this.$axios.get(this.url, { disableFlashErrorMsg: true }).then(resp => {
this.secretInfo = resp
this.sshKeyFingerprint = resp?.spec_info?.ssh_key_fingerprint || '-'
showSecretDialog() {
return this.$axios.get(this.url, { disableFlashErrorMsg: true }).then((res) => {
this.secretInfo = res
this.sshKeyFingerprint = res?.spec_info?.ssh_key_fingerprint || '-'
this.showSecret = true
})
},
@@ -168,7 +167,7 @@ export default {
</script>
<style lang="scss" scoped>
.item-textarea >>> .el-textarea__inner {
.item-textarea ::v-deep .el-textarea__inner {
height: 110px;
}
@@ -181,12 +180,18 @@ export default {
border-bottom: none;
}
>>> .el-form-item__label {
::v-deep .el-form-item__label {
display: flex;
align-items: center;
justify-content: flex-start;
padding-right: 20px;
line-height: 30px;
word-break: keep-all;
overflow-wrap: break-word;
white-space: normal;
}
>>> .el-form-item__content {
::v-deep .el-form-item__content {
line-height: 30px;
pre {

View File

@@ -0,0 +1,298 @@
import { ChoicesFormatter } from '@/components/Table/TableFormatters'
import { openTaskPage } from '@/utils/jms'
export const connectivityMeta = {
formatter: ChoicesFormatter,
formatterArgs: {
faChoices: {
'-': '',
ok: 'fa-check-circle',
err: 'fa-times-circle'
},
classChoices: {
ok: 'text-primary',
err: 'text-danger'
},
getText({ cellValue }) {
if (cellValue?.value === '-' || cellValue?.value === 'unknown') {
return '-'
} else {
return cellValue?.label
}
}
},
width: '130px'
}
export const accountOtherActions = (vm) => [
{
name: 'View',
title: vm.$t('View'),
can: vm.$hasPerm('accounts.view_accountsecret'),
type: 'primary',
order: 1,
callback: ({ row }) => {
// debugger
vm.secretUrl = `/api/v1/accounts/account-secrets/${row.id}/`
vm.account = row
vm.showViewSecretDialog = false
setTimeout(() => {
vm.showViewSecretDialog = true
})
}
},
{
name: 'Update',
title: vm.$t('Edit'),
can: vm.$hasPerm('accounts.change_account') && !vm.$store.getters.currentOrgIsRoot,
callback: ({ row }) => {
const data = {
...vm.asset,
...row.asset
}
vm.account = row
vm.iAsset = data
vm.showAddDialog = false
vm.accountCreateUpdateTitle = vm.$t('UpdateAccount')
setTimeout(() => {
vm.showAddDialog = true
})
}
},
{
name: 'UpdateSecret',
title: vm.$t('EditSecret'),
can: vm.$hasPerm('accounts.change_account') && !vm.$store.getters.currentOrgIsRoot,
callback: ({ row }) => {
const data = {
...vm.asset,
...row.asset
}
vm.account = row
vm.iAsset = data
vm.showUpdateSecretDialog = false
vm.accountCreateUpdateTitle = vm.$t('UpdateAccount')
setTimeout(() => {
console.log('Update secret')
vm.showUpdateSecretDialog = true
})
}
},
{
name: 'Clone',
title: vm.$t('Duplicate'),
can: vm.$hasPerm('accounts.add_account') && !vm.$store.getters.currentOrgIsRoot,
callback: ({ row }) => {
const data = {
...vm.asset,
...row.asset
}
vm.account = {
...row,
name: `${row.name} - ${vm.$t('Duplicate').toLowerCase()}`
}
vm.iAsset = data
vm.showAddDialog = false
vm.accountCreateUpdateTitle = vm.$t('DuplicateAccount')
setTimeout(() => {
vm.showAddDialog = true
})
}
},
{
name: 'Test',
title: vm.$t('VerifySecret'),
divided: true,
can: ({ row }) =>
!vm.$store.getters.currentOrgIsRoot &&
vm.$hasPerm('accounts.verify_account') &&
row.asset['auto_config'].ansible_enabled &&
row.asset['auto_config'].ping_enabled,
callback: ({ row }) => {
vm.$axios.post(
`/api/v1/accounts/accounts/tasks/`,
{ action: 'verify', accounts: [row.id] }
).then(res => {
openTaskPage(res['task'])
})
}
},
{
name: 'ClearSecret',
title: vm.$t('ClearSecret'),
can: vm.$hasPerm('accounts.change_account'),
type: 'primary',
callback: ({ row }) => {
vm.$axios.patch(
`/api/v1/accounts/accounts/clear-secret/`,
{ account_ids: [row.id] }
).then(() => {
vm.$message.success(vm.$tc('ClearSuccessMsg'))
})
}
},
{
name: 'SecretHistory',
// 密文历史
title: vm.$t('HistoryPassword'),
can: () => vm.$hasPerm('accounts.view_accountsecret'),
type: 'primary',
callback: ({ row }) => {
vm.currentAccountColumn = row
vm.$nextTick(() => {
vm.showPasswordHistoryDialog = true
})
}
},
{
name: 'CopyToOther',
title: vm.$t('CopyToAsset'),
type: 'primary',
divided: true,
callback: ({ row }) => {
vm.accountCreateUpdateTitle = vm.$t('CopyToOther')
vm.$route.query.flag = 'copy'
vm.iAsset = vm.asset
vm.account = row
vm.showAddDialog = true
}
},
{
name: 'MoveToOther',
title: vm.$t('MoveToAsset'),
type: 'primary',
callback: ({ row }) => {
vm.accountCreateUpdateTitle = vm.$t('MoveToOther')
vm.$route.query.flag = 'move'
vm.iAsset = vm.asset
vm.account = row
vm.showAddDialog = true
}
}
]
export const accountQuickFilters = (vm) => [
{
label: vm.$t('Recent (7 days)'),
options: [
{
label: vm.$t('RecentlyDiscovered'),
filter: {
latest_discovery: '1'
}
},
{
label: vm.$t('RecentlyLoggedIn'),
filter: {
latest_accessed: '1'
}
},
{
label: vm.$t('RecentlyModified'),
filter: {
latest_updated: '1'
}
},
{
label: vm.$t('RecentlyChangedPassword'),
filter: {
latest_secret_changed: '1'
}
},
{
label: vm.$t('RecentPasswordChangeFailed'),
filter: {
latest_secret_changed_failed: '1'
}
}
]
},
{
label: vm.$t('RiskyAccount'),
options: [
{
label: vm.$t('LongTimeNoLogin'),
filter: {
risk: 'long_time_no_login'
}
},
{
label: vm.$t('UnmanagedAccount'),
filter: {
risk: 'new_found'
}
},
{
label: vm.$t('WeakPassword'),
filter: {
risk: 'weak_password'
}
},
{
label: vm.$t('EmptyPassword'),
filter: {
has_secret: 'false'
}
},
{
label: vm.$t('LongTimeNoChangeSecret'),
filter: {
long_time_no_change_secret: 'true'
}
},
{
label: vm.$t('LongTimeNoVerify'),
filter: {
long_time_no_verify: 'true'
}
}
]
},
{
label: vm.$t('AccountType'),
options: [
{
label: vm.$t('All'),
filter: {
category: ''
}
},
{
label: vm.$t('Host'),
filter: {
category: 'host'
}
},
{
label: vm.$t('Database'),
filter: {
category: 'database'
}
},
{
label: vm.$t('Cloud'),
filter: {
category: 'cloud'
}
},
{
label: vm.$t('Device'),
filter: {
category: 'device'
}
},
{
label: 'Web',
filter: {
category: 'website'
}
},
{
label: vm.$t('Other'),
filter: {
category: 'custom'
}
}
]
}
]

View File

@@ -1,14 +1,14 @@
<template>
<IBox :fa="icon" :type="type" :title="title" v-bind="$attrs">
<IBox :fa="icon" :title="title" :type="type" v-bind="$attrs">
<table style="width: 100%">
<tr>
<td colspan="2">
<AssetSelect ref="assetSelect" :disabled="disabled" :can-select="canSelect" />
<AssetSelect ref="assetSelect" :can-select="canSelect" :disabled="disabled" />
</td>
</tr>
<tr>
<td colspan="2">
<el-button :type="type" size="small" :disabled="disabled" @click="addObjects">{{ $t('common.Add') }}</el-button>
<el-button :disabled="disabled" :type="type" size="small" @click="addObjects">{{ $t('Add') }}</el-button>
</td>
</tr>
</table>
@@ -16,8 +16,8 @@
</template>
<script>
import IBox from '@/components/IBox'
import AssetSelect from '@/components/AssetSelect'
import IBox from '@/components/IBox/index.vue'
import AssetSelect from '@/components/Apps/AssetSelect/index.vue'
export default {
name: 'AssetRelationCard',

View File

@@ -1,10 +1,11 @@
<template>
<Dialog
:title="$tc('assets.Assets')"
:close-on-click-modal="false"
:title="$tc('Assets')"
custom-class="asset-select-dialog"
top="1vh"
top="2vh"
v-bind="$attrs"
width="80vw"
width="1000px"
@cancel="handleCancel"
@close="handleClose"
@confirm="handleConfirm"
@@ -14,18 +15,22 @@
ref="ListPage"
:header-actions="headerActions"
:node-url="baseNodeUrl"
:sync-select-to-url="false"
:table-config="tableConfig"
:tree-setting="iTreeSetting"
:tree-url="`${baseNodeUrl}children/tree/`"
:url="baseUrl"
class="tree-table"
v-bind="$attrs"
@loaded="handleTableLoaded"
v-on="$listeners"
/>
</Dialog>
</template>
<script>
import AssetTreeTable from '@/components/AssetTreeTable'
import Dialog from '@/components/Dialog'
import AssetTreeTable from '@/components/Apps/AssetTreeTable/index.vue'
import Dialog from '@/components/Dialog/index.vue'
export default {
componentName: 'AssetSelectDialog',
@@ -52,11 +57,16 @@ export default {
disabled: {
type: [Boolean, Function],
default: false
},
treeSetting: {
type: Object,
default: () => ({})
}
},
data() {
const vm = this
return {
isLoaded: false,
dialogVisible: false,
rowSelected: _.cloneDeep(this.value) || [],
rowsAdd: [],
@@ -67,32 +77,22 @@ export default {
columns: [
{
prop: 'name',
label: this.$t('assets.Name'),
label: this.$t('Name'),
sortable: true
},
{
prop: 'address',
label: this.$t('assets.ipDomain'),
label: this.$t('IpDomain'),
sortable: 'custom'
},
{
prop: 'platform',
label: this.$t('assets.Platform'),
label: this.$t('Platform'),
sortable: true,
formatter: function(row) {
return row.platform.name
}
},
{
prop: 'protocols',
formatter: function(row) {
const data = row.protocols.map(p => {
return <el-tag size='mini'>{p.name}/{p.port} </el-tag>
})
return <span> {data} </span>
},
label: this.$t('assets.Protocols')
},
{
prop: 'actions',
has: false
@@ -114,15 +114,24 @@ export default {
headerActions: {
hasLeftActions: false,
hasRightActions: false,
hasLabelSearch: true,
searchConfig: {
getUrlQuery: false
}
}
}
},
computed: {
iTreeSetting() {
return { ...this.treeSetting, selectSyncToRoute: false }
}
},
methods: {
handleTableLoaded() {
this.isLoaded = true
},
handleClose() {
this.$eventBus.$emit('treeComponentKey')
this.$refs.ListPage.$refs.TreeList.componentKey += 1
},
handleConfirm() {
this.$emit('confirm', this.rowSelected, this.rowsAdd)
@@ -168,7 +177,7 @@ export default {
}
.right {
height: calc(100vh - 200px);
min-height: 500px;
overflow: auto;
}

View File

@@ -13,6 +13,7 @@
ref="dialog"
:base-node-url="baseNodeUrl"
:base-url="baseUrl"
:tree-setting="treeSetting"
:tree-url-query="treeUrlQuery"
:value="value"
:visible.sync="dialogVisible"
@@ -25,9 +26,8 @@
</template>
<script>
import Select2 from '@/components/FormFields/Select2'
import Select2 from '@/components/Form/FormFields/Select2.vue'
import AssetSelectDialog from './dialog.vue'
import { b } from 'css-color-function/lib/adjusters'
export default {
componentName: 'AssetSelect',
@@ -37,6 +37,10 @@ export default {
type: String,
default: '/api/v1/assets/assets/'
},
defaultPageSize: {
type: Number,
default: 10
},
baseNodeUrl: {
type: String,
default: '/api/v1/assets/nodes/'
@@ -48,6 +52,10 @@ export default {
value: {
type: Array,
default: () => []
},
treeSetting: {
type: Object,
default: () => ({})
}
},
data() {
@@ -66,6 +74,7 @@ export default {
value: iValue,
multiple: true,
clearable: true,
defaultPageSize: this.defaultPageSize,
ajax: {
url: this.baseUrl,
transformOption: (item) => {
@@ -76,7 +85,6 @@ export default {
}
},
methods: {
b,
handleFocus() {
this.$refs.select2.selectRef.blur()
this.dialogVisible = true
@@ -131,15 +139,22 @@ export default {
.tree-table {
.left {
padding: 5px;
padding: 5px 0;
.ztree {
height: calc(100vh - 250px) !important;
height: 100%;
}
}
.right {
.transition-box {
padding-left: 0;
}
}
.mini {
padding-top: 8px;
width: 1px;
}
.transition-box {

View File

@@ -1,10 +1,11 @@
<template>
<TreeTable
ref="TreeList"
component="TabTree"
:table-config="tableConfig"
:active-menu.sync="treeTableConfig.activeMenu"
:component="treeComponent"
:table-config="tableConfig"
:tree-tab-config="treeTableConfig"
:tree-width="treeWidth"
v-bind="$attrs"
v-on="$listeners"
>
@@ -12,13 +13,13 @@
<slot name="table" />
</template>
<div slot="rMenu" slot-scope="{data}">
<slot name="rMenu" :data="data" />
<slot :data="data" name="rMenu" />
</div>
</TreeTable>
</template>
<script>
import TreeTable from '../TreeTable'
import TreeTable from '../../Table/TreeTable/index.vue'
import { setRouterQuery, setUrlParam } from '@/utils/common'
import $ from '@/utils/jquery-vendor'
@@ -60,14 +61,17 @@ export default {
const showAssets = this.treeSetting?.showAssets || this.showAssets
const treeUrlQuery = this.setTreeUrlQuery()
const assetTreeUrl = `${this.treeUrl}?assets=${showAssets ? '1' : '0'}&${treeUrlQuery}`
const vm = this
return {
treeComponent: 'TabTree',
treeTabConfig: {
activeMenu: 'CustomTree',
submenu: [
{
title: this.$t('assets.AssetTree'),
title: this.$t('AssetTree'),
name: 'CustomTree',
icon: 'fa-tree',
treeSetting: {
showAssets,
showMenu: false,
@@ -81,19 +85,26 @@ export default {
nodeUrl: this.nodeUrl,
treeUrl: assetTreeUrl,
callback: {
onSelected: (event, treeNode) => this.getAssetsUrl(treeNode)
onSelected: (event, treeNode) => this.getAssetsUrl(treeNode),
beforeRefresh: () => {
const query = { ...this.$route.query, node_id: '', asset_id: '' }
setTimeout(() => {
vm.$router.replace({ query: query })
}, 100)
}
},
...this.treeSetting
}
},
{
title: this.$t('assets.BuiltinTree'),
title: this.$t('TypeTree'),
icon: 'fa-list-ul',
name: 'BuiltinTree',
treeSetting: {
showRefresh: true,
showAssets: false,
showSearch: false,
customTreeHeaderName: this.$t('assets.BuiltinTree'),
customTreeHeaderName: this.$t('TypeTree'),
url: '/api/v1/assets/nodes/category/tree/',
nodeUrl: this.treeSetting?.nodeUrl || this.nodeUrl,
treeUrl: `/api/v1/assets/nodes/category/tree/?assets=${showAssets ? '1' : '0'}&count_resource=${this.treeSetting.countResource || 'asset'}`,
@@ -107,6 +118,9 @@ export default {
}
},
computed: {
treeWidth() {
return '23.6%'
},
treeTableConfig() {
if (this.treeSetting.notShowBuiltinTree) {
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
@@ -124,6 +138,10 @@ export default {
treeSetting.showDelete = this.$hasPerm('assets.delete_node')
},
methods: {
reloadTable() {
console.log('Reload table')
this.$refs.TreeList.reloadTable()
},
setTreeUrlQuery() {
let str = ''
for (const key in this.treeUrlQuery) {
@@ -143,33 +161,42 @@ export default {
$('#m_show_asset_only_current_node').css('color', '#606266')
}
},
getAssetsUrl(treeNode) {
let url = this.treeSetting?.url || this.url
const setParam = (param, value, delay) => {
setTimeout(() => {
url = setUrlParam(url, param, value)
})
}
if (treeNode.meta.type === 'node') {
const nodeId = treeNode.meta.data.id
url = setUrlParam(url, 'node_id', nodeId)
url = setUrlParam(url, 'asset_id', '')
setParam('node_id', nodeId)
setParam('asset_id', '')
} else if (treeNode.meta.type === 'asset') {
const assetId = treeNode.meta.data?.id || treeNode.id
url = setUrlParam(url, 'node_id', '')
url = setUrlParam(url, 'asset_id', assetId)
setParam('node_id', '')
setParam('asset_id', assetId)
} else if (treeNode.meta.type === 'category') {
url = setUrlParam(url, 'category', treeNode.meta.category)
setParam('category', treeNode.meta.category)
} else if (treeNode.meta.type === 'type') {
url = setUrlParam(url, 'category', treeNode.meta.category)
url = setUrlParam(url, 'type', treeNode.meta._type)
setParam('category', treeNode.meta.category)
setParam('type', treeNode.meta._type)
} else if (treeNode.meta.type === 'platform') {
url = setUrlParam(url, 'platform', treeNode.id)
setParam('platform', treeNode.id)
}
setTimeout(() => {
const query = this.setTreeUrlQuery()
url = query ? `${url}&${query}` : url
this.$set(this.tableConfig, 'url', url)
})
if (this.treeSetting.selectSyncToRoute !== false) {
setRouterQuery(this, url)
}
const query = this.setTreeUrlQuery()
url = query ? `${url}&${query}` : url
this.$set(this.tableConfig, 'url', url)
setRouterQuery(this, url)
}
}
}
</script>
<style lang='scss' scoped>
</style>

View File

@@ -2,21 +2,23 @@
<div>
<div>
<el-button
:disabled="isDisabled"
size="mini"
type="primary"
:disabled="isDisabled"
@click="onOpenDialog"
>{{ $tc('common.Setting') }}</el-button>
>
{{ $tc('Setting') }}
</el-button>
</div>
<Dialog
v-if="visible"
width="60%"
:visible.sync="visible"
:title="title"
:destroy-on-close="true"
:show-cancel="false"
:show-confirm="false"
:destroy-on-close="true"
:title="title"
:visible.sync="visible"
v-bind="$attrs"
width="60%"
v-on="$listeners"
>
<AutoDataForm
@@ -31,9 +33,11 @@
</template>
<script>
import { Dialog, AutoDataForm } from '@/components'
import Dialog from '../../Dialog'
import AutoDataForm from '../../Form/AutoDataForm'
export default {
componentName: 'AutomationParams',
components: {
Dialog,
AutoDataForm
@@ -46,7 +50,7 @@ export default {
title: {
type: String,
default: function() {
return this.$t('assets.PushParams')
return this.$t('PushParams')
}
},
assets: {
@@ -57,19 +61,26 @@ export default {
type: Array,
default: () => []
},
platforms: {
type: Array,
default: () => []
},
method: {
type: String,
default: ''
},
url: {
type: String,
default: `/api/v1/assets/platform-automation-methods/`
}
},
data() {
const vm = this
return {
remoteMeta: {},
visible: false,
isDisabled: true,
form: this.value,
node_ids: this.nodes,
asset_ids: this.assets,
config: {
url: this.url,
hasSaveContinue: false,
@@ -77,7 +88,8 @@ export default {
method: 'get',
fields: [],
fieldsMeta: {}
}
},
onFieldChangeHandler: _.debounce(vm.handleFieldChange, 1000)
}
},
computed: {
@@ -87,22 +99,27 @@ export default {
},
watch: {
nodes: {
handler(val) {
this.node_ids = val
this.onFieldChangeHandle()
handler() {
this.onFieldChangeHandler()
},
deep: true
},
assets: {
handler(val) {
this.asset_ids = val
this.onFieldChangeHandle()
handler() {
this.onFieldChangeHandler()
},
deep: true
},
platforms: {
handler(newVal) {
this.onFieldChangeHandler()
},
deep: true,
immediate: true
}
},
created() {
this.getUrlMeta()
async mounted() {
await this.getUrlMeta()
},
methods: {
async getUrlMeta() {
@@ -110,35 +127,34 @@ export default {
this.remoteMeta = data.actions[this.config.method.toUpperCase()] || {}
},
async getFilterPlatforms() {
const res = await this.$axios.post(
return await this.$axios.post(
'/api/v1/assets/platforms/filter-nodes-assets/',
{
'node_ids': this.node_ids,
'asset_ids': this.asset_ids
'node_ids': this.nodes,
'asset_ids': this.assets,
'platform_ids': this.platforms.map(i => i.id || i.pk || i)
}
)
return res
},
async onFieldChangeHandle() {
async handleFieldChange() {
const platforms = await this.getFilterPlatforms()
let pushAccountMethods = platforms.map(i => i.automation?.push_account_method)
let pushAccountMethods = platforms.map(i => i.automation[this.method])
pushAccountMethods = _.uniq(pushAccountMethods)
//
const hasCanSettingPushMethods = _.intersection(pushAccountMethods, Object.keys(this.remoteMeta))
this.setFormConfig(hasCanSettingPushMethods)
if (hasCanSettingPushMethods.length > 0) {
this.isDisabled = false
this.$emit('input', this.form)
} else {
this.isDisabled = true
this.$emit('input', {})
}
this.isDisabled = hasCanSettingPushMethods.length <= 0
},
setFormConfig(methods) {
const newForm = {}
const fields = []
const fieldsMeta = {}
this.config.fields = []
// Todo: serializer,
const typeMapper = {
'string': 'input',
'boolean': 'switch'
}
for (const method of methods) {
const filterField = this.remoteMeta[method] || {}
@@ -155,7 +171,7 @@ export default {
for (const [k, v] of Object.entries(filterField.children)) {
const item = {
...v,
type: 'input'
type: typeMapper[v.type] || 'input'
}
delete item.default
fieldsMeta[method].fields.push(k)
@@ -172,8 +188,11 @@ export default {
this.visible = true
},
onSubmit(form) {
this.visible = false
this.form = form
this.$emit('input', form)
setTimeout(() => {
this.visible = false
}, 100)
this.$log.debug('Auto push form:', form)
}
}

View File

@@ -0,0 +1,99 @@
<template>
<ListTable ref="ListTable" :header-actions="headerActions" :table-config="tableConfig" />
</template>
<script>
import { DrawerListTable as ListTable } from '@/components'
export default {
name: 'BlockedIPList',
components: {
ListTable
},
props: {
object: {
type: Object,
required: false,
default: () => ({})
}
},
data() {
const vm = this
return {
tableConfig: {
url: '/api/v1/settings/security/block-ip/',
columns: [
'ip', 'actions'
],
columnsMeta: {
ip: {
label: this.$t('IP')
},
actions: {
formatterArgs: {
hasDelete: false,
hasUpdate: false,
hasClone: false,
extraActions: [
{
name: 'UnlockIP',
title: this.$t('Unblock'),
can: this.$hasPerm('settings.change_security'),
type: 'primary',
callback: ({ row }) => {
this.$axios.post(
'/api/v1/settings/security/unlock-ip/',
{ ips: [row.ip] }
).then(() => {
vm.$message.success(this.$tc('UnlockSuccessMsg'))
vm.$refs.ListTable.reloadTable()
})
}
}
]
}
}
}
},
headerActions: {
hasExport: false,
hasImport: false,
hasCreate: false,
hasSearch: false,
hasRefresh: true,
hasBulkDelete: false,
hasBulkUpdate: false,
hasLeftActions: true,
hasRightActions: true,
extraMoreActions: [
{
name: 'UnlockSelected',
title: this.$t('UnblockSelected'),
type: 'primary',
can: ({ selectedRows }) => {
return selectedRows.length > 0
},
callback: function({ selectedRows }) {
vm.$axios.post(
'/api/v1/settings/security/unlock-ip/',
{
ips: selectedRows.map(v => {
return v.ip
})
}
).then(res => {
vm.$message.success(vm.$tc('UnlockSuccessMsg'))
vm.$refs.ListTable.reloadTable()
})
}
}
]
}
}
}
}
</script>
<style lang='less' scoped>
</style>

View File

@@ -0,0 +1,86 @@
<template>
<div>
<div>
<el-button
size="mini"
type="primary"
@click="onOpenDialog"
>
{{ $tc('View') }}
<span>({{ $tc('LockedIP', ipCounts ) }})</span>
</el-button>
</div>
<Dialog
:destroy-on-close="true"
:show-cancel="false"
:show-confirm="false"
:title="title"
:visible.sync="visible"
v-bind="$attrs"
width="40%"
v-on="$listeners"
>
<BlockedIPList />
</Dialog>
</div>
</template>
<script>
import { Dialog } from '@/components'
import BlockedIPList from '@/components/Apps/BlockedIPs/BlockedIPList'
export default {
componentName: 'BlockedIPs',
components: {
BlockedIPList,
Dialog
},
props: {
value: {
type: Object,
default: () => ({})
},
title: {
type: String,
default: function() {
return this.$t('BlockedIPS')
}
},
url: {
type: String,
default: `/api/v1/assets/platform-automation-methods/`
}
},
data() {
return {
remoteMeta: {},
visible: false,
form: this.value,
ipCounts: 0,
config: {
url: this.url,
hasSaveContinue: false,
hasButtons: true,
fields: [],
fieldsMeta: {}
}
}
},
created() {
this.getLockedIp()
},
methods: {
getLockedIp() {
this.$axios.get('/api/v1/settings/security/block-ip/').then(res => {
this.ipCounts = res.count
})
},
onOpenDialog() {
this.visible = true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,135 @@
<template>
<div>
<Dialog
:destroy-on-close="true"
:show-cancel="false"
:title="title"
:visible.sync="showSecret"
:width="'50'"
v-bind="$attrs"
@confirm="accountConfirmHandle"
v-on="$listeners"
>
<el-form :model="secretInfo" class="password-form" label-position="right" label-width="100px">
<el-form-item :label="$tc('OldSecret')">
<SecretViewerFormatter
:cell-value="secretInfo.old_secret"
:col="{ formatterArgs: {
name: 'old_secret'
}}"
/>
</el-form-item>
<el-form-item :label="$tc('NewSecret')">
<SecretViewerFormatter
:cell-value="secretInfo.new_secret"
:col="{ formatterArgs: {
name: 'new_secret'
}}"
/>
</el-form-item>
</el-form>
</Dialog>
</div>
</template>
<script>
import Dialog from '@/components/Dialog/index.vue'
import { SecretViewerFormatter } from '@/components/Table/TableFormatters'
export default {
name: 'RecordViewSecret',
components: {
Dialog,
SecretViewerFormatter
},
props: {
visible: {
type: Boolean,
default: false
},
url: {
type: String,
default: ''
},
title: {
type: String,
default: function() {
return this.$tc('ViewSecret')
}
}
},
data() {
return {
secretInfo: {},
showSecret: false,
mfaDialogVisible: true
}
},
computed: {},
mounted() {
this.showSecretDialog()
},
methods: {
accountConfirmHandle() {
this.showSecret = false
this.mfaDialogVisible = false
},
showSecretDialog() {
return this.$axios.get(this.url, { disableFlashErrorMsg: true }).then((res) => {
this.secretInfo = res
this.showSecret = true
})
},
exit() {
this.$emit('update:visible', false)
}
}
}
</script>
<style lang="scss" scoped>
.item-textarea ::v-deep .el-textarea__inner {
height: 110px;
}
.el-form-item {
border-bottom: 1px solid #EBEEF5;
padding: 5px 0;
margin-bottom: 0;
&:last-child {
border-bottom: none;
}
::v-deep .el-form-item__label {
padding-right: 20px;
line-height: 30px;
}
::v-deep .el-form-item__content {
line-height: 30px;
pre {
margin: 0;
}
}
}
ul {
margin: 0;
}
li {
display: block;
font-size: 13px;
margin-bottom: 8px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
.title {
color: #303133;
font-weight: 500;
}
}
</style>

View File

@@ -0,0 +1,153 @@
<template>
<div class="container">
<div class="chat-action">
<Select2
v-model="select.value"
:disabled="isLoading || isSelectDisabled"
v-bind="select"
@change="onSelectChange"
/>
</div>
<div class="chat-input">
<el-input
v-model="inputValue"
:disabled="isLoading"
:placeholder="$tc('InputMessage')"
:rows="expanded ? 3 :2"
type="textarea"
@compositionend="isIM = false"
@compositionstart="isIM = true"
@keypress.native="onKeyEnter"
/>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
import { useChat } from '../../useChat.js'
import Select2 from '../../../../Form/FormFields/Select2.vue'
const { setLoading } = useChat()
export default {
components: { Select2 },
props: {
expanded: {
type: Boolean,
default: false
}
},
data() {
return {
isIM: false,
inputValue: '',
select: {
url: '/api/v1/settings/chatai-prompts/',
value: '',
multiple: false,
placeholder: this.$t('Prompt'),
ajax: {
transformOption: (item) => {
return { label: item.name, value: item.content }
}
}
}
}
},
computed: {
...mapState({
isLoading: state => state.chat.loading
}),
isSelectDisabled() {
return !!this.select.value
}
},
methods: {
onKeyEnter(event) {
if (event.key === 'Enter') {
if ((!this.isIM && !event.shiftKey) || (this.isIM && event.ctrlKey)) {
event.preventDefault()
this.onSendHandle()
}
}
},
onSendHandle() {
if (!this.inputValue) return
setLoading(true)
this.$emit('send', this.inputValue)
this.inputValue = ''
},
onSelectChange(value) {
this.$emit('select-prompt', value)
}
}
}
</script>
<style lang="scss" scoped>
.container {
display: flex;
height: 100%;
flex-direction: column;
.chat-action {
width: 100%;
margin: 6px 0;
&::v-deep .el-select {
width: 50%;
.el-input__inner {
height: 28px;
line-height: 28px;
border-radius: 14px;
border-color: transparent;
background-color: #f7f7f8;
font-size: 13px;
color: rgba(0, 0, 0, 0.45);
&:hover {
background-color: #ededed;
}
}
.el-input__icon {
line-height: 0;
}
}
}
.chat-input {
flex: 1;
display: flex;
flex-direction: column;
border-radius: 12px;
&::v-deep .el-textarea {
height: 100%;
.el-textarea__inner {
height: 100%;
padding: 8px 10px;
resize: none;
border-radius: 5px;
&::-webkit-scrollbar {
width: 12px;
}
}
}
.el-textarea.is-disabled + .input-action {
background-color: #F5F7FA;
cursor: no-drop;
i {
cursor: no-drop;
}
}
}
}
</style>

View File

@@ -0,0 +1,206 @@
<template>
<div :class="{'user-role': isUserRole}" class="chat-item">
<div class="avatar">
<el-avatar :src="isUserRole ? userUrl : chatUrl" class="header-avatar" />
</div>
<div class="content">
<div class="operational">
<span class="date">
{{ $moment(item.message.create_time).format('YYYY-MM-DD HH:mm:ss') }}
</span>
</div>
<div class="message">
<div class="message-content">
<span v-if="isSystemError" class="error">
{{ item.message.content }}
</span>
<span v-else class="chat-text">
<MessageText :message="item.message" />
</span>
</div>
<div class="action">
<el-tooltip
v-if="isSystemError && isLoading"
:content="$tc('Reconnect')"
:open-delay="500"
placement="top"
>
<svg-icon icon-class="refresh" @click="onRefresh" />
</el-tooltip>
<el-dropdown v-else size="small" @command="handleCommand">
<span class="el-dropdown-link">
<i class="fa fa-ellipsis-v" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="i in dropdownOptions" :key="i.action" :command="i.action">
{{ i.label }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</div>
</div>
</template>
<script>
import MessageText from './MessageText.vue'
import { mapState } from 'vuex'
import { copy } from '@/utils/common'
import { useChat } from '../../useChat.js'
import { reconnect } from '@/utils/socket'
const { setLoading, removeLoadingMessageInChat } = useChat()
export default {
components: {
MessageText
},
props: {
item: {
type: Object,
default: () => {
}
}
},
data() {
return {
chatUrl: require('@/assets/img/chat.png'),
userUrl: '/api/v1/settings/logo/',
dropdownOptions: [
{
action: 'copy',
label: this.$t('Copy')
}
]
}
},
computed: {
...mapState({
isLoading: state => state.chat.loading
}),
isUserRole() {
return this.item.message?.role === 'user'
},
isSystemError() {
return this.item.type === 'error' && this.item.message?.role === 'assistant'
}
},
methods: {
onRefresh() {
reconnect()
removeLoadingMessageInChat()
setLoading(false)
},
handleCommand(value) {
if (value === 'copy') {
copy(this.item.message.content)
}
}
}
}
</script>
<style lang="scss" scoped>
.chat-item {
display: flex;
padding: 16px 14px 0;
&:last-child {
padding-bottom: 16px;
}
.avatar {
width: 22px;
height: 22px;
margin-top: 2px;
.header-avatar {
width: 100%;
height: 100%;
&::v-deep img {
background-color: #e5e5e7;
}
}
}
.content {
margin-left: 6px;
overflow: hidden;
.operational {
display: flex;
justify-content: space-between;
overflow: hidden;
.copy {
float: right;
cursor: pointer;
}
}
.message {
display: -webkit-box;
.message-content {
flex: 1;
padding: 6px 10px;
border-radius: 2px 12px 12px;
background-color: #f0f1f5;
}
.action {
.svg-icon {
transform: translateY(50%);
margin-left: 3px;
cursor: pointer;
}
.el-dropdown {
height: 32px;
line-height: 37px;
font-size: 13px;
.el-dropdown-link {
i {
padding: 4px 5px;
font-size: 15px;
color: #8d9091;
&:hover {
color: #7b8085
}
}
}
}
}
.error {
color: red;
}
}
}
}
.user-role {
flex-direction: row-reverse;
.content {
margin-right: 10px;
.operational {
flex-direction: row-reverse;
}
.message {
flex-direction: row-reverse;
.message-content {
background-color: var(--menu-hover);
border-radius: 12px 2px 12px 12px;
}
}
}
}
</style>

View File

@@ -0,0 +1,197 @@
<template>
<div>
<div ref="textRef" class="leading-relaxed break-words">
<span v-if="message.content === 'loading'" class="loading-box">
<span />
<span />
<span />
</span>
<div v-else v-sanitize="text" class="inline-block markdown-body" />
</div>
</div>
</template>
<script>
import MarkdownIt from 'markdown-it'
import mdKatex from '@traptitech/markdown-it-katex'
import mila from 'markdown-it-link-attributes'
import hljs from 'highlight.js'
import 'highlight.js/styles/atom-one-dark.css'
import { copy } from '@/utils/common'
export default {
props: {
message: {
type: Object,
default: () => {
}
}
},
data() {
return {
markdown: null
}
},
computed: {
text() {
const value = this.message?.content || ''
if (value && this.markdown) {
return this.markdown?.render(value)
}
return this.$xss.process(value)
}
},
mounted() {
this.init()
},
updated() {
this.addCopyEvents()
},
destroyed() {
this.removeCopyEvents()
},
methods: {
init() {
const vm = this
this.markdown = new MarkdownIt({
html: false,
linkify: true,
highlight(code, language) {
const validLang = !!(language && hljs.getLanguage(language))
if (validLang) {
const lang = language || ''
return vm.highlightBlock(hljs.highlight(lang, code, true).value, lang)
}
return vm.highlightBlock(hljs.highlightAuto(code).value, '')
}
})
this.markdown.use(mila, { attrs: { target: '_blank', rel: 'noopener', class: 'link-style' }})
this.markdown.use(mdKatex, { blockClass: 'katexmath-block rounded-md', errorColor: ' #cc0000' })
},
highlightBlock(str, lang) {
return `<pre class="code-block-wrapper"><div class="code-block-header"><span class="code-block-header__lang">${lang}</span><span class="code-block-header__copy">${'Copy'}</span></div><code class="hljs code-block-body ${lang}">${str}</code></pre>`
},
addCopyEvents() {
const copyBtn = document.querySelectorAll('.code-block-header__copy')
copyBtn.forEach((btn) => {
btn.addEventListener('click', () => {
const code = btn.parentElement?.nextElementSibling?.textContent
if (code) {
copy(code)
}
})
})
},
removeCopyEvents() {
if (this.$refs.textRef) {
const copyBtn = this.$refs.textRef.querySelectorAll('.code-block-header__copy')
copyBtn.forEach((btn) => {
btn.removeEventListener('click', () => {
})
})
}
}
}
}
</script>
<style lang="scss" scoped>
.markdown-body {
font-size: 13px;
&::v-deep p {
margin-bottom: 0 !important;
}
background: inherit;
&::v-deep pre {
padding: 0 0 6px 0;
.hljs.code-block-body {
border-radius: 4px;
}
}
&::v-deep .code-block-wrapper {
background: #1F2329;
padding: 2px 6px;
margin: 5px 0;
.code-block-body {
padding: 5px 10px 0;
}
;
.code-block-header {
margin-bottom: 4px;
overflow: hidden;
background: #353946;
color: #c2d1e1;
.code-block-header__copy {
float: right;
cursor: pointer;
&:hover {
color: #6e747b;
}
}
}
.hljs.code-block-body.javascript {
.hljs-comment {
display: block;
}
}
}
}
::v-deep .link-style {
color: #487bf4;
&:hover {
color: #275ee3;
}
}
.loading-box {
margin-left: 6px;
}
.loading-box span {
display: inline-block;
width: 5px;
height: 5px;
margin-right: 5px;
border-radius: 50%;
vertical-align: middle;
background: #676A6c;
animation: load 1.2s ease infinite;
}
.loading-box span:last-child {
margin-right: 0;
}
@keyframes load {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.loading-box span:nth-child(1) {
animation-delay: 0.23s;
}
.loading-box span:nth-child(2) {
animation-delay: 0.36s;
}
.loading-box span:nth-child(3) {
animation-delay: 0.49s;
}
</style>

View File

@@ -0,0 +1,276 @@
<template>
<div class="chat-content">
<div id="scrollRef" class="chat-list">
<div v-if="showIntroduction" class="introduction">
<div
v-for="(item, index) in introduction"
:key="index"
class="introduction-item"
@click="sendIntroduction(item)"
>
<div class="head">
<i v-if="item.icon" :class="item.icon" />
<span class="title">{{ item.title }}</span>
</div>
<div class="content">
{{ item.content }}
</div>
</div>
</div>
<ChatMessage v-for="(item, index) in activeChat.chats" :key="index" :item="item" />
</div>
<div class="input-box">
<el-button
v-if="isLoading && socket && socket.readyState === 1"
class="stop"
icon="fa fa-stop-circle-o"
round
size="small"
@click="onStopHandle"
>{{ $tc('Stop') }}</el-button>
<ChatInput ref="chatInput" :expanded="expanded" @send="onSendHandle" @select-prompt="onSelectPromptHandle" />
</div>
</div>
</template>
<script>
import ChatInput from './ChatInput.vue'
import ChatMessage from './ChatMessage.vue'
import { mapState } from 'vuex'
import { closeWebSocket, createWebSocket, onSend, ws } from '@/utils/socket'
import { getInputFocus, useChat } from '../../useChat.js'
const {
setLoading,
clearChats,
addChatMessageById,
addMessageToActiveChat,
newChatAndAddMessageById,
removeLoadingMessageInChat,
updateChaMessageContentById,
addTemporaryLoadingToChat
} = useChat()
export default {
components: {
ChatInput,
ChatMessage
},
props: {
expanded: {
type: Boolean,
default: false
}
},
data() {
return {
socket: {},
prompt: '',
conversationId: '',
showIntroduction: false,
introduction: []
}
},
computed: {
...mapState({
isLoading: state => state.chat.loading,
activeChat: state => state.chat.activeChat
})
},
destroyed() {
closeWebSocket()
},
methods: {
init() {
this.initWebSocket()
this.initChatMessage()
},
initWebSocket() {
const { NODE_ENV, VUE_APP_KOKO_HOST } = process.env || {}
const api = '/koko/ws/chat/system/'
const protocol = window.location.protocol === 'https:' ? 'wss' : 'ws'
const path = `${protocol}://${window.location.host}${api}`
const index = VUE_APP_KOKO_HOST?.indexOf('://')
const localPath = protocol + VUE_APP_KOKO_HOST?.substring(index, VUE_APP_KOKO_HOST?.length) + api
const url = NODE_ENV === 'development' ? localPath : path
createWebSocket(url, this.onWebSocketMessage)
},
initChatMessage() {
this.prompt = ''
this.showIntroduction = true
this.conversationId = ''
this.$refs.chatInput.select.value = ''
const chat = {
message: {
content: this.$t('ChatHello'),
role: 'assistant',
create_time: new Date()
}
}
newChatAndAddMessageById(chat)
setLoading(false)
},
onWebSocketMessage(data) {
if (data.type === 'message') {
this.onChatMessage(data)
}
if (data.type === 'error') {
this.onSystemMessage(data)
}
},
onChatMessage(data) {
if (data.id) {
setLoading(true)
removeLoadingMessageInChat()
this.conversationId = data.id
updateChaMessageContentById(data.message.id, data)
}
if (data.message?.type === 'finish') {
setLoading(false)
getInputFocus()
}
},
onSystemMessage(data) {
data.message = {
content: data.data,
role: 'assistant',
create_time: new Date()
}
removeLoadingMessageInChat()
addMessageToActiveChat(data)
setLoading(true)
},
onSendHandle(value) {
this.showIntroduction = false
this.socket = ws || {}
if (ws?.readyState === 1) {
const chat = {
message: {
content: value,
role: 'user',
create_time: new Date()
}
}
const message = {
data: value,
prompt: this.prompt,
id: this.conversationId || ''
}
addChatMessageById(chat)
onSend(message)
addTemporaryLoadingToChat()
} else {
const chat = {
message: {
content: this.$t('ConnectionDropped'),
role: 'assistant',
create_time: new Date()
},
type: 'error'
}
addChatMessageById(chat)
setLoading(true)
}
},
onSelectPromptHandle(value) {
this.prompt = value
this.conversationId = ''
this.showIntroduction = false
this.onSendHandle(value)
},
onNewChat() {
clearChats()
this.initChatMessage()
},
onStopHandle() {
const message = {
id: this.conversationId || '',
interrupt: true
}
onSend(message)
removeLoadingMessageInChat()
setLoading(false)
},
sendIntroduction(item) {
this.showIntroduction = false
this.onSendHandle(item.content)
}
}
}
</script>
<style lang="scss" scoped>
.chat-content {
display: flex;
flex-direction: column;
overflow: hidden;
height: 100%;
.introduction {
padding: 16px 14px 0;
.introduction-item {
padding: 12px 14px;
border-radius: 8px;
margin-top: 16px;
background-color: var(--menu-hover);
cursor: pointer;
&:hover {
box-shadow: 0 0 2px 2px #00000014;
}
&:first-child {
margin-top: 0;
}
.head {
margin-bottom: 2px;
.title {
font-weight: 500;
color: #373739;
}
}
.content {
display: inline-block;
color: #a7a7ab;
word-wrap: break-word;
}
}
}
.chat-list {
flex: 1;
position: relative;
padding: 0 15px 25px;
overflow-y: auto;
user-select: text;
&::-webkit-scrollbar {
width: 12px;
}
}
.input-box {
position: relative;
//height: 60px;
padding: 0 15px;
margin-bottom: 15px;
//border-top: 1px solid #ececec;
}
.stop {
position: absolute;
top: -37px;
left: 50%;
z-index: 11;
transform: translateX(-50%);
::v-deep i {
margin-right: 4px;
}
}
}
</style>

Some files were not shown because too many files have changed in this diff Show More