Merge pull request #1272 from jumpserver/dev

v2.18.0-rc2
This commit is contained in:
Jiangjie.Bai
2022-01-17 19:22:44 +08:00
committed by GitHub
12 changed files with 67 additions and 22 deletions

View File

@@ -274,8 +274,10 @@ export default {
})
},
generatePopoverColumns() {
this.popoverColumns.totalColumnsList = this.totalColumns.map(obj => {
return { prop: obj.prop, label: obj.label }
this.popoverColumns.totalColumnsList = this.totalColumns.filter(obj => {
if (obj.label) {
return { prop: obj.prop, label: obj.label }
}
})
this.popoverColumns.currentCols = this.cleanedColumnsShow.show
this.popoverColumns.minCols = this.cleanedColumnsShow.min

View File

@@ -16,7 +16,7 @@
size="small"
class="filter-tag"
type="info"
:disable-transitions="true"
:disable-transitions="false"
@close="handleTagClose(k)"
@click="handleTagClick(v,k)"
>

View File

@@ -847,6 +847,10 @@
"riskLevels": {
"common": "普通"
},
"SessionID": "会话ID",
"TargetResources": "目标资源",
"UseProtocol": "使用协议",
"SessionState": "会话状态",
"Monitor": "监控",
"XRDPNotSupport": "RDP 客户端会话, 暂不支持监控",
"sessionMonitor": "监控",
@@ -1327,6 +1331,8 @@
"Username": "用户名"
},
"AccountBackupPlan": {
"Types": "类型",
"Backup": "备份",
"AccountBackupPlan": "账号备份",
"AccountBackupPlanCreate": "创建账号备份",
"AccountBackupPlanUpdate": "更新账号备份",

View File

@@ -828,6 +828,10 @@
"riskLevels": {
"common": "common"
},
"SessionID": "Session ID",
"TargetResources": "Target resources",
"UseProtocol": "Use protocol",
"SessionState": "Session state",
"Monitor": "Monitor",
"XRDPNotSupport": "RDP Client session not support now",
"sessionMonitor": "Session Monitor",
@@ -1284,6 +1288,8 @@
"Username": "Username"
},
"AccountBackupPlan": {
"Types": "Types",
"Backup": "Backup",
"AccountBackupPlan": "Account backup plan",
"AccountBackupPlanreate": "Account backup plan",
"AccountBackupPlanUpdate": "Account backup plan",

View File

@@ -3,8 +3,8 @@
<div class="pull-right">
Version <strong> dev </strong> <span v-if="!publicSettings.XPACK_LICENSE_IS_VALID"> GPLv2. </span>
</div>
<div v-if="!publicSettings.XPACK_LICENSE_IS_VALID" style="padding-left:20px;">
<strong>Copyright</strong> FIT2CLOUD 飞致云 © 2014-{{ curYear }}
<div style="padding-left:20px;">
{{ publicSettings.XPACK_LICENSE_INFO.corporation }}
</div>
</div>
</template>

View File

@@ -17,9 +17,11 @@ export default {
return {
url: '/api/v1/assets/backup/',
fields: [
[this.$t('common.Basic'), ['name', 'types']],
[this.$t('common.Basic'), ['name']],
[this.$t('xpack.AccountBackupPlan.Types'), ['types']],
[this.$t('xpack.AccountBackupPlan.Backup'), ['recipients']],
[this.$t('xpack.Timer'), ['is_periodic', 'crontab', 'interval']],
[this.$t('common.Other'), ['recipients', 'comment']]
[this.$t('common.Other'), ['comment']]
],
initial: {
is_periodic: true,
@@ -32,7 +34,7 @@ export default {
interval: fields.interval,
recipients: fields.recipients,
types: {
label: this.$t('perms.Actions'),
label: this.$t('xpack.AccountBackupPlan.Types'),
component: FormTypeField
}
},

View File

@@ -33,7 +33,8 @@ export default {
}
],
actions: {
detailApiUrl: `/api/v1/assets/backup/${this.$route.params.id}/`
detailApiUrl: `/api/v1/assets/backup/${this.$route.params.id}/`,
deleteApiUrl: `/api/v1/assets/backup/${this.$route.params.id}/`
}
}
}

View File

@@ -37,11 +37,11 @@ export default {
children: [
{
id: 'asset',
label: this.$t('assets.Assets')
label: this.$t('route.AssetAccount')
},
{
id: 'application',
label: this.$t('assets.Applications')
label: this.$t('route.ApplicationAccount')
}
]
}

View File

@@ -27,7 +27,7 @@ export default {
},
fields: [
[this.$t('common.Basic'), ['name', 'protocol', 'username', 'type']],
[this.$t('common.Auth'), ['password', 'private_key']],
[this.$t('common.Auth'), ['password', 'private_key', 'passphrase']],
[this.$t('common.Command filter'), ['cmd_filters']],
[this.$t('common.Other'), ['priority', 'sftp_root', 'comment']]
],
@@ -63,6 +63,9 @@ export default {
}
}
},
passphrase: {
component: UpdateToken
},
private_key: {
component: UploadKey
},

View File

@@ -15,10 +15,18 @@ export default {
return {
tableConfig: {
url: '/api/v1/ops/tasks/',
columns: ['name', 'runtimes', 'host_amount', 'is_success', 'date_start', 'time', 'actions'],
columns: [
'name', 'runtimes', 'host_amount', 'is_success',
'date_start', 'time', 'actions'
],
columnsMeta: {
name: {
showOverflowTooltip: true
showOverflowTooltip: true,
formatterArgs: {
getTitle({ row }) {
return row['display_name']
}
}
},
runtimes: {
label: this.$t('ops.runTimes'),

View File

@@ -124,6 +124,7 @@ export default {
{
value: 'state',
label: this.$t('tickets.action'),
type: 'choice',
children: [
{
default: true,

View File

@@ -7,22 +7,28 @@
<div class="content">
<el-row class="item">
<el-col>
<span class="item-label">{{ $t('tickets.status') }}</span>
<span class="item-value">
{{ session.is_finished ? $t('sessions.noAlive') : $t('sessions.alive') }}
</span>
<span class="item-label">{{ $t('sessions.SessionID') }}</span>
<span class="item-value">{{ session.id }}</span>
</el-col>
<el-col>
<span class="item-label">{{ $t('sessions.target') }}</span>
<span class="item-label">{{ $t('sessions.TargetResources') }}</span>
<span class="item-value">{{ session.asset }}</span>
</el-col>
<el-col>
<span class="item-label">{{ $t('tickets.SystemUser') }}</span>
<span class="item-value">{{ session.system_user }}</span>
</el-col>
<el-col>
<span class="item-label">{{ $t('sessions.UseProtocol') }}</span>
<span class="item-value">{{ session.protocol }}</span>
</el-col>
<el-col>
<span class="item-label">{{ $t('sessions.remoteAddr') }}</span>
<span class="item-value">{{ session.remote_addr }}</span>
</el-col>
<el-col>
<span class="item-label">{{ $t('sessions.protocol') }}</span>
<span class="item-value">{{ session.protocol }}</span>
<span class="item-label">{{ $t('sessions.SessionState') }}</span>
<span class="item-value cur-color" :style="{ 'background': session.is_finished ? '#ed5565' : '#1ab394' }" />
</el-col>
</el-row>
</div>
@@ -72,7 +78,7 @@ export default {
this.init()
}
},
destroyed() {
beforeDestroy() {
clearTimeout(this.curTimer)
},
methods: {
@@ -86,6 +92,9 @@ export default {
}).then(res => {
this.session = res || {}
}).catch(err => {
this.curTimer = setTimeout(() => {
this.init()
}, 1400)
this.$log.debug('error', err)
}).finally(() => {
this.loading = false
@@ -137,4 +146,11 @@ export default {
.bottom-btn {
text-align: right;
}
.cur-color {
display: inline-block;
width: 12px;
height: 12px;
vertical-align: text-top;
border-radius: 50%;
}
</style>