Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
f9578f44
Unverified
Commit
f9578f44
authored
Jan 07, 2020
by
BaiJiangJie
Committed by
GitHub
Jan 07, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3606 from jumpserver/dev
Dev
parents
a27fb18a
a37e1422
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
194 additions
and
233 deletions
+194
-233
database_app_list.html
...pplications/templates/applications/database_app_list.html
+2
-3
remote_app_list.html
.../applications/templates/applications/remote_app_list.html
+2
-3
const.py
apps/assets/const.py
+0
-12
asset.py
apps/assets/forms/asset.py
+0
-2
user.py
apps/assets/forms/user.py
+0
-2
base.py
apps/assets/models/base.py
+9
-0
asset.py
apps/assets/serializers/asset.py
+0
-13
system_user.py
apps/assets/serializers/system_user.py
+5
-13
django.mo
apps/locale/zh/LC_MESSAGES/django.mo
+0
-0
django.po
apps/locale/zh/LC_MESSAGES/django.po
+136
-146
djangojs.mo
apps/locale/zh/LC_MESSAGES/djangojs.mo
+0
-0
command_execution_create.html
apps/ops/templates/ops/command_execution_create.html
+0
-6
serializers.py
apps/orgs/serializers.py
+0
-13
jumpserver.js
apps/static/js/jumpserver.js
+26
-4
_foot_js.html
apps/templates/_foot_js.html
+2
-5
_nav.html
apps/templates/_nav.html
+4
-2
_nav_user.html
apps/templates/_nav_user.html
+2
-2
0018_auto_20191202_1010.py
apps/terminal/migrations/0018_auto_20191202_1010.py
+1
-1
models.py
apps/terminal/models.py
+1
-1
base_storage_list.html
apps/terminal/templates/terminal/base_storage_list.html
+2
-3
command_list.html
apps/terminal/templates/terminal/command_list.html
+1
-1
session_list.html
apps/terminal/templates/terminal/session_list.html
+1
-1
No files found.
apps/applications/templates/applications/database_app_list.html
View file @
f9578f44
...
@@ -5,10 +5,9 @@
...
@@ -5,10 +5,9 @@
{% block table_search %}{% endblock %}
{% block table_search %}{% endblock %}
{% block table_container %}
{% block table_container %}
<div
class=
"btn-group uc pull-left m-r-5"
>
<div
class=
"btn-group uc pull-left m-r-5"
>
<button
class=
"btn btn-sm btn-primary
"
>
<button
data-toggle=
"dropdown"
class=
"btn btn-primary btn-sm dropdown-toggle
"
>
{% trans "Create DatabaseApp" %}
{% trans "Create DatabaseApp" %}
</button>
<span
class=
"caret"
></span></button>
<button
data-toggle=
"dropdown"
class=
"btn btn-primary btn-sm dropdown-toggle"
><span
class=
"caret"
></span></button>
<ul
class=
"dropdown-menu"
>
<ul
class=
"dropdown-menu"
>
{% for key, value in type_choices %}
{% for key, value in type_choices %}
<li><a
class=
""
href=
"{% url 'applications:database-app-create' %}?type={{ key }}"
>
{{ value }}
</a></li>
<li><a
class=
""
href=
"{% url 'applications:database-app-create' %}?type={{ key }}"
>
{{ value }}
</a></li>
...
...
apps/applications/templates/applications/remote_app_list.html
View file @
f9578f44
...
@@ -7,10 +7,9 @@
...
@@ -7,10 +7,9 @@
{% block table_search %}{% endblock %}
{% block table_search %}{% endblock %}
{% block table_container %}
{% block table_container %}
<div
class=
"btn-group uc pull-left m-r-5"
>
<div
class=
"btn-group uc pull-left m-r-5"
>
<button
class=
"btn btn-sm btn-primary
"
>
<button
data-toggle=
"dropdown"
class=
"btn btn-primary btn-sm dropdown-toggle
"
>
{% trans "Create RemoteApp" %}
{% trans "Create RemoteApp" %}
</button>
<span
class=
"caret"
></span></button>
<button
data-toggle=
"dropdown"
class=
"btn btn-primary btn-sm dropdown-toggle"
><span
class=
"caret"
></span></button>
<ul
class=
"dropdown-menu"
>
<ul
class=
"dropdown-menu"
>
{% for key, value in type_choices %}
{% for key, value in type_choices %}
<li><a
class=
""
href=
"{% url 'applications:remote-app-create' %}?type={{ key }}"
>
{{ value }}
</a></li>
<li><a
class=
""
href=
"{% url 'applications:remote-app-create' %}?type={{ key }}"
>
{{ value }}
</a></li>
...
...
apps/assets/const.py
View file @
f9578f44
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
#
#
from
django.utils.translation
import
ugettext_lazy
as
_
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_HELP_TEXT
=
_
(
'Cannot contain special characters: [ {} ]'
)
.
format
(
" "
.
join
([
'/'
,
'
\\
'
]))
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
=
r"[/\\]"
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
=
\
_
(
"* The contains characters that are not allowed"
)
apps/assets/forms/asset.py
View file @
f9578f44
...
@@ -7,7 +7,6 @@ from common.utils import get_logger
...
@@ -7,7 +7,6 @@ from common.utils import get_logger
from
orgs.mixins.forms
import
OrgModelForm
from
orgs.mixins.forms
import
OrgModelForm
from
..models
import
Asset
from
..models
import
Asset
from
..const
import
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_HELP_TEXT
logger
=
get_logger
(
__file__
)
logger
=
get_logger
(
__file__
)
...
@@ -82,7 +81,6 @@ class AssetCreateUpdateForm(OrgModelForm):
...
@@ -82,7 +81,6 @@ class AssetCreateUpdateForm(OrgModelForm):
'nodes'
:
_
(
"Node"
),
'nodes'
:
_
(
"Node"
),
}
}
help_texts
=
{
help_texts
=
{
'hostname'
:
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_HELP_TEXT
,
'admin_user'
:
_
(
'admin_user'
:
_
(
'root or other NOPASSWD sudo privilege user existed in asset,'
'root or other NOPASSWD sudo privilege user existed in asset,'
'If asset is windows or other set any one, more see admin user left menu'
'If asset is windows or other set any one, more see admin user left menu'
...
...
apps/assets/forms/user.py
View file @
f9578f44
...
@@ -6,7 +6,6 @@ from django.utils.translation import gettext_lazy as _
...
@@ -6,7 +6,6 @@ from django.utils.translation import gettext_lazy as _
from
common.utils
import
validate_ssh_private_key
,
ssh_pubkey_gen
,
get_logger
from
common.utils
import
validate_ssh_private_key
,
ssh_pubkey_gen
,
get_logger
from
orgs.mixins.forms
import
OrgModelForm
from
orgs.mixins.forms
import
OrgModelForm
from
..models
import
AdminUser
,
SystemUser
from
..models
import
AdminUser
,
SystemUser
from
..const
import
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_HELP_TEXT
logger
=
get_logger
(
__file__
)
logger
=
get_logger
(
__file__
)
__all__
=
[
__all__
=
[
...
@@ -99,7 +98,6 @@ class SystemUserForm(OrgModelForm, PasswordAndKeyAuthForm):
...
@@ -99,7 +98,6 @@ class SystemUserForm(OrgModelForm, PasswordAndKeyAuthForm):
}),
}),
}
}
help_texts
=
{
help_texts
=
{
'name'
:
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_HELP_TEXT
,
'auto_push'
:
_
(
'Auto push system user to asset'
),
'auto_push'
:
_
(
'Auto push system user to asset'
),
'priority'
:
_
(
'1-100, High level will be using login asset as default, '
'priority'
:
_
(
'1-100, High level will be using login asset as default, '
'if user was granted more than 2 system user'
),
'if user was granted more than 2 system user'
),
...
...
apps/assets/models/base.py
View file @
f9578f44
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
#
#
import
io
import
os
import
os
import
uuid
import
uuid
from
hashlib
import
md5
from
hashlib
import
md5
...
@@ -76,6 +77,14 @@ class AssetUser(OrgModelMixin):
...
@@ -76,6 +77,14 @@ class AssetUser(OrgModelMixin):
i
=
'-'
.
join
(
str
(
self
.
id
)
.
split
(
'-'
)[:
3
])
i
=
'-'
.
join
(
str
(
self
.
id
)
.
split
(
'-'
)[:
3
])
return
i
return
i
def
get_private_key
(
self
):
if
not
self
.
private_key_obj
:
return
None
string_io
=
io
.
StringIO
()
self
.
private_key_obj
.
write_private_key
(
string_io
)
private_key
=
string_io
.
getvalue
()
return
private_key
def
get_related_assets
(
self
):
def
get_related_assets
(
self
):
assets
=
self
.
assets
.
all
()
assets
=
self
.
assets
.
all
()
return
assets
return
assets
...
...
apps/assets/serializers/asset.py
View file @
f9578f44
...
@@ -8,10 +8,6 @@ from django.utils.translation import ugettext_lazy as _
...
@@ -8,10 +8,6 @@ from django.utils.translation import ugettext_lazy as _
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
common.serializers
import
AdaptedBulkListSerializer
from
common.serializers
import
AdaptedBulkListSerializer
from
..models
import
Asset
,
Node
,
Label
,
Platform
from
..models
import
Asset
,
Node
,
Label
,
Platform
from
..const
import
(
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
,
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
)
from
.base
import
ConnectivitySerializer
from
.base
import
ConnectivitySerializer
__all__
=
[
__all__
=
[
...
@@ -100,15 +96,6 @@ class AssetSerializer(BulkOrgResourceModelSerializer):
...
@@ -100,15 +96,6 @@ class AssetSerializer(BulkOrgResourceModelSerializer):
'org_name'
:
{
'label'
:
_
(
'Org name'
)}
'org_name'
:
{
'label'
:
_
(
'Org name'
)}
}
}
@staticmethod
def
validate_hostname
(
hostname
):
pattern
=
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
res
=
re
.
search
(
pattern
,
hostname
)
if
res
is
not
None
:
msg
=
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
raise
serializers
.
ValidationError
(
msg
)
return
hostname
@classmethod
@classmethod
def
setup_eager_loading
(
cls
,
queryset
):
def
setup_eager_loading
(
cls
,
queryset
):
""" Perform necessary eager loading of data. """
""" Perform necessary eager loading of data. """
...
...
apps/assets/serializers/system_user.py
View file @
f9578f44
...
@@ -9,10 +9,6 @@ from common.utils import ssh_pubkey_gen
...
@@ -9,10 +9,6 @@ from common.utils import ssh_pubkey_gen
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
orgs.mixins.serializers
import
BulkOrgResourceModelSerializer
from
assets.models
import
Node
from
assets.models
import
Node
from
..models
import
SystemUser
from
..models
import
SystemUser
from
..const
import
(
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
,
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
)
from
.base
import
AuthSerializer
,
AuthSerializerMixin
from
.base
import
AuthSerializer
,
AuthSerializerMixin
__all__
=
[
__all__
=
[
...
@@ -47,15 +43,6 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
...
@@ -47,15 +43,6 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
'created_by'
:
{
'read_only'
:
True
},
'created_by'
:
{
'read_only'
:
True
},
}
}
@staticmethod
def
validate_name
(
name
):
pattern
=
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
res
=
re
.
search
(
pattern
,
name
)
if
res
is
not
None
:
msg
=
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
raise
serializers
.
ValidationError
(
msg
)
return
name
def
validate_auto_push
(
self
,
value
):
def
validate_auto_push
(
self
,
value
):
login_mode
=
self
.
initial_data
.
get
(
"login_mode"
)
login_mode
=
self
.
initial_data
.
get
(
"login_mode"
)
protocol
=
self
.
initial_data
.
get
(
"protocol"
)
protocol
=
self
.
initial_data
.
get
(
"protocol"
)
...
@@ -136,6 +123,7 @@ class SystemUserAuthSerializer(AuthSerializer):
...
@@ -136,6 +123,7 @@ class SystemUserAuthSerializer(AuthSerializer):
"""
"""
系统用户认证信息
系统用户认证信息
"""
"""
private_key
=
serializers
.
SerializerMethodField
()
class
Meta
:
class
Meta
:
model
=
SystemUser
model
=
SystemUser
...
@@ -144,6 +132,10 @@ class SystemUserAuthSerializer(AuthSerializer):
...
@@ -144,6 +132,10 @@ class SystemUserAuthSerializer(AuthSerializer):
"login_mode"
,
"password"
,
"private_key"
,
"login_mode"
,
"password"
,
"private_key"
,
]
]
@staticmethod
def
get_private_key
(
obj
):
return
obj
.
get_private_key
()
class
SystemUserSimpleSerializer
(
serializers
.
ModelSerializer
):
class
SystemUserSimpleSerializer
(
serializers
.
ModelSerializer
):
"""
"""
...
...
apps/locale/zh/LC_MESSAGES/django.mo
View file @
f9578f44
No preview for this file type
apps/locale/zh/LC_MESSAGES/django.po
View file @
f9578f44
...
@@ -8,7 +8,7 @@ msgid ""
...
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
msgstr ""
"Project-Id-Version: Jumpserver 0.3.3\n"
"Project-Id-Version: Jumpserver 0.3.3\n"
"Report-Msgid-Bugs-To: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 20
19-12-30 12:26
+0800\n"
"POT-Creation-Date: 20
20-01-06 11:35
+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Last-Translator: ibuler <ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
...
@@ -23,12 +23,12 @@ msgstr "自定义"
...
@@ -23,12 +23,12 @@ msgstr "自定义"
#: applications/forms/remote_app.py:44 applications/models/remote_app.py:23
#: applications/forms/remote_app.py:44 applications/models/remote_app.py:23
#: applications/templates/applications/remote_app_detail.html:52
#: applications/templates/applications/remote_app_detail.html:52
#: applications/templates/applications/remote_app_list.html:2
8
#: applications/templates/applications/remote_app_list.html:2
7
#: applications/templates/applications/user_remote_app_list.html:18
#: applications/templates/applications/user_remote_app_list.html:18
#: assets/forms/domain.py:15 assets/forms/label.py:13
#: assets/forms/domain.py:15 assets/forms/label.py:13
#: assets/models/asset.py:342 assets/models/authbook.py:24
#: assets/models/asset.py:342 assets/models/authbook.py:24
#: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:32
#: assets/models/gathered_user.py:14 assets/serializers/admin_user.py:32
#: assets/serializers/asset_user.py:82 assets/serializers/system_user.py:4
5
#: assets/serializers/asset_user.py:82 assets/serializers/system_user.py:4
1
#: assets/templates/assets/admin_user_list.html:23
#: assets/templates/assets/admin_user_list.html:23
#: assets/templates/assets/asset_list.html:170
#: assets/templates/assets/asset_list.html:170
#: assets/templates/assets/domain_detail.html:55
#: assets/templates/assets/domain_detail.html:55
...
@@ -103,13 +103,13 @@ msgstr "运行参数"
...
@@ -103,13 +103,13 @@ msgstr "运行参数"
#: applications/models/database_app.py:18 applications/models/remote_app.py:21
#: applications/models/database_app.py:18 applications/models/remote_app.py:21
#: applications/templates/applications/database_app_detail.html:48
#: applications/templates/applications/database_app_detail.html:48
#: applications/templates/applications/database_app_list.html:2
4
#: applications/templates/applications/database_app_list.html:2
3
#: applications/templates/applications/remote_app_detail.html:48
#: applications/templates/applications/remote_app_detail.html:48
#: applications/templates/applications/remote_app_list.html:2
6
#: applications/templates/applications/remote_app_list.html:2
5
#: applications/templates/applications/user_database_app_list.html:16
#: applications/templates/applications/user_database_app_list.html:16
#: applications/templates/applications/user_remote_app_list.html:16
#: applications/templates/applications/user_remote_app_list.html:16
#: assets/forms/asset.py:2
1 assets/forms/domain.py:77 assets/forms/user.py:75
#: assets/forms/asset.py:2
0 assets/forms/domain.py:77 assets/forms/user.py:74
#: assets/forms/user.py:9
5
assets/models/asset.py:144 assets/models/base.py:27
#: assets/forms/user.py:9
4
assets/models/asset.py:144 assets/models/base.py:27
#: assets/models/cluster.py:18 assets/models/cmd_filter.py:21
#: assets/models/cluster.py:18 assets/models/cmd_filter.py:21
#: assets/models/domain.py:20 assets/models/group.py:20
#: assets/models/domain.py:20 assets/models/group.py:20
#: assets/models/label.py:18 assets/templates/assets/_node_detail_modal.html:27
#: assets/models/label.py:18 assets/templates/assets/_node_detail_modal.html:27
...
@@ -141,7 +141,7 @@ msgstr "运行参数"
...
@@ -141,7 +141,7 @@ msgstr "运行参数"
#: settings/models.py:26
#: settings/models.py:26
#: settings/templates/settings/_ldap_list_users_modal.html:32
#: settings/templates/settings/_ldap_list_users_modal.html:32
#: terminal/models.py:26 terminal/models.py:282 terminal/models.py:314
#: terminal/models.py:26 terminal/models.py:282 terminal/models.py:314
#: terminal/models.py:351 terminal/templates/terminal/base_storage_list.html:3
2
#: terminal/models.py:351 terminal/templates/terminal/base_storage_list.html:3
1
#: terminal/templates/terminal/terminal_detail.html:43
#: terminal/templates/terminal/terminal_detail.html:43
#: terminal/templates/terminal/terminal_list.html:30 users/forms/profile.py:20
#: terminal/templates/terminal/terminal_list.html:30 users/forms/profile.py:20
#: users/models/group.py:15 users/models/user.py:438
#: users/models/group.py:15 users/models/user.py:438
...
@@ -176,14 +176,14 @@ msgstr "名称"
...
@@ -176,14 +176,14 @@ msgstr "名称"
#: applications/models/database_app.py:22
#: applications/models/database_app.py:22
#: applications/templates/applications/database_app_detail.html:52
#: applications/templates/applications/database_app_detail.html:52
#: applications/templates/applications/database_app_list.html:2
5
#: applications/templates/applications/database_app_list.html:2
4
#: applications/templates/applications/user_database_app_list.html:17
#: applications/templates/applications/user_database_app_list.html:17
#: assets/models/cmd_filter.py:51
#: assets/models/cmd_filter.py:51
#: assets/templates/assets/cmd_filter_rule_list.html:53
#: assets/templates/assets/cmd_filter_rule_list.html:53
#: audits/templates/audits/login_log_list.html:58
#: audits/templates/audits/login_log_list.html:58
#: perms/templates/perms/remote_app_permission_remote_app.html:50
#: perms/templates/perms/remote_app_permission_remote_app.html:50
#: terminal/models.py:316 terminal/models.py:353
#: terminal/models.py:316 terminal/models.py:353
#: terminal/templates/terminal/base_storage_list.html:3
3
#: terminal/templates/terminal/base_storage_list.html:3
2
#: tickets/models/ticket.py:43 tickets/templates/tickets/ticket_detail.html:33
#: tickets/models/ticket.py:43 tickets/templates/tickets/ticket_detail.html:33
#: tickets/templates/tickets/ticket_list.html:35
#: tickets/templates/tickets/ticket_list.html:35
#: users/templates/users/user_granted_database_app.html:35
#: users/templates/users/user_granted_database_app.html:35
...
@@ -192,7 +192,7 @@ msgstr "类型"
...
@@ -192,7 +192,7 @@ msgstr "类型"
#: applications/models/database_app.py:25
#: applications/models/database_app.py:25
#: applications/templates/applications/database_app_detail.html:56
#: applications/templates/applications/database_app_detail.html:56
#: applications/templates/applications/database_app_list.html:2
6
#: applications/templates/applications/database_app_list.html:2
5
#: applications/templates/applications/user_database_app_list.html:18
#: applications/templates/applications/user_database_app_list.html:18
#: ops/models/adhoc.py:185 templates/index.html:91
#: ops/models/adhoc.py:185 templates/index.html:91
#: users/templates/users/user_granted_database_app.html:36
#: users/templates/users/user_granted_database_app.html:36
...
@@ -201,8 +201,8 @@ msgstr "主机"
...
@@ -201,8 +201,8 @@ msgstr "主机"
#: applications/models/database_app.py:27
#: applications/models/database_app.py:27
#: applications/templates/applications/database_app_detail.html:60
#: applications/templates/applications/database_app_detail.html:60
#: applications/templates/applications/database_app_list.html:2
7
#: applications/templates/applications/database_app_list.html:2
6
#: assets/forms/asset.py:2
5
assets/models/asset.py:190
#: assets/forms/asset.py:2
4
assets/models/asset.py:190
#: assets/models/domain.py:50
#: assets/models/domain.py:50
#: assets/templates/assets/domain_gateway_list.html:64
#: assets/templates/assets/domain_gateway_list.html:64
msgid "Port"
msgid "Port"
...
@@ -210,7 +210,7 @@ msgstr "端口"
...
@@ -210,7 +210,7 @@ msgstr "端口"
#: applications/models/database_app.py:29
#: applications/models/database_app.py:29
#: applications/templates/applications/database_app_detail.html:64
#: applications/templates/applications/database_app_detail.html:64
#: applications/templates/applications/database_app_list.html:2
8
#: applications/templates/applications/database_app_list.html:2
7
#: applications/templates/applications/user_database_app_list.html:19
#: applications/templates/applications/user_database_app_list.html:19
#: users/templates/users/user_granted_database_app.html:37
#: users/templates/users/user_granted_database_app.html:37
msgid "Database"
msgid "Database"
...
@@ -220,9 +220,9 @@ msgstr "数据库"
...
@@ -220,9 +220,9 @@ msgstr "数据库"
# msgstr "创建日期"
# msgstr "创建日期"
#: applications/models/database_app.py:33 applications/models/remote_app.py:45
#: applications/models/database_app.py:33 applications/models/remote_app.py:45
#: applications/templates/applications/database_app_detail.html:76
#: applications/templates/applications/database_app_detail.html:76
#: applications/templates/applications/database_app_list.html:2
9
#: applications/templates/applications/database_app_list.html:2
8
#: applications/templates/applications/remote_app_detail.html:72
#: applications/templates/applications/remote_app_detail.html:72
#: applications/templates/applications/remote_app_list.html:2
9
#: applications/templates/applications/remote_app_list.html:2
8
#: applications/templates/applications/user_database_app_list.html:20
#: applications/templates/applications/user_database_app_list.html:20
#: applications/templates/applications/user_remote_app_list.html:19
#: applications/templates/applications/user_remote_app_list.html:19
#: assets/models/asset.py:149 assets/models/asset.py:225
#: assets/models/asset.py:149 assets/models/asset.py:225
...
@@ -248,7 +248,7 @@ msgstr "数据库"
...
@@ -248,7 +248,7 @@ msgstr "数据库"
#: perms/templates/perms/database_app_permission_detail.html:93
#: perms/templates/perms/database_app_permission_detail.html:93
#: perms/templates/perms/remote_app_permission_detail.html:89
#: perms/templates/perms/remote_app_permission_detail.html:89
#: settings/models.py:31 terminal/models.py:36 terminal/models.py:321
#: settings/models.py:31 terminal/models.py:36 terminal/models.py:321
#: terminal/models.py:358 terminal/templates/terminal/base_storage_list.html:3
4
#: terminal/models.py:358 terminal/templates/terminal/base_storage_list.html:3
3
#: terminal/templates/terminal/terminal_detail.html:63
#: terminal/templates/terminal/terminal_detail.html:63
#: tickets/templates/tickets/ticket_detail.html:104 users/models/group.py:16
#: tickets/templates/tickets/ticket_detail.html:104 users/models/group.py:16
#: users/models/user.py:471 users/templates/users/user_detail.html:115
#: users/models/user.py:471 users/templates/users/user_detail.html:115
...
@@ -280,7 +280,7 @@ msgstr "备注"
...
@@ -280,7 +280,7 @@ msgstr "备注"
#: perms/templates/perms/database_app_permission_detail.html:22
#: perms/templates/perms/database_app_permission_detail.html:22
#: perms/templates/perms/database_app_permission_list.html:17
#: perms/templates/perms/database_app_permission_list.html:17
#: perms/templates/perms/database_app_permission_user.html:23
#: perms/templates/perms/database_app_permission_user.html:23
#: templates/_nav.html:6
4 templates/_nav.html:83 templates/_nav_user.html:21
#: templates/_nav.html:6
6 templates/_nav.html:86 templates/_nav_user.html:22
#: users/templates/users/user_database_app_permission.html:39
#: users/templates/users/user_database_app_permission.html:39
#: users/templates/users/user_database_app_permission.html:64
#: users/templates/users/user_database_app_permission.html:64
msgid "DatabaseApp"
msgid "DatabaseApp"
...
@@ -288,7 +288,7 @@ msgstr "数据库应用"
...
@@ -288,7 +288,7 @@ msgstr "数据库应用"
#: applications/models/remote_app.py:28
#: applications/models/remote_app.py:28
#: applications/templates/applications/remote_app_detail.html:56
#: applications/templates/applications/remote_app_detail.html:56
#: applications/templates/applications/remote_app_list.html:2
7
#: applications/templates/applications/remote_app_list.html:2
6
#: applications/templates/applications/user_remote_app_list.html:17
#: applications/templates/applications/user_remote_app_list.html:17
#: users/templates/users/user_granted_remote_app.html:35
#: users/templates/users/user_granted_remote_app.html:35
msgid "App type"
msgid "App type"
...
@@ -364,7 +364,7 @@ msgstr "创建日期"
...
@@ -364,7 +364,7 @@ msgstr "创建日期"
#: perms/templates/perms/remote_app_permission_list.html:17
#: perms/templates/perms/remote_app_permission_list.html:17
#: perms/templates/perms/remote_app_permission_remote_app.html:22
#: perms/templates/perms/remote_app_permission_remote_app.html:22
#: perms/templates/perms/remote_app_permission_user.html:22
#: perms/templates/perms/remote_app_permission_user.html:22
#: templates/_nav.html:6
3 templates/_nav.html:80
templates/_nav_user.html:16
#: templates/_nav.html:6
4 templates/_nav.html:82
templates/_nav_user.html:16
#: users/templates/users/user_remote_app_permission.html:39
#: users/templates/users/user_remote_app_permission.html:39
#: users/templates/users/user_remote_app_permission.html:64
#: users/templates/users/user_remote_app_permission.html:64
msgid "RemoteApp"
msgid "RemoteApp"
...
@@ -484,9 +484,9 @@ msgid "Detail"
...
@@ -484,9 +484,9 @@ msgid "Detail"
msgstr "详情"
msgstr "详情"
#: applications/templates/applications/database_app_detail.html:16
#: applications/templates/applications/database_app_detail.html:16
#: applications/templates/applications/database_app_list.html:5
4
#: applications/templates/applications/database_app_list.html:5
3
#: applications/templates/applications/remote_app_detail.html:16
#: applications/templates/applications/remote_app_detail.html:16
#: applications/templates/applications/remote_app_list.html:
60
#: applications/templates/applications/remote_app_list.html:
59
#: assets/templates/assets/_asset_user_list.html:75
#: assets/templates/assets/_asset_user_list.html:75
#: assets/templates/assets/admin_user_detail.html:19
#: assets/templates/assets/admin_user_detail.html:19
#: assets/templates/assets/admin_user_list.html:46
#: assets/templates/assets/admin_user_list.html:46
...
@@ -511,8 +511,8 @@ msgstr "详情"
...
@@ -511,8 +511,8 @@ msgstr "详情"
#: perms/templates/perms/remote_app_permission_detail.html:25
#: perms/templates/perms/remote_app_permission_detail.html:25
#: perms/templates/perms/remote_app_permission_list.html:64
#: perms/templates/perms/remote_app_permission_list.html:64
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
#: templates/_csv_import_export.html:18 templates/_csv_update_modal.html:6
#: terminal/templates/terminal/base_storage_list.html:6
4
#: terminal/templates/terminal/base_storage_list.html:6
3
#: terminal/templates/terminal/base_storage_list.html:7
1
#: terminal/templates/terminal/base_storage_list.html:7
0
#: terminal/templates/terminal/terminal_detail.html:16
#: terminal/templates/terminal/terminal_detail.html:16
#: terminal/templates/terminal/terminal_list.html:74
#: terminal/templates/terminal/terminal_list.html:74
#: users/templates/users/user_asset_permission.html:127
#: users/templates/users/user_asset_permission.html:127
...
@@ -539,9 +539,9 @@ msgid "Update"
...
@@ -539,9 +539,9 @@ msgid "Update"
msgstr "更新"
msgstr "更新"
#: applications/templates/applications/database_app_detail.html:20
#: applications/templates/applications/database_app_detail.html:20
#: applications/templates/applications/database_app_list.html:5
5
#: applications/templates/applications/database_app_list.html:5
4
#: applications/templates/applications/remote_app_detail.html:20
#: applications/templates/applications/remote_app_detail.html:20
#: applications/templates/applications/remote_app_list.html:6
1
#: applications/templates/applications/remote_app_list.html:6
0
#: assets/templates/assets/admin_user_detail.html:23
#: assets/templates/assets/admin_user_detail.html:23
#: assets/templates/assets/admin_user_list.html:47
#: assets/templates/assets/admin_user_list.html:47
#: assets/templates/assets/asset_detail.html:28
#: assets/templates/assets/asset_detail.html:28
...
@@ -565,8 +565,8 @@ msgstr "更新"
...
@@ -565,8 +565,8 @@ msgstr "更新"
#: perms/templates/perms/database_app_permission_list.html:65
#: perms/templates/perms/database_app_permission_list.html:65
#: perms/templates/perms/remote_app_permission_detail.html:29
#: perms/templates/perms/remote_app_permission_detail.html:29
#: perms/templates/perms/remote_app_permission_list.html:65
#: perms/templates/perms/remote_app_permission_list.html:65
#: terminal/templates/terminal/base_storage_list.html:6
1
#: terminal/templates/terminal/base_storage_list.html:6
0
#: terminal/templates/terminal/base_storage_list.html:6
8
#: terminal/templates/terminal/base_storage_list.html:6
7
#: terminal/templates/terminal/terminal_list.html:76
#: terminal/templates/terminal/terminal_list.html:76
#: users/templates/users/user_asset_permission.html:128
#: users/templates/users/user_asset_permission.html:128
#: users/templates/users/user_database_app_permission.html:111
#: users/templates/users/user_database_app_permission.html:111
...
@@ -593,8 +593,8 @@ msgstr "删除"
...
@@ -593,8 +593,8 @@ msgstr "删除"
msgid "Create DatabaseApp"
msgid "Create DatabaseApp"
msgstr "创建数据库应用"
msgstr "创建数据库应用"
#: applications/templates/applications/database_app_list.html:
30
#: applications/templates/applications/database_app_list.html:
29
#: applications/templates/applications/remote_app_list.html:
30
#: applications/templates/applications/remote_app_list.html:
29
#: applications/templates/applications/user_database_app_list.html:21
#: applications/templates/applications/user_database_app_list.html:21
#: applications/templates/applications/user_remote_app_list.html:20
#: applications/templates/applications/user_remote_app_list.html:20
#: assets/models/cmd_filter.py:55
#: assets/models/cmd_filter.py:55
...
@@ -623,7 +623,7 @@ msgstr "创建数据库应用"
...
@@ -623,7 +623,7 @@ msgstr "创建数据库应用"
#: perms/templates/perms/database_app_permission_list.html:20
#: perms/templates/perms/database_app_permission_list.html:20
#: perms/templates/perms/database_app_permission_user.html:54
#: perms/templates/perms/database_app_permission_user.html:54
#: perms/templates/perms/remote_app_permission_list.html:20
#: perms/templates/perms/remote_app_permission_list.html:20
#: terminal/templates/terminal/base_storage_list.html:3
5
#: terminal/templates/terminal/base_storage_list.html:3
4
#: terminal/templates/terminal/session_list.html:34
#: terminal/templates/terminal/session_list.html:34
#: terminal/templates/terminal/terminal_list.html:37
#: terminal/templates/terminal/terminal_list.html:37
#: tickets/templates/tickets/ticket_list.html:108
#: tickets/templates/tickets/ticket_list.html:108
...
@@ -724,15 +724,7 @@ msgstr "更新节点资产硬件信息: {}"
...
@@ -724,15 +724,7 @@ msgstr "更新节点资产硬件信息: {}"
msgid "Test if the assets under the node are connectable: {}"
msgid "Test if the assets under the node are connectable: {}"
msgstr "测试节点下资产是否可连接: {}"
msgstr "测试节点下资产是否可连接: {}"
#: assets/const.py:8
#: assets/forms/asset.py:65 assets/models/asset.py:194
msgid "Cannot contain special characters: [ {} ]"
msgstr "不能包含特殊字符:[ {} ]"
#: assets/const.py:14
msgid "* The contains characters that are not allowed"
msgstr "* 包含不被允许的字符"
#: assets/forms/asset.py:66 assets/models/asset.py:194
#: assets/models/user.py:111 assets/templates/assets/asset_detail.html:186
#: assets/models/user.py:111 assets/templates/assets/asset_detail.html:186
#: assets/templates/assets/asset_detail.html:194
#: assets/templates/assets/asset_detail.html:194
#: assets/templates/assets/system_user_assets.html:87
#: assets/templates/assets/system_user_assets.html:87
...
@@ -743,7 +735,7 @@ msgstr "* 包含不被允许的字符"
...
@@ -743,7 +735,7 @@ msgstr "* 包含不被允许的字符"
msgid "Nodes"
msgid "Nodes"
msgstr "节点"
msgstr "节点"
#: assets/forms/asset.py:6
9
assets/models/asset.py:198
#: assets/forms/asset.py:6
8
assets/models/asset.py:198
#: assets/models/cluster.py:19 assets/models/user.py:67
#: assets/models/cluster.py:19 assets/models/user.py:67
#: assets/templates/assets/admin_user_list.html:62
#: assets/templates/assets/admin_user_list.html:62
#: assets/templates/assets/asset_detail.html:72 templates/_nav.html:44
#: assets/templates/assets/asset_detail.html:72 templates/_nav.html:44
...
@@ -753,7 +745,7 @@ msgstr "节点"
...
@@ -753,7 +745,7 @@ msgstr "节点"
msgid "Admin user"
msgid "Admin user"
msgstr "管理用户"
msgstr "管理用户"
#: assets/forms/asset.py:7
2 assets/forms/asset.py:115
#: assets/forms/asset.py:7
1 assets/forms/asset.py:113
#: assets/templates/assets/asset_create.html:48
#: assets/templates/assets/asset_create.html:48
#: assets/templates/assets/asset_create.html:50
#: assets/templates/assets/asset_create.html:50
#: assets/templates/assets/asset_list.html:13
#: assets/templates/assets/asset_list.html:13
...
@@ -761,7 +753,7 @@ msgstr "管理用户"
...
@@ -761,7 +753,7 @@ msgstr "管理用户"
msgid "Label"
msgid "Label"
msgstr "标签"
msgstr "标签"
#: assets/forms/asset.py:7
5
assets/models/asset.py:193
#: assets/forms/asset.py:7
4
assets/models/asset.py:193
#: assets/models/domain.py:26 assets/models/domain.py:52
#: assets/models/domain.py:26 assets/models/domain.py:52
#: assets/templates/assets/asset_detail.html:76
#: assets/templates/assets/asset_detail.html:76
#: assets/templates/assets/user_asset_list.html:80
#: assets/templates/assets/user_asset_list.html:80
...
@@ -769,15 +761,15 @@ msgstr "标签"
...
@@ -769,15 +761,15 @@ msgstr "标签"
msgid "Domain"
msgid "Domain"
msgstr "网域"
msgstr "网域"
#: assets/forms/asset.py:7
8
assets/models/asset.py:168
#: assets/forms/asset.py:7
7
assets/models/asset.py:168
#: assets/models/asset.py:192 assets/serializers/asset.py:
70
#: assets/models/asset.py:192 assets/serializers/asset.py:
66
#: assets/templates/assets/asset_detail.html:100
#: assets/templates/assets/asset_detail.html:100
#: assets/templates/assets/user_asset_list.html:78
#: assets/templates/assets/user_asset_list.html:78
msgid "Platform"
msgid "Platform"
msgstr "系统平台"
msgstr "系统平台"
#: assets/forms/asset.py:8
2 assets/forms/asset.py:118
assets/models/node.py:462
#: assets/forms/asset.py:8
1 assets/forms/asset.py:116
assets/models/node.py:462
#: assets/serializers/system_user.py:4
4
#: assets/serializers/system_user.py:4
0
#: assets/templates/assets/asset_create.html:42
#: assets/templates/assets/asset_create.html:42
#: perms/forms/asset_permission.py:92 perms/forms/asset_permission.py:99
#: perms/forms/asset_permission.py:92 perms/forms/asset_permission.py:99
#: perms/templates/perms/asset_permission_list.html:36
#: perms/templates/perms/asset_permission_list.html:36
...
@@ -795,7 +787,7 @@ msgstr "系统平台"
...
@@ -795,7 +787,7 @@ msgstr "系统平台"
msgid "Node"
msgid "Node"
msgstr "节点"
msgstr "节点"
#: assets/forms/asset.py:8
7
#: assets/forms/asset.py:8
5
msgid ""
msgid ""
"root or other NOPASSWD sudo privilege user existed in asset,If asset is "
"root or other NOPASSWD sudo privilege user existed in asset,If asset is "
"windows or other set any one, more see admin user left menu"
"windows or other set any one, more see admin user left menu"
...
@@ -803,16 +795,16 @@ msgstr ""
...
@@ -803,16 +795,16 @@ msgstr ""
"root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一"
"root或其他拥有NOPASSWD: ALL权限的用户, 如果是windows或其它硬件可以随意设置一"
"个, 更多信息查看左侧 `管理用户` 菜单"
"个, 更多信息查看左侧 `管理用户` 菜单"
#: assets/forms/asset.py:
90
#: assets/forms/asset.py:
88
msgid "Windows 2016 RDP protocol is different, If is window 2016, set it"
msgid "Windows 2016 RDP protocol is different, If is window 2016, set it"
msgstr "Windows 2016的RDP协议与之前不同,如果是请设置"
msgstr "Windows 2016的RDP协议与之前不同,如果是请设置"
#: assets/forms/asset.py:
91
#: assets/forms/asset.py:
89
msgid ""
msgid ""
"If your have some network not connect with each other, you can set domain"
"If your have some network not connect with each other, you can set domain"
msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,使用网域网关跳转登录"
msgstr "如果有多个的互相隔离的网络,设置资产属于的网域,使用网域网关跳转登录"
#: assets/forms/asset.py:9
8 assets/forms/asset.py:102
assets/forms/domain.py:17
#: assets/forms/asset.py:9
6 assets/forms/asset.py:100
assets/forms/domain.py:17
#: assets/forms/label.py:15
#: assets/forms/label.py:15
#: perms/templates/perms/asset_permission_asset.html:74
#: perms/templates/perms/asset_permission_asset.html:74
#: xpack/plugins/change_auth_plan/forms.py:64
#: xpack/plugins/change_auth_plan/forms.py:64
...
@@ -832,7 +824,7 @@ msgstr "不能包含特殊字符"
...
@@ -832,7 +824,7 @@ msgstr "不能包含特殊字符"
msgid "SSH gateway support proxy SSH,RDP,VNC"
msgid "SSH gateway support proxy SSH,RDP,VNC"
msgstr "SSH网关,支持代理SSH,RDP和VNC"
msgstr "SSH网关,支持代理SSH,RDP和VNC"
#: assets/forms/domain.py:78 assets/forms/user.py:7
6 assets/forms/user.py:96
#: assets/forms/domain.py:78 assets/forms/user.py:7
5 assets/forms/user.py:95
#: assets/models/base.py:28 assets/models/gathered_user.py:15
#: assets/models/base.py:28 assets/models/gathered_user.py:15
#: assets/templates/assets/_asset_user_auth_update_modal.html:15
#: assets/templates/assets/_asset_user_auth_update_modal.html:15
#: assets/templates/assets/_asset_user_auth_view_modal.html:21
#: assets/templates/assets/_asset_user_auth_view_modal.html:21
...
@@ -892,11 +884,11 @@ msgstr ""
...
@@ -892,11 +884,11 @@ msgstr ""
msgid "Base platform"
msgid "Base platform"
msgstr "基础平台"
msgstr "基础平台"
#: assets/forms/user.py:2
6
#: assets/forms/user.py:2
5
msgid "Password or private key passphrase"
msgid "Password or private key passphrase"
msgstr "密码或密钥密码"
msgstr "密码或密钥密码"
#: assets/forms/user.py:2
7
assets/models/base.py:29
#: assets/forms/user.py:2
6
assets/models/base.py:29
#: assets/serializers/asset_user.py:63
#: assets/serializers/asset_user.py:63
#: assets/templates/assets/_asset_user_auth_update_modal.html:21
#: assets/templates/assets/_asset_user_auth_update_modal.html:21
#: assets/templates/assets/_asset_user_auth_view_modal.html:27
#: assets/templates/assets/_asset_user_auth_view_modal.html:27
...
@@ -914,31 +906,31 @@ msgstr "密码或密钥密码"
...
@@ -914,31 +906,31 @@ msgstr "密码或密钥密码"
msgid "Password"
msgid "Password"
msgstr "密码"
msgstr "密码"
#: assets/forms/user.py:
30
assets/serializers/asset_user.py:71
#: assets/forms/user.py:
29
assets/serializers/asset_user.py:71
#: assets/templates/assets/_asset_user_auth_update_modal.html:27
#: assets/templates/assets/_asset_user_auth_update_modal.html:27
#: users/models/user.py:465
#: users/models/user.py:465
msgid "Private key"
msgid "Private key"
msgstr "ssh私钥"
msgstr "ssh私钥"
#: assets/forms/user.py:4
2
#: assets/forms/user.py:4
1
msgid "Invalid private key, Only support RSA/DSA format key"
msgid "Invalid private key, Only support RSA/DSA format key"
msgstr "不合法的密钥,仅支持RSA/DSA格式的密钥"
msgstr "不合法的密钥,仅支持RSA/DSA格式的密钥"
#: assets/forms/user.py:5
3
#: assets/forms/user.py:5
2
msgid "Password and private key file must be input one"
msgid "Password and private key file must be input one"
msgstr "密码和私钥, 必须输入一个"
msgstr "密码和私钥, 必须输入一个"
#: assets/forms/user.py:9
8
assets/models/cmd_filter.py:32
#: assets/forms/user.py:9
7
assets/models/cmd_filter.py:32
#: assets/models/user.py:119 assets/templates/assets/_system_user.html:62
#: assets/models/user.py:119 assets/templates/assets/_system_user.html:62
#: assets/templates/assets/system_user_detail.html:164
#: assets/templates/assets/system_user_detail.html:164
msgid "Command filter"
msgid "Command filter"
msgstr "命令过滤器"
msgstr "命令过滤器"
#: assets/forms/user.py:10
3
#: assets/forms/user.py:10
1
msgid "Auto push system user to asset"
msgid "Auto push system user to asset"
msgstr "自动推送系统用户到资产"
msgstr "自动推送系统用户到资产"
#: assets/forms/user.py:10
4
#: assets/forms/user.py:10
2
msgid ""
msgid ""
"1-100, High level will be using login asset as default, if user was granted "
"1-100, High level will be using login asset as default, if user was granted "
"more than 2 system user"
"more than 2 system user"
...
@@ -946,13 +938,13 @@ msgstr ""
...
@@ -946,13 +938,13 @@ msgstr ""
"1-100, 1最低优先级,100最高优先级。授权多个用户时,高优先级的系统用户将会作为"
"1-100, 1最低优先级,100最高优先级。授权多个用户时,高优先级的系统用户将会作为"
"默认登录用户"
"默认登录用户"
#: assets/forms/user.py:10
6
#: assets/forms/user.py:10
4
msgid ""
msgid ""
"If you choose manual login mode, you do not need to fill in the username and "
"If you choose manual login mode, you do not need to fill in the username and "
"password."
"password."
msgstr "如果选择手动登录模式,用户名和密码可以不填写"
msgstr "如果选择手动登录模式,用户名和密码可以不填写"
#: assets/forms/user.py:10
8
#: assets/forms/user.py:10
6
msgid "Use comma split multi command, ex: /bin/whoami,/bin/ifconfig"
msgid "Use comma split multi command, ex: /bin/whoami,/bin/ifconfig"
msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
msgstr "使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig"
...
@@ -1019,7 +1011,7 @@ msgstr "主机名"
...
@@ -1019,7 +1011,7 @@ msgstr "主机名"
msgid "Protocol"
msgid "Protocol"
msgstr "协议"
msgstr "协议"
#: assets/models/asset.py:191 assets/serializers/asset.py:
72
#: assets/models/asset.py:191 assets/serializers/asset.py:
68
#: assets/templates/assets/asset_create.html:24
#: assets/templates/assets/asset_create.html:24
#: assets/templates/assets/user_asset_list.html:77
#: assets/templates/assets/user_asset_list.html:77
#: perms/serializers/user_permission.py:59
#: perms/serializers/user_permission.py:59
...
@@ -1058,7 +1050,6 @@ msgid "CPU model"
...
@@ -1058,7 +1050,6 @@ msgid "CPU model"
msgstr "CPU型号"
msgstr "CPU型号"
#: assets/models/asset.py:210
#: assets/models/asset.py:210
#: xpack/plugins/license/templates/license/license_detail.html:71
msgid "CPU count"
msgid "CPU count"
msgstr "CPU数量"
msgstr "CPU数量"
...
@@ -1314,7 +1305,7 @@ msgstr "默认资产组"
...
@@ -1314,7 +1305,7 @@ msgstr "默认资产组"
#: users/templates/users/user_group_list.html:15
#: users/templates/users/user_group_list.html:15
#: users/templates/users/user_remote_app_permission.html:37
#: users/templates/users/user_remote_app_permission.html:37
#: users/templates/users/user_remote_app_permission.html:58
#: users/templates/users/user_remote_app_permission.html:58
#: users/views/profile.py:
68 xpack/plugins/orgs/forms.py:28
#: users/views/profile.py:
70 xpack/plugins/orgs/forms.py:27
#: xpack/plugins/orgs/templates/orgs/org_detail.html:108
#: xpack/plugins/orgs/templates/orgs/org_detail.html:108
#: xpack/plugins/orgs/templates/orgs/org_list.html:15
#: xpack/plugins/orgs/templates/orgs/org_list.html:15
msgid "User"
msgid "User"
...
@@ -1449,29 +1440,28 @@ msgid "Reachable"
...
@@ -1449,29 +1440,28 @@ msgid "Reachable"
msgstr "可连接"
msgstr "可连接"
#: assets/models/utils.py:45 assets/tasks/const.py:86 audits/utils.py:30
#: assets/models/utils.py:45 assets/tasks/const.py:86 audits/utils.py:30
#: xpack/plugins/license/models.py:78
msgid "Unknown"
msgid "Unknown"
msgstr "未知"
msgstr "未知"
#: assets/serializers/asset.py:2
7
#: assets/serializers/asset.py:2
3
msgid "Protocol format should {}/{}"
msgid "Protocol format should {}/{}"
msgstr "协议格式 {}/{}"
msgstr "协议格式 {}/{}"
#: assets/serializers/asset.py:4
4
#: assets/serializers/asset.py:4
0
msgid "Protocol duplicate: {}"
msgid "Protocol duplicate: {}"
msgstr "协议重复: {}"
msgstr "协议重复: {}"
#: assets/serializers/asset.py:
73 assets/serializers/asset.py:162
#: assets/serializers/asset.py:
69 assets/serializers/asset.py:149
#: assets/serializers/asset_user.py:29
#: assets/serializers/asset_user.py:29
#: assets/templates/assets/_asset_user_list.html:23
#: assets/templates/assets/_asset_user_list.html:23
msgid "Connectivity"
msgid "Connectivity"
msgstr "连接"
msgstr "连接"
#: assets/serializers/asset.py:9
9
#: assets/serializers/asset.py:9
5
msgid "Hardware info"
msgid "Hardware info"
msgstr "硬件信息"
msgstr "硬件信息"
#: assets/serializers/asset.py:
100
orgs/mixins/serializers.py:27
#: assets/serializers/asset.py:
96
orgs/mixins/serializers.py:27
msgid "Org name"
msgid "Org name"
msgstr "组织名称"
msgstr "组织名称"
...
@@ -1505,15 +1495,15 @@ msgstr "值"
...
@@ -1505,15 +1495,15 @@ msgstr "值"
msgid "The same level node name cannot be the same"
msgid "The same level node name cannot be the same"
msgstr "同级别节点名字不能重复"
msgstr "同级别节点名字不能重复"
#: assets/serializers/system_user.py:4
6
#: assets/serializers/system_user.py:4
2
msgid "Login mode display"
msgid "Login mode display"
msgstr "登录模式显示"
msgstr "登录模式显示"
#: assets/serializers/system_user.py:
90
#: assets/serializers/system_user.py:
77
msgid "* Automatic login mode must fill in the username."
msgid "* Automatic login mode must fill in the username."
msgstr "自动登录模式,必须填写用户名"
msgstr "自动登录模式,必须填写用户名"
#: assets/serializers/system_user.py:
101
#: assets/serializers/system_user.py:
88
msgid "Password or private key required"
msgid "Password or private key required"
msgstr "密码或密钥密码需要一个"
msgstr "密码或密钥密码需要一个"
...
@@ -1714,7 +1704,7 @@ msgstr "查看"
...
@@ -1714,7 +1704,7 @@ msgstr "查看"
#: assets/templates/assets/asset_detail.html:174
#: assets/templates/assets/asset_detail.html:174
#: assets/templates/assets/system_user_assets.html:67
#: assets/templates/assets/system_user_assets.html:67
#: assets/templates/assets/system_user_detail.html:149
#: assets/templates/assets/system_user_detail.html:149
#: terminal/templates/terminal/base_storage_list.html:7
3
#: terminal/templates/terminal/base_storage_list.html:7
2
msgid "Test"
msgid "Test"
msgstr "测试"
msgstr "测试"
...
@@ -1922,7 +1912,7 @@ msgstr "资产用户"
...
@@ -1922,7 +1912,7 @@ msgstr "资产用户"
#: users/templates/users/user_profile.html:150
#: users/templates/users/user_profile.html:150
#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:126
#: xpack/plugins/change_auth_plan/templates/change_auth_plan/plan_detail.html:126
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:129
#: xpack/plugins/cloud/templates/cloud/sync_instance_task_detail.html:129
#: xpack/plugins/license/templates/license/license_detail.html:
93
#: xpack/plugins/license/templates/license/license_detail.html:
80
msgid "Quick modify"
msgid "Quick modify"
msgstr "快速修改"
msgstr "快速修改"
...
@@ -2535,23 +2525,23 @@ msgid "Handlers"
...
@@ -2535,23 +2525,23 @@ msgid "Handlers"
msgstr "操作者"
msgstr "操作者"
#: audits/views.py:86 audits/views.py:130 audits/views.py:167
#: audits/views.py:86 audits/views.py:130 audits/views.py:167
#: audits/views.py:212 audits/views.py:244 templates/_nav.html:14
4
#: audits/views.py:212 audits/views.py:244 templates/_nav.html:14
6
msgid "Audits"
msgid "Audits"
msgstr "日志审计"
msgstr "日志审计"
#: audits/views.py:87 templates/_nav.html:1
48
#: audits/views.py:87 templates/_nav.html:1
50
msgid "FTP log"
msgid "FTP log"
msgstr "FTP日志"
msgstr "FTP日志"
#: audits/views.py:131 templates/_nav.html:1
49
#: audits/views.py:131 templates/_nav.html:1
51
msgid "Operate log"
msgid "Operate log"
msgstr "操作日志"
msgstr "操作日志"
#: audits/views.py:168 templates/_nav.html:15
0
#: audits/views.py:168 templates/_nav.html:15
2
msgid "Password change log"
msgid "Password change log"
msgstr "改密日志"
msgstr "改密日志"
#: audits/views.py:213 templates/_nav.html:14
7
#: audits/views.py:213 templates/_nav.html:14
9
msgid "Login log"
msgid "Login log"
msgstr "登录日志"
msgstr "登录日志"
...
@@ -2654,8 +2644,8 @@ msgid ""
...
@@ -2654,8 +2644,8 @@ msgid ""
"after {} minutes)"
"after {} minutes)"
msgstr "账号已被锁定(请联系管理员解锁 或 {}分钟后重试)"
msgstr "账号已被锁定(请联系管理员解锁 或 {}分钟后重试)"
#: authentication/errors.py:46 users/views/profile.py:20
4
#: authentication/errors.py:46 users/views/profile.py:20
2
#: users/views/profile.py:2
29
#: users/views/profile.py:2
38
msgid "MFA code invalid, or ntp sync server time"
msgid "MFA code invalid, or ntp sync server time"
msgstr "MFA验证码不正确,或者服务器端时间不对"
msgstr "MFA验证码不正确,或者服务器端时间不对"
...
@@ -2827,15 +2817,15 @@ msgstr "请打开手机Google Authenticator应用,输入6位动态码"
...
@@ -2827,15 +2817,15 @@ msgstr "请打开手机Google Authenticator应用,输入6位动态码"
#: authentication/templates/authentication/login_otp.html:65
#: authentication/templates/authentication/login_otp.html:65
#: users/templates/users/user_disable_mfa.html:23
#: users/templates/users/user_disable_mfa.html:23
#: users/templates/users/user_otp_enable_bind.html:2
6
#: users/templates/users/user_otp_enable_bind.html:2
5
msgid "Six figures"
msgid "Six figures"
msgstr "6位数字"
msgstr "6位数字"
#: authentication/templates/authentication/login_otp.html:67
#: authentication/templates/authentication/login_otp.html:67
#: users/templates/users/first_login.html:108
#: users/templates/users/first_login.html:108
#: users/templates/users/user_disable_mfa.html:26
#: users/templates/users/user_disable_mfa.html:26
#: users/templates/users/user_otp_enable_bind.html:2
9
#: users/templates/users/user_otp_enable_bind.html:2
8
#: users/templates/users/user_otp_enable_install_app.html:2
6
#: users/templates/users/user_otp_enable_install_app.html:2
5
#: users/templates/users/user_password_check.html:16
#: users/templates/users/user_password_check.html:16
msgid "Next"
msgid "Next"
msgstr "下一步"
msgstr "下一步"
...
@@ -2861,7 +2851,7 @@ msgstr "欢迎回来,请输入用户名和密码登录"
...
@@ -2861,7 +2851,7 @@ msgstr "欢迎回来,请输入用户名和密码登录"
msgid "Please enable cookies and try again."
msgid "Please enable cookies and try again."
msgstr "设置你的浏览器支持cookie"
msgstr "设置你的浏览器支持cookie"
#: authentication/views/login.py:15
8
#: authentication/views/login.py:15
9
msgid ""
msgid ""
"Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n"
"Wait for <b>{}</b> confirm, You also can copy link to her/him <br/>\n"
" Don't close this page"
" Don't close this page"
...
@@ -2869,15 +2859,15 @@ msgstr ""
...
@@ -2869,15 +2859,15 @@ msgstr ""
"等待 <b>{}</b> 确认, 你也可以复制链接发给他/她 <br/>\n"
"等待 <b>{}</b> 确认, 你也可以复制链接发给他/她 <br/>\n"
" 不要关闭本页面"
" 不要关闭本页面"
#: authentication/views/login.py:16
3
#: authentication/views/login.py:16
4
msgid "No ticket found"
msgid "No ticket found"
msgstr "没有发现工单"
msgstr "没有发现工单"
#: authentication/views/login.py:18
6
#: authentication/views/login.py:18
7
msgid "Logout success"
msgid "Logout success"
msgstr "退出登录成功"
msgstr "退出登录成功"
#: authentication/views/login.py:18
7
#: authentication/views/login.py:18
8
msgid "Logout success, return login page"
msgid "Logout success, return login page"
msgstr "退出登录成功,返回到登录页面"
msgstr "退出登录成功,返回到登录页面"
...
@@ -3326,7 +3316,7 @@ msgstr ""
...
@@ -3326,7 +3316,7 @@ msgstr ""
msgid "Ops"
msgid "Ops"
msgstr "作业中心"
msgstr "作业中心"
#: ops/views/adhoc.py:32 templates/_nav.html:12
2
#: ops/views/adhoc.py:32 templates/_nav.html:12
4
#: xpack/plugins/gathered_user/views.py:35
#: xpack/plugins/gathered_user/views.py:35
msgid "Task list"
msgid "Task list"
msgstr "任务列表"
msgstr "任务列表"
...
@@ -3410,7 +3400,7 @@ msgstr "上传下载"
...
@@ -3410,7 +3400,7 @@ msgstr "上传下载"
msgid "Actions"
msgid "Actions"
msgstr "动作"
msgstr "动作"
#: perms/models/asset_permission.py:87 templates/_nav.html:7
6
#: perms/models/asset_permission.py:87 templates/_nav.html:7
8
#: tickets/templates/tickets/ticket_list.html:22
#: tickets/templates/tickets/ticket_list.html:22
#: users/templates/users/_user_detail_nav_header.html:31
#: users/templates/users/_user_detail_nav_header.html:31
#: users/views/user.py:221
#: users/views/user.py:221
...
@@ -3507,7 +3497,6 @@ msgstr "有效期"
...
@@ -3507,7 +3497,6 @@ msgstr "有效期"
#: perms/templates/perms/asset_permission_detail.html:61
#: perms/templates/perms/asset_permission_detail.html:61
#: perms/templates/perms/database_app_permission_detail.html:61
#: perms/templates/perms/database_app_permission_detail.html:61
#: perms/templates/perms/remote_app_permission_detail.html:61
#: perms/templates/perms/remote_app_permission_detail.html:61
#: xpack/plugins/license/templates/license/license_detail.html:67
msgid "User count"
msgid "User count"
msgstr "用户数量"
msgstr "用户数量"
...
@@ -3657,7 +3646,7 @@ msgstr "添加用户组"
...
@@ -3657,7 +3646,7 @@ msgstr "添加用户组"
#: perms/views/remote_app_permission.py:66
#: perms/views/remote_app_permission.py:66
#: perms/views/remote_app_permission.py:84
#: perms/views/remote_app_permission.py:84
#: perms/views/remote_app_permission.py:116
#: perms/views/remote_app_permission.py:116
#: perms/views/remote_app_permission.py:149 templates/_nav.html:7
3
#: perms/views/remote_app_permission.py:149 templates/_nav.html:7
5
#: xpack/plugins/orgs/templates/orgs/org_list.html:22
#: xpack/plugins/orgs/templates/orgs/org_list.html:22
msgid "Perms"
msgid "Perms"
msgstr "权限管理"
msgstr "权限管理"
...
@@ -4094,7 +4083,7 @@ msgstr "当前无勾选用户,请勾选你想要导入的用户"
...
@@ -4094,7 +4083,7 @@ msgstr "当前无勾选用户,请勾选你想要导入的用户"
#: settings/templates/settings/_ldap_list_users_modal.html:172
#: settings/templates/settings/_ldap_list_users_modal.html:172
#: templates/_csv_import_export.html:13 templates/_csv_import_modal.html:5
#: templates/_csv_import_export.html:13 templates/_csv_import_modal.html:5
#: xpack/plugins/license/templates/license/license_detail.html:
101
#: xpack/plugins/license/templates/license/license_detail.html:
88
msgid "Import"
msgid "Import"
msgstr "导入"
msgstr "导入"
...
@@ -4150,7 +4139,7 @@ msgstr "这里"
...
@@ -4150,7 +4139,7 @@ msgstr "这里"
#: settings/views.py:19 settings/views.py:46 settings/views.py:73
#: settings/views.py:19 settings/views.py:46 settings/views.py:73
#: settings/views.py:105 settings/views.py:134 settings/views.py:161
#: settings/views.py:105 settings/views.py:134 settings/views.py:161
#: templates/_nav.html:18
5
#: templates/_nav.html:18
7
msgid "Settings"
msgid "Settings"
msgstr "系统设置"
msgstr "系统设置"
...
@@ -4187,7 +4176,7 @@ msgstr "下载更新模版"
...
@@ -4187,7 +4176,7 @@ msgstr "下载更新模版"
msgid "Help"
msgid "Help"
msgstr "帮助"
msgstr "帮助"
#: templates/_header_bar.html:19 templates/_without_nav_base.html:2
7
#: templates/_header_bar.html:19 templates/_without_nav_base.html:2
8
msgid "Docs"
msgid "Docs"
msgstr "文档"
msgstr "文档"
...
@@ -4203,7 +4192,7 @@ msgstr "商业支持"
...
@@ -4203,7 +4192,7 @@ msgstr "商业支持"
#: users/templates/users/user_profile.html:17
#: users/templates/users/user_profile.html:17
#: users/templates/users/user_profile_update.html:37
#: users/templates/users/user_profile_update.html:37
#: users/templates/users/user_profile_update.html:61
#: users/templates/users/user_profile_update.html:61
#: users/templates/users/user_pubkey_update.html:37 users/views/profile.py:
49
#: users/templates/users/user_pubkey_update.html:37 users/views/profile.py:
51
msgid "Profile"
msgid "Profile"
msgstr "个人信息"
msgstr "个人信息"
...
@@ -4298,8 +4287,8 @@ msgstr ""
...
@@ -4298,8 +4287,8 @@ msgstr ""
#: templates/_nav.html:17 users/views/group.py:28 users/views/group.py:45
#: templates/_nav.html:17 users/views/group.py:28 users/views/group.py:45
#: users/views/group.py:63 users/views/group.py:82 users/views/group.py:99
#: users/views/group.py:63 users/views/group.py:82 users/views/group.py:99
#: users/views/login.py:158 users/views/profile.py:
88
#: users/views/login.py:158 users/views/profile.py:
90
#: users/views/profile.py:12
3
users/views/user.py:50 users/views/user.py:67
#: users/views/profile.py:12
5
users/views/user.py:50 users/views/user.py:67
#: users/views/user.py:111 users/views/user.py:178 users/views/user.py:206
#: users/views/user.py:111 users/views/user.py:178 users/views/user.py:206
#: users/views/user.py:220 users/views/user.py:234 users/views/user.py:248
#: users/views/user.py:220 users/views/user.py:234 users/views/user.py:248
#: users/views/user.py:262 users/views/user.py:276
#: users/views/user.py:262 users/views/user.py:276
...
@@ -4314,69 +4303,69 @@ msgstr "用户列表"
...
@@ -4314,69 +4303,69 @@ msgstr "用户列表"
msgid "Command filters"
msgid "Command filters"
msgstr "命令过滤"
msgstr "命令过滤"
#: templates/_nav.html:9
5
terminal/views/command.py:21
#: templates/_nav.html:9
7
terminal/views/command.py:21
#: terminal/views/session.py:43 terminal/views/session.py:54
#: terminal/views/session.py:43 terminal/views/session.py:54
#: terminal/views/session.py:78 terminal/views/terminal.py:32
#: terminal/views/session.py:78 terminal/views/terminal.py:32
#: terminal/views/terminal.py:48 terminal/views/terminal.py:61
#: terminal/views/terminal.py:48 terminal/views/terminal.py:61
msgid "Sessions"
msgid "Sessions"
msgstr "会话管理"
msgstr "会话管理"
#: templates/_nav.html:
98
#: templates/_nav.html:
100
msgid "Session online"
msgid "Session online"
msgstr "在线会话"
msgstr "在线会话"
#: templates/_nav.html:
99
terminal/views/session.py:55
#: templates/_nav.html:
101
terminal/views/session.py:55
msgid "Session offline"
msgid "Session offline"
msgstr "历史会话"
msgstr "历史会话"
#: templates/_nav.html:10
0
#: templates/_nav.html:10
2
msgid "Commands"
msgid "Commands"
msgstr "命令记录"
msgstr "命令记录"
#: templates/_nav.html:10
3
templates/_nav_user.html:42
#: templates/_nav.html:10
5
templates/_nav_user.html:42
msgid "Web terminal"
msgid "Web terminal"
msgstr "Web终端"
msgstr "Web终端"
#: templates/_nav.html:10
4
templates/_nav_user.html:47
#: templates/_nav.html:10
6
templates/_nav_user.html:47
msgid "File manager"
msgid "File manager"
msgstr "文件管理"
msgstr "文件管理"
#: templates/_nav.html:1
08
terminal/views/storage.py:27
#: templates/_nav.html:1
10
terminal/views/storage.py:27
#: terminal/views/storage.py:42 terminal/views/storage.py:96
#: terminal/views/storage.py:42 terminal/views/storage.py:96
#: terminal/views/storage.py:120 terminal/views/storage.py:149
#: terminal/views/storage.py:120 terminal/views/storage.py:149
#: terminal/views/storage.py:175
#: terminal/views/storage.py:175
msgid "Terminal"
msgid "Terminal"
msgstr "终端管理"
msgstr "终端管理"
#: templates/_nav.html:1
19
#: templates/_nav.html:1
21
msgid "Job Center"
msgid "Job Center"
msgstr "作业中心"
msgstr "作业中心"
#: templates/_nav.html:12
3 templates/_nav.html:151
#: templates/_nav.html:12
5 templates/_nav.html:153
msgid "Batch command"
msgid "Batch command"
msgstr "批量命令"
msgstr "批量命令"
#: templates/_nav.html:12
5
#: templates/_nav.html:12
7
msgid "Task monitor"
msgid "Task monitor"
msgstr "任务监控"
msgstr "任务监控"
#: templates/_nav.html:13
5
tickets/views.py:19 tickets/views.py:37
#: templates/_nav.html:13
7
tickets/views.py:19 tickets/views.py:37
msgid "Tickets"
msgid "Tickets"
msgstr "工单管理"
msgstr "工单管理"
#: templates/_nav.html:16
1
#: templates/_nav.html:16
3
msgid "XPack"
msgid "XPack"
msgstr ""
msgstr ""
#: templates/_nav.html:1
69
xpack/plugins/cloud/views.py:28
#: templates/_nav.html:1
71
xpack/plugins/cloud/views.py:28
msgid "Account list"
msgid "Account list"
msgstr "账户列表"
msgstr "账户列表"
#: templates/_nav.html:17
0
#: templates/_nav.html:17
2
msgid "Sync instance"
msgid "Sync instance"
msgstr "同步实例"
msgstr "同步实例"
#: templates/_nav_user.html:1
1
#: templates/_nav_user.html:1
0
msgid "My Applications"
msgid "My Applications"
msgstr "我的应用"
msgstr "我的应用"
...
@@ -4385,7 +4374,7 @@ msgid ""
...
@@ -4385,7 +4374,7 @@ msgid ""
"Displays the results of items _START_ to _END_; A total of _TOTAL_ entries"
"Displays the results of items _START_ to _END_; A total of _TOTAL_ entries"
msgstr "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项"
msgstr "显示第 _START_ 至 _END_ 项结果; 总共 _TOTAL_ 项"
#: templates/_without_nav_base.html:2
5
#: templates/_without_nav_base.html:2
6
msgid "Home page"
msgid "Home page"
msgstr "首页"
msgstr "首页"
...
@@ -5037,7 +5026,7 @@ msgid "Could not reset self otp, use profile reset instead"
...
@@ -5037,7 +5026,7 @@ msgid "Could not reset self otp, use profile reset instead"
msgstr "不能再该页面重置MFA, 请去个人信息页面重置"
msgstr "不能再该页面重置MFA, 请去个人信息页面重置"
#: users/forms/group.py:19 users/forms/user.py:143 users/forms/user.py:148
#: users/forms/group.py:19 users/forms/user.py:143 users/forms/user.py:148
#: xpack/plugins/orgs/forms.py:1
8
#: xpack/plugins/orgs/forms.py:1
7
msgid "Select users"
msgid "Select users"
msgstr "选择用户"
msgstr "选择用户"
...
@@ -5138,7 +5127,7 @@ msgstr "复制用户公钥到这里"
...
@@ -5138,7 +5127,7 @@ msgstr "复制用户公钥到这里"
msgid "Join user groups"
msgid "Join user groups"
msgstr "添加到用户组"
msgstr "添加到用户组"
#: users/forms/user.py:103 users/views/login.py:119 users/views/profile.py:10
5
#: users/forms/user.py:103 users/views/login.py:119 users/views/profile.py:10
7
msgid "* Your password does not meet the requirements"
msgid "* Your password does not meet the requirements"
msgstr "* 您的密码不符合要求"
msgstr "* 您的密码不符合要求"
...
@@ -5162,7 +5151,7 @@ msgstr "密码策略"
...
@@ -5162,7 +5151,7 @@ msgstr "密码策略"
msgid "Administrator"
msgid "Administrator"
msgstr "管理员"
msgstr "管理员"
#: users/models/user.py:145 xpack/plugins/orgs/forms.py:
30
#: users/models/user.py:145 xpack/plugins/orgs/forms.py:
29
#: xpack/plugins/orgs/templates/orgs/org_list.html:14
#: xpack/plugins/orgs/templates/orgs/org_list.html:14
msgid "Auditor"
msgid "Auditor"
msgstr "审计员"
msgstr "审计员"
...
@@ -5595,7 +5584,7 @@ msgstr "Android手机下载"
...
@@ -5595,7 +5584,7 @@ msgstr "Android手机下载"
msgid "iPhone downloads"
msgid "iPhone downloads"
msgstr "iPhone手机下载"
msgstr "iPhone手机下载"
#: users/templates/users/user_otp_enable_install_app.html:2
3
#: users/templates/users/user_otp_enable_install_app.html:2
2
msgid ""
msgid ""
"After installation, click the next step to enter the binding page (if "
"After installation, click the next step to enter the binding page (if "
"installed, go to the next step directly)."
"installed, go to the next step directly)."
...
@@ -5899,35 +5888,35 @@ msgstr "Token错误或失效"
...
@@ -5899,35 +5888,35 @@ msgstr "Token错误或失效"
msgid "First login"
msgid "First login"
msgstr "首次登录"
msgstr "首次登录"
#: users/views/profile.py:
69
#: users/views/profile.py:
71
msgid "Profile setting"
msgid "Profile setting"
msgstr "个人信息设置"
msgstr "个人信息设置"
#: users/views/profile.py:
89
#: users/views/profile.py:
91
msgid "Password update"
msgid "Password update"
msgstr "密码更新"
msgstr "密码更新"
#: users/views/profile.py:12
4
#: users/views/profile.py:12
6
msgid "Public key update"
msgid "Public key update"
msgstr "密钥更新"
msgstr "密钥更新"
#: users/views/profile.py:15
2
#: users/views/profile.py:15
4
msgid "Password invalid"
msgid "Password invalid"
msgstr "用户名或密码无效"
msgstr "用户名或密码无效"
#: users/views/profile.py:2
56
#: users/views/profile.py:2
65
msgid "MFA enable success"
msgid "MFA enable success"
msgstr "MFA 绑定成功"
msgstr "MFA 绑定成功"
#: users/views/profile.py:2
57
#: users/views/profile.py:2
66
msgid "MFA enable success, return login page"
msgid "MFA enable success, return login page"
msgstr "MFA 绑定成功,返回到登录页面"
msgstr "MFA 绑定成功,返回到登录页面"
#: users/views/profile.py:2
59
#: users/views/profile.py:2
68
msgid "MFA disable success"
msgid "MFA disable success"
msgstr "MFA 解绑成功"
msgstr "MFA 解绑成功"
#: users/views/profile.py:26
0
#: users/views/profile.py:26
9
msgid "MFA disable success, return login page"
msgid "MFA disable success, return login page"
msgstr "MFA 解绑成功,返回登录页面"
msgstr "MFA 解绑成功,返回登录页面"
...
@@ -6191,7 +6180,7 @@ msgstr "选择实例"
...
@@ -6191,7 +6180,7 @@ msgstr "选择实例"
msgid "Select node"
msgid "Select node"
msgstr "选择节点"
msgstr "选择节点"
#: xpack/plugins/cloud/forms.py:82 xpack/plugins/orgs/forms.py:2
1
#: xpack/plugins/cloud/forms.py:82 xpack/plugins/orgs/forms.py:2
0
msgid "Select admins"
msgid "Select admins"
msgstr "选择管理员"
msgstr "选择管理员"
...
@@ -6540,8 +6529,14 @@ msgstr "标准版"
...
@@ -6540,8 +6529,14 @@ msgstr "标准版"
msgid "Enterprise edition"
msgid "Enterprise edition"
msgstr "企业版"
msgstr "企业版"
#: xpack/plugins/license/models.py:78
#, fuzzy
#| msgid "Enterprise edition"
msgid "Ultimate edition"
msgstr "企业版"
#: xpack/plugins/license/templates/license/_license_import_modal.html:4
#: xpack/plugins/license/templates/license/_license_import_modal.html:4
#: xpack/plugins/license/templates/license/license_detail.html:
99
#: xpack/plugins/license/templates/license/license_detail.html:
86
msgid "Import license"
msgid "Import license"
msgstr "导入许可证"
msgstr "导入许可证"
...
@@ -6587,26 +6582,15 @@ msgstr "公司"
...
@@ -6587,26 +6582,15 @@ msgstr "公司"
msgid "Expired"
msgid "Expired"
msgstr "过期时间"
msgstr "过期时间"
#: xpack/plugins/license/templates/license/license_detail.html:64
#: xpack/plugins/license/templates/license/license_detail.html:67
#: xpack/plugins/license/templates/license/license_detail.html:68
#: xpack/plugins/license/templates/license/license_detail.html:72
#: xpack/plugins/license/templates/license/license_detail.html:76
msgid "Unlimited"
msgstr "无限制"
#: xpack/plugins/license/templates/license/license_detail.html:75
msgid "Concurrent connections"
msgstr "并发连接"
#: xpack/plugins/license/templates/license/license_detail.html:80
msgid "Edition"
msgid "Edition"
msgstr "版本"
msgstr "版本"
#: xpack/plugins/license/templates/license/license_detail.html:
106
#: xpack/plugins/license/templates/license/license_detail.html:
93
msgid "Technology consulting"
msgid "Technology consulting"
msgstr "技术咨询"
msgstr "技术咨询"
#: xpack/plugins/license/templates/license/license_detail.html:
109
#: xpack/plugins/license/templates/license/license_detail.html:
96
msgid "Consult"
msgid "Consult"
msgstr "咨询"
msgstr "咨询"
...
@@ -6618,11 +6602,11 @@ msgstr "许可证导入成功"
...
@@ -6618,11 +6602,11 @@ msgstr "许可证导入成功"
msgid "License is invalid"
msgid "License is invalid"
msgstr "无效的许可证"
msgstr "无效的许可证"
#: xpack/plugins/orgs/forms.py:2
4
#: xpack/plugins/orgs/forms.py:2
3
msgid "Select auditor"
msgid "Select auditor"
msgstr "选择审计员"
msgstr "选择审计员"
#: xpack/plugins/orgs/forms.py:2
9
#: xpack/plugins/orgs/forms.py:2
8
#: xpack/plugins/orgs/templates/orgs/org_detail.html:71
#: xpack/plugins/orgs/templates/orgs/org_detail.html:71
#: xpack/plugins/orgs/templates/orgs/org_list.html:13
#: xpack/plugins/orgs/templates/orgs/org_list.html:13
msgid "Admin"
msgid "Admin"
...
@@ -6682,6 +6666,12 @@ msgstr "密码匣子"
...
@@ -6682,6 +6666,12 @@ msgstr "密码匣子"
msgid "vault create"
msgid "vault create"
msgstr "创建"
msgstr "创建"
#~ msgid "Unlimited"
#~ msgstr "无限制"
#~ msgid "Concurrent connections"
#~ msgstr "并发连接"
#~ msgid "Update assets"
#~ msgid "Update assets"
#~ msgstr "更新资产"
#~ msgstr "更新资产"
...
...
apps/locale/zh/LC_MESSAGES/djangojs.mo
View file @
f9578f44
No preview for this file type
apps/ops/templates/ops/command_execution_create.html
View file @
f9578f44
...
@@ -119,12 +119,6 @@
...
@@ -119,12 +119,6 @@
check
:
{
check
:
{
enable
:
true
enable
:
true
},
},
async
:
{
enable
:
true
,
url
:
url
,
autoParam
:
[
"id=key"
,
"name=n"
,
"level=lv"
],
type
:
'get'
},
view
:
{
view
:
{
dblClickExpand
:
false
,
dblClickExpand
:
false
,
showLine
:
true
showLine
:
true
...
...
apps/orgs/serializers.py
View file @
f9578f44
...
@@ -4,10 +4,6 @@ from rest_framework.serializers import ModelSerializer
...
@@ -4,10 +4,6 @@ from rest_framework.serializers import ModelSerializer
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
users.models
import
User
,
UserGroup
from
users.models
import
User
,
UserGroup
from
assets.models
import
Asset
,
Domain
,
AdminUser
,
SystemUser
,
Label
from
assets.models
import
Asset
,
Domain
,
AdminUser
,
SystemUser
,
Label
from
assets.const
import
(
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
,
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
)
from
perms.models
import
AssetPermission
from
perms.models
import
AssetPermission
from
common.serializers
import
AdaptedBulkListSerializer
from
common.serializers
import
AdaptedBulkListSerializer
from
.utils
import
set_current_org
,
get_current_org
from
.utils
import
set_current_org
,
get_current_org
...
@@ -22,15 +18,6 @@ class OrgSerializer(ModelSerializer):
...
@@ -22,15 +18,6 @@ class OrgSerializer(ModelSerializer):
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created_by'
,
'date_created'
]
read_only_fields
=
[
'created_by'
,
'date_created'
]
@staticmethod
def
validate_name
(
name
):
pattern
=
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_PATTERN
res
=
re
.
search
(
pattern
,
name
)
if
res
is
not
None
:
msg
=
GENERAL_FORBIDDEN_SPECIAL_CHARACTERS_ERROR_MSG
raise
serializers
.
ValidationError
(
msg
)
return
name
class
OrgReadSerializer
(
ModelSerializer
):
class
OrgReadSerializer
(
ModelSerializer
):
admins
=
serializers
.
SlugRelatedField
(
slug_field
=
'name'
,
many
=
True
,
read_only
=
True
)
admins
=
serializers
.
SlugRelatedField
(
slug_field
=
'name'
,
many
=
True
,
read_only
=
True
)
...
...
apps/static/js/jumpserver.js
View file @
f9578f44
...
@@ -1237,7 +1237,7 @@ function toSafeDateISOStr(s) {
...
@@ -1237,7 +1237,7 @@ function toSafeDateISOStr(s) {
function
toSafeLocalDateStr
(
d
)
{
function
toSafeLocalDateStr
(
d
)
{
var
date
=
safeDate
(
d
);
var
date
=
safeDate
(
d
);
var
date_s
=
date
.
toLocaleString
(
navigator
.
language
,
{
hour12
:
false
});
var
date_s
=
date
.
toLocaleString
(
getUserLang
()
,
{
hour12
:
false
});
return
date_s
.
split
(
"/"
).
join
(
'-'
)
return
date_s
.
split
(
"/"
).
join
(
'-'
)
}
}
...
@@ -1257,7 +1257,7 @@ function getTimeUnits(u) {
...
@@ -1257,7 +1257,7 @@ function getTimeUnits(u) {
"m"
:
"分"
,
"m"
:
"分"
,
"s"
:
"秒"
,
"s"
:
"秒"
,
};
};
if
(
navigator
.
language
===
"zh-CN"
)
{
if
(
getUserLang
()
===
"zh-CN"
)
{
return
units
[
u
]
return
units
[
u
]
}
}
return
u
return
u
...
@@ -1395,6 +1395,16 @@ function showCeleryTaskLog(taskId) {
...
@@ -1395,6 +1395,16 @@ function showCeleryTaskLog(taskId) {
window
.
open
(
url
,
''
,
'width=900,height=600'
)
window
.
open
(
url
,
''
,
'width=900,height=600'
)
}
}
function
getUserLang
(){
let
userLangZh
=
document
.
cookie
.
indexOf
(
'django_language=zh'
);
if
(
userLangZh
!==
-
1
){
return
'zh-CN'
}
else
{
return
'en-US'
}
}
function
initDateRangePicker
(
selector
,
options
)
{
function
initDateRangePicker
(
selector
,
options
)
{
if
(
!
options
)
{
if
(
!
options
)
{
options
=
{}
options
=
{}
...
@@ -1408,6 +1418,15 @@ function initDateRangePicker(selector, options) {
...
@@ -1408,6 +1418,15 @@ function initDateRangePicker(selector, options) {
daysOfWeek
:
[
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
],
//汉化处理
daysOfWeek
:
[
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
],
//汉化处理
monthNames
:
[
"一月"
,
"二月"
,
"三月"
,
"四月"
,
"五月"
,
"六月"
,
"七月"
,
"八月"
,
"九月"
,
"十月"
,
"十一月"
,
"十二月"
],
monthNames
:
[
"一月"
,
"二月"
,
"三月"
,
"四月"
,
"五月"
,
"六月"
,
"七月"
,
"八月"
,
"九月"
,
"十月"
,
"十一月"
,
"十二月"
],
};
};
var
enLocale
=
{
format
:
"YYYY-MM-DD HH:mm"
,
separator
:
" - "
,
applyLabel
:
"Apply"
,
cancelLabel
:
"Cancel"
,
resetLabel
:
"Reset"
,
daysOfWeek
:
[
"Su"
,
"Mo"
,
"Tu"
,
"We"
,
"Th"
,
"Fr"
,
"Sa"
],
monthNames
:
[
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
],
};
var
defaultOption
=
{
var
defaultOption
=
{
singleDatePicker
:
true
,
singleDatePicker
:
true
,
showDropdowns
:
true
,
showDropdowns
:
true
,
...
@@ -1415,10 +1434,13 @@ function initDateRangePicker(selector, options) {
...
@@ -1415,10 +1434,13 @@ function initDateRangePicker(selector, options) {
timePicker24Hour
:
true
,
timePicker24Hour
:
true
,
autoApply
:
true
,
autoApply
:
true
,
};
};
var
userLang
=
navigator
.
language
||
navigator
.
userLanguage
;
if
(
getUserLang
()
===
'zh-CN'
)
{
if
(
userLang
.
indexOf
(
'zh'
)
!==
-
1
)
{
defaultOption
.
locale
=
zhLocale
;
defaultOption
.
locale
=
zhLocale
;
}
}
else
{
// en-US
defaultOption
.
locale
=
enLocale
;
}
options
=
Object
.
assign
(
defaultOption
,
options
);
options
=
Object
.
assign
(
defaultOption
,
options
);
return
$
(
selector
).
daterangepicker
(
options
);
return
$
(
selector
).
daterangepicker
(
options
);
}
}
...
...
apps/templates/_foot_js.html
View file @
f9578f44
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<script
src=
"{% static "
js
/
plugins
/
toastr
/
toastr
.
min
.
js
"
%}"
></script>
<script
src=
"{% static "
js
/
plugins
/
toastr
/
toastr
.
min
.
js
"
%}"
></script>
<script
src=
"{% static "
js
/
inspinia
.
js
"
%}"
></script>
<script
src=
"{% static "
js
/
inspinia
.
js
"
%}"
></script>
<script
type=
"text/javascript"
src=
"{% url 'javascript-catalog' %}"
></script>
<script
type=
"text/javascript"
src=
"{% url 'javascript-catalog' %}"
></script>
<script
src=
"{% static "
js
/
jumpserver
.
js
"
%}?
v=
6
"
></script>
<script
src=
"{% static "
js
/
jumpserver
.
js
"
%}?
v=
7
"
></script>
<script
src=
"{% static 'js/plugins/select2/select2.full.min.js' %}"
></script>
<script
src=
"{% static 'js/plugins/select2/select2.full.min.js' %}"
></script>
<script
src=
"{% static 'js/plugins/select2/i18n/zh-CN.js' %}"
></script>
<script
src=
"{% static 'js/plugins/select2/i18n/zh-CN.js' %}"
></script>
<script>
<script>
...
@@ -18,9 +18,6 @@ $(document).ready(function(){
...
@@ -18,9 +18,6 @@ $(document).ready(function(){
if
(
$
(
'.tooltip'
)[
0
])
{
if
(
$
(
'.tooltip'
)[
0
])
{
$
(
'.tooltip'
).
tooltip
();
$
(
'.tooltip'
).
tooltip
();
}
}
var
userLang
=
navigator
.
language
||
navigator
.
userLanguage
;
$
.
fn
.
select2
.
defaults
.
set
(
'language'
,
getUserLang
())
if
(
userLang
.
indexOf
(
'zh'
)
!==
-
1
)
{
$
.
fn
.
select2
.
defaults
.
set
(
'language'
,
'zh-CN'
)
}
});
});
</script>
</script>
apps/templates/_nav.html
View file @
f9578f44
...
@@ -54,13 +54,15 @@
...
@@ -54,13 +54,15 @@
{# Applications #}
{# Applications #}
{% if request.user.can_admin_current_org
and LICENSE_VALID
%}
{% if request.user.can_admin_current_org %}
<li
id=
"applications"
>
<li
id=
"applications"
>
<a>
<a>
<i
class=
"fa fa-th"
style=
"width: 14px"
></i>
<span
class=
"nav-label"
>
{% trans 'Applications' %}
</span><span
class=
"fa arrow"
></span>
<i
class=
"fa fa-th"
style=
"width: 14px"
></i>
<span
class=
"nav-label"
>
{% trans 'Applications' %}
</span><span
class=
"fa arrow"
></span>
</a>
</a>
<ul
class=
"nav nav-second-level"
>
<ul
class=
"nav nav-second-level"
>
{% if LICENSE_VALID %}
<li
id=
"remote-app"
><a
href=
"{% url 'applications:remote-app-list' %}"
>
{% trans 'RemoteApp' %}
</a></li>
<li
id=
"remote-app"
><a
href=
"{% url 'applications:remote-app-list' %}"
>
{% trans 'RemoteApp' %}
</a></li>
{% endif %}
<li
id=
"database-app"
><a
href=
"{% url 'applications:database-app-list' %}"
>
{% trans 'DatabaseApp' %}
</a></li>
<li
id=
"database-app"
><a
href=
"{% url 'applications:database-app-list' %}"
>
{% trans 'DatabaseApp' %}
</a></li>
</ul>
</ul>
</li>
</li>
...
@@ -79,10 +81,10 @@
...
@@ -79,10 +81,10 @@
<li
id=
"remote-app-permission"
>
<li
id=
"remote-app-permission"
>
<a
href=
"{% url 'perms:remote-app-permission-list' %}"
>
{% trans 'RemoteApp' %}
</a>
<a
href=
"{% url 'perms:remote-app-permission-list' %}"
>
{% trans 'RemoteApp' %}
</a>
</li>
</li>
{% endif %}
<li
id=
"database-app-permission"
>
<li
id=
"database-app-permission"
>
<a
href=
"{% url 'perms:database-app-permission-list' %}"
>
{% trans 'DatabaseApp' %}
</a>
<a
href=
"{% url 'perms:database-app-permission-list' %}"
>
{% trans 'DatabaseApp' %}
</a>
</li>
</li>
{% endif %}
</ul>
</ul>
</li>
</li>
{% endif %}
{% endif %}
...
...
apps/templates/_nav_user.html
View file @
f9578f44
...
@@ -5,17 +5,18 @@
...
@@ -5,17 +5,18 @@
</a>
</a>
</li>
</li>
{% if LICENSE_VALID %}
<li
id=
"applications"
>
<li
id=
"applications"
>
<a>
<a>
<i
class=
"fa fa-th"
style=
"width: 14px"
></i>
<span
class=
"nav-label"
>
{% trans 'My Applications' %}
</span><span
class=
"fa arrow"
></span>
<i
class=
"fa fa-th"
style=
"width: 14px"
></i>
<span
class=
"nav-label"
>
{% trans 'My Applications' %}
</span><span
class=
"fa arrow"
></span>
</a>
</a>
<ul
class=
"nav nav-second-level"
>
<ul
class=
"nav nav-second-level"
>
{% if LICENSE_VALID %}
<li
id=
"user-remote-app"
>
<li
id=
"user-remote-app"
>
<a
href=
"{% url 'applications:user-remote-app-list' %}"
>
<a
href=
"{% url 'applications:user-remote-app-list' %}"
>
<i
class=
""
style=
"width: 14px"
></i><span
class=
"nav-label"
>
{% trans 'RemoteApp' %}
</span><span
class=
"label label-info pull-right"
></span>
<i
class=
""
style=
"width: 14px"
></i><span
class=
"nav-label"
>
{% trans 'RemoteApp' %}
</span><span
class=
"label label-info pull-right"
></span>
</a>
</a>
</li>
</li>
{% endif %}
<li
id=
"user-database-app"
>
<li
id=
"user-database-app"
>
<a
href=
"{% url 'applications:user-database-app-list' %}"
>
<a
href=
"{% url 'applications:user-database-app-list' %}"
>
<i
class=
""
style=
"width: 14px"
></i><span
class=
"nav-label"
>
{% trans 'DatabaseApp' %}
</span><span
class=
"label label-info pull-right"
></span>
<i
class=
""
style=
"width: 14px"
></i><span
class=
"nav-label"
>
{% trans 'DatabaseApp' %}
</span><span
class=
"label label-info pull-right"
></span>
...
@@ -23,7 +24,6 @@
...
@@ -23,7 +24,6 @@
</li>
</li>
</ul>
</ul>
</li>
</li>
{% endif %}
{% if SECURITY_COMMAND_EXECUTION %}
{% if SECURITY_COMMAND_EXECUTION %}
<li
id=
"ops"
>
<li
id=
"ops"
>
...
...
apps/terminal/migrations/0018_auto_20191202_1010.py
View file @
f9578f44
...
@@ -41,7 +41,7 @@ class Migration(migrations.Migration):
...
@@ -41,7 +41,7 @@ class Migration(migrations.Migration):
migrations
.
AlterField
(
migrations
.
AlterField
(
model_name
=
'session'
,
model_name
=
'session'
,
name
=
'asset'
,
name
=
'asset'
,
field
=
models
.
CharField
(
db_index
=
True
,
max_length
=
1
024
,
field
=
models
.
CharField
(
db_index
=
True
,
max_length
=
1
28
,
verbose_name
=
'Asset'
),
verbose_name
=
'Asset'
),
),
),
migrations
.
AlterField
(
migrations
.
AlterField
(
...
...
apps/terminal/models.py
View file @
f9578f44
...
@@ -175,7 +175,7 @@ class Session(OrgModelMixin):
...
@@ -175,7 +175,7 @@ class Session(OrgModelMixin):
id
=
models
.
UUIDField
(
default
=
uuid
.
uuid4
,
primary_key
=
True
)
id
=
models
.
UUIDField
(
default
=
uuid
.
uuid4
,
primary_key
=
True
)
user
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
_
(
"User"
),
db_index
=
True
)
user
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
_
(
"User"
),
db_index
=
True
)
user_id
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
36
,
db_index
=
True
)
user_id
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
36
,
db_index
=
True
)
asset
=
models
.
CharField
(
max_length
=
1
024
,
verbose_name
=
_
(
"Asset"
),
db_index
=
True
)
asset
=
models
.
CharField
(
max_length
=
1
28
,
verbose_name
=
_
(
"Asset"
),
db_index
=
True
)
asset_id
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
36
,
db_index
=
True
)
asset_id
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
36
,
db_index
=
True
)
system_user
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
_
(
"System user"
),
db_index
=
True
)
system_user
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
_
(
"System user"
),
db_index
=
True
)
system_user_id
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
36
,
db_index
=
True
)
system_user_id
=
models
.
CharField
(
blank
=
True
,
default
=
''
,
max_length
=
36
,
db_index
=
True
)
...
...
apps/terminal/templates/terminal/base_storage_list.html
View file @
f9578f44
...
@@ -13,10 +13,9 @@
...
@@ -13,10 +13,9 @@
<div
id=
"my-tickets"
class=
"tab-pane active"
>
<div
id=
"my-tickets"
class=
"tab-pane active"
>
<div
class=
"panel-body"
>
<div
class=
"panel-body"
>
<div
class=
"btn-group uc pull-left m-r-5"
>
<div
class=
"btn-group uc pull-left m-r-5"
>
<button
class=
"btn btn-sm btn-primary
"
>
<button
data-toggle=
"dropdown"
class=
"btn btn-primary btn-sm dropdown-toggle
"
>
{% block create_storage_info %}{% endblock %}
{% block create_storage_info %}{% endblock %}
</button>
<span
class=
"caret"
></span></button>
<button
data-toggle=
"dropdown"
class=
"btn btn-primary btn-sm dropdown-toggle"
><span
class=
"caret"
></span></button>
<ul
class=
"dropdown-menu"
>
<ul
class=
"dropdown-menu"
>
{% for key, value in type_choices %}
{% for key, value in type_choices %}
<li><a
class=
""
href=
"{% block create_storage_url %}{% endblock %}?type={{ key }}"
>
{{ value }}
</a></li>
<li><a
class=
""
href=
"{% block create_storage_url %}{% endblock %}?type={{ key }}"
>
{{ value }}
</a></li>
...
...
apps/terminal/templates/terminal/command_list.html
View file @
f9578f44
...
@@ -86,7 +86,7 @@ $(document).ready(function () {
...
@@ -86,7 +86,7 @@ $(document).ready(function () {
forceParse
:
false
,
forceParse
:
false
,
calendarWeeks
:
true
,
calendarWeeks
:
true
,
autoclose
:
true
,
autoclose
:
true
,
language
:
navigator
.
language
||
"en"
,
language
:
getUserLang
()
,
};
};
dateFromRef
.
datepicker
(
options
).
on
(
"changeDate"
,
function
()
{
dateFromRef
.
datepicker
(
options
).
on
(
"changeDate"
,
function
()
{
var
value
=
$
(
this
).
val
()
+
' 0:0:0'
;
var
value
=
$
(
this
).
val
()
+
' 0:0:0'
;
...
...
apps/terminal/templates/terminal/session_list.html
View file @
f9578f44
...
@@ -193,7 +193,7 @@ $(document).ready(function() {
...
@@ -193,7 +193,7 @@ $(document).ready(function() {
forceParse
:
false
,
forceParse
:
false
,
calendarWeeks
:
true
,
calendarWeeks
:
true
,
autoclose
:
true
,
autoclose
:
true
,
language
:
navigator
.
language
||
"en"
,
language
:
getUserLang
()
,
};
};
dateFromRef
.
datepicker
(
options
).
on
(
"changeDate"
,
function
()
{
dateFromRef
.
datepicker
(
options
).
on
(
"changeDate"
,
function
()
{
if
(
!
$
(
this
).
val
())
{
if
(
!
$
(
this
).
val
())
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment