Compare commits

...

1609 Commits

Author SHA1 Message Date
feng
d634c76040 perf: connectivity meta icon 2025-04-27 18:50:44 +08:00
zhaojisen
55f7855cf8 Fixed: Fix the issue with direct connection for SFTP. 2025-04-27 11:17:27 +08:00
feng
f157ab9453 perf: ko translate 2025-04-25 15:03:49 +08:00
feng
49c80cd76b perf: gather facts gpu info 2025-04-22 17:48:29 +08:00
ibuler
cad15986bf perf: asset always can set zone 2025-04-21 10:36:41 +08:00
ibuler
9a0158da3a perf: change domain to zone 2025-04-21 10:36:41 +08:00
feng
deea38c704 perf: lina translate 2025-04-18 18:22:00 +08:00
ibuler
bc4fb455a3 perf: change profile api 2025-04-18 14:10:49 +08:00
O-Jiangweidong
411317194c feat: Cloud sync support ali rds (v4.10) 2025-04-18 14:08:08 +08:00
fit2bot
42e9fac6f0
Fixed: Fix the error issue with direct connection in asset authorization details. (#4973) 2025-04-17 20:10:54 +08:00
zhaojisen
82d618cc03 Fixed: Cloud Async Card Style 2025-04-17 17:55:26 +08:00
zhaojisen
9ebefdb1e8 Fixed: Account Cloud Style 2025-04-17 17:51:34 +08:00
feng
5943158b3b perf: asset exclude spec_info 2025-04-17 16:18:41 +08:00
ibuler
e8fe386c1b perf: ds add help message 2025-04-17 16:03:03 +08:00
feng
5766833bd2 perf: user login acl time_period 2025-04-17 14:20:20 +08:00
jiangweidong
56f05e09ca perf: Optimize cloud account update error reporting to prompt on the corresponding field 2025-04-17 14:20:16 +08:00
w940853815
b4ba209a8b fix: Allow superusers delete adhoc and playbook 2025-04-17 10:55:26 +08:00
ibuler
75e2ed71be perf: change asset account url 2025-04-16 18:24:31 +08:00
feng
1e0f0cc5c7 perf: account filter 2025-04-16 15:43:14 +08:00
zhaojisen
e3626c2f9e Fixed: Fix the issue with the automation names in the table. 2025-04-16 15:00:24 +08:00
w940853815
6a13526c87 fix: Add BaseJob component periodic_display,is_periodic columns 2025-04-16 11:31:42 +08:00
ibuler
5f1b71520f perf: change diretory service account 2025-04-15 20:23:06 +08:00
zhaojisen
bf687802d0 Fixed: Fix the styling issue of the connect button when it is disabled. 2025-04-15 18:35:43 +08:00
zhaojisen
9b127470e2 Fixed: Temporarily hide the SFTP protocol and restrict the winrm protocol 2025-04-15 18:19:24 +08:00
w940853815
7cfb1c6ee7 fix: Modify QuickJob to handle selected nodes or assets issues 2025-04-15 16:46:26 +08:00
jiangweidong
bcd96c08cf perf: The global organization strategy is not operational. 2025-04-15 14:52:13 +08:00
jiangweidong
26f5516398 fix: Fixed the issue where the drawer would close when updating the cloud account 2025-04-15 14:51:48 +08:00
w940853815
67eb359f15 fix: update ConfirmRunAssetsDialog to conditionally show buttons based on running status 2025-04-15 14:43:18 +08:00
zhaojisen
60163a6026 Fixed: Fix the issue with searching account details for the publisher. 2025-04-15 11:04:41 +08:00
w940853815
cebbcd3c6c fix: add 'crontab' and 'interval' columns to BaseJob component and update interval default value 2025-04-15 10:02:47 +08:00
fit2bot
03d1e9a881
Fixed: Fix the issue of losing the automation status when cloning the platform list. (#4951)
* Fixed: Fix the issue of losing the automation status when cloning the platform list.

* Fixed: Remove console

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2025-04-14 19:00:51 +08:00
zhaojisen
6fa4efaa5f Fixed: Fix the issues with deleting an account and retrieving account information in the asset details. 2025-04-14 18:25:42 +08:00
w940853815
52ca8f55a2 fix: update AutoDetailCard to exclude specified fields in AdhocDetail component 2025-04-14 11:34:20 +08:00
w940853815
8b1c964082 fix: update input number ranges for hours and minutes in crontab components 2025-04-11 17:03:08 +08:00
zhaojisen
171ab3a1ec Fixed: Fix the error when deleting an account in the asset details 2025-04-11 16:55:50 +08:00
w940853815
1b3e97512b fix: ensure warning message triggers when both hosts and nodes are absent 2025-04-10 18:34:04 +08:00
w940853815
92a863b078 perf: add default logo 2025-04-10 16:08:33 +08:00
w940853815
e693353d49 perf: Adjust style of import alert for better spacing 2025-04-10 15:05:53 +08:00
w940853815
025487a5eb perf: Enhance account actions with organization root checks 2025-04-10 14:51:55 +08:00
w940853815
e19c0090de perf: Add org ID column 2025-04-10 11:28:59 +08:00
w940853815
c6568f57fe perf: Optimized operation logic 2025-04-09 19:23:53 +08:00
w940853815
d5d9f8024c perf: Style adjustment 2025-04-09 19:23:53 +08:00
w940853815
292aad0d59 perf: add check_all 2025-04-09 19:23:53 +08:00
w940853815
39c0ae8cf7 perf: optimize adhoc asset selection experience 2025-04-09 19:23:53 +08:00
feng
5ac386d56d perf: ad platform create or update 2025-04-09 18:24:19 +08:00
zhaojisen
a3ff882847 Fixed: startup error 2025-04-09 15:50:01 +08:00
zhaojisen
2cd6682cdf Fixed: Plateform jump 2025-04-09 14:53:15 +08:00
老广
a3f17ea4d3
Merge pull request #4931 from jumpserver/pr@dev@feat_ad_domain
feat: ad domain as asset
2025-04-08 19:30:13 +08:00
ibuler
1b8c5e66bc merge: with dev 2025-04-08 19:29:07 +08:00
ibuler
0777ecd818 perf: rename to dc 2025-04-08 19:27:01 +08:00
fit2bot
e309d7e049
perf: Added cloud sync global released asset tab (#4929) 2025-04-08 18:27:02 +08:00
halo
61bb8c07c4 fix: Optimize UserConfirmDialog to send code via email 2025-04-08 18:13:02 +08:00
jiangweidong
a3a875bc28 perf: Optimize the display of cloud sync strategy details 2025-04-08 18:12:27 +08:00
ibuler
4e72e955ed perf: ds var 2025-04-08 18:04:22 +08:00
zhaojisen
24483ade28 Fixed: Hidden SFTP Options 2025-04-08 15:17:17 +08:00
w940853815
38fee74250 perf: LDAP strict sync 2025-04-08 14:36:32 +08:00
Bai
f34da5afe5 perf: change jumpserver.org to jumpserver.com 2025-04-08 14:21:39 +08:00
ibuler
08c26a461e perf: connect ad account 2025-04-08 14:03:36 +08:00
fit2bot
7f8f2d9dda
perf: change support email (#4933) 2025-04-08 13:22:38 +08:00
ibuler
0a7704c06c perf: rename ad to ds 2025-04-07 19:10:33 +08:00
ibuler
a45d86c568 feat: ad domain as asset 2025-04-02 19:14:40 +08:00
Chenyang Shen
99e7ebee99
Merge pull request #4927 from jumpserver/pr@dev@feat_add_oracle_port
feat: add oracle port
2025-04-01 17:34:55 +08:00
Aaron3S
ec7ac4a036 feat: add oracle port 2025-04-01 17:33:50 +08:00
w940853815
9e5059fb38 fix: Job audit: Search job list, filter failures based on command 2025-03-31 15:18:44 +08:00
feng
9af896898e perf: Translate 2025-03-28 16:23:44 +08:00
w940853815
1259052b68 perf: prevent navigation until user agrees to terms 2025-03-28 13:59:24 +08:00
zhaojisen
80976b4141 Perf: Remove Reload 2025-03-28 10:47:01 +08:00
github-actions[bot]
af1f14f293 perf: Update Dockerfile with new base image tag 2025-03-28 10:11:31 +08:00
ibuler
cd175d50c1 perf: applet card list 2025-03-28 10:11:31 +08:00
ibuler
17a1026696 perf: fix applet host detail org error 2025-03-27 19:07:06 +08:00
feng
ce4c09c373 perf: Privacy mode 2025-03-27 18:33:19 +08:00
github-actions[bot]
105aca42a6 perf: Update Dockerfile with new base image tag 2025-03-27 17:16:06 +08:00
zhaojisen
a54190adfc Perf: Add Lina Watermark 2025-03-27 17:16:06 +08:00
halo
eda3eaa9a6 feat: Email as a method for multi-factor authentication 2025-03-27 16:45:26 +08:00
zhaojisen
47366b3cf0 Fixed: Change Connect Route 2025-03-26 17:01:38 +08:00
zhaojisen
6e2c591822 Fixed: Amount Detail 2025-03-26 16:33:01 +08:00
zhaojisen
5740ecd49c Fixed: XSS 2025-03-25 18:18:07 +08:00
zhaojisen
4c6d63bde8 Fixed: Search Qeurt 2025-03-25 17:54:42 +08:00
ibuler
a31e2295ee perf: update crontab update 2025-03-25 10:12:09 +08:00
w940853815
c0ff9a8502 fix: Help message no display 2025-03-24 19:20:17 +08:00
ibuler
6bcf8b1b15 perf: 修改账号创建更新 2025-03-24 18:07:12 +08:00
feng
8a836faa25 perf: User system_roles required 2025-03-24 16:08:55 +08:00
ibuler
5a2028786a fix: applet host update error 2025-03-24 15:28:35 +08:00
ibuler
8a0f642d95 fix: applet host create protocol err 2025-03-24 11:28:10 +08:00
feng
59a2180f2c perf: Login acl license 2025-03-21 14:25:56 +08:00
ibuler
2519edc6a7 perf: add enterprise upgrade handler 2025-03-21 10:54:56 +08:00
zhaojisen
42560d6603 Fixed: Asset Clone 2025-03-21 10:36:10 +08:00
w940853815
9cbdfacfd2 fix: remove TaskList from AccountPushExecutionInfo 2025-03-20 18:29:17 +08:00
ibuler
2dec820a0a perf: add default conn btn 2025-03-20 18:13:53 +08:00
ibuler
84a66d8c5a perf: asset update 2025-03-20 18:01:03 +08:00
ibuler
6eedfe994e perf: update automation submit 2025-03-20 17:37:54 +08:00
ibuler
f1982c2d8f perf: add no cache meta interface 2025-03-20 17:10:16 +08:00
zhaojisen
4dac455575 Fixed: Role Edit 2025-03-20 17:04:19 +08:00
ibuler
affb9e405e perf: update platform automation update 2025-03-20 16:54:20 +08:00
ibuler
2bf8090b60 perf: update clone error 2025-03-20 16:45:40 +08:00
ibuler
266ddc7b51 pr@dev@perf_update_role_etail 2025-03-20 16:45:40 +08:00
fit2bot
5831940be0
perf: update some clone (#4882)
* pr@dev@perf_update_role_etail

* perf: update clone error

* perf: update query set

* perf: update some clone

---------

Co-authored-by: ibuler <ibuler@qq.com>
2025-03-20 16:44:26 +08:00
zhaojisen
8ae747b9a5 Drawer 2025-03-20 16:28:20 +08:00
zhaojisen
8b69f25e7b Fixed: Account Change Secret 2025-03-20 16:13:41 +08:00
zhaojisen
883d44cede Fixed: Translate 2025-03-20 16:03:50 +08:00
zhaojisen
024051df76 Fixed: Plateform Clone 2025-03-20 15:53:19 +08:00
zhaojisen
564e530a96 Fixed: Amount Prevent 2025-03-20 15:38:16 +08:00
ibuler
d3a0f69b4c perf: update platform detail 2025-03-20 15:17:13 +08:00
w940853815
69f263e491 fix: Failed to change secret in batch. 2025-03-20 15:07:07 +08:00
zhaojisen
ad82040a54 Fixed: Account Detail 2025-03-20 15:01:47 +08:00
ibuler
d994c60378 perf: update account detail 2025-03-20 14:53:33 +08:00
zhaojisen
d7fddf405f Fixed: Drawer Detail 2025-03-20 14:44:23 +08:00
ibuler
ad9660b1f2 perf: update perm detail 2025-03-20 14:20:46 +08:00
ibuler
8a5c60a9bc perf: 优化 detail 中 component 2025-03-20 14:20:46 +08:00
zhaojisen
1782c8af74 Fixed: PAM Asset Detail 2025-03-20 12:46:42 +08:00
zhaojisen
ad55f6f6a6 Fixed: Resource Translate 2025-03-20 12:39:52 +08:00
ibuler
377d17b19d perf: after close action 2025-03-20 12:08:55 +08:00
老广
51e8b82bbf
Merge pull request #4866 from jumpserver/pr@dev@update_drawer_title
perf: update title draw again
2025-03-20 11:56:19 +08:00
ibuler
881e2d05c7 perf: update title draw again 2025-03-20 11:53:21 +08:00
feng
44c39de459 perf: report 2025-03-20 11:23:31 +08:00
老广
e2f87e62f2
Merge pull request #4864 from jumpserver/pr@dev@update_title
perf: update get draw title
2025-03-20 11:18:42 +08:00
ibuler
f27d6f0e97 perf: update get draw title 2025-03-20 11:17:41 +08:00
feng
42d8414834 perf: report 2025-03-20 11:16:51 +08:00
zhaojisen
138bdad7ef Fixed: Execution Record 2025-03-20 11:08:35 +08:00
zhaojisen
9575936849 Fixed: Auth 2025-03-20 10:54:26 +08:00
老广
de3338c3f1
Merge pull request #4860 from jumpserver/pr@dev@perf_drawer_title
perf: for perfect drawer create update detail or any
2025-03-20 10:52:56 +08:00
ibuler
f95a78bec1 merge: with dev 2025-03-20 10:52:22 +08:00
ibuler
4be9e048e1 perf: for perfect drawer create update detail or any 2025-03-20 10:47:59 +08:00
老广
4f70bf770c Revert "perf: update detail drawer show"
This reverts commit 3361b00bd1.
2025-03-19 23:16:40 +08:00
ibuler
3361b00bd1 perf: update detail drawer show 2025-03-19 21:05:53 +08:00
ibuler
ac6a0f49da perf: update drawer show before and after handler 2025-03-19 19:02:51 +08:00
feng
c08f446464 perf: Change secret 2025-03-19 18:56:37 +08:00
jiangweidong
849d2829f4 fix: CTYun cannot sync 2025-03-19 17:59:20 +08:00
zhaojisen
5d6b48831c Fixed: Record 2025-03-19 17:53:31 +08:00
zhaojisen
d557957b34 Fixed: Connect Direct Filter SFTP 2025-03-19 17:20:29 +08:00
zhaojisen
08821663ce Fixed: Authj 2025-03-19 17:15:22 +08:00
w940853815
3d5ea46930 fix: Account filter error 2025-03-19 16:33:46 +08:00
zhaojisen
06c87b05cf Fixed: View Secret 2025-03-19 16:25:27 +08:00
ibuler
24ba0e38c1 perf: 解决 tab 中创建更新的问题 2025-03-19 16:17:41 +08:00
ibuler
adc80ce74a perf: update applet host 2025-03-19 16:17:41 +08:00
zhaojisen
d03fe5d95a Fixed: Asset Account Detail 2025-03-19 16:12:12 +08:00
w940853815
05499d6430 fix: Add account_deleted_accounts to RiskSummary 2025-03-19 15:26:29 +08:00
zhaojisen
74f619c961 Fixed: Asset Add Account Template 2025-03-19 15:22:24 +08:00
w940853815
b0aec69060 fix: Add statusMap for account status 2025-03-19 14:45:52 +08:00
zhaojisen
d7b7704b21 Fixed: Tickect Session 2025-03-19 12:42:46 +08:00
feng
2f8480eea6 perf: Asset domain 2025-03-19 11:26:55 +08:00
feng
bdb5c83814 perf: Licese 2025-03-18 18:56:13 +08:00
w940853815
082ecb15f7 fix: add change_password_add to discover confirm handler 2025-03-18 18:02:32 +08:00
zhaojisen
8981a8f74f Fixed: Tickect Session 2025-03-18 18:01:09 +08:00
ibuler
b8efbf1e82 perf: update handler formatter 2025-03-18 17:53:35 +08:00
ibuler
f7520b87bf perf: update risk handler 2025-03-18 17:53:35 +08:00
ibuler
a146c26e20 perf: risk handler add delete account action 2025-03-18 17:53:35 +08:00
w940853815
d0b8efc796 fix: update remote_present status on delete_remote command 2025-03-18 16:48:48 +08:00
zhaojisen
61e5b061e9 Fixed: Plateform Automation Update 2025-03-18 16:20:12 +08:00
w940853815
84bbe4de8b fix: Restrict add asset and gateway permissions for non-root organizations 2025-03-18 15:48:36 +08:00
zhaojisen
7c20d08ce2 Fixed: Change Secret Dashboard Jump 2025-03-18 15:24:48 +08:00
w940853815
1d288f6212 fix: Update IP group display format in detail view 2025-03-18 15:14:34 +08:00
w940853815
7664487a1c perf: Translate processing 2025-03-18 14:50:03 +08:00
feng
4502375ed0 perf: change secret 2025-03-18 13:30:21 +08:00
w940853815
6aab902762 fix: Create ssh_key set is_active error 2025-03-18 11:28:42 +08:00
ibuler
597b5ac4cf perf: update loading spinner 2025-03-18 11:24:57 +08:00
ibuler
e26fecfee8 perf: update detail tab page loading 2025-03-18 11:24:32 +08:00
ibuler
661fc3a3d8 perf: update drawer size and ticket detail 2025-03-18 11:23:59 +08:00
jiangweidong
f601e25302 fix: No account when syncing with the cloud 2025-03-18 09:47:51 +08:00
zhaojisen
63e4776355 Fixed: Remote Ttile 2025-03-17 18:18:10 +08:00
ibuler
d67d275ae3 perf: update cloud sync err 2025-03-17 18:04:11 +08:00
ibuler
a8a1a56f3d perf: 统一 automations 历史 2025-03-17 17:58:08 +08:00
zhaojisen
f730611102 Fixed: Word Spell 2025-03-17 17:54:04 +08:00
w940853815
2344203563 fix: Job detail error 2025-03-17 17:46:22 +08:00
zhaojisen
f1a79cc36d Fixed: Filter SFTP 2025-03-17 16:35:41 +08:00
zhaojisen
194ea09cab Fixed: Session Record 2025-03-17 16:20:11 +08:00
w940853815
b672288725 fix: Update counter naming for group and sudo changes in RiskSummary 2025-03-17 16:01:58 +08:00
zhaojisen
25974c7cf1 Fixed: Fail Account Pagegation 2025-03-17 15:45:57 +08:00
ibuler
155da5aecd perf: save to localStorage except cookie 2025-03-17 15:28:11 +08:00
w940853815
7c72bcf84a fix: Create/clone ssh public key failed 2025-03-17 15:16:57 +08:00
ibuler
5a40280baa perf: 优化 tab detail 中的一些问题 2025-03-17 15:08:26 +08:00
zhaojisen
1254a4105a Fixed: Tickets Session 2025-03-17 14:54:11 +08:00
zhaojisen
9a868ec50a Fixed: Ticket 2025-03-17 14:25:20 +08:00
zhaojisen
534f784fda Fixed: Remove _ 2025-03-17 11:19:50 +08:00
zhaojisen
6d83b868ed Fixed: Connect Token 2025-03-17 11:19:50 +08:00
zhaojisen
e37b813028 Fixed: Passkeys 2025-03-17 11:05:50 +08:00
ibuler
01d44bc84e perf: 优化计数卡 2025-03-17 10:54:05 +08:00
fit2bot
fa5f4348ea
perf: 优化数量计算 (#4808)
Co-authored-by: ibuler <ibuler@qq.com>
2025-03-14 19:08:14 +08:00
feng
90b481c71d perf: translate 2025-03-14 18:27:36 +08:00
zhaojisen
6e8b9b4df8 Fixed: Account 2025-03-14 18:22:40 +08:00
w940853815
52ef1daa25 fix: Add loading state to AccountInfoFormatter for async data fetching 2025-03-14 17:04:21 +08:00
feng
7902a8f038 perf: perm 2025-03-14 17:02:10 +08:00
zhaojisen
3cef144119 Fixed: Dashboard Filter 2025-03-14 16:46:46 +08:00
zhaojisen
555210547b Fixed: Remove Mappint 2025-03-14 16:42:52 +08:00
zhaojisen
72e08adfc1 Fixed: Drawer Ttile 2025-03-14 16:31:47 +08:00
w940853815
266e46ebfa fix: Modify ListTable components import 2025-03-14 16:24:58 +08:00
ibuler
449f3d334d perf: update using draw table in attr match 2025-03-14 16:17:22 +08:00
zhaojisen
aa8c2da715 Fixed: Label Click 2025-03-14 15:20:13 +08:00
zhaojisen
9262ce56d1 Fixed: Secret Key 2025-03-14 14:48:30 +08:00
w940853815
3198517b75 perf: Account List: Some operations are disabled on the Asset tab page 2025-03-14 11:06:40 +08:00
w940853815
77ba87c66c fix: Restrict account creation for root organizations 2025-03-14 10:52:18 +08:00
w940853815
e116dcc230 fix: Root org disable some action 2025-03-14 10:25:35 +08:00
ibuler
28a4d4761a perf: update cloud privider panel 2025-03-13 19:17:31 +08:00
zhaojisen
5a2f430815 Fixed: Gateway Clone 2025-03-13 19:11:52 +08:00
feng
7ecbff79c7 perf: change secret account failed list 2025-03-13 18:32:57 +08:00
zhaojisen
420145a12b Fixed: Domain Title 2025-03-13 18:23:49 +08:00
zhaojisen
3090f6dbc8 Fixed: Virtual Account 2025-03-13 18:04:33 +08:00
w940853815
9d587610e8 fix: AssetPermissionAccount page clone failed 2025-03-13 17:23:44 +08:00
fit2bot
2254ad80b4
Fixed: Filter Show (#4787) 2025-03-13 16:16:42 +08:00
zhaojisen
2896dfe3b1 Fixed: Session Detail 2025-03-13 15:58:14 +08:00
zhaojisen
5e12e7ea84 Fixed: Drawer Form 2025-03-13 15:38:38 +08:00
zhaojisen
446cb0b85e Fixed: Image Upload 2025-03-13 15:30:00 +08:00
zhaojisen
aaad6b8380 Fixed: Risk Asset And Node Detail 2025-03-13 15:05:31 +08:00
w940853815
367320eef9 perf: Translate 2025-03-13 14:26:53 +08:00
zhaojisen
09836df9fa Fixed: Account View 2025-03-13 13:56:54 +08:00
zhaojisen
804006f853 Fixed: Gatewaty Add 2025-03-13 13:17:06 +08:00
w940853815
18690688be perf: Translate risk handle 2025-03-13 10:01:25 +08:00
zhaojisen
45970cc61b Fixed: Domain Tab 2025-03-12 18:23:11 +08:00
ibuler
f140efd326 perf: update task process loading 2025-03-12 18:10:56 +08:00
w940853815
33568859cd perf: Translate automation 2025-03-12 17:53:13 +08:00
zhaojisen
70c0433d32 Fixed: Domain Clone 2025-03-12 17:14:25 +08:00
zhaojisen
50bcf018d2 Fixed: Storage Update 2025-03-12 16:43:24 +08:00
zhaojisen
220c621a40 Fixed: Alert Closeable 2025-03-12 15:56:59 +08:00
zhaojisen
825cf0ae46 Fixed: Dashboard Direction 2025-03-12 15:51:45 +08:00
w940853815
22cef8ef10 perf: Remove account_deleted, password_error, no_admin_account others risk 2025-03-12 15:49:12 +08:00
ibuler
727b5c3268 perf: update form object val 2025-03-12 15:19:09 +08:00
zhaojisen
f416341fd1 Fixed: Platform Edit 2025-03-12 14:47:02 +08:00
fit2bot
f2f3918b22
perf: invite user get error (#4768)
* perf: update create object command storage

* perf: invite user get error

---------

Co-authored-by: ibuler <ibuler@qq.com>
2025-03-12 14:02:06 +08:00
zhaojisen
812ee32584 Fixed: Permission Rules 2025-03-12 11:24:13 +08:00
fit2bot
e9bb18ec2f
perf: update permission action (#4765)
Co-authored-by: ibuler <ibuler@qq.com>
2025-03-12 10:23:54 +08:00
ZhaoJiSen
dd1a4a5c18
Merge pull request #4764 from jumpserver/pr@dev@fix_domain
Fixed: Domain
2025-03-11 19:25:09 +08:00
zhaojisen
f6779e8ca9 Fixed: Domain 2025-03-11 19:23:59 +08:00
ZhaoJiSen
4236405db5
Merge pull request #4763 from jumpserver/pr@dev@fix_review
Fixed: Review
2025-03-11 18:24:16 +08:00
zhaojisen
41f5c6cbb7 Fixed: Review 2025-03-11 18:23:23 +08:00
w940853815
d7e2ac6e5f perf: Translate accounts 2025-03-11 18:20:35 +08:00
feng626
a3357ce26c
Merge pull request #4761 from jumpserver/pr@dev@fix_review
Fixed: Review
2025-03-11 17:49:50 +08:00
zhaojisen
9d11231402 Fixed: Review 2025-03-11 17:48:10 +08:00
feng626
38dcffba2a
Merge pull request #4760 from jumpserver/pr@dev@trnslate
perf: translate
2025-03-11 17:39:35 +08:00
feng
95b703645a perf: translate 2025-03-11 17:38:01 +08:00
ZhaoJiSen
339876b7a3
Merge pull request #4759 from jumpserver/pr@dev@fix_image_require
Fixed: Image Required
2025-03-11 15:49:05 +08:00
zhaojisen
edeffe2de2 Fixed: Image Required 2025-03-11 15:46:06 +08:00
ZhaoJiSen
cdb669eb81
Merge pull request #4758 from jumpserver/pr@dev@fix_connect_method
Fixed: Connect Method
2025-03-11 14:57:33 +08:00
zhaojisen
e33027e03f Fixed: Connect Method 2025-03-11 14:56:41 +08:00
ZhaoJiSen
61f822856c
Merge pull request #4757 from jumpserver/pr@dev@fix_command_record
Fixed: Command Record
2025-03-11 14:41:54 +08:00
zhaojisen
61a742b64e Fixed: Command Record 2025-03-11 14:40:47 +08:00
ZhaoJiSen
721f6f5e15
Merge pull request #4756 from jumpserver/pr@dev@fix_account_labelk
Fixed: Account Labek Show
2025-03-11 11:22:59 +08:00
zhaojisen
928b7c79a7 Fixed: Account Labek Show 2025-03-11 11:22:14 +08:00
ZhaoJiSen
8d654cae33
Merge pull request #4755 from jumpserver/pr@dev@fix_account_update
Fixed: Account Update
2025-03-11 11:09:37 +08:00
zhaojisen
5c957a6c46 Fixed: Account Update 2025-03-11 11:08:20 +08:00
老广
299b06a6ea
Merge pull request #4754 from jumpserver/pam
Pam
2025-03-11 11:00:55 +08:00
ibuler
7ede31b978 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-11 10:58:43 +08:00
ibuler
7c1d1278f6 perf: 修改 panel 2025-03-11 10:57:55 +08:00
w940853815
637a427d76 fix: Update searchConfig to include action filter options 2025-03-11 09:56:32 +08:00
ibuler
05e3128dbc Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-10 19:22:08 +08:00
ibuler
821fe9cb3e perf: update panel 2025-03-10 19:21:53 +08:00
Bryan
1fe99ff18b
Merge pull request #4752 from jumpserver/pam
Pam
2025-03-10 19:15:37 +08:00
zhaojisen
239abdc9b0 Fixed: Account Push 2025-03-10 19:12:01 +08:00
zhaojisen
49cea9616a Fixed: Account Push 2025-03-10 18:34:01 +08:00
zhaojisen
cdbee9649b Fixed: Acl Jump 2025-03-10 18:01:12 +08:00
ibuler
f141e9c748 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-10 17:03:55 +08:00
ibuler
ae8292ebb3 perf: update accounts list can hidden actions 2025-03-10 17:03:38 +08:00
zhaojisen
e74435df1b Fixed: Search Filter 2025-03-10 15:48:52 +08:00
zhaojisen
952740a916 Fixed: Applaction Management Filter Item 2025-03-10 15:25:58 +08:00
zhaojisen
8a062d0c9a Fixed 2025-03-10 15:20:22 +08:00
feng
55454eb671 perf: usergroup translate 2025-03-10 14:48:41 +08:00
ibuler
d3ee790186 Merge branch 'pr@pam@update_panel' into pam 2025-03-10 14:25:54 +08:00
ibuler
203e984144 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-10 14:25:39 +08:00
ibuler
8a0cb6d0b4 perf: update card table 2025-03-10 14:25:03 +08:00
w940853815
ef1442fde9 perf: Translate copy 2025-03-10 14:09:43 +08:00
zhaojisen
1c8ef3250b Fixed: Hide unnecessary operations from display 2025-03-10 11:36:43 +08:00
zhaojisen
64bf8a9ec6 Fixed: Account Change 2025-03-07 18:30:40 +08:00
zhaojisen
ed93642ec5 Fixed: Account Template 2025-03-07 18:25:21 +08:00
feng
5fe00b4061 perf: Translate 2025-03-07 16:54:13 +08:00
jiangweidong
8b9229b906 perf: OpenID configuration display optimization 2025-03-07 16:24:51 +08:00
zhaojisen
858cfbec27 Fixed: Fix the issue where the execution list name remains unchanged after the execution task name changes 2025-03-07 16:08:12 +08:00
ibuler
c419c47c13 perf: update panel 2025-03-07 15:55:51 +08:00
zhaojisen
29ed35f94f Fixed: Fix the Drawer issue in the remote applications page 2025-03-07 15:26:50 +08:00
zhaojisen
a106b5e199 Fixed: Fix: Applications related to Drawer in the component settings page 2025-03-07 14:44:07 +08:00
ibuler
80973de095 perf: update sync 2025-03-07 14:17:02 +08:00
zhaojisen
ad02a57c0a Fixed: Fix the issue of missing fields in the command storage page form 2025-03-07 11:18:37 +08:00
ibuler
7e624b4b49 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-07 10:23:32 +08:00
ibuler
5a32d2359f perf: update cloud sync 2025-03-07 10:23:21 +08:00
feng
b2b1660232 perf: Translate 2025-03-06 19:13:37 +08:00
w940853815
1d667ee1b9 fix: User List: Fix NaN title when clicking session number in user session detail 2025-03-06 17:24:15 +08:00
jiangweidong
51e83f5bbc fix: Slove the problem of assets not being displayed in online sync 2025-03-06 17:03:57 +08:00
w940853815
62f482bb63 fix: Asset list: when clone, the account add failed 2025-03-06 16:56:56 +08:00
zhaojisen
fcee27b8df Fixed: Remove Unused 2025-03-06 16:35:40 +08:00
zhaojisen
1337b0ff34 Fixed: Fix the infinite viewing loop issue between viewing assets in account details and viewing accounts in asset details 2025-03-06 16:35:40 +08:00
ibuler
22170c18f8 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-06 16:21:49 +08:00
ibuler
a6210c9add perf: 优化 card table 2025-03-06 16:21:40 +08:00
zhaojisen
278c5996f1 Fixed: Fix: Issue where recipients are not displayed when creating password change tasks 2025-03-06 15:58:21 +08:00
w940853815
bef704750e fix: Asset list: when updating, the account delete failed 2025-03-06 15:10:17 +08:00
ibuler
ae7e4b6ddf perf: update lib posion 2025-03-05 19:05:21 +08:00
ibuler
13318bd642 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-05 18:48:14 +08:00
ibuler
d4bcfb3750 perf: add loading page 2025-03-05 18:45:38 +08:00
feng
9db715e375 perf: translate 2025-03-05 17:30:04 +08:00
w940853815
1121af7441 fix: Asset detail account copy to asset and move to asset failed 2025-03-05 17:14:40 +08:00
ibuler
bfab828813 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-05 15:08:43 +08:00
ibuler
9f0682638b perf: update position 2025-03-05 15:08:13 +08:00
w940853815
2d56ee7912 fix: Platform type was created is wrong 2025-03-05 10:47:30 +08:00
w940853815
be5be83dfc fix: Risk detect prohibit import csv 2025-03-05 10:22:29 +08:00
feng
9a8629aeb2 perf: updateValue 2025-03-05 10:21:46 +08:00
feng
702d26822b perf: updateValue 2025-03-05 10:21:22 +08:00
zhaojisen
d809a13b67 Fixed: User Detail 2025-03-05 10:21:22 +08:00
老广
f7202ae5fa
Merge pull request #4719 from jumpserver/pr@dev@pam
Merge branch 'pam' of github.com:jumpserver/lina into pam
2025-03-04 19:18:52 +08:00
ibuler
b1101efe0e merge: with remote 2025-03-04 19:17:25 +08:00
ibuler
23fefd54ff Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-04 19:12:57 +08:00
ibuler
792950db48 perf: update i18n 2025-03-04 19:12:45 +08:00
w940853815
777c30c247 perf: Application Details - Account List remove some buttons 2025-03-04 18:40:12 +08:00
ibuler
eb6d6b11e5 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-04 18:21:16 +08:00
ibuler
f365282755 perf: update acl i18n 2025-03-04 18:21:08 +08:00
feng
eb1c0cdc7a perf: Account export 2025-03-04 16:48:19 +08:00
zhaojisen
de427b7f20 Fixed: Fix the issue where batch updates cannot be performed on the detection results page in risk detection 2025-03-04 16:46:05 +08:00
ibuler
25b60c1f2b perf: update automation style 2025-03-04 16:18:09 +08:00
ibuler
f4ccd38f07 perf: update item width 2025-03-04 15:49:50 +08:00
ibuler
6a9d51c859 perf: update automations 2025-03-04 15:45:45 +08:00
zhaojisen
4143c2dfbe Fixed: Card Style 2025-03-04 15:03:54 +08:00
fit2bot
6ebc02825e
Fixed: Fix issues in the edit form of the account list (#4714)
* Fixed: Fix issues in the edit form of the account list

* Fixed: Switch Add Template And Edit

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2025-03-04 14:33:59 +08:00
zhaojisen
36f6c161b4 Fixed: Plateform Icon And Text 2025-03-04 10:57:22 +08:00
zhaojisen
34480648d7 Fixed: Fix form styling issues in platform list when editing or creating 2025-03-03 17:20:35 +08:00
fit2bot
cf363bf061
Fixed: Connect Button Perm (#4711) 2025-03-03 16:51:07 +08:00
ibuler
598b053841 perf: update acl i18n 2025-03-03 15:55:03 +08:00
ibuler
a03a1c17fe Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-03 14:47:19 +08:00
ibuler
5ff46a3757 merge: with remote 2025-03-03 14:47:10 +08:00
feng
82a4dd5b3b perf: change secret linkage 2025-03-03 14:09:09 +08:00
zhaojisen
72a0a200a8 Fixed: Remove Log 2025-03-03 11:20:34 +08:00
zhaojisen
156715ede5 Fixed: Empty Value Update 2025-03-03 11:20:34 +08:00
zhaojisen
880c44fdaa Fixed: Form update Validated 2025-03-03 11:08:29 +08:00
w940853815
2a0f6dc1df fix: Zone list: Click on the details page, then click on the Assets tab, but fail to retrieve asset data. 2025-03-03 11:01:31 +08:00
feng
dadfc9a240 perf: translate 2025-03-03 10:52:39 +08:00
ibuler
598d3803dc perf: rename acl 2025-03-03 10:34:54 +08:00
ibuler
f5bd0f0533 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-03-03 10:01:34 +08:00
feng
63db09a22f perf: Translate 2025-02-28 18:50:36 +08:00
zhaojisen
6c6399abc0 Perf: Some change 2025-02-28 18:43:05 +08:00
feng
0968a4d7ef perf: translate 2025-02-28 17:05:32 +08:00
zhaojisen
c5bc1ab833 Fixed: Remove Account Item 2025-02-28 16:44:15 +08:00
ibuler
819bbae3e5 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-28 15:56:08 +08:00
ibuler
0dd11735fc perf: update form label require star 2025-02-28 15:55:51 +08:00
w940853815
972e420354 fix: Account backup click Execute on the details page, and an error of 500 will be reported. 2025-02-28 15:54:38 +08:00
zhaojisen
2da3b2ac75 Fixed: Risk List Detail Drawer 2025-02-28 14:29:39 +08:00
ibuler
1fdfd8e2d8 Merge branch 'pam' of github.com:jumpserver/lina into pam 2025-02-28 13:54:29 +08:00
ibuler
48662ed9f4 perf: update form style 2025-02-28 13:54:21 +08:00
feng
485f45a2ea perf: risk detail 2025-02-28 11:40:38 +08:00
zhaojisen
fa93f52f87 Fixed: Detail Drawer 2025-02-28 11:34:55 +08:00
w940853815
f0b332a269 perf: update title for ExecutionRecord and add ActionsFormatter to ApplicationList 2025-02-28 11:05:06 +08:00
zhaojisen
f61a535454 Fixed: Remove isShort 2025-02-28 11:00:35 +08:00
feng
f6b0b04ad2 perf: Translate 2025-02-27 18:50:40 +08:00
zhaojisen
ebebfcd03e Fixed: Task Click 2025-02-27 18:49:37 +08:00
ibuler
3ac0ce7429 perf: 优化一下 form group 2025-02-27 18:31:07 +08:00
fit2bot
a34b2c7074
perf: update copy icon (#4692)
* perf: update change secret overview

* fix: Typo in latest_secret_change_failed

* Fixed: Fix dialog display order problem

* Fixed: Fix: Password field disappears during user update (#4687)

* fix: Update resource names and permissions for account backup automation

* Fixed: Fix: Password field disappears during user update

* Fixed: Account Change Secret Record List

* perf: update i18n

* perf: update copy icon

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: w940853815 <940853815@qq.com>
Co-authored-by: zhaojisen <1301338853@qq.com>
2025-02-27 17:13:03 +08:00
fit2bot
88a66039ce
perf: change dir name too lang (#4683)
Co-authored-by: ibuler <ibuler@qq.com>
2025-02-26 14:50:17 +08:00
zhaojisen
c637f0e93a Fixed: Fix the issue of empty account backup copy list 2025-02-26 11:52:15 +08:00
zhaojisen
f3792720b7 Fixed: Clone accounts and assets in PAM overwriting original data 2025-02-26 11:25:01 +08:00
ibuler
4a1f4c88cf perf: update dashboard postion 2025-02-26 11:13:36 +08:00
feng
8546f9f735 fix: platform 2025-02-26 10:43:22 +08:00
feng
cc4b5183ea perf: report to iframe 2025-02-25 19:13:53 +08:00
ibuler
e361bcbf42 perf: fix table setting error 2025-02-25 18:24:23 +08:00
ibuler
8e461e8aed perf: update quick filter expand setting 2025-02-25 17:00:59 +08:00
zhaojisen
b6ae2aa2f8 Fixed: Fix the issue where adding account information to assets in Pam is not responding. 2025-02-25 16:42:44 +08:00
w940853815
f985c75fc5 fix: Job component with create and detail drawer functionality 2025-02-25 15:05:56 +08:00
zhaojisen
c2b176376f Fixed: Fix the issue where the common Drawer Title is displayed in English 2025-02-25 11:34:24 +08:00
feng
3d0e6fc3d1 perf: Translate 2025-02-24 19:24:15 +08:00
zhaojisen
3752d23b42 Fixed: Fix the issue where the form for creating user login rules does not match expectations 2025-02-24 18:59:38 +08:00
zhaojisen
ace605884e Fixed: Fix the issue where clicking on an asset in the account list causes the asset name in the asset details to display as Object. 2025-02-24 18:32:53 +08:00
zhaojisen
e8e3ca123b Fixed: Fix the adaptation issue of the Dashboard on the account password change page. 2025-02-24 16:20:37 +08:00
zhaojisen
137c59a1e1 Fix the issue where the Dashboard field cannot navigate 2025-02-24 15:49:27 +08:00
feng
b0d989e1da perf: account type filter 2025-02-24 15:32:49 +08:00
feng
bd4b5ec0c3 perf: Pam execution 2025-02-24 11:49:48 +08:00
zhaojisen
f13e7fd1d0 Perf: Dashboard Chart 2025-02-21 18:23:10 +08:00
老广
8be5c22ae4
Merge pull request #4664 from jumpserver/pr@dev@feat_pam
perf: update detail page
2025-02-21 17:16:27 +08:00
ibuler
4722384741 perf: remove console log 2025-02-21 16:56:47 +08:00
ibuler
0952a571b3 perf: update detail page 2025-02-21 15:31:53 +08:00
ibuler
1dd00bbfa7 merge: with dev 2025-02-21 15:13:54 +08:00
w940853815
79a1a1faef perf: streamline onUpdate actions in PlayBook and Adhoc components 2025-02-21 14:22:37 +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
Chenyang Shen
b8b764c04c
Merge pull request #4660 from jumpserver/pr@dev@feat_fix_error_i18n
fix: fix error i18n
2025-02-19 19:07:53 +08:00
Aaron3S
45532a3eb6 fix: fix error i18n 2025-02-19 19:06:41 +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
zhaojisen
9e4afd5271 Fixed: Fixed Tabel Export 2025-02-19 17:32:22 +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
zhaojisen
e6efd91414 Fixed: Dashboard PRBP 2025-02-18 15:58:08 +08:00
zhaojisen
19469508f7 Fixed: PR-BT 2025-02-18 15:23:16 +08:00
Chenyang Shen
5166287b0e
Merge pull request #4650 from jumpserver/pr@dev@feat_add_i18n
feat: add i18n
2025-02-18 15:11:35 +08:00
Aaron3S
494c4c5753 feat: add i18n 2025-02-18 15:08:30 +08:00
w940853815
27e2d34171 fix: Create playbook job form error 2025-02-18 11:18:36 +08:00
jiangweidong
eddff3d75b perf: Optimize the display of labels in strategy actions 2025-02-18 10:27:28 +08:00
jiangweidong
910bef6695 fix: When the scheduled synchronization interval is empty, the submission fails 2025-02-18 10:26:04 +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
w940853815
59945ad798 fix: When select_default_value is null, editing the playbook reports an error 2025-02-17 11:19:18 +08:00
feng
ded7920a8a perf: translate 2025-02-13 18:57:20 +08:00
zhaojisen
60b8748b95 Fixed: PT-BR languange in Setting Show Tooltip 2025-02-13 17:02:24 +08:00
ibuler
f1956b4982 perf: update some i18n 2025-02-13 16:41:06 +08:00
feng
5708aa25c4 perf: Deepseek 2025-02-13 16:39:47 +08:00
zhaojisen
f2e6f89c08 Fixed: Fixed PT-BR language adaptation issue 2025-02-13 16:27:45 +08:00
zhaojisen
1c222c3ce0 Fixed: PT-BR languange adaptation issue 2025-02-13 16:27:45 +08:00
fit2bot
d6c28b8286
Fixed: Fixed PT-BR language adaptation issue (#4636)
* Fixed: Fixed PT-BR language adaptation issue

* Fiexed: Fixed En languange ACL Page adapation issue

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2025-02-13 15:55:58 +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
d94752a021 perf: chat help text 2025-02-13 11:29:43 +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
feng
e93979ab5f perf: perm filter translate 2025-02-10 19:15:30 +08:00
feng
5d5e87595b perf: Login acl del license 2025-02-10 17:44:58 +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
zhaojisen
4bc039185c Fixed: Fixed Fix account template redirection error in remote applications 2025-02-10 16:17:46 +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
zhaojisen
9e768f4ef4 Fixed: Fixed time and thinking tip 2025-02-08 15:38:25 +08:00
zhaojisen
0e53d7e657 Perf: Support DeepSeek 2025-02-08 15:38:25 +08:00
feng
906a1accd1 feat: Chat ai setting 2025-02-08 15:38:25 +08:00
zhaojisen
1e381b06ee Fixed: Export Button Logic Differentiation 2025-02-07 11:21:25 +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
zhaojisen
d1a48a2e56 Perf: Perf Pt Language Style 2025-01-14 15:35:11 +08:00
w940853815
6d8f159975 perf: Optimize risk action checks and filters 2025-01-14 14:52:46 +08:00
zhaojisen
5925ac448e Fixed: Fixed the issue that When switching different node export same file 2025-01-13 18:01:16 +08:00
zhaojisen
fdb1dd886b Fixed: Fixed the issue where tag deletion required double-click 2025-01-13 16:30:55 +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
jiangweidong
2f9ad17b1f feat: Cloud sync supports syncing tags 2025-01-08 14:34:26 +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
zhaojisen
25c7d0a372 Optimize the execution efficiency of data selection 2025-01-06 18:17:06 +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
jiangweidong
46898d2419 feat: VMware automatically syncs folders to node 2025-01-03 18:52:26 +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
Aaron3S
f2ac6a61ab feat: facelive add license check 2024-12-19 17:50:27 +08:00
fit2bot
5f904f99b6
perf: login redirect to next page (#4534)
Co-authored-by: ibuler <ibuler@qq.com>
2024-12-19 15:34:47 +08:00
Bai
6fbef03b33 fix: face auth bind/unbind error when open single page 2024-12-19 15:33:39 +08:00
zhaojisen
98aa11bb64 fixed: Remove Unused Style 2024-12-19 15:29:23 +08:00
zhaojisen
fba83f39bd fixed: Style Error 2024-12-19 12:49:30 +08:00
Bai
c3a2c3c23d fix: enter system org while user login 2024-12-19 12:05:45 +08:00
wangruidong
5125038e9c perf: Add default value validation to VariableCreateUpdateForm 2024-12-19 12:00:38 +08:00
zhaojisen
42ca29bdaf fixed: Side Menu text overflow 2024-12-19 11:16:08 +08:00
ibuler
48e4027525 perf: update draw 2024-12-19 11:07:47 +08:00
zhaojisen
1c4893bc22 fixed: Revert Select Strategy 2024-12-19 10:05:26 +08:00
ibuler
2955b4800f perf: update asset create 2024-12-18 19:46:57 +08:00
wangruidong
5a26589052 fix: Execute after save sometimes the variable is undefine. 2024-12-18 19:15:47 +08:00
zhaojisen
4c2cdc1232 perf: It fits the PT-BR 2024-12-18 18:43:23 +08:00
zhaojisen
cb6e40bea7 fixed: Fixed an issue where the total number of cross-page multiple selections was the number of selected pages 2024-12-18 18:39:27 +08:00
Bai
4c61a84652 fix: approve ticket special account not found 2024-12-18 16:14:27 +08:00
wangruidong
ffaca80b21 feat: Add help tips to VariableCreateUpdateForm fields 2024-12-18 15:54:06 +08:00
ibuler
395b204da3 perf: update action 2024-12-18 11:41:42 +08:00
zhaojisen
0f5f6b860b fixed: Optimize the execution efficiency of full selection and reverse selection, and solve the problem of invalid data selection in card 2024-12-18 11:22:41 +08:00
wangruidong
a9ba931bba perf: Add 'labels' column to AssetPermission and Domain tables 2024-12-18 10:55:48 +08:00
wangruidong
23fae59411 feat: Add permission checks for platform editing 2024-12-17 19:10:27 +08:00
Chenyang Shen
320613d15d
Merge pull request #4520 from jumpserver/pr@dev@feat_add_translate
feat: add translate
2024-12-17 17:42:07 +08:00
Aaron3S
57ea32e785 feat: add translate 2024-12-17 17:40:44 +08:00
Eric
3e3f80c59b perf: component names use the same letter case 2024-12-17 16:21:31 +08:00
feng
c15ba5b078 fix: tag search display error 2024-12-17 10:32:18 +08:00
wangruidong
651888faab perf: Add 'labels' column to UserGroupList table 2024-12-16 19:00:00 +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
feng626
d220047fe2 Revert "perf: Platform global"
This reverts commit bbe80f0292.
2024-12-16 14:09:49 +08:00
feng
bbe80f0292 perf: Platform global 2024-12-16 11:40:35 +08:00
feng
41e73a2c9b perf: Firefox unable to download file 2024-12-13 12:51:52 +08:00
feng
7d89cf9f45 perf: Re-login after csrf expires 2024-12-13 10:23:36 +08:00
ibuler
b4abcd4c90 perf: update draw 2024-12-12 19:03:03 +08:00
Bai
8a048f692f fix: remove log 2024-12-12 18:49:39 +08:00
wangruidong
70777f8335 perf: Add AccountDetail page 2024-12-12 16:01:31 +08:00
Bai
800317346c fix: current org is system and no preorg user logout error 2024-12-12 11:35:31 +08:00
ibuler
d62c87b858 Merge branch 'pam' of github.com:jumpserver/lina into pam 2024-12-12 09:44:28 +08:00
wangruidong
4a1e2db7ca fix: Org admin view platform perms 2024-12-11 19:12:57 +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
Bai
6702d94ba1 fix: org changed error 2024-12-11 10:37:56 +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
Bai
a87d04fb9d fix: user login always change to system org 2024-12-10 19:14:13 +08:00
ibuler
2126c92e07 perf: update status 2024-12-10 16:51:22 +08:00
zhaojisen
367db0daf1 fixed: Fixed a text wrap issue 2024-12-10 16:05:55 +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
zhaojisen
583b28a6c4 fixed: Fixed an organization error after entering Settings under Global Organization manually 2024-12-09 17:19:37 +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
Chenyang Shen
ec5f2e69eb
Merge pull request #4498 from jumpserver/pr@dev@feat_change_face_context_url
feat: change face context url
2024-12-09 16:55:22 +08:00
Aaron3S
d058f0e777 feat: change face context url 2024-12-09 16:53:52 +08:00
老广
89befaad43 Create llm-code-review.yml 2024-12-09 16:20:12 +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
zhaojisen
548d0e0670 perf:Optimize the execution efficiency of all and reverse selection 2024-12-05 12:39:17 +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
zhaojisen
7b862ee0e1 fixed: Fixed an issue where all select a large number of data cards died 2024-12-04 16:58:45 +08:00
feng
bbfb237f23 perf: Account backup report 2024-12-04 16:30:19 +08:00
fit2bot
d4e37e9418
fixed: Fixed an issue where multiple selections across pages could not be reversed (#4482)
* fixed: Fixed an issue where multiple selections across pages could not be reversed

* fixed: Fixed an issue where multiple selections across pages could not be reversed

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2024-12-04 15:08:23 +08:00
Bai
b53b1d1e58 perf: languages settings 2024-12-03 17:01:12 +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
fit2bot
0342c73f07
feat: Vault adds Amazon Secrets Manager (#4455)
Co-authored-by: jiangweidong <1053570670@qq.com>
2024-11-29 18:03:26 +08:00
Aaron3S
727d9037d1 feat: move face setting to profile 2024-11-28 18:23:59 +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
Bai
b24c244186 perf: remove email format check for email host account 2024-11-27 19:13:28 +08:00
fit2bot
d365aea6a0
perf: add nec and facelive for monitor (#4468)
* perf: add nec and facelive for monitor

* perf: add nec and facelive component log

---------

Co-authored-by: Eric <xplzv@126.com>
2024-11-27 18:51:18 +08:00
zhaojisen
115f1171ad fixed: Fixed an issue with button text overflow in QuickActions 2024-11-27 11:13:51 +08:00
wangruidong
b2b477d4e0 fix: Creating an asset form does not allow deleting the default protocol 2024-11-27 11:01:02 +08:00
wangruidong
1e37ecff11 perf: Add variable management to Job and Adhoc details 2024-11-26 15:05:17 +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
wangruidong
9cf87404be perf: Add viewAssetOnlineSessionInfo conf 2024-11-25 15:32:21 +08:00
dependabot[bot]
2e51b0dea1 chore(deps): bump elliptic from 6.5.4 to 6.6.0
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.4 to 6.6.0.
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.4...v6.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-22 15:25:22 +08:00
wangruidong
a1f20c6f92 fix: adhoc and playbook detail page display many '-' 2024-11-22 15:24:21 +08:00
wangruidong
6b6a60b84f refactor: Component name and API endpoint 2024-11-22 15:03:23 +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
zhaojisen
4e999176ed fixed: Fixed an issue where the Form button was hidden 2024-11-22 14:51:40 +08:00
wangruidong
76ff273ec7 fix: run playbook job with no variable 2024-11-21 22:01:02 +08:00
wangruidong
475a77497f fix: disable job has no perms 2024-11-21 18:57:14 +08:00
Bai
5d1301c871 fix: public playbook variables are not displayed by other users 2024-11-21 17:50:59 +08:00
zhaojisen
772f40e13d fixed: Fixed an issue where the Form button was hidden 2024-11-21 14:44:29 +08:00
wangruidong
1b2f7ad28c fix: default value not display 2024-11-21 14:26:39 +08:00
wangruidong
84778881f6 fix: playbook job clone variable error 2024-11-20 23:06:24 +08:00
wangruidong
d6d0338666 perf: Add default value col in Variable & refactor JobUpdateCreate 2024-11-20 21:51:15 +08:00
wangruidong
de6f477d05 fix: playbook clone with variable 2024-11-20 15:35:34 +08:00
wangruidong
03e07ee280 fix: Add error handling in VariableCreateUpdateForm and wrap text in ItemValue 2024-11-20 10:55:51 +08:00
wangruidong
35e2273603 perf: Enhance MFA settings and display 2024-11-20 10:12:56 +08:00
zhaojisen
7a138388b2 fixed: Fixes ESLint issues 2024-11-19 18:05:13 +08:00
Bai
b1f42dd6bf perf: License info remove subscription id 2024-11-19 17:48:49 +08:00
wangruidong
2eeba4ee4f fix: playbook set variable perms 2024-11-19 10:12:52 +08:00
fit2bot
d91579e848
fixed: Fixed an issue where the number of commands overlaps with whether there are command fields (#4437)
* fixed: Fixed an issue where the number of commands overlaps with whether there are command fields

* fixed: Fixed an issue where the number of commands overlaps with whether there are command fields

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2024-11-18 16:13:06 +08:00
wangruidong
13751f14f3 perf: Variable table overflow show tooltip and CodeEditor cursor position 2024-11-18 15:09:51 +08:00
ibuler
b25d2016a6 perf: using checkbox replace switch 2024-11-18 14:35:43 +08:00
wangruidong
7ea00e17bd perf: Cancel template selection if the command is empty 2024-11-15 17:58:32 +08:00
wangruidong
ec78370ecc fix: duplicate variable names and job audit perms issue 2024-11-15 16:01:41 +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
Aaron3S
c9f62ae5d3 feat: 添加人脸识别 MFA 2024-11-13 17:42:29 +08:00
halo
b80b69dd26 perf: VAULT_BACKEND cannot be modified from the frontend 2024-11-13 17:30:48 +08:00
wangruidong
ac49415061 fix: Solve audit job and variable bugs 2024-11-13 17:30:20 +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
wangruidong
9edb64837d fix: Job create cannot be saved without setting interval 2024-11-12 15:37:18 +08:00
wangruidong
671fa65930 perf: Admin and auditor can view and stop task 2024-11-12 11:20:06 +08:00
Eric
0da81ea60d perf: add vnc port for endpoint 2024-11-11 21:58:21 +08:00
Halo
c610d396d6
feat: azure key vault (#4418) 2024-11-11 19:42:16 +08:00
zhaojisen
ff4adde897 perf: Add pam connect 2024-11-11 18:38:01 +08:00
feng
0ed02ca7f7 fix: Modify the platform protocol cursor disappears 2024-11-08 16:48:50 +08:00
feng
c22981e2c1 perf: Translate 2024-11-08 15:34:21 +08:00
fit2bot
b0af35a4b9
perf: Create a job that supports adding node parameters (#4412)
* perf: Create a job that supports adding node parameters

* feat: add variables component

* perf: Update file tip position

* feat: Add variable support to job from template

* feat: Parameters can be set when running job

* feat: Supports setting  variable type

* feat: Supports running adhoc with parameters

* feat: Supports running playbook with parameters

* feat: Support setting variables for scheduled tasks

* perf: Translate

---------

Co-authored-by: wangruidong <940853815@qq.com>
2024-11-07 10:41:07 +08:00
ibuler
45ae7cab21 perf: 阶段完成页面 2024-11-06 16:40:35 +08:00
jiangweidong
1d16a165a5 perf: optimization 2024-11-06 15:06:27 +08:00
jiangweidong
f1f4242ad6 perf: Supports automatic release of assets and prevents accidental release of network errors 2024-11-06 15:06:27 +08:00
老广
bff8f10cd5 Create llm-code-review.yml 2024-11-05 18:23:09 +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
Bai
305e44ea1c feat: modify asset permission default expired from settings 2024-11-01 18:23:38 +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
feng
a636bb2037 perf: List preference translate 2024-10-18 14:32:45 +08:00
fit2bot
9b6f54c1ed
perf: update placeholder (#4409)
* perf: update passkey create

* perf: update placeholder

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-10-17 11:10:18 +08:00
feng
611341307b fix: ticket duplicate submission 2024-10-16 19:09:18 +08:00
ibuler
f8479c53ff perf: update passkey create 2024-10-16 18:51:56 +08:00
ibuler
8b25fd198e perf: change account 2024-10-16 18:48:37 +08:00
wangruidong
e25bf46659 perf: url is null set remote false 2024-10-16 18:36:12 +08:00
wangruidong
6d07307e56 perf: users use Select2 2024-10-16 16:54:34 +08:00
wangruidong
6fb7fe8fa1 fix: interval field check 2024-10-16 11:01:44 +08:00
ibuler
762fa4c17e perf: 完成一些快速筛选 2024-10-15 18:26:53 +08:00
zhaojisen
19cd497095 fixed: Restores remote application styles 2024-10-15 17:06:06 +08:00
ibuler
73cc319e7b perf: table action flex 2024-10-15 15:15:46 +08:00
wangruidong
d858489367 fix: modify getPreference url 2024-10-15 14:13:10 +08:00
ibuler
d90aba37cf perf: update loader 2024-10-15 13:58:56 +08:00
feng
341a30ba06 perf: The platform gets activeMenu and adds a default value 2024-10-15 11:32:51 +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
ZhaoJiSen
8390fb7429
Merge pull request #4398 from jumpserver/pr@dev@help_tip
perf: Help text automatic line wrapping
2024-10-12 14:40:43 +08:00
feng
5389f1d011 perf: Help text automatic line wrapping 2024-10-12 14:39:15 +08:00
ZhaoJiSen
bde642570f
Merge pull request #4397 from jumpserver/pr@dev@perf_reveiver
style: Set special receiver to optimize the scroll wheel display
2024-10-12 11:35:16 +08:00
zhaojisen
3e7b970fe7 style: Set special receiver to optimize the scroll wheel display 2024-10-12 11:32:05 +08:00
ibuler
7ff1da71d4 perf: updat asset list and account list action 2024-10-11 19:22:39 +08:00
ZhaoJiSen
2421e822b4
Merge pull request #4396 from jumpserver/pr@dev@perf_number_style
style: Optimize the number field style
2024-10-11 18:19:35 +08:00
zhaojisen
b2e474e3f6 style: Optimize the number field style 2024-10-11 18:15:46 +08:00
ibuler
a23a0d0197 perf: update perm 2024-10-11 17:59:00 +08:00
ZhaoJiSen
541836390a
Merge pull request #4394 from jumpserver/pr@dev@fix_tab_change
fixed: Fixed command filtering and command group tab switching issues
2024-10-10 18:55:00 +08:00
zhaojisen
bb92e3f22b fixed: Fixed command filtering and command group tab switching issues 2024-10-10 18:51:50 +08:00
ZhaoJiSen
c9ad797b40
Merge pull request #4393 from jumpserver/pr@dev@fix_quick_job_node
fixed: Fixed the shortcut command selection node issue
2024-10-10 18:39:34 +08:00
zhaojisen
2a08310efc fixed: Fixed the shortcut command selection node issue 2024-10-10 18:37:47 +08:00
zhaojisen
3b2803b9a1 fixed: Fixed the shortcut command selection node issue 2024-10-10 18:36:33 +08:00
wangruidong
1b8ac9112e fix: user lack permission to view the type tree 2024-10-10 17:11:13 +08:00
ZhaoJiSen
9cc3dd4de9
Merge pull request #4390 from jumpserver/pr@dev@fix_add_lineHeight
style: Add Line Height
2024-10-10 14:40:30 +08:00
zhaojisen
120ef70eb1 style: Add Line Height 2024-10-10 14:36:01 +08:00
ZhaoJiSen
541f4ebc62
Merge pull request #4389 from jumpserver/pr@dev@fix_remote_app
style: Adjusting the styles of the remote application
2024-10-10 14:17:52 +08:00
zhaojisen
a47636abc7 style: Adjusting the styles of the remote application 2024-10-10 14:11:53 +08:00
ZhaoJiSen
78f6f4b36a
Merge pull request #4388 from jumpserver/pr@dev@fix_comments_style
fixed: Fixed the presentation format of asset notes
2024-10-10 11:23:16 +08:00
zhaojisen
5abc0b77cf fixed: Fixed the presentation format of asset notes 2024-10-10 11:18:49 +08:00
ZhaoJiSen
464638e782
Merge pull request #4387 from jumpserver/pr@dev@fix_input_border
style: Fixed the display of the account number input box
2024-10-10 10:46:23 +08:00
zhaojisen
37cfeb2077 style: Fixed the display of the account number input box 2024-10-10 10:43:09 +08:00
ZhaoJiSen
44e297f01a
Merge pull request #4386 from jumpserver/pr@dev@fix_tooltip_position
fixed: Fixed issue with sidebar toolTip placement
2024-10-10 09:50:33 +08:00
zhaojisen
febc283e36 fixed: Fixed issue with sidebar toolTip placement 2024-10-10 09:47:05 +08:00
ZhaoJiSen
dae33f55e8
Merge pull request #4385 from jumpserver/pr@dev@fix_special_chara
fixed: Fixed + and - not being special characters
2024-10-09 18:38:23 +08:00
zhaojisen
c62cd27690 fixed: Fixed + and - not being special characters 2024-10-09 18:34:31 +08:00
ZhaoJiSen
83443f8187
Merge pull request #4383 from jumpserver/pr@dev@fix_tab_refresh
fixed: Fixed An issue where adding a tag to asset does not work
2024-10-09 17:26:08 +08:00
zhaojisen
cb46f393e0 fixed: Fixed An issue where adding a tag to asset does not work 2024-10-09 17:17:12 +08:00
wangruidong
ddf5ac2151 fix: Determine the asset connection opening method based on the settings 2024-10-09 16:44:25 +08:00
wangruidong
88173f852a perf: Default endpoint cannot be disabled 2024-10-09 16:43:16 +08:00
wangruidong
d5f16e90e2 perf: add created_by field 2024-10-09 16:15:36 +08:00
ZhaoJiSen
d1c0aca4ff
Merge pull request #4380 from jumpserver/pr@dev@fix_font_size
fixed: Fixed an issue where the font size of the resource is too large due to the parent element's font size being overridden
2024-10-09 14:47:42 +08:00
zhaojisen
a42edf17ec fixed: Fixed an issue where the font size of the resource is too large due to the parent element's font size being overridden 2024-10-09 14:32:06 +08:00
feng
dac5dfcd1c perf: Optimize file audit download prompt 2024-09-29 16:12:41 +08:00
ZhaoJiSen
8e6ca146e1
Merge pull request #4353 from jumpserver/dependabot/npm_and_yarn/serve-static-1.16.0
chore(deps-dev): bump serve-static from 1.15.0 to 1.16.0
2024-09-29 10:16:07 +08:00
ZhaoJiSen
9c06d36eab
Merge pull request #4351 from jumpserver/dependabot/npm_and_yarn/path-to-regexp-3.3.0
chore(deps): bump path-to-regexp from 2.4.0 to 3.3.0
2024-09-29 10:14:32 +08:00
wisonic
ab7bd574f8 fix: assets proportion tooltip cause page bounced at first time 2024-09-27 17:34:25 +08:00
wangruidong
6007dc8621 perf: Endpoint add is_active field 2024-09-27 16:00:40 +08:00
wangruidong
a0e7c48dc9 perf: adhoc can clone 2024-09-27 14:12:13 +08:00
wangruidong
71dea791bf fix: xterm output truncate 2024-09-26 17:17:23 +08:00
ZhaoJiSen
e1b9184f41
Merge pull request #4372 from jumpserver/pr@dev@fix_perm_list_tree
fixed: Fixed an issue with draggable Tree nodes under asset authorization
2024-09-26 17:02:08 +08:00
zhaojisen
730d47f02a fixed: Fixed an issue with draggable Tree nodes under asset authorization 2024-09-26 16:59:18 +08:00
feng
e82ec68935 perf: The maximum length of the randomly generated password is changed to 36 2024-09-25 10:54:05 +08:00
feng
e8e5975d7f fix: fix after successfully creating an asset, the asset list cannot be partially refreshed 2024-09-24 15:44:55 +08:00
ZhaoJiSen
3cb9dec978
Merge pull request #4366 from jumpserver/pr@dev@fix_style_fix
style: Restoring styles
2024-09-19 18:21:50 +08:00
zhaojisen
c025441075 style: Restoring styles 2024-09-19 18:20:41 +08:00
wangruidong
050b50fa74 fix: playbook template clone error 2024-09-19 15:07:31 +08:00
ibuler
e26befabc3 perf: filter gateway using new params 2024-09-19 11:24:51 +08:00
wangruidong
8545fc6136 fix: session is_locked show value 2024-09-19 11:20:54 +08:00
ibuler
1477712c78 perf: 修改 Pam 2024-09-19 09:57:54 +08:00
ZhaoJiSen
e343e0df9d
Merge pull request #4363 from jumpserver/pr@dev@perf_remote_app
style: Adjust the remote application page layout
2024-09-18 21:16:47 +08:00
zhaojisen
74519e6f3c style: Adjust the remote application page layout 2024-09-18 21:15:49 +08:00
feng
1305f90372 perf: TimerExecution translate 2024-09-18 15:06:06 +08:00
feng
bbc3f53c0a perf: User details community version removes user acl 2024-09-18 11:11:53 +08:00
ZhaoJiSen
aa605adbc7
Merge pull request #4359 from jumpserver/pr@dev@fix_show_NaN
fixed: Fixed NaN issue when setting timing interval
2024-09-17 13:42:51 +08:00
zhaojisen
49ea7d0969 fixed: Fixed NaN issue when setting timing interval 2024-09-17 13:34:51 +08:00
feng
4221bdb2ab perf: Postgresql add ssl mode 2024-09-13 17:49:05 +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
dependabot[bot]
af4010e299
chore(deps-dev): bump serve-static from 1.15.0 to 1.16.0
Bumps [serve-static](https://github.com/expressjs/serve-static) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/expressjs/serve-static/releases)
- [Changelog](https://github.com/expressjs/serve-static/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/serve-static/compare/v1.15.0...1.16.0)

---
updated-dependencies:
- dependency-name: serve-static
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-12 02:22:33 +00:00
ibuler
9b7c4ed353 chore: lock the pull request when workflow start 2024-09-12 10:22:01 +08:00
dependabot[bot]
879df90503
chore(deps): bump path-to-regexp from 2.4.0 to 3.3.0
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 2.4.0 to 3.3.0.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v2.4.0...v3.3.0)

---
updated-dependencies:
- dependency-name: path-to-regexp
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 18:05:18 +00: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
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
feng
0b4b551d56 perf: Translate 2024-06-19 19:32:25 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
ibuler
2c7d662c22 perf: 修改 i18n 2024-05-15 16:14:23 +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
zhaojisen
98b222a9bf style: 移除表单中 table 的圆角样式 2024-05-10 19:08:32 +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
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
ibuler
42425dc61b perf: 修改全局菜单 2024-04-26 17:33:15 +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
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
ibuler
8e06dde724 perf: 修改一些 table 宽度 2024-04-22 15:10:08 +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
ibuler
981fe00c5f perf: 优化修改 table label 2024-04-18 13:14:56 +08:00
ibuler
373661d35a perf: 优化 labels 宽度 2024-04-17 20:01:42 +08:00
ibuler
1be5f23204 perf: 修改 view hover 支持切换 2024-04-17 16:03:32 +08:00
ibuler
723123fa50 perf: 优化菜单展开 2024-04-17 14:10:35 +08:00
ibuler
7bf1c2056c perf: 优化菜单 2024-04-16 19:40:31 +08:00
ibuler
74c0a562e9 perf: 修改翻译和 ztree 高度 2024-04-15 16:28:10 +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
ibuler
573cf454ce perf: 修改 chat ai 2024-04-11 18:45:08 +08:00
ibuler
0d81b7839b perf: 修改一些布局 2024-04-11 14:56:00 +08:00
ibuler
5b00ab795d perf: 修改 ztree style 2024-04-11 13:47:22 +08:00
ibuler
86709e3604 perf: asset tree style 2024-04-10 18:58:12 +08:00
ibuler
38a9468fd2 perf: 修改 acls 和 automations 布局 2024-04-09 16:01:21 +08:00
ibuler
cf3ba419f4 perf: 修改自动化 2024-04-08 14:31:17 +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
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
ibuler
53187cb8aa perf: cron tab better 2024-03-29 17:57: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
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
ibuler
2bbd785ada perf: 优化 sub form 缩进 2024-03-26 19:18:07 +08:00
ibuler
f30294c2ae perf: 优化子表单 2024-03-26 18:30:18 +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
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
ibuler
9ed323321a perf: form hidden 改成 v-if 2024-03-21 14:43:50 +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
wangruidong
3cc2be8874 fix: 快捷命令布局问题 2024-03-19 18:06:16 +08:00
ibuler
cd1d0c3746 perf: 修改 icon 大小 2024-03-19 17:53:51 +08:00
ibuler
780c55e99e perf: 优化 detail card 2024-03-15 19:19:05 +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
a68328ae83 perf: 优化资产树 root 节点宽度 2024-03-15 14:38:10 +08:00
ibuler
f9cd35ac74 perf: 修改 applet detail 2024-03-15 14:24:30 +08:00
ibuler
06cfed009a perf: 优化表单 2024-03-15 10:45:02 +08:00
ibuler
dc94ff58c3 perf: 修改 accounts 创建 2024-03-13 18:53:19 +08:00
ibuler
6b87a2ad31 perf: 修改翻译 2024-03-11 19:20:32 +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
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
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
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
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
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
191143fb17 perf:drag files tips add padding 2024-02-28 20:52:32 +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
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
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
ibuler
2595b8bc8e perf: 优化 label 宽度 2024-02-26 19:34:36 +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
Bai
445eb31db1 perf: i18n settings-Features done. 2024-02-26 15:47:12 +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
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
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
ibuler
ed91112531 perf: 修改 ai chat 的位置 2024-02-06 17:58:52 +08:00
ibuler
e224f30de6 perf: 修改图标 2024-02-06 15:34:26 +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
ibuler
94bf737584 perf: 优化 i18n 2024-02-04 10:24:52 +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
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
ibuler
ea87c9d148 perf: 优化授权的资产 2024-01-12 18:14:50 +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
1045 changed files with 37942 additions and 27772 deletions

View File

@ -22,5 +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_KAEL_HOST = 'http://localhost:8083'
VUE_APP_KOKO_HOST = 'http://localhost:5000'
VUE_APP_KOKO_WS = 'ws://localhost:5000'
VUE_APP_ENV = 'development'

View File

@ -0,0 +1,28 @@
name: LLM Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
llm-code-review:
runs-on: ubuntu-latest
steps:
- uses: fit2cloud/LLM-CodeReview-Action@main
env:
GITHUB_TOKEN: ${{ secrets.FIT2CLOUDRD_LLM_CODE_REVIEW_TOKEN }}
OPENAI_API_KEY: ${{ secrets.ALIYUN_LLM_API_KEY }}
LANGUAGE: English
OPENAI_API_ENDPOINT: https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL: qwen2-1.5b-instruct
PROMPT: "Please check the following code differences for any irregularities, potential issues, or optimization suggestions, and provide your answers in English."
top_p: 1
temperature: 1
# max_tokens: 10000
MAX_PATCH_LENGTH: 10000
IGNORE_PATTERNS: "/node_modules,*.md,/dist,/.github"
FILE_PATTERNS: "*.java,*.go,*.py,*.vue,*.ts,*.js,*.css,*.scss,*.html"

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

28
.github/workflows/llm-code-review.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: LLM Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
llm-code-review:
runs-on: ubuntu-latest
steps:
- uses: fit2cloud/LLM-CodeReview-Action@main
env:
GITHUB_TOKEN: ${{ secrets.FIT2CLOUDRD_LLM_CODE_REVIEW_TOKEN }}
OPENAI_API_KEY: ${{ secrets.ALIYUN_LLM_API_KEY }}
LANGUAGE: English
OPENAI_API_ENDPOINT: https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL: qwen2-1.5b-instruct
PROMPT: "Please check the following code differences for any irregularities, potential issues, or optimization suggestions, and provide your answers in English."
top_p: 1
temperature: 1
# max_tokens: 10000
MAX_PATCH_LENGTH: 10000
IGNORE_PATTERNS: "/node_modules,*.md,/dist,/.github"
FILE_PATTERNS: "*.java,*.go,*.py,*.vue,*.ts,*.js,*.css,*.scss,*.html"

View File

@ -31,7 +31,7 @@ jobs:
tag: ${{ steps.get_version.outputs.TAG }}
- uses: actions/setup-node@v2
with:
node-version: '16.20'
node-version: '20.15'
- name: Install dependencies
run: yarn install
- name: Build web

2
.gitignore vendored
View File

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

View File

@ -1,36 +1,11 @@
FROM node:16.20-bullseye-slim as stage-build
ARG TARGETARCH
ARG DEPENDENCIES=" \
g++ \
make \
python3"
ARG APT_MIRROR=http://mirrors.ustc.edu.cn
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=lina \
sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get install -y --no-install-recommends ${DEPENDENCIES} \
&& echo "no" | dpkg-reconfigure dash \
&& rm -rf /var/lib/apt/lists/*
ARG NPM_REGISTRY="https://registry.npmmirror.com"
RUN set -ex \
&& npm config set registry ${NPM_REGISTRY} \
&& yarn config set registry ${NPM_REGISTRY}
WORKDIR /data
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:20250408_074136 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

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

@ -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@lxware.hk>",
"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",
@ -25,17 +25,20 @@
},
"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.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",
"dompurify": "^3.1.6",
"echarts": "4.7.0",
"element-ui": "2.13.2",
"element-ui": "2.15.14",
"eslint-plugin-html": "^6.0.0",
"highlight.js": "^11.9.0",
"install": "^0.13.0",
@ -63,7 +66,8 @@
"normalize.css": "7.0.0",
"npm": "^7.8.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"path-to-regexp": "3.3.0",
"v-sanitize": "^0.0.13",
"vue": "2.6.10",
"vue-codemirror": "4.0.6",
"vue-cookie": "^1.1.4",
@ -77,6 +81,7 @@
"vue-select": "^3.9.5",
"vuejs-logger": "^1.5.4",
"vuex": "3.1.0",
"watermark-js-plus": "^1.5.8",
"xss": "^1.0.14",
"xterm": "^4.5.0",
"xterm-addon-fit": "^0.3.0",
@ -113,7 +118,7 @@
"sass-loader": "^7.1.0",
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "0.7.2",
"serve-static": "^1.13.2",
"serve-static": "^1.16.0",
"strip-ansi": "^7.1.0",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
@ -138,5 +143,6 @@
"src/**/*.{js,vue}": [
"eslint --fix"
]
}
},
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}

View File

@ -1,38 +1,90 @@
<!DOCTYPE html>
<html>
<head>
<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">
</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() {
<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: rgba(255, 255, 255, 0.98);
z-index: 9999;
}
#loading .spinner {
width: 40px;
height: 40px;
border: 3px solid transparent;
border-top-color: var(--color-primary);
border-radius: 50%;
animation: spin 1s linear infinite;
}
#loading .spinner::after {
content: '';
position: absolute;
top: -3px;
left: -3px;
width: 40px;
height: 40px;
border: 3px solid transparent;
border-top-color: rgba(64, 158, 255, 0.2);
border-radius: 50%;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
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/'
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.indexOf('/ui') === -1) {
window.location.href = window.location.origin + '/ui/#' + pathname
}
if (pathname.startsWith('/ui/#/chat')) {
window.location.href = window.location.origin + pathname
window.location.href = window.location.origin + pathname
}
}
</script>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
}
</script>
<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: 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

@ -5,17 +5,59 @@
</template>
<script>
import { mapState } from 'vuex'
import { mapState, mapGetters } from 'vuex'
import { Watermark } from 'watermark-js-plus'
export default {
name: 'App',
data() {
return {
watermark: null
}
},
computed: {
...mapState({
isRouterAlive: state => state.common.isRouterAlive
}),
...mapGetters({
currentUser: 'currentUser',
publicSettings: 'publicSettings'
})
},
watch: {
currentUser: {
handler(newVal) {
this.createWatermark()
}
},
'publicSettings.SECURITY_WATERMARK_ENABLED': {
handler(newVal) {
if (!newVal) {
return setTimeout(() => {
this.watermark?.destroy()
this.watermark = null
})
}
this.createWatermark()
}
}
},
methods: {
createWatermark() {
if (this.currentUser?.username && this.publicSettings?.SECURITY_WATERMARK_ENABLED) {
this.watermark = new Watermark({
content: `${this.currentUser.username}(${this.currentUser.name})`,
width: 200,
height: 200,
rotate: 45,
fontWeight: 'normal',
fontColor: 'rgba(128, 128, 128, 0.2)'
})
this.watermark.create()
}
}
}
}
</script>
<style>
</style>

View File

@ -16,9 +16,9 @@ export function getSystemUserList(data) {
})
}
export function getDomainList(data) {
export function getZoneList(data) {
return request({
url: '/api/v1/assets/domains/',
url: '/api/v1/assets/zones/',
method: 'get',
params: data
})

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

@ -53,7 +53,7 @@ export function createJob(form) {
})
}
export function StopJob(form) {
export function stopJob(form) {
return request({
url: '/api/v1/ops/job-executions/stop/',
method: 'post',
@ -71,3 +71,10 @@ export function JobUploadFile(form) {
})
}
export function auditUpdateJob(id, form) {
return request({
url: `/api/v1/audits/jobs/${id}/`,
method: 'patch',
data: form
})
}

View File

@ -15,6 +15,7 @@ export function testEmailSetting(data) {
data: data
})
}
export function importLicense(formData) {
return request({
url: '/api/v1/xpack/license/import',
@ -25,6 +26,7 @@ export function importLicense(formData) {
data: formData
})
}
export function testLdapSetting(data, refresh = true) {
let url = '/api/v1/settings/ldap/testing/config/'
if (refresh) {
@ -96,9 +98,17 @@ export function getPublicSettings(isOpen) {
method: 'get'
})
}
export function getLogo() {
return request({
url: '/api/v1/xpack/interface/setting/',
method: 'get'
})
}
export function getPreference() {
return request({
url: '/api/v1/users/preference/?category=luna',
method: 'get'
})
}

View File

@ -8,11 +8,20 @@ export function login(data) {
})
}
export function getProfile(token) {
return request({
export async function getProfile(token) {
let profile = await request({
url: '/api/v1/users/profile/',
method: 'get'
})
const perms = await request({
url: '/api/v1/users/profile/permissions/',
method: 'get'
})
profile = {
...profile,
...perms
}
return profile
}
export function getUserList(data) {
@ -22,6 +31,7 @@ export function getUserList(data) {
params: data
})
}
export function getUserGroupList(params) {
return request({
url: '/api/v1/users/groups/',
@ -29,6 +39,7 @@ export function getUserGroupList(params) {
params: params
})
}
export function getUserGroupDetail(id) {
return request({
url: `/api/v1/users/groups/${id}/`,
@ -50,6 +61,7 @@ export function editUserGroup(data) {
data: data
})
}
export function updateUserGroup(id, data) {
return request({
url: '/api/v1/users/groups/' + id + '/',
@ -65,10 +77,6 @@ export function logout() {
})
}
export function refreshSessionIdAge() {
return getProfile()
}
export default {
getProfile,
getUserList

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

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

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.8 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.7 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: 2.3 KiB

View File

@ -1,18 +1,31 @@
import { UpdateToken, UploadSecret } from '@/components/Form/FormFields'
import Select2 from '@/components/Form/FormFields/Select2.vue'
import AssetSelect from '@/components/Apps/AssetSelect/index.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']
function onPrivilegedUser(value, updateForm) {
const maybePrivileged = defaultPrivilegedAccounts.includes(value)
if (maybePrivileged) {
updateForm({ privileged: true, secret_reset: false, push_now: false })
}
}
return {
assets: {
component: Select2,
label: vm.$t('Asset'),
rules: [Required],
component: AssetSelect,
label: vm.$t('assets.Asset'),
el: {
multiple: false
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
@ -22,6 +35,9 @@ export const accountFieldsMeta = (vm) => {
component: Select2,
rules: [Required],
el: {
get disabled() {
return vm.isDisabled
},
multiple: false,
ajax: {
url: '/api/v1/accounts/account-templates/',
@ -36,26 +52,33 @@ export const accountFieldsMeta = (vm) => {
},
on_invalid: {
rules: [Required],
label: vm.$t('accounts.AccountPolicy'),
helpText: vm.$t('accounts.BulkCreateStrategy'),
label: vm.$t('AccountPolicy'),
helpTip: vm.$t('AccountPolicyHelpText'),
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: () => {
return vm.platform || vm.asset
}
},
name: {
label: vm.$t('common.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 })
}
}
onPrivilegedUser(value, updateForm)
}
},
hidden: () => {
@ -64,17 +87,16 @@ export const accountFieldsMeta = (vm) => {
},
username: {
el: {
disabled: !!vm.account?.name
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 })
}
onPrivilegedUser(value, updateForm)
}
},
hidden: () => {
@ -82,7 +104,12 @@ export const accountFieldsMeta = (vm) => {
}
},
privileged: {
label: vm.$t('assets.Privileged'),
label: vm.$t('Privileged'),
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: () => {
return vm.addTemplate
}
@ -104,69 +131,113 @@ export const accountFieldsMeta = (vm) => {
}
},
su_from_username: {
label: vm.$t('assets.UserSwitchFrom'),
label: vm.$t('UserSwitchFrom'),
el: {
get disabled() {
return vm.isDisabled
}
},
hidden: (formValue) => {
return vm.platform || vm.asset || vm.addTemplate
}
},
password: {
label: vm.$t('assets.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('assets.PrivateKey'),
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('assets.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('assets.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('assets.AccessKey'),
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('assets.ApiKey'),
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: {
helpText: vm.$t('accounts.AccountPush.WindowsPushHelpText'),
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
vm.addTemplate ||
!formValue.secret_reset
}
},
params: {
label: vm.$t('assets.PushParams'),
label: vm.$t('PushParams'),
component: AutomationParamsForm,
el: {},
hidden: (formValue) => {
const automation = vm.iPlatform.automation || {}
if (!vm.iPlatform.automation) {
return true
}
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 ||
@ -179,12 +250,27 @@ export const accountFieldsMeta = (vm) => {
}
},
is_active: {
label: vm.$t('common.IsActive')
label: vm.$t('IsActive'),
el: {
get disabled() {
return vm.isDisabled
}
}
},
comment: {
label: vm.$t('common.Comment'),
hidden: () => {
return vm.addTemplate
label: vm.$t('Comment'),
el: {
get disabled() {
return vm.isDisabled
}
}
},
secret_reset: {
label: vm.$t('SecretReset'),
el: {
get disabled() {
return vm.isDisabled
}
}
}
}

View File

@ -2,6 +2,8 @@
<AutoDataForm
v-if="!loading"
ref="AutoDataForm"
:class="addTemplate? '': 'account-add'"
:submit-btn-text="submitBtnText"
v-bind="$data"
@submit="confirm"
/>
@ -43,7 +45,9 @@ export default {
data() {
return {
loading: true,
isDisabled: false,
usernameChanged: false,
submitBtnText: this.$t('Confirm'),
iPlatform: {
automation: {},
su_enabled: false,
@ -58,19 +62,29 @@ export default {
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'), [
[this.$t('Basic'), ['name', 'username', 'privileged', 'su_from', 'su_from_username', 'template']],
[this.$t('Asset'), ['assets']],
[this.$t('Secret'), [
'secret_type', 'password', 'ssh_key', 'token',
'access_key', 'passphrase', 'api_key'
'access_key', 'passphrase', 'api_key',
'secret_reset'
]],
[this.$t('common.Other'), ['push_now', 'params', 'on_invalid', 'is_active', 'comment']]
[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()
@ -100,23 +114,23 @@ export default {
setSecretTypeOptions() {
const choices = [
{
label: this.$t('assets.Password'),
label: this.$t('Password'),
value: 'password'
},
{
label: this.$t('assets.SSHKey'),
label: this.$t('SSHKey'),
value: 'ssh_key'
},
{
label: this.$t('assets.Token'),
label: this.$t('Token'),
value: 'token'
},
{
label: this.$t('assets.AccessKey'),
label: this.$t('AccessKey'),
value: 'access_key'
},
{
label: this.$t('assets.ApiKey'),
label: this.$t('ApiKey'),
value: 'api_key'
}
]
@ -143,7 +157,11 @@ export default {
delete form['secret']
}
if (this.account?.name) {
this.$emit('edit', form)
if (this.account.payload && this.account.payload === 'pam_account_clone') {
this.$emit('add', form)
} else {
this.$emit('edit', form)
}
} else {
this.$emit('add', form)
}
@ -152,5 +170,24 @@ export default {
}
</script>
<style scoped>
<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

@ -1,35 +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"
v-on="$listeners"
:visible="iVisible"
class="drawer"
@close-drawer="handleCloseDrawer"
>
<AccountCreateUpdateForm
v-if="!loading"
ref="form"
:account="account"
:add-template="addTemplate"
:asset="asset"
@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/index.vue'
import Drawer from '@/components/Drawer/index.vue'
import AccountCreateUpdateForm from '@/components/Apps/AccountCreateUpdateForm/index.vue'
import IBox from '@/components/Common/IBox/index.vue'
import Page from '@/layout/components/Page/index.vue'
export default {
name: 'CreateAccountDialog',
components: {
Dialog,
IBox,
Drawer,
Page,
AccountCreateUpdateForm
},
props: {
@ -52,7 +55,7 @@ export default {
title: {
type: String,
default: function() {
return this.$t('assets.AddAccount')
return this.$t('AddAccount')
}
}
},
@ -91,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
}
}
@ -110,11 +113,22 @@ export default {
},
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
@ -126,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)
}
@ -167,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

@ -1,6 +1,12 @@
<template>
<div>
<ListTable ref="ListTable" :header-actions="headerActions" :table-config="tableConfig" />
<DrawerListTable
ref="ListTable"
:detail-drawer="detailDrawer"
:header-actions="headerActions"
:quick-filters="quickFilters"
:table-config="tableConfig"
/>
<ViewSecret
v-if="showViewSecretDialog"
:account="account"
@ -16,26 +22,18 @@
<AccountCreateUpdate
v-if="showAddDialog"
:account="account"
:add-template="addTemplate"
: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"
@close-all="closeAll"
/>
<AccountBulkUpdateDialog
v-if="updateSelectedDialogSetting.visible"
@ -43,29 +41,42 @@
v-bind="updateSelectedDialogSetting"
@update="handleAccountBulkUpdate"
/>
<PasswordHistoryDialog
v-if="showPasswordHistoryDialog"
:account="currentAccountColumn"
:visible.sync="showPasswordHistoryDialog"
/>
</div>
</template>
<script>
import ListTable from '@/components/Table/ListTable/index.vue'
import { ActionsFormatter } from '@/components/Table/TableFormatters'
import { mapGetters } from 'vuex'
import { accountOtherActions, accountQuickFilters, connectivityMeta, isDirectoryServiceAccount } from './const'
import { openTaskPage } from '@/utils/jms'
import {
AccountConnectFormatter,
ActionsFormatter,
PlatformFormatter,
SecretViewerFormatter
} from '@/components/Table/TableFormatters'
import ViewSecret from './ViewSecret.vue'
import UpdateSecretInfo from './UpdateSecretInfo.vue'
import AccountCreateUpdate from './AccountCreateUpdate.vue'
import { connectivityMeta } from './const'
import { openTaskPage } from '@/utils/jms'
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: {
AccountBulkUpdateDialog,
ResultDialog,
ListTable,
UpdateSecretInfo,
ViewSecret,
AccountCreateUpdate
ResultDialog,
DrawerListTable,
UpdateSecretInfo,
AccountCreateUpdate,
PasswordHistoryDialog,
AccountBulkUpdateDialog
},
props: {
url: {
@ -88,7 +99,7 @@ export default {
},
hasClone: {
type: Boolean,
default: false
default: true
},
asset: {
type: Object,
@ -118,8 +129,7 @@ export default {
columnsDefault: {
type: Array,
default: () => ([
'name', 'username', 'asset', 'privileged',
'secret_type', 'is_active', 'date_updated'
'name', 'username', 'secret', 'asset', 'platform', 'connect'
])
},
headerExtraActions: {
@ -129,21 +139,34 @@ export default {
extraQuery: {
type: Object,
default: () => ({})
},
showQuickFilters: {
type: Boolean,
default: true
},
showActions: {
type: Boolean,
default: true
}
},
data() {
const vm = this
return {
addTemplate: false,
isUpdateAccount: false,
currentAccountColumn: {},
showPasswordHistoryDialog: false,
showViewSecretDialog: false,
showUpdateSecretDialog: false,
showResultDialog: false,
showAddDialog: false,
showAddTemplateDialog: false,
detailDrawer: () => import('@/views/accounts/Account/AccountDetail/index.vue'),
createAccountResults: [],
accountCreateUpdateTitle: this.$t('assets.AddAccount'),
iAsset: this.asset,
account: {},
secretUrl: '',
quickFilters: this.showQuickFilters ? accountQuickFilters(this) : [],
tableConfig: {
url: this.url,
permissions: {
@ -152,40 +175,88 @@ export default {
},
extraQuery: this.extraQuery,
columnsExclude: ['spec_info'],
columnsAdd: ['secret', 'platform', 'connect'],
columnsShow: {
min: ['name', 'username', 'actions'],
default: this.columnsDefault
},
columnsMeta: {
name: {
formatter: function(row) {
const to = {
name: 'AssetAccountDetail',
minWidth: '60px',
formatterArgs: {
can: () => vm.$hasPerm('accounts.view_account'),
getRoute: ({ row }) => ({
name: 'AccountDetail',
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>
}),
getTitle: ({ row }) => {
let title = row.name
if (row.ds && this.asset && this.asset.id !== row.asset.id) {
const dsID = row.ds.id.split('-')[0]
title = `${row.name}@${dsID}`
}
return title
},
getDrawerTitle({ row }) {
return `${row.username}@${row.asset.name}`
}
}
},
asset: {
label: this.$t('assets.Asset'),
formatter: function(row) {
const to = {
name: 'AssetDetail',
params: { id: row.asset.id }
secret: {
formatter: SecretViewerFormatter,
width: '130px',
formatterArgs: {
secretFrom: 'api',
hasDownload: false,
actionLeft: true
}
},
connect: {
label: this.$t('Connect'),
width: '80px',
formatter: AccountConnectFormatter,
formatterArgs: {
asset: this.asset,
can: ({ row }) => {
return this.currentUserIsSuperAdmin
}
if (vm.$hasPerm('assets.view_asset')) {
return <router-link to={to}>{row.asset.name}</router-link>
}
},
ds: {
width: '100px',
formatter: (row) => {
if (row.ds && row.ds['domain_name']) {
return row.ds['domain_name']
} else {
return <span>{row.asset.name}</span>
return ''
}
}
},
platform: {
label: this.$t('Platform'),
width: '150px',
formatter: PlatformFormatter,
formatterArgs: {
platformAttr: 'asset.platform'
}
},
asset: {
minWidth: '100px',
formatter: function(row) {
return row.asset.name
}
},
username: {
minWidth: '60px',
formatter: function(row) {
if (row.ds && row.ds['domain_name']) {
return `${row.username}@${row.ds['domain_name']}`
} else {
return row.username
}
}
},
secret_type: {
width: '100px',
formatter: function(row) {
return row.secret_type.label
}
@ -196,93 +267,34 @@ export default {
}
},
has_secret: {
width: '100px',
width: '120px',
formatterArgs: {
showFalse: false
}
},
privileged: {
label: this.$t('assets.Privileged'),
width: '120px',
formatterArgs: {
showText: false,
showFalse: false
showFalse: true
}
},
connectivity: connectivityMeta,
actions: {
formatter: ActionsFormatter,
has: this.showActions,
formatterArgs: {
performDelete: ({ row }) => {
const id = row.id
const url = `/api/v1/accounts/accounts/${id}/`
return this.$axios.delete(url)
},
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: 'Test',
title: this.$t('accounts.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
})
}
}
]
hasDelete: true, // can set function(row, value)
hasClone: false,
canDelete: ({ row }) => vm.$hasPerm('accounts.delete_account') && !isDirectoryServiceAccount(row, this),
moreActionsTitle: this.$t('More'),
extraActions: accountOtherActions(this)
}
},
...this.columnsMeta
@ -295,17 +307,10 @@ export default {
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')
tips: this.$t('AccountExportTips')
},
importOptions: {
canImportCreate: this.$hasPerm('accounts.add_account'),
@ -314,35 +319,35 @@ export default {
extraActions: [
{
name: 'add',
title: this.$t('common.Add'),
title: this.$t('Create'),
type: 'primary',
icon: 'plus',
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
return vm.$hasPerm('accounts.add_account') && !vm.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
callback: () => {
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.accountCreateUpdateTitle = this.$t('assets.AddAccount')
vm.showAddDialog = true
})
this.addTemplate = false
this.showAddDialog = true
}, 200)
}
},
{
name: 'add-template',
title: this.$t('common.TemplateAdd'),
title: this.$t('TemplateAdd'),
has: !(this.platform || this.asset),
can: () => {
return vm.$hasPerm('accounts.add_account') && !this.$store.getters.currentOrgIsRoot
return vm.$hasPerm('accounts.add_account') && !vm.$store.getters.currentOrgIsRoot
},
callback: async() => {
await this.getAssetDetail()
setTimeout(() => {
vm.iAsset = this.asset
vm.account = {}
vm.accountCreateUpdateTitle = this.$t('assets.AddAccount')
vm.showAddTemplateDialog = true
vm.showAddDialog = true
vm.addTemplate = true
})
}
},
@ -350,14 +355,14 @@ export default {
],
extraMoreActions: [
{
name: 'BulkVerify',
title: this.$t('accounts.BulkVerify'),
name: 'TestSelected',
title: this.$t('TestSelected'),
type: 'primary',
fa: 'fa-link',
icon: 'verify',
can: ({ selectedRows }) => {
return selectedRows.length > 0 &&
['clickhouse', 'redis', 'website', 'chatgpt'].indexOf(selectedRows[0].asset.type.value) === -1 &&
!this.$store.getters.currentOrgIsRoot
['clickhouse', 'redis', 'website', 'chatgpt'].indexOf(selectedRows[0].asset.type.value) === -1 &&
!this.$store.getters.currentOrgIsRoot
},
callback: function({ selectedRows }) {
const ids = selectedRows.map(v => {
@ -368,15 +373,15 @@ export default {
{ action: 'verify', accounts: ids }).then(res => {
openTaskPage(res['task'])
}).catch(err => {
this.$message.error(this.$tc('common.bulkVerifyErrorMsg' + ' ' + err))
this.$message.error(this.$tc('BulkVerifyErrorMsg' + ' ' + err))
})
}.bind(this)
},
{
name: 'ClearSecrets',
title: this.$t('common.ClearSecret'),
name: 'BatchClearSecret',
title: this.$t('ClearSecret'),
type: 'primary',
fa: 'clean',
icon: 'clean',
can: ({ selectedRows }) => {
return selectedRows.length > 0 && vm.$hasPerm('accounts.change_account')
},
@ -387,16 +392,16 @@ export default {
this.$axios.patch(
'/api/v1/accounts/accounts/clear-secret/',
{ account_ids: ids }).then(() => {
this.$message.success(this.$tc('common.ClearSuccessMsg'))
this.$message.success(this.$tc('ClearSuccessMsg'))
}).catch(err => {
this.$message.error(this.$tc('common.bulkClearErrorMsg' + ' ' + err))
this.$message.error(this.$tc('ClearErrorMsg' + ' ' + err))
})
}.bind(this)
},
{
name: 'actionUpdateSelected',
title: this.$t('accounts.AccountBatchUpdate'),
fa: 'batch-update',
name: 'UpdateSelected',
title: this.$t('UpdateSelected'),
icon: 'batch-update',
can: ({ selectedRows }) => {
return selectedRows.length > 0 &&
!this.$store.getters.currentOrgIsRoot &&
@ -422,6 +427,18 @@ export default {
}
}
},
computed: {
...mapGetters(['currentUserIsSuperAdmin']),
accountCreateUpdateTitle() {
if (this.addTemplate) {
return this.$t('AddAccountByTemplate')
} else if (this.isUpdateAccount) {
return this.$t('UpdateAccount')
} else {
return this.$t('AddAccount')
}
}
},
watch: {
url(iNew) {
this.$set(this.tableConfig, 'url', iNew)
@ -429,46 +446,35 @@ export default {
}
},
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)
}
}
if (this.hasDeleteAction) {
this.tableConfig.columnsMeta.actions.formatterArgs.extraActions.push(
{
name: 'Delete',
title: this.$t('common.Delete'),
can: this.$hasPerm('accounts.delete_account'),
type: 'primary',
callback: ({ row }) => {
const msg = this.$t('accounts.AccountDeleteConfirmMsg')
this.$confirm(msg, this.$tc('common.Info'), {
type: 'warning',
confirmButtonClass: 'el-button--danger',
beforeClose: async(action, instance, done) => {
if (action !== 'confirm') return done()
this.$axios.delete(`/api/v1/accounts/accounts/${row.id}/`).then(() => {
done()
this.$refs.ListTable.reloadTable()
this.$message.success(this.$tc('common.deleteSuccessMsg'))
})
}
})
}
}
)
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.isUpdateAccount = false
this.$refs.ListTable.reloadTable()
},
async getAssetDetail() {
@ -481,21 +487,33 @@ export default {
this.$refs.ListTable.reloadTable()
},
showBulkCreateResult(results) {
this.showResultDialog = false
this.createAccountResults = results
setTimeout(() => {
this.showResultDialog = true
}, 100)
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>
<style lang="scss" scoped>
.cell a {
color: var(--color-info);
}

View File

@ -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/Table/TableFormatters'
import { SecretViewerFormatter } from '@/components/Table/TableFormatters'
export default {
components: {
@ -23,7 +23,7 @@ export default {
data() {
return {
config: {
title: this.$t('accounts.HistoryPassword'),
title: this.$t('HistoryPassword'),
visible: false,
width: '60%',
tableConfig: {
@ -32,15 +32,15 @@ export default {
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

@ -65,7 +65,7 @@ export default {
</script>
<style lang="scss" scoped>
.item-textarea > > > .el-textarea__inner {
.item-textarea ::v-deep .el-textarea__inner {
height: 110px;
}
@ -78,12 +78,12 @@ export default {
border-bottom: none;
}
> > > .el-form-item__label {
::v-deep .el-form-item__label {
padding-right: 20px;
line-height: 30px;
}
> > > .el-form-item__content {
::v-deep .el-form-item__content {
line-height: 30px;
pre {

View File

@ -1,44 +1,36 @@
<template>
<Dialog
:destroy-on-close="true"
:title="$tc('assets.UpdateAssetUserToken')"
:visible.sync="visible"
width="50"
@cancel="handleCancel()"
@confirm="handleConfirm()"
:show-buttons="false"
:title="$tc('UpdateAssetUserToken')"
:visible.sync="iVisible"
width="800px"
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>
<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 { UpdateToken, UploadKey } from '@/components/Form/FormFields'
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: {
Dialog,
UploadKey,
UpdateToken
AutoDataForm,
Dialog
},
props: {
account: {
@ -51,49 +43,59 @@ export default {
}
},
data() {
const accountMeta = accountFieldsMeta(this)
return {
secretInfo: {
password: '',
private_key: '',
passphrase: ''
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() {
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
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.authInfo = { password: '', private_key: '' }
this.$message.success(this.$tc('common.updateSuccessMsg'))
this.$emit('updateAuthDone', res)
this.$emit('update:visible', false)
this.$message.success(this.$tc('UpdateSuccessMsg'))
this.iVisible = false
}).catch(err => {
const errMsg = Object.values(err.response.data).join(', ')
this.$message.error(this.$tc('common.updateErrorMsg') + ' ' + errMsg)
this.$emit('update:visible', true)
this.$message.error(this.$tc('UpdateErrorMsg') + ' ' + errMsg)
this.iVisible = false
})
},
handleCancel() {
this.$emit('update:visible', false)
},
getFile(file) {
this.secretInfo.private_key = file
}
}
}
</script>
<style scoped>
</style>

View File

@ -10,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'],
@ -27,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"
@ -60,7 +60,7 @@
<script>
import Dialog from '@/components/Dialog/index.vue'
import PasswordHistoryDialog from './PasswordHistoryDialog.vue'
import { ShowKeyCopyFormatter } from '@/components/Table/TableFormatters'
import { SecretViewerFormatter } from '@/components/Table/TableFormatters'
import { encryptPassword } from '@/utils/crypto'
export default {
@ -68,7 +68,7 @@ export default {
components: {
Dialog,
PasswordHistoryDialog,
ShowKeyCopyFormatter
SecretViewerFormatter
},
props: {
account: {
@ -90,7 +90,7 @@ export default {
title: {
type: String,
default: function() {
return this.$tc('assets.AccountDetail')
return this.$tc('Detail')
}
},
showPasswordRecord: {
@ -142,7 +142,7 @@ export default {
}
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('common.updateSuccessMsg'))
this.$message.success(this.$tc('UpdateSuccessMsg'))
})
},
showSecretDialog() {
@ -167,7 +167,7 @@ export default {
</script>
<style lang="scss" scoped>
.item-textarea >>> .el-textarea__inner {
.item-textarea ::v-deep .el-textarea__inner {
height: 110px;
}
@ -180,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

@ -1,18 +1,29 @@
import i18n from '@/i18n/i18n'
import { ChoicesFormatter } from '@/components/Table/TableFormatters'
import { openTaskPage } from '@/utils/jms'
export const connectivityMeta = {
label: i18n.t('assets.Connectivity'),
formatter: ChoicesFormatter,
formatterArgs: {
faChoices: {
'-': '',
ok: 'fa-check-circle',
err: 'fa-times-circle'
err: 'fa-times-circle',
auth_err: 'fa-times-circle',
sudo_err: 'fa-times-circle',
password_err: 'fa-times-circle',
openssh_key_err: 'fa-times-circle',
ntlm_err: 'fa-times-circle',
create_dir_err: 'fa-times-circle'
},
classChoices: {
ok: 'text-primary',
err: 'text-danger'
err: 'text-danger',
auth_err: 'text-danger',
sudo_err: 'text-danger',
password_err: 'text-danger',
openssh_key_err: 'text-danger',
ntlm_err: 'text-danger',
create_dir_err: 'text-danger'
},
getText({ cellValue }) {
if (cellValue?.value === '-' || cellValue?.value === 'unknown') {
@ -22,5 +33,311 @@ export const connectivityMeta = {
}
}
},
width: '100px'
width: '130px'
}
export function isDirectoryServiceAccount(account, vm) {
return vm.asset && vm.asset.id !== account.asset.id
}
export const accountOtherActions = (vm) => {
return [
{
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: ({ row }) => {
return vm.$hasPerm('accounts.change_account') &&
!vm.$store.getters.currentOrgIsRoot &&
!isDirectoryServiceAccount(row, vm)
},
callback: ({ row }) => {
vm.isUpdateAccount = true
const data = {
...vm.asset,
...row.asset
}
vm.iAsset = data
vm.account = row
vm.addTemplate = false
vm.showAddDialog = false
setTimeout(() => {
vm.showAddDialog = true
})
}
},
{
name: 'UpdateSecret',
title: vm.$t('EditSecret'),
can: ({ row }) => {
return vm.$hasPerm('accounts.change_account') &&
!vm.$store.getters.currentOrgIsRoot &&
!isDirectoryServiceAccount(row, vm)
},
callback: ({ row }) => {
const data = {
...vm.asset,
...row.asset
}
vm.account = row
vm.iAsset = data
vm.showUpdateSecretDialog = false
vm.accountCreateUpdateTitle = vm.$t('UpdateAccount')
setTimeout(() => {
vm.showUpdateSecretDialog = true
})
}
},
{
name: 'Clone',
title: vm.$t('Duplicate'),
has: () => {
return !vm.asset
},
can: ({ row }) => {
return vm.$hasPerm('accounts.add_account') &&
!vm.$store.getters.currentOrgIsRoot &&
!isDirectoryServiceAccount(row, vm)
},
callback: ({ row }) => {
vm.account = {
name: `${row.name} - ${vm.$t('Duplicate').toLowerCase()}`,
username: `${row.username} - ${vm.$t('Duplicate').toLowerCase()}`,
payload: 'pam_account_clone'
}
vm.iAsset = vm.asset
vm.showAddDialog = false
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: ({ row }) => {
return vm.$hasPerm('accounts.change_account') &&
!isDirectoryServiceAccount(row, vm)
},
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.account = row
vm.currentAccountColumn = row
vm.showViewSecretDialog = false
vm.secretUrl = `/api/v1/accounts/account-secrets/${row.id}/`
setTimeout(() => {
vm.showViewSecretDialog = true
})
}
},
{
name: 'CopyToOther',
title: vm.$t('CopyToAsset'),
type: 'primary',
divided: true,
can: ({ row }) => {
return vm.$hasPerm('accounts.add_account') &&
!vm.$store.getters.currentOrgIsRoot &&
!isDirectoryServiceAccount(row, vm)
},
has: () => {
return !vm.asset
},
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',
can: ({ row }) => {
return vm.$hasPerm('accounts.add_account') &&
!vm.$store.getters.currentOrgIsRoot &&
!isDirectoryServiceAccount(row, vm)
},
has: () => {
return !vm.asset
},
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_change_failed: '1'
}
}
]
},
{
label: vm.$t('RiskyAccount'),
options: [
{
label: vm.$t('NoLoginLongTime'),
filter: {
long_time_no_login: 'true'
}
},
{
label: vm.$t('AddAccount'),
filter: {
risk: 'new_found'
}
},
{
label: vm.$t('WeakPassword'),
filter: {
risk: 'weak_password'
}
},
{
label: vm.$t('EmptyPassword'),
filter: {
has_secret: 'false'
}
},
{
label: vm.$t('LongTimePassword'),
filter: {
long_time_no_change_secret: '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: 'web'
}
},
{
label: vm.$t('Other'),
filter: {
category: 'custom'
}
}
]
}
]

View File

@ -8,7 +8,7 @@
</tr>
<tr>
<td colspan="2">
<el-button :disabled="disabled" :type="type" size="small" @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,7 +16,7 @@
</template>
<script>
import IBox from '@/components/IBox/index.vue'
import IBox from '@/components/Common/IBox/index.vue'
import AssetSelect from '@/components/Apps/AssetSelect/index.vue'
export default {
@ -48,11 +48,13 @@ export default {
},
performAdd: {
type: Function,
default: (objects, that) => {}
default: (objects, that) => {
}
},
onAddSuccess: {
type: Function,
default: (objects, that) => {}
default: (objects, that) => {
}
},
canSelect: {
type: Function,
@ -62,8 +64,7 @@ export default {
}
},
data() {
return {
}
return {}
},
methods: {
addObjects() {
@ -77,18 +78,18 @@ export default {
</script>
<style scoped>
b, strong {
font-weight: 700;
font-size: 13px;
}
b, strong {
font-weight: 700;
font-size: 13px;
}
tr td {
line-height: 1.42857;
padding: 8px;
vertical-align: top;
}
tr td {
line-height: 1.42857;
padding: 8px;
vertical-align: top;
}
tr.item td {
border-top: 1px solid #e7eaec;
}
tr.item td {
border-top: 1px solid #e7eaec;
}
</style>

View File

@ -1,7 +1,7 @@
<template>
<Dialog
:close-on-click-modal="false"
:title="$tc('assets.Assets')"
:title="$tc('Assets')"
custom-class="asset-select-dialog"
top="2vh"
v-bind="$attrs"
@ -15,12 +15,15 @@
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"
:tree-setting="treeSetting"
class="tree-table"
v-bind="$attrs"
@loaded="handleTableLoaded"
v-on="$listeners"
/>
</Dialog>
</template>
@ -63,6 +66,7 @@ export default {
data() {
const vm = this
return {
isLoaded: false,
dialogVisible: false,
rowSelected: _.cloneDeep(this.value) || [],
rowsAdd: [],
@ -73,17 +77,17 @@ 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('Address'),
sortable: 'custom'
},
{
prop: 'platform',
label: this.$t('assets.Platform'),
label: this.$t('Platform'),
sortable: true,
formatter: function(row) {
return row.platform.name
@ -117,9 +121,17 @@ export default {
}
}
},
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)

View File

@ -28,7 +28,6 @@
<script>
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',
@ -38,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/'
@ -53,6 +56,10 @@ export default {
treeSetting: {
type: Object,
default: () => ({})
},
disabled: {
type: [Boolean, Function],
default: false
}
},
data() {
@ -68,9 +75,11 @@ export default {
dialogVisible: false,
initialValue: _.cloneDeep(iValue),
select2Config: {
disabled: this.disabled,
value: iValue,
multiple: true,
clearable: true,
defaultPageSize: this.defaultPageSize,
ajax: {
url: this.baseUrl,
transformOption: (item) => {
@ -81,7 +90,6 @@ export default {
}
},
methods: {
b,
handleFocus() {
this.$refs.select2.selectRef.blur()
this.dialogVisible = true
@ -136,16 +144,22 @@ export default {
.tree-table {
.left {
padding: 5px;
padding: 5px 0;
.ztree {
min-height: 500px;
height: inherit !important;
height: 100%;
}
}
.right {
.transition-box {
padding-left: 0;
}
}
.mini {
padding-top: 8px;
width: 1px;
}
.transition-box {

View File

@ -2,9 +2,10 @@
<TreeTable
ref="TreeList"
:active-menu.sync="treeTableConfig.activeMenu"
:component="treeComponent"
:table-config="tableConfig"
:tree-tab-config="treeTableConfig"
component="TabTree"
:tree-width="treeWidth"
v-bind="$attrs"
v-on="$listeners"
>
@ -31,6 +32,10 @@ export default {
type: String,
default: '/api/v1/assets/assets/'
},
typeUrl: {
type: String,
default: '/api/v1/assets/nodes/category/tree/'
},
nodeUrl: {
type: String,
default: '/api/v1/assets/nodes/'
@ -63,12 +68,14 @@ export default {
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,
@ -94,16 +101,17 @@ export default {
}
},
{
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'),
url: '/api/v1/assets/nodes/category/tree/',
customTreeHeaderName: this.$t('TypeTree'),
url: this.typeUrl,
nodeUrl: this.treeSetting?.nodeUrl || this.nodeUrl,
treeUrl: `/api/v1/assets/nodes/category/tree/?assets=${showAssets ? '1' : '0'}&count_resource=${this.treeSetting.countResource || 'asset'}`,
treeUrl: `${this.typeUrl}?assets=${showAssets ? '1' : '0'}&count_resource=${this.treeSetting.countResource || 'asset'}`,
callback: {
onSelected: (event, treeNode) => this.getAssetsUrl(treeNode)
}
@ -114,6 +122,9 @@ export default {
}
},
computed: {
treeWidth() {
return '23.6%'
},
treeTableConfig() {
if (this.treeSetting.notShowBuiltinTree) {
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
@ -131,6 +142,9 @@ export default {
treeSetting.showDelete = this.$hasPerm('assets.delete_node')
},
methods: {
reloadTable() {
this.$refs.TreeList.reloadTable()
},
setTreeUrlQuery() {
let str = ''
for (const key in this.treeUrlQuery) {
@ -150,33 +164,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

@ -7,7 +7,7 @@
type="primary"
@click="onOpenDialog"
>
{{ $tc('common.Setting') }}
{{ $tc('Setting') }}
</el-button>
</div>
<Dialog
@ -50,7 +50,7 @@ export default {
title: {
type: String,
default: function() {
return this.$t('assets.PushParams')
return this.$t('PushParams')
}
},
assets: {

View File

@ -1,9 +1,9 @@
<template>
<ListTable ref="ListTable" :table-config="tableConfig" :header-actions="headerActions" />
<ListTable ref="ListTable" :header-actions="headerActions" :table-config="tableConfig" />
</template>
<script>
import ListTable from '@/components/Table/ListTable/index.vue'
import { DrawerListTable as ListTable } from '@/components'
export default {
name: 'BlockedIPList',
@ -27,7 +27,7 @@ export default {
],
columnsMeta: {
ip: {
label: this.$t('assets.ip')
label: this.$t('IP')
},
actions: {
formatterArgs: {
@ -37,7 +37,7 @@ export default {
extraActions: [
{
name: 'UnlockIP',
title: this.$t('setting.Unblock'),
title: this.$t('Unblock'),
can: this.$hasPerm('settings.change_security'),
type: 'primary',
callback: ({ row }) => {
@ -45,7 +45,7 @@ export default {
'/api/v1/settings/security/unlock-ip/',
{ ips: [row.ip] }
).then(() => {
vm.$message.success(this.$tc('common.UnlockSuccessMsg'))
vm.$message.success(this.$tc('UnlockSuccessMsg'))
vm.$refs.ListTable.reloadTable()
})
}
@ -68,7 +68,7 @@ export default {
extraMoreActions: [
{
name: 'UnlockSelected',
title: this.$t('setting.BulkUnblock'),
title: this.$t('UnblockSelected'),
type: 'primary',
can: ({ selectedRows }) => {
return selectedRows.length > 0
@ -77,10 +77,12 @@ export default {
vm.$axios.post(
'/api/v1/settings/security/unlock-ip/',
{
ips: selectedRows.map(v => { return v.ip })
ips: selectedRows.map(v => {
return v.ip
})
}
).then(res => {
vm.$message.success(vm.$tc('common.UnlockSuccessMsg'))
vm.$message.success(vm.$tc('UnlockSuccessMsg'))
vm.$refs.ListTable.reloadTable()
})
}

View File

@ -6,18 +6,18 @@
type="primary"
@click="onOpenDialog"
>
{{ $tc('common.View') }}
<span>({{ $tc('setting.LockedIP', ipCounts ) }})</span>
{{ $tc('View') }}
<span>({{ $tc('LockedIP', ipCounts ) }})</span>
</el-button>
</div>
<Dialog
:visible.sync="visible"
:title="title"
width="40%"
:destroy-on-close="true"
:show-cancel="false"
:show-confirm="false"
:destroy-on-close="true"
:title="title"
:visible.sync="visible"
v-bind="$attrs"
width="40%"
v-on="$listeners"
>
<BlockedIPList />
@ -43,7 +43,7 @@ export default {
title: {
type: String,
default: function() {
return this.$t('setting.BlockedIPS')
return this.$t('BlockedIPS')
}
},
url: {

View File

@ -11,16 +11,16 @@
v-on="$listeners"
>
<el-form :model="secretInfo" class="password-form" label-position="right" label-width="100px">
<el-form-item :label="$tc('accounts.AccountChangeSecret.OldSecret')">
<ShowKeyCopyFormatter
<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('accounts.AccountChangeSecret.NewSecret')">
<ShowKeyCopyFormatter
<el-form-item :label="$tc('NewSecret')">
<SecretViewerFormatter
:cell-value="secretInfo.new_secret"
:col="{ formatterArgs: {
name: 'new_secret'
@ -34,13 +34,13 @@
<script>
import Dialog from '@/components/Dialog/index.vue'
import { ShowKeyCopyFormatter } from '@/components/Table/TableFormatters'
import { SecretViewerFormatter } from '@/components/Table/TableFormatters'
export default {
name: 'RecordViewSecret',
components: {
Dialog,
ShowKeyCopyFormatter
SecretViewerFormatter
},
props: {
visible: {
@ -54,7 +54,7 @@ export default {
title: {
type: String,
default: function() {
return this.$tc('common.ViewSecret')
return this.$tc('ViewSecret')
}
}
},
@ -65,8 +65,7 @@ export default {
mfaDialogVisible: true
}
},
computed: {
},
computed: {},
mounted() {
this.showSecretDialog()
},
@ -89,7 +88,7 @@ export default {
</script>
<style lang="scss" scoped>
.item-textarea >>> .el-textarea__inner {
.item-textarea ::v-deep .el-textarea__inner {
height: 110px;
}
@ -102,12 +101,12 @@ export default {
border-bottom: none;
}
>>> .el-form-item__label {
::v-deep .el-form-item__label {
padding-right: 20px;
line-height: 30px;
}
>>> .el-form-item__content {
::v-deep .el-form-item__content {
line-height: 30px;
pre {

View File

@ -12,31 +12,31 @@
<el-input
v-model="inputValue"
:disabled="isLoading"
:placeholder="$tc('common.InputMessage')"
:placeholder="$tc('InputMessage')"
:rows="expanded ? 3 :2"
type="textarea"
@compositionend="isIM = false"
@compositionstart="isIM = true"
@keypress.native="onKeyEnter"
/>
<div class="input-action">
<span class="right">
<i :class="{'active': inputValue }" class="fa fa-send" @click="onSendHandle" />
</span>
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
import Select2 from '../../../../Form/FormFields/Select2.vue'
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 {
@ -46,7 +46,7 @@ export default {
url: '/api/v1/settings/chatai-prompts/',
value: '',
multiple: false,
placeholder: this.$t('common.Prompt'),
placeholder: this.$t('Role'),
ajax: {
transformOption: (item) => {
return { label: item.name, value: item.content }
@ -91,11 +91,14 @@ export default {
display: flex;
height: 100%;
flex-direction: column;
.chat-action {
width: 100%;
margin: 6px 0;
&>>> .el-select {
&::v-deep .el-select {
width: 50%;
.el-input__inner {
height: 28px;
line-height: 28px;
@ -104,60 +107,47 @@ export default {
background-color: #f7f7f8;
font-size: 13px;
color: rgba(0, 0, 0, 0.45);
&:hover {
background-color: #ededed;
}
}
.el-input__icon {
line-height: 0px;
line-height: 0;
}
}
}
.chat-input {
flex: 1;
display: flex;
flex-direction: column;
border: 1px solid #DCDFE6;
border-radius: 12px;
&:has(.el-textarea__inner:focus) {
border: 1px solid var(--color-primary);
}
&>>> .el-textarea {
&::v-deep .el-textarea {
height: 100%;
.el-textarea__inner {
height: 100%;
padding: 8px 10px;
border: none;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
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;
}
}
.input-action {
overflow: hidden;
padding: 0 16px 15px;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
.right {
float: right;
.active {
color: var(--color-primary);
}
i {
cursor: pointer;
}
}
}
}
}
</style>

View File

@ -1,42 +1,74 @@
<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 :class="{ 'user-role': isUserRole }" class="chat-item">
<div class="chart-item-container">
<div class="avatar">
<el-avatar
:src="isUserRole ? userUrl : chatUrl"
class="header-avatar"
/>
</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 class="content">
<div class="operational">
<div v-if="!item.message.is_reasoning" class="date">
{{
$moment(item.message.create_time).format("YYYY-MM-DD HH:mm:ss")
}}
</div>
<div v-else class="thinking-time">{{ $i18n.t('DeeplyThoughtAbout') }}</div>
</div>
<div class="action">
<el-tooltip
v-if="isSystemError && isLoading"
:content="$tc('common.Reconnect')"
effect="dark"
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 :class="item.reasoning ? 'reasoning' : 'message'">
<div class="message-content">
<div v-if="!item.reasoning">
<span v-if="isSystemError" class="error">
{{ item.message.content }}
</span>
<span v-else class="chat-text">
<MessageText :message="item.message" />
</span>
</div>
<div v-else class="thinking-wrapper">
<div class="thinking-content">
<!-- eslint-disable-next-line -->
<div class="divider"></div>
<p>
<MessageText :message="item.reasoning" />
</p>
</div>
<div class="thinking-result">
<span v-if="isServerError" class="error">
{{ isServerError }}
</span>
<MessageText :message="item.result" />
</div>
</div>
</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>
@ -45,7 +77,7 @@
<script>
import MessageText from './MessageText.vue'
import { mapState } from 'vuex'
import { mapGetters, mapState } from 'vuex'
import { copy } from '@/utils/common'
import { useChat } from '../../useChat.js'
import { reconnect } from '@/utils/socket'
@ -59,17 +91,17 @@ export default {
props: {
item: {
type: Object,
default: () => {}
default: () => {
}
}
},
data() {
return {
chatUrl: require('@/assets/img/chat.png'),
userUrl: '/api/v1/settings/logo/',
dropdownOptions: [
{
action: 'copy',
label: this.$t('common.Copy')
label: this.$t('Copy')
}
]
}
@ -78,11 +110,26 @@ export default {
...mapState({
isLoading: state => state.chat.loading
}),
...mapGetters([
'publicSettings'
]),
isUserRole() {
return this.item.message?.role === 'user'
},
isSystemError() {
return this.item.type === 'error' && this.item.message?.role === 'assistant'
return (
this.item.type === 'error' && this.item?.role === 'assistant'
)
},
isServerError() {
return (this.item.type === 'finish' && this.item.result.content === '')
? this.$i18n.t('ServerBusyRetry')
: ''
},
chatUrl() {
return this.publicSettings.CHAT_AI_TYPE === 'gpt'
? require('@/assets/img/chat.png')
: require('@/assets/img/deepSeek.png')
}
},
methods: {
@ -93,7 +140,7 @@ export default {
},
handleCommand(value) {
if (value === 'copy') {
copy(this.item.message.content)
copy(this.item.result.content)
}
}
}
@ -103,82 +150,160 @@ export default {
<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%;
&>>> img {
background-color: #e5e5e7;
padding: 0.5rem;
.chart-item-container {
display: flex;
gap: 0.5rem;
.avatar {
width: 24px;
height: 24px;
margin-top: 2px;
.header-avatar {
width: 100%;
height: 100%;
border-radius: 50%;
&::v-deep img {
background-color: #fff;
}
}
}
}
.content {
margin-left: 6px;
overflow: hidden;
.operational {
.content {
display: flex;
justify-content: space-between;
flex-direction: column;
// gap: 0.5rem;
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;
.operational {
display: flex;
justify-content: space-between;
overflow: hidden;
.date {
padding-top: 5px;
}
.thinking-time {
width: 6rem;
display: flex;
justify-content: center;
padding: 5px 10px;
border-radius: 0.5rem;
background-color: #f5f5f5;
}
.copy {
float: right;
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
}
.reasoning {
display: flex;
gap: 0.5rem;
align-items: flex-end;
.message-content .thinking-wrapper {
display: flex;
flex-direction: column;
gap: 0.5rem;
.thinking-content {
position: relative;
color: #8b8b8b;
.divider {
position: absolute;
top: 0;
left: 0;
height: 100%;
border-left: 2px solid #e5e5e5;
}
p {
margin: unset;
padding-left: 0.5rem;
::v-deep p {
color: #8b8b8b;
}
}
}
}
}
.error {
color: red;
.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 {
&:last-child {
padding-bottom: 16px;
}
&.user-role {
flex-direction: row-reverse;
.chart-item-container {
flex-direction: row-reverse;
}
.message {
flex-direction: row-reverse;
.message-content {
background-color: var(--menu-hover);
border-radius: 12px 2px 12px 12px;
.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;
}
}
}
}

View File

@ -6,7 +6,7 @@
<span />
<span />
</span>
<div v-else class="inline-block markdown-body" v-html="text" />
<div v-else v-sanitize="text" class="inline-block markdown-body" />
</div>
</div>
</template>
@ -19,12 +19,12 @@ import hljs from 'highlight.js'
import 'highlight.js/styles/atom-one-dark.css'
import { copy } from '@/utils/common'
/* eslint-disable vue/no-v-html */
export default {
props: {
message: {
type: Object,
default: () => {}
default: () => {
}
}
},
data() {
@ -86,7 +86,8 @@ export default {
if (this.$refs.textRef) {
const copyBtn = this.$refs.textRef.querySelectorAll('.code-block-header__copy')
copyBtn.forEach((btn) => {
btn.removeEventListener('click', () => {})
btn.removeEventListener('click', () => {
})
})
}
}
@ -97,24 +98,31 @@ export default {
<style lang="scss" scoped>
.markdown-body {
font-size: 13px;
&>>> p {
&::v-deep p {
margin-bottom: 0 !important;
}
background: inherit;
&>>> pre {
&::v-deep pre {
padding: 0 0 6px 0;
.hljs.code-block-body {
border-radius: 4px;
}
}
&>>> .code-block-wrapper {
&::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;
@ -124,11 +132,13 @@ export default {
.code-block-header__copy {
float: right;
cursor: pointer;
&:hover {
color: #6e747b;
}
}
}
.hljs.code-block-body.javascript {
.hljs-comment {
display: block;
@ -136,16 +146,20 @@ export default {
}
}
}
>>> .link-style {
::v-deep .link-style {
color: #487bf4;
&:hover {
color: #275ee3;
}
}
.loading-box{
.loading-box {
margin-left: 6px;
}
.loading-box span{
.loading-box span {
display: inline-block;
width: 5px;
height: 5px;
@ -155,24 +169,29 @@ export default {
background: #676A6c;
animation: load 1.2s ease infinite;
}
.loading-box span:last-child{
.loading-box span:last-child {
margin-right: 0;
}
@keyframes load{
0%{
@keyframes load {
0% {
opacity: 1;
}
100%{
100% {
opacity: 0;
}
}
.loading-box span:nth-child(1){
.loading-box span:nth-child(1) {
animation-delay: 0.23s;
}
.loading-box span:nth-child(2){
.loading-box span:nth-child(2) {
animation-delay: 0.36s;
}
.loading-box span:nth-child(3){
.loading-box span:nth-child(3) {
animation-delay: 0.49s;
}
</style>

View File

@ -2,7 +2,12 @@
<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
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>
@ -22,8 +27,8 @@
round
size="small"
@click="onStopHandle"
>{{ $tc('common.Stop') }}</el-button>
<ChatInput ref="chatInput" @send="onSendHandle" @select-prompt="onSelectPromptHandle" />
>{{ $tc('Stop') }}</el-button>
<ChatInput ref="chatInput" :expanded="expanded" @send="onSendHandle" @select-prompt="onSelectPromptHandle" />
</div>
</div>
</template>
@ -52,23 +57,18 @@ export default {
ChatMessage
},
props: {
expanded: {
type: Boolean,
default: false
}
},
data() {
return {
socket: {},
prompt: '',
currentConversationId: '',
conversationId: '',
showIntroduction: false,
introduction: [
{
title: this.$t('common.introduction.ConceptTitle'),
content: this.$t('common.introduction.ConceptContent')
},
{
title: this.$t('common.introduction.IdeaTitle'),
content: this.$t('common.introduction.IdeaContent')
}
]
introduction: []
}
},
computed: {
@ -86,23 +86,23 @@ export default {
this.initChatMessage()
},
initWebSocket() {
const { NODE_ENV, VUE_APP_KAEL_HOST } = process.env || {}
const api = '/kael/chat/system/'
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_KAEL_HOST?.indexOf('://')
const localPath = protocol + VUE_APP_KAEL_HOST?.substring(index, VUE_APP_KAEL_HOST?.length) + 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.currentConversationId = ''
this.conversationId = ''
this.$refs.chatInput.select.value = ''
const chat = {
message: {
content: this.$t('common.ChatHello'),
content: this.$t('ChatHello'),
role: 'assistant',
create_time: new Date()
}
@ -119,11 +119,21 @@ export default {
}
},
onChatMessage(data) {
if (data.conversation_id) {
if (data.id) {
setLoading(true)
removeLoadingMessageInChat()
this.currentConversationId = data.conversation_id
updateChaMessageContentById(data.message.id, data)
this.conversationId = data.id
const newFragment = {
message: { id: data.message.id, is_reasoning: data.message.is_reasoning },
reasoning: { content: data.message.is_reasoning ? data.message.content : '' },
result: { content: data.message.is_reasoning ? '' : data.message.content },
role: data.message.role,
type: data.message.type,
create_time: data.message.create_time
}
updateChaMessageContentById(data.message.id, newFragment)
}
if (data.message?.type === 'finish') {
setLoading(false)
@ -132,20 +142,18 @@ export default {
},
onSystemMessage(data) {
data.message = {
content: data.system_message,
content: data.data,
role: 'assistant',
create_time: new Date()
}
removeLoadingMessageInChat()
addMessageToActiveChat(data)
this.socketReadyStateSuccess = false
setLoading(true)
},
onSendHandle(value) {
this.showIntroduction = false
this.socket = ws || {}
if (ws?.readyState === 1) {
this.socketReadyStateSuccess = true
const chat = {
message: {
content: value,
@ -154,9 +162,9 @@ export default {
}
}
const message = {
content: value,
data: value,
prompt: this.prompt,
conversation_id: this.currentConversationId || ''
id: this.conversationId || ''
}
addChatMessageById(chat)
onSend(message)
@ -164,20 +172,19 @@ export default {
} else {
const chat = {
message: {
content: this.$t('common.ConnectionDropped'),
content: this.$t('ConnectionDropped'),
role: 'assistant',
create_time: new Date()
},
type: 'error'
}
addChatMessageById(chat)
this.socketReadyStateSuccess = false
setLoading(true)
}
},
onSelectPromptHandle(value) {
this.prompt = value
this.currentConversationId = ''
this.conversationId = ''
this.showIntroduction = false
this.onSendHandle(value)
},
@ -186,13 +193,13 @@ export default {
this.initChatMessage()
},
onStopHandle() {
this.$axios.post(
'/kael/interrupt_current_ask/',
{ id: this.currentConversationId || '' }
).finally(() => {
removeLoadingMessageInChat()
setLoading(false)
})
const message = {
id: this.conversationId || '',
interrupt: true
}
onSend(message)
removeLoadingMessageInChat()
setLoading(false)
},
sendIntroduction(item) {
this.showIntroduction = false
@ -226,13 +233,16 @@ export default {
&:first-child {
margin-top: 0;
}
.head {
margin-bottom: 2px;
.title {
font-weight: 500;
color: #373739;
}
}
.content {
display: inline-block;
color: #a7a7ab;
@ -240,30 +250,35 @@ export default {
}
}
}
.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: 160px;
//height: 60px;
padding: 0 15px;
margin-bottom: 15px;
border-top: 1px solid #ececec;
//border-top: 1px solid #ececec;
}
.stop {
position: absolute;
top: -37px;
left: 50%;
z-index: 11;
transform: translateX(-50%);
>>> i {
::v-deep i {
margin-right: 4px;
}
}

View File

@ -1,17 +1,14 @@
<template>
<div class="container">
<div class="close-sidebar">
<i v-if="hasClose" class="el-icon-close" @click="onClose" />
<i v-if="hasClose" class="el-icon-download" @click="onClose" />
</div>
<div v-if="!expanded" class="close-sidebar">
<i class="fa fa-expand" style="font-weight: 200" @click="$emit('expand')" />
</div>
<div v-if="expanded" class="close-sidebar">
<i class="fa fa-compress" style="font-weight: 200" @click="$emit('compress')" />
</div>
<el-tabs v-model="active" :tab-position="'right'" @tab-click="handleClick">
<el-tab-pane v-for="(item) in submenu" :key="item.name" :name="item.name">
<span slot="label">
<el-tooltip effect="dark" placement="left" :content="item.label">
<svg-icon :icon-class="item.icon" />
</el-tooltip>
</span>
</el-tab-pane>
</el-tabs>
</div>
</template>
@ -29,18 +26,21 @@ export default {
submenu: {
type: Array,
default: () => []
},
expanded: {
type: Boolean,
default: false
}
},
data() {
return {
}
return {}
},
methods: {
handleClick(tab, event) {
this.$emit('tab-click', tab)
},
onClose() {
this.$parent.onClose()
this.$emit('close')
},
handleExpand() {
this.$emit('expand-full')
}
}
}
@ -51,17 +51,23 @@ export default {
width: 100%;
height: 100%;
background-color: #f0f1f5;
.close-sidebar {
height: 48px;
padding: 12px 0;
text-align: center;
font-size: 14px;
font-size: 16px;
cursor: pointer;
i {
font-size: 16px;
font-weight: 600;
padding: 4px;
}
i, .svg {
border-radius: 2px;
&:hover {
color: var(--color-primary);
background: var(--menu-hover);
@ -69,10 +75,16 @@ export default {
}
}
}
>>> .el-tabs {
.el-icon-download {
transform: rotate(-90deg)
}
::v-deep .el-tabs {
.el-tabs__item {
padding: 0 13px;
font-size: 15px;
padding: 0 10px;
font-size: 14px;
:hover {
color: #7b8085;
}

View File

@ -1,26 +1,44 @@
<template>
<div class="chat">
<div class="container">
<div class="header">
<div class="left">
<img :src="robotUrl" alt="">
<span class="title">{{ title }}</span>
<DrawerPanel
ref="drawer"
:default-show-panel="!!defaultShowPanel"
:expanded="expanded"
:height="height"
:icon="robotUrl"
:modal="false"
@toggle="onToggle"
>
<div class="chat">
<div class="container">
<div ref="header" class="header" @mousedown="handleMoveMouseDown" @mouseup="handleMouseMoveUp">
<div class="left">
<img :src="robotUrl" alt="">
<span class="title">{{ title }}</span>
</div>
<span class="new" @click="onNewChat">
<i class="el-icon-plus" />
<span>{{ $tc('NewChat') }}</span>
</span>
</div>
<div class="content">
<keep-alive>
<component :is="active" ref="component" :expanded="expanded" />
</keep-alive>
</div>
<span class="new" @click="onNewChat">
<i class="el-icon-plus" />
<span>{{ $tc('common.NewChat') }}</span>
</span>
</div>
<div class="content">
<keep-alive>
<component :is="active" ref="component" />
</keep-alive>
<div class="sidebar">
<Sidebar
:active.sync="active"
:expanded="expanded"
v-bind="$attrs"
@close="onClose"
@compress="compress"
@expand="expandFull"
v-on="$listeners"
/>
</div>
</div>
<div class="sidebar">
<Sidebar v-bind="$attrs" :active.sync="active" :submenu="submenu" />
</div>
</div>
</DrawerPanel>
</template>
<script>
@ -28,9 +46,11 @@ import Sidebar from './components/Sidebar/index.vue'
import Chat from './components/ChitChat/index.vue'
import { getInputFocus } from './useChat.js'
import { ws } from '@/utils/socket'
import DrawerPanel from '@/components/Apps/DrawerPanel/index.vue'
export default {
components: {
DrawerPanel,
Chat,
Sidebar
},
@ -38,9 +58,13 @@ export default {
title: {
type: String,
default: function() {
return this.$t('setting.ChatAI')
return this.$t('ChatAI')
}
},
defaultShowPanel: {
type: Boolean,
default: false
},
drawerPanelVisible: {
type: Boolean,
default: () => false
@ -49,29 +73,46 @@ export default {
data() {
return {
active: 'chat',
robotUrl: require('../../../assets/img/robot-assistant.png'),
submenu: [
{
name: 'chat',
label: this.$t('common.Chat'),
icon: 'chat'
}
]
robotUrl: require('@/assets/img/robot-assistant.png'),
height: '400px',
expanded: false,
clientOffset: {}
}
},
watch: {
drawerPanelVisible(value) {
if (value && !ws) {
this.initWebSocket()
}
}
},
mounted() {
this.handlePostMessage()
},
methods: {
handlePostMessage() {
window.addEventListener('message', (event) => {
if (event.data === 'show-chat-panel') {
this.$refs.drawer.show = true
}
})
},
handleMoveMouseDown(event) {
this.$refs.drawer.handleHeaderMoveDown(event)
},
handleMouseMoveUp(event) {
this.$refs.drawer.handleHeaderMoveUp(event)
},
initWebSocket() {
this.$refs.component?.init()
if (!ws) {
this.$refs.component?.init()
}
},
onClose() {
this.$parent.show = false
this.$refs.drawer.show = false
},
expandFull() {
this.height = '100%'
this.expanded = true
},
compress() {
this.height = '400px'
this.expanded = false
},
onNewChat() {
this.active = 'chat'
@ -79,6 +120,12 @@ export default {
this.$refs.component?.onNewChat()
getInputFocus()
})
},
onToggle(status) {
this.initWebSocket()
if (status) {
getInputFocus()
}
}
}
}
@ -89,12 +136,16 @@ export default {
display: flex;
width: 100%;
height: 100%;
pointer-events: auto;
.container {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
.header {
background: linear-gradient(90deg, #ebf1ff 24.34%, #e5fbf8 56.18%, #f2ebfe 90.18%);;
display: flex;
justify-content: space-between;
height: 48px;

View File

@ -1,8 +1,8 @@
<template>
<div ref="drawer" :class="{show: show}" class="drawer">
<div :style="{'background-color': modal ? 'rgba(0, 0, 0, .3)' : 'transparent'}" class="modal" />
<div :style="{'width': width}" class="drawer-panel">
<div v-show="!show" ref="dragBox" class="handle-button">
<div v-if="modal" :style="{'background-color': modal ? 'rgba(0, 0, 0, .3)' : 'transparent'}" class="modal" />
<div ref="panel" :style="{width: width, height: height }" class="drawer-panel">
<div v-show="!show && !defaultShowPanel" ref="dragBox" class="handle-button">
<i v-if="icon.startsWith('fa') || icon.startsWith('el')" :class="show ? 'el-icon-close': icon" />
<img v-else :src="icon" alt="">
</div>
@ -12,7 +12,6 @@
</div>
</div>
</template>
<script>
export default {
@ -26,6 +25,10 @@ export default {
type: String,
default: '440px'
},
height: {
type: String,
default: '400px'
},
modal: {
type: Boolean,
default: true
@ -33,11 +36,20 @@ export default {
clickNotClose: {
type: Boolean,
default: false
},
expanded: {
type: Boolean,
default: false
},
defaultShowPanel: {
type: Boolean,
default: false
}
},
data() {
return {
show: false
show: this.defaultShowPanel,
clientOffset: {}
}
},
watch: {
@ -45,7 +57,17 @@ export default {
if (value && !this.clickNotClose) {
this.addEventClick()
}
const event = value ? 'show-chat-panel' : 'close-chat-panel'
window.parent.postMessage(event, '*')
this.$emit('toggle', this.show)
},
expanded(value) {
if (value) {
this.$refs.panel.style.top = '0px'
} else {
this.$refs.panel.style.top = 'auto'
this.$refs.panel.style.bottom = '2px'
}
}
},
mounted() {
@ -55,49 +77,65 @@ export default {
beforeDestroy() {
const element = this.$refs.drawer
element.remove()
window.removeEventListener('click', this.closeSidebar)
// window.removeEventListener('click', this.closeSidebar)
},
methods: {
handleHeaderMoveUp(event) {
this.handleMouseMoveUp(event)
},
handleHeaderMoveDown(event) {
this.handleMoveMouseDown(event, true)
},
handleMoveMouseDown(event, isHeader = false) {
const dragBox = this.$refs.dragBox
const vm = this
const rect = dragBox.getBoundingClientRect()
const parentRect = dragBox.parentElement.getBoundingClientRect()
const clientOffset = this.clientOffset
clientOffset.clientX = event.clientX
clientOffset.clientY = event.clientY
const handleOnMouseMove = _.debounce(function(event) {
const diffY = rect.top - parentRect.top
const maxY = window.innerHeight - parentRect.height
let parentY = event.clientY - diffY
// header, bar
if (isHeader) {
parentY = event.clientY - rect.height / 2
}
if (parentY < 0) {
parentY = 0
} else if (parentY > maxY) {
parentY = maxY
}
if (vm.$refs.panel) {
vm.$refs.panel.style.top = parentY + 'px'
}
})
document.onmousemove = handleOnMouseMove
document.onmouseup = function() {
document.removeEventListener('mousemove', handleOnMouseMove)
setTimeout(() => {
document.onmousemove = null
document.onmouseup = null
}, 0)
}
},
handleMouseMoveUp(event) {
const clientOffset = this.clientOffset
const clientX = event.clientX
const clientY = event.clientY
if (this.isDifferenceWithinThreshold(clientX, clientOffset.clientX) &&
this.isDifferenceWithinThreshold(clientY, clientOffset.clientY)) {
this.show = !this.show
}
},
init() {
this.$nextTick(() => {
const dragBox = this.$refs.dragBox
const clientOffset = {}
dragBox.addEventListener('mousedown', (event) => {
const offsetX = dragBox.getBoundingClientRect().left
const offsetY = dragBox.getBoundingClientRect().top
const innerX = event.clientX - offsetX
const innerY = event.clientY - offsetY
clientOffset.clientX = event.clientX
clientOffset.clientY = event.clientY
document.onmousemove = function(event) {
dragBox.style.left = event.clientX - innerX + 'px'
dragBox.style.top = event.clientY - innerY + 'px'
const dragDivTop = window.innerHeight - dragBox.getBoundingClientRect().height
const dragDivLeft = window.innerWidth - dragBox.getBoundingClientRect().width
dragBox.style.left = dragDivLeft + 'px'
dragBox.style.left = '-48px'
if (dragBox.getBoundingClientRect().top <= 0) {
dragBox.style.top = '0px'
}
if (dragBox.getBoundingClientRect().top >= dragDivTop) {
dragBox.style.top = dragDivTop + 'px'
}
event.preventDefault()
event.stopPropagation()
}
document.onmouseup = function() {
document.onmousemove = null
document.onmouseup = null
}
}, false)
dragBox.addEventListener('mouseup', (event) => {
const clientX = event.clientX
const clientY = event.clientY
if (this.isDifferenceWithinThreshold(clientX, clientOffset.clientX) && this.isDifferenceWithinThreshold(clientY, clientOffset.clientY)) {
this.show = !this.show
}
})
dragBox.addEventListener('mousedown', this.handleMoveMouseDown, false)
dragBox.addEventListener('mouseup', this.handleMouseMoveUp, false)
})
},
isDifferenceWithinThreshold(num1, num2, threshold = 5) {
@ -105,13 +143,6 @@ export default {
return difference <= threshold
},
addEventClick() {
window.addEventListener('click', this.closeSidebar)
},
closeSidebar(evt) {
const parent = evt.target.closest('.drawer-panel')
if (!parent && evt.target.className === 'modal') {
this.show = false
}
},
insertToBody() {
const element = this.$refs.drawer
@ -135,11 +166,10 @@ export default {
.drawer-panel {
position: fixed;
top: 0;
right: 0;
bottom: 1px;
right: -1px;
width: 100%;
min-width: 260px;
height: 100vh;
user-select: none;
transition: transform .25s cubic-bezier(.7, .3, .1, 1);
box-shadow: 0 0 8px 4px #00000014;
@ -187,23 +217,26 @@ export default {
pointer-events: auto;
color: #fff;
background-color: #FFFFFF;
opacity: 0.9;
box-shadow: 0 0 8px 4px #00000014;
cursor: pointer;
&:hover {
left: -50px !important;
left: -51px !important;
width: 50px !important;
transform: scale(1.06);
transform: scale(1.01);
}
i {
font-size: 20px;
line-height: 45px;
pointer-events: none;
}
img {
width: 22px;
height: 22px;
transform: translateY(10%);
margin-left: 3px;
pointer-events: none;
}
}
</style>

View File

@ -4,18 +4,18 @@
:destroy-on-close="true"
:show-cancel="false"
:show-confirm="false"
:title="$tc('assets.TestGatewayTestConnection')"
:title="$tc('TestGatewayTestConnection')"
:visible.sync="iVisible"
top="35vh"
width="40%"
>
<el-row :gutter="20">
<el-col :md="4" :sm="24">
<div style="line-height: 34px">{{ $t('assets.SSHPort') }}</div>
<div style="line-height: 34px">{{ $t('SSHPort') }}</div>
</el-col>
<el-col :md="14" :sm="24">
<el-input v-model="port" />
<span class="help-tips help-block">{{ $t('assets.TestGatewayHelpMessage') }}</span>
<span class="help-tips help-block">{{ $t('TestGatewayHelpMessage') }}</span>
</el-col>
<el-col :md="4" :sm="24">
<el-button
@ -25,7 +25,7 @@
type="primary"
@click="dialogConfirm"
>
{{ this.$t('common.Confirm') }}
{{ this.$t('Confirm') }}
</el-button>
</el-col>
</el-row>
@ -75,7 +75,7 @@ export default {
methods: {
dialogConfirm() {
if (isNaN(this.port)) {
return this.$message.error(this.$tc('common.TestPortErrorMsg'))
return this.$message.error(this.$tc('TestPortErrorMsg'))
}
this.$axios.post(
`/api/v1/assets/gateways/${this.cell}/test-connective/`,

View File

@ -1,17 +1,21 @@
<template>
<TreeTable :header-actions="headerActions" :table-config="tableConfig" :tree-setting="treeSetting" />
<AssetTreeTable
ref="AssetTreeTable"
:header-actions="headerActions"
:table-config="tableConfig"
:tree-setting="treeSetting"
/>
</template>
<script type="text/jsx">
import TreeTable from '../../Table/TreeTable/index.vue'
import { DetailFormatter } from '@/components/Table/TableFormatters'
import { AccountInfoFormatter } from '@/components/Table/TableFormatters'
<script>
import AssetTreeTable from '@/components/Apps/AssetTreeTable'
import { AccountInfoFormatter, DetailFormatter } from '@/components/Table/TableFormatters'
import { connectivityMeta } from '@/components/Apps/AccountListTable/const'
export default {
name: 'GrantedAssets',
components: {
TreeTable
AssetTreeTable
},
props: {
treeUrl: {
@ -34,11 +38,29 @@ export default {
vm.tableConfig.url = url
}
},
actions: {
type: Object,
default: null
},
getShowUrl: {
type: Function,
default({ row, col }) {
return this.tableUrl.replace('/assets/', `/assets/${row.id}/accounts/`)
}
},
name: {
type: Object,
default: () => ({
formatter: DetailFormatter,
formatterArgs: {
route: 'AssetDetail',
can: true
}
})
},
comment: {
type: Object,
default: () => ({})
}
},
data() {
@ -48,9 +70,11 @@ export default {
showMenu: false,
showRefresh: true,
showAssets: false,
showSearch: false,
url: this.tableUrl,
// ?assets=0. =1
treeUrl: this.treeUrl,
notShowBuiltinTree: true,
callback: {
onSelected: (event, node) => vm.onSelected(node, vm),
refresh: vm.refreshObjectAssetPermission
@ -63,24 +87,32 @@ export default {
columnsExclude: ['spec_info'],
columnsShow: {
min: ['name', 'address', 'accounts'],
default: ['name', 'address', 'platform', 'view_account', 'connectivity']
default: ['name', 'address', 'platform', 'view_account', 'actions']
},
columnsMeta: {
name: {
formatter: DetailFormatter,
...this.name
},
labels: {
formatterArgs: {
route: 'AssetDetail'
showEditBtn: false
}
},
actions: {
has: false
...this.actions
},
view_account: {
label: this.$t('assets.Account'),
label: this.$t('Accounts'),
formatter: AccountInfoFormatter,
width: '100px'
},
connectivity: connectivityMeta
connectivity: connectivityMeta,
comment: { ...this.comment }
},
tableAttrs: {
rowClassName({ row }) {
return !row.is_active ? 'row_disabled' : ''
}
}
},
headerActions: {
@ -103,4 +135,8 @@ export default {
</script>
<style scoped>
.row_disabled, .row_disabled:hover, .row_disabled:hover > td {
cursor: not-allowed;
background-color: rgba(192, 196, 204, 0.28) !important;
}
</style>

View File

@ -1,24 +1,26 @@
<template>
<el-row :gutter="24">
<el-col :md="20" :sm="22">
<ListTable v-bind="config" />
</el-col>
</el-row>
<TwoCol>
<ListTable v-bind="config" />
</TwoCol>
</template>
<script>
import ListTable from '@/components/Table/ListTable/index.vue'
import { DrawerListTable as ListTable } from '@/components'
import { toM2MJsonParams } from '@/utils/jms'
import { DetailFormatter } from '@/components/Table/TableFormatters'
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
export default {
name: 'AssetJsonTab',
components: {
TwoCol,
ListTable
},
props: {
object: {
type: Object,
default: () => {}
default: () => {
}
}
},
data() {
@ -32,21 +34,18 @@ export default {
},
tableConfig: {
url: `/api/v1/assets/assets/?${key}=${value}`,
columns: ['name', 'address', 'platform',
'type', 'is_active'
],
columns: ['name', 'address', 'platform', 'type', 'is_active'],
columnsShow: {
min: ['name', 'address'],
default: ['name', 'address', 'platform']
},
columnsMeta: {
name: {
label: this.$t('assets.Asset'),
formatter: (row) => {
const to = {
name: 'AssetDetail',
params: { id: row.id }
}
if (this.$hasPerm('assets.view_asset')) {
return <router-link to={to} class='text-link'>{row.name}</router-link>
} else {
return <span>{row.name}</span>
label: this.$t('Asset'),
formatter: DetailFormatter,
formatterArgs: {
getRoute: ({ row }) => {
return { name: 'AssetDetail', params: { id: row.id }}
}
}
},
@ -65,7 +64,3 @@ export default {
}
}
</script>
<style scoped>
</style>

View File

@ -1,24 +1,26 @@
<template>
<el-row :gutter="24">
<el-col :md="20" :sm="22">
<ListTable v-bind="config" />
</el-col>
</el-row>
<TwoCol>
<ListTable v-bind="config" />
</TwoCol>
</template>
<script>
import ListTable from '@/components/Table/ListTable/index.vue'
import { DrawerListTable as ListTable } from '@/components'
import { toM2MJsonParams } from '@/utils/jms'
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
import { DetailFormatter } from '@/components/Table/TableFormatters'
export default {
name: 'User',
components: {
TwoCol,
ListTable
},
props: {
object: {
type: Object,
default: () => {}
default: () => {
}
}
},
data() {
@ -33,26 +35,28 @@ export default {
tableConfig: {
url: `/api/v1/users/users/?${key}=${value}`,
columns: [
'name', 'username', 'groups', 'system_roles',
'name', 'username', 'email', 'groups', 'system_roles',
'org_roles', 'source', 'is_valid'
],
columnsShow: {
min: ['name', 'username'],
default: ['name', 'username', 'email']
},
columnsMeta: {
name: {
label: this.$t('common.Name'),
formatter: (row) => {
const to = {
name: 'UserDetail',
params: { id: row.id }
}
if (this.$hasPerm('users.view_user')) {
return <router-link to={to} class='text-link'>{row.name}</router-link>
} else {
return <span>{row.name}</span>
label: this.$t('Name'),
formatter: DetailFormatter,
formatterArgs: {
getRoute: ({ row }) => {
return {
name: 'UserDetail',
params: { id: row.id }
}
}
}
},
system_roles: {
label: this.$t('users.SystemRoles'),
label: this.$t('SystemRoles'),
formatter: (row) => {
return row['system_roles'].map(item => item['display_name']).join(', ') || '-'
},
@ -60,7 +64,7 @@ export default {
columnKey: 'system_roles'
},
org_roles: {
label: this.$t('users.OrgRoles'),
label: this.$t('OrgRoles'),
formatter: (row) => {
return row['org_roles'].map(item => item['display_name']).join(', ') || '-'
},
@ -85,7 +89,3 @@ export default {
}
}
</script>
<style scoped>
</style>

View File

@ -1,42 +1,43 @@
<template>
<div>
<el-row :gutter="20">
<el-col :md="12" :sm="24">
<IBox :title="title" class="block" v-bind="$attrs">
<el-timeline>
<el-timeline-item
v-for="(activity, index) in activities"
:key="index"
:size="activity.size"
:timestamp="activity.timestamp"
:type="activity.type"
placement="bottom"
<TwoCol>
<IBox :title="title" class="block" v-bind="$attrs">
<el-timeline>
<el-timeline-item
v-for="(activity, index) in activities"
:key="index"
:size="activity.size"
:timestamp="activity.timestamp"
:type="activity.type"
placement="bottom"
>
{{ activity.content }}
<el-link
v-if="activity['detail_url']"
type="primary"
@click.native="onClick(activity)"
>
{{ activity.content }}
<el-link
v-if="activity['detail_url']"
type="primary"
@click.native="onClick(activity)"
>
{{ $tc('common.Detail') }}
</el-link>
</el-timeline-item>
</el-timeline>
</IBox>
</el-col>
</el-row>
<DiffDetail ref="DetailDialog" :title="$tc('route.OperateLog')" />
{{ $tc('Detail') }}
</el-link>
</el-timeline-item>
</el-timeline>
</IBox>
</TwoCol>
<DiffDetail ref="DetailDialog" :title="$tc('OperateLog')" />
</div>
</template>
<script>
import IBox from '@/components/IBox/index.vue'
import IBox from '@/components/Common/IBox/index.vue'
import DiffDetail from '@/components/Dialog/DiffDetail.vue'
import { openTaskPage } from '@/utils/jms'
import { toSafeLocalDateStr } from '@/utils/time'
import TwoCol from '@/layout/components/Page/TwoColPage.vue'
export default {
name: 'ResourceActivity',
components: {
TwoCol,
IBox,
DiffDetail
},
@ -49,11 +50,11 @@ export default {
data() {
return {
activityUrl: `/api/v1/audits/activities/?resource_id=${this.object.id}`,
title: `${this.$t('common.Activity')} - ${this.$t('common.Last30')}`,
title: `${this.$t('Last30')}`,
activities: [
{
content: this.$t('common.Now'),
timestamp: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
content: this.$t('Now'),
timestamp: toSafeLocalDateStr(this.$moment()),
type: 'primary'
}
]
@ -65,9 +66,11 @@ export default {
methods: {
getActivities() {
this.$axios.get(this.activityUrl).then(res => {
for (const i in res) {
this.activities.push(res[i])
}
const activities = res || []
activities.forEach(activity => {
activity.timestamp = toSafeLocalDateStr(activity.timestamp)
this.activities.push(activity)
})
})
},
onClick(activity) {

View File

@ -8,7 +8,7 @@
:visible.sync="visible"
class="dialog-content"
v-bind="$attrs"
width="600px"
width="740px"
@confirm="visible = false"
v-on="$listeners"
>
@ -16,7 +16,7 @@
<el-row :gutter="24" style="margin: 0 auto;">
<el-col :md="24" :sm="24">
<el-alert
:title="$tc('auth.ReLoginTitle')"
:title="$tc('ReLoginTitle')"
center
style="margin-bottom: 20px;"
type="error"
@ -26,7 +26,7 @@
<el-row :gutter="24" style="margin: 0 auto;">
<el-col :md="24" :sm="24">
<el-button class="confirm-btn" size="mini" type="primary" @click="logout">
{{ this.$t('auth.ReLogin') }}
{{ this.$t('ReLogin') }}
</el-button>
</el-col>
</el-row>
@ -50,20 +50,30 @@
</el-col>
</el-row>
<el-row :gutter="24" style="margin: 0 auto;">
<el-col :md="24" :sm="24" style="display: flex; margin-bottom: 20px;">
<el-col :md="24" :sm="24" style="display: flex; align-items: center; margin-bottom: 20px;">
<el-input
v-if="subTypeSelected !== 'face'"
v-model="secretValue"
:placeholder="inputPlaceholder"
:show-password="showPassword"
@keyup.enter.native="handleConfirm"
/>
<span v-if="subTypeSelected === 'sms'" style="margin: -1px 0 0 20px;">
<iframe
v-if="isFaceCaptureVisible && subTypeSelected ==='face' && faceCaptureUrl"
:src="faceCaptureUrl"
allow="camera"
sandbox="allow-scripts allow-same-origin"
style="width: 100%; height: 800px;border: none;"
/>
<span v-if="subTypeSelected === 'sms' || subTypeSelected === 'email'" style="margin: -1px 0 0 20px;">
<el-button
:disabled="smsBtnDisabled"
size="mini"
style="line-height:20px; float: right;"
style="line-height: 14px; float: right;"
type="primary"
@click="sendSMSCode"
@click="sendCode"
>
{{ smsBtnText }}
</el-button>
@ -72,8 +82,23 @@
</el-row>
<el-row :gutter="24" style="margin: 10px auto;">
<el-col :md="24" :sm="24">
<el-button class="confirm-btn" size="mini" type="primary" @click="handleConfirm">
{{ this.$t('common.Confirm') }}
<el-button
v-if="subTypeSelected!=='face'"
class="confirm-btn"
size="mini"
type="primary"
@click="handleConfirm"
>
{{ this.$t('Confirm') }}
</el-button>
<el-button
v-if="subTypeSelected==='face'&&!isFaceCaptureVisible"
class="confirm-btn"
size="mini"
type="primary"
@click="handleFaceCapture"
>
{{ this.$tc('VerifyFace') }}
</el-button>
</el-col>
</el-row>
@ -101,11 +126,11 @@ export default {
},
data() {
return {
title: this.$t('common.CurrentUserVerify'),
title: this.$t('CurrentUserVerify'),
smsWidth: 0,
subTypeSelected: '',
inputPlaceholder: '',
smsBtnText: this.$t('common.SendVerificationCode'),
smsBtnText: this.$t('SendVerificationCode'),
smsBtnDisabled: false,
confirmTypeRequired: '',
subTypeChoices: [],
@ -113,7 +138,10 @@ export default {
visible: false,
callback: null,
cancel: null,
processing: false
processing: false,
isFaceCaptureVisible: false,
faceToken: null,
faceCaptureUrl: null
}
},
computed: {
@ -129,10 +157,14 @@ export default {
},
methods: {
handleSubTypeChange(val) {
if (val !== 'face') {
this.isFaceCaptureVisible = false
}
this.inputPlaceholder = this.subTypeChoices.filter(item => item.name === val)[0]?.placeholder
this.smsWidth = val === 'sms' ? 6 : 0
},
performConfirm: _.throttle(function({ response, callback, cancel }) {
performConfirm: _.debounce(function({ response, callback, cancel }) {
if (this.processing || this.visible) {
return
}
@ -150,7 +182,7 @@ export default {
this.callback()
this.visible = false
}).catch(() => {
this.title = this.$t('auth.NeedReLogin')
this.title = this.$t('NeedReLogin')
this.visible = true
})
return
@ -162,50 +194,83 @@ export default {
this.visible = true
}).catch((err) => {
const data = err.response?.data
const msg = data?.error || data?.detail || data?.msg || this.$t('common.GetConfirmTypeFailed')
const msg = data?.error || data?.detail || data?.msg || this.$t('GetConfirmTypeFailed')
this.$message.error(msg)
this.cancel(err)
}).finally(() => {
this.processing = false
})
}, 300),
}, 500),
logout() {
window.location.href = `${process.env.VUE_APP_LOGOUT_PATH}?next=${this.$route.fullPath}`
},
sendSMSCode() {
this.$axios.post(`/api/v1/authentication/mfa/select/`, { type: 'sms' }).then(res => {
this.$message.success(this.$tc('common.VerificationCodeSent'))
sendCode() {
this.$axios.post(`/api/v1/authentication/mfa/select/`, { type: this.subTypeSelected }).then(res => {
this.$message.success(this.$tc('VerificationCodeSent'))
let time = 60
const interval = setInterval(() => {
const originText = this.smsBtnText
this.smsBtnText = this.$t('common.Pending') + `: ${time}`
this.smsBtnDisabled = true
time -= 1
this.smsBtnDisabled = true
if (time === 0) {
this.smsBtnText = originText
this.smsBtnDisabled = false
const interval = setInterval(() => {
time -= 1
this.smsBtnText = `${this.$t('Pending')}: ${time}`
if (time <= 0) {
clearInterval(interval)
this.smsBtnText = this.$t('SendVerificationCode')
this.smsBtnDisabled = false
}
}, 1000)
}).catch(() => {
this.$message.error(this.$tc('FailedToSendVerificationCode'))
})
},
startFaceCapture() {
const url = '/api/v1/authentication/face/context/'
this.$axios.post(url).then(data => {
const token = data['token']
this.faceCaptureUrl = '/facelive/capture?token=' + token
this.isFaceCaptureVisible = true
const timer = setInterval(() => {
this.$axios.get(url + `?token=${token}`).then(data => {
if (data['is_finished']) {
clearInterval(timer)
this.isFaceCaptureVisible = false
this.handleConfirm()
}
})
}, 1000)
}).catch(() => {
this.$message.error(this.$tc('FailedToStartFaceCapture'))
})
},
handleFaceCapture() {
this.startFaceCapture()
},
handleConfirm() {
if (this.confirmTypeRequired === 'relogin') {
return this.logout()
}
if (this.subTypeSelected === 'otp' && this.secretValue.length !== 6) {
return this.$message.error(this.$tc('common.MFAErrorMsg'))
return this.$message.error(this.$tc('MFAErrorMsg'))
}
const data = {
confirm_type: this.confirmTypeRequired,
mfa_type: this.confirmTypeRequired === 'mfa' ? this.subTypeSelected : '',
secret_key: this.confirmTypeRequired === 'password' ? encryptPassword(this.secretValue) : this.secretValue
}
this.$axios.post(`/api/v1/authentication/confirm/`, data).then(res => {
this.callback()
this.$axios.post(`/api/v1/authentication/confirm/`, data).then(() => {
this.secretValue = ''
this.visible = false
this.$nextTick(() => {
this.callback()
})
}).catch((err) => {
this.$message.error(err.message || this.$tc('ConfirmFailed'))
this.faceCaptureUrl = null
this.isFaceCaptureVisible = false
})
}
}
@ -213,22 +278,21 @@ export default {
</script>
<style lang="scss" scoped>
.dialog-content >>> .el-dialog__footer {
padding: 0;
}
.dialog-content >>> .el-dialog {
padding: 8px;
.el-dialog__body {
padding-top: 30px;
padding-bottom: 30px;
}
}
.confirm-btn {
width: 100%;
line-height: 20px;
.dialog-content ::v-deep .el-dialog__footer {
padding: 0;
}
.dialog-content ::v-deep .el-dialog {
padding: 8px;
.el-dialog__body {
padding-top: 30px;
padding-bottom: 30px;
}
}
.confirm-btn {
width: 100%;
line-height: 20px;
}
</style>

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