mirror of
https://github.com/jumpserver/lina.git
synced 2026-01-13 19:35:24 +00:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf9da2353c | ||
|
|
3993b508bf | ||
|
|
73ee639542 | ||
|
|
71726cedd9 | ||
|
|
bd959224d9 | ||
|
|
2877e5e6ac | ||
|
|
b112a9c518 | ||
|
|
e83afb02fb | ||
|
|
fadc3f8cb0 | ||
|
|
fb4a940d2d | ||
|
|
2d3d1396ce | ||
|
|
a231623e77 | ||
|
|
cdf46e6369 | ||
|
|
e58cbb33ca | ||
|
|
26fcbb5bc7 | ||
|
|
f8cad13091 | ||
|
|
62b1555922 | ||
|
|
6ff32568bc | ||
|
|
d0460c62df | ||
|
|
d14957545a | ||
|
|
15b561a81e | ||
|
|
fd47bf0484 | ||
|
|
543dc1d31b | ||
|
|
980ffb14d1 | ||
|
|
be9cef64af |
3
.github/workflows/release-drafter.yml
vendored
3
.github/workflows/release-drafter.yml
vendored
@@ -31,6 +31,9 @@ jobs:
|
||||
config-name: release-config.yml
|
||||
version: ${{ steps.get_version.outputs.TAG }}
|
||||
tag: ${{ steps.get_version.outputs.TAG }}
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14.16'
|
||||
|
||||
build-and-release:
|
||||
needs: create-realese
|
||||
|
||||
@@ -16,7 +16,7 @@ ARG VERSION
|
||||
ENV VERSION=$VERSION
|
||||
ADD . /data
|
||||
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn,sharing=locked,id=lina \
|
||||
sed -i "s@<strong> version-dev </strong>@<strong> ${VERSION} </strong>@g" src/layout/components/NavHeader/About.vue \
|
||||
sed -i "s@version-dev@${VERSION}@g" src/layout/components/NavHeader/About.vue \
|
||||
&& yarn build
|
||||
|
||||
FROM nginx:alpine
|
||||
|
||||
@@ -103,7 +103,7 @@ export default {
|
||||
secretInfo: {},
|
||||
versions: '-',
|
||||
showSecret: false,
|
||||
sshKeyFingerprint: '',
|
||||
sshKeyFingerprint: '-',
|
||||
historyCount: 0,
|
||||
showPasswordHistoryDialog: false
|
||||
}
|
||||
@@ -128,7 +128,7 @@ export default {
|
||||
getAuthInfo() {
|
||||
this.$axios.get(this.url, { disableFlashErrorMsg: true }).then(resp => {
|
||||
this.secretInfo = resp
|
||||
this.sshKeyFingerprint = resp?.spec_info
|
||||
this.sshKeyFingerprint = resp?.spec_info?.ssh_key_fingerprint || '-'
|
||||
this.showSecret = true
|
||||
})
|
||||
},
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
>
|
||||
<span class="announcement-main">{{ announcement.content }}</span>
|
||||
<span v-if="announcement.link">
|
||||
<el-link :href="announcement.link" target="_blank" class="link-more">
|
||||
<el-link :href="announcement.link" target="_blank" type="info" class="link-more">
|
||||
{{ $t('common.ViewMore') }}
|
||||
</el-link>
|
||||
<i class="fa fa-external-link" />
|
||||
<i class="fa fa-external-link icon" />
|
||||
</span>
|
||||
</el-alert>
|
||||
</template>
|
||||
@@ -67,5 +67,7 @@ export default {
|
||||
margin-left: 10px;
|
||||
border-bottom: solid 1px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -5,20 +5,20 @@
|
||||
top="1vh"
|
||||
v-bind="$attrs"
|
||||
width="80vw"
|
||||
@close="handleClose"
|
||||
@cancel="handleCancel"
|
||||
@close="handleClose"
|
||||
@confirm="handleConfirm"
|
||||
v-on="$listeners"
|
||||
>
|
||||
<AssetTreeTable
|
||||
ref="ListPage"
|
||||
v-bind="$attrs"
|
||||
:header-actions="headerActions"
|
||||
:table-config="tableConfig"
|
||||
:url="baseUrl"
|
||||
:node-url="baseNodeUrl"
|
||||
:table-config="tableConfig"
|
||||
:tree-url="`${baseNodeUrl}children/tree/`"
|
||||
:url="baseUrl"
|
||||
class="tree-table"
|
||||
v-bind="$attrs"
|
||||
/>
|
||||
</Dialog>
|
||||
</template>
|
||||
@@ -172,10 +172,11 @@ export default {
|
||||
|
||||
.left {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.treebox {
|
||||
height: 70vh;
|
||||
}
|
||||
.right {
|
||||
height: calc(100vh - 200px);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.mini {
|
||||
@@ -188,8 +189,8 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.page ::v-deep .treebox {
|
||||
height: inherit !important;
|
||||
.page ::v-deep .treebox .ztree {
|
||||
|
||||
}
|
||||
|
||||
.asset-select-dialog ::v-deep .el-icon-circle-check {
|
||||
|
||||
@@ -11,12 +11,12 @@
|
||||
<AssetSelectDialog
|
||||
v-if="dialogVisible"
|
||||
ref="dialog"
|
||||
:base-node-url="baseNodeUrl"
|
||||
:base-url="baseUrl"
|
||||
:tree-url-query="treeUrlQuery"
|
||||
:value="value"
|
||||
:visible.sync="dialogVisible"
|
||||
v-bind="$attrs"
|
||||
:tree-url-query="treeUrlQuery"
|
||||
:base-url="baseUrl"
|
||||
:base-node-url="baseNodeUrl"
|
||||
@cancel="handleCancel"
|
||||
@confirm="handleConfirm"
|
||||
v-on="$listeners"
|
||||
@@ -143,8 +143,8 @@ export default {
|
||||
.left {
|
||||
padding: 5px;
|
||||
|
||||
.treebox {
|
||||
height: 70vh;
|
||||
.ztree {
|
||||
height: calc(100vh - 250px) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ export default {
|
||||
buttonSize: 'mini',
|
||||
tableAttrs: {
|
||||
stripe: false, // 斑马纹表格
|
||||
border: false, // 表格边框
|
||||
border: true, // 表格边框
|
||||
fit: true, // 宽度自适应,
|
||||
tooltipEffect: 'dark',
|
||||
rowClassName: ({ row }) => {
|
||||
@@ -182,7 +182,7 @@ export default {
|
||||
line-height: 1.5;
|
||||
padding: 6px 0;
|
||||
font-size: 13px;
|
||||
|
||||
border-right: none;
|
||||
* {
|
||||
vertical-align: middle;
|
||||
}
|
||||
@@ -204,7 +204,7 @@ export default {
|
||||
background-color: #ffffff;
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
|
||||
border-right: none;
|
||||
.cell {
|
||||
white-space: nowrap !important;
|
||||
overflow: hidden;
|
||||
|
||||
@@ -408,13 +408,13 @@ export default {
|
||||
}
|
||||
|
||||
.treebox {
|
||||
height: 70vh;
|
||||
background-color: transparent;
|
||||
|
||||
> > > .ztree {
|
||||
>>> .ztree {
|
||||
overflow: auto;
|
||||
background-color: transparent;
|
||||
height: calc(100% - 50px);
|
||||
max-height: calc(100vh - 220px);
|
||||
min-height: 500px;
|
||||
|
||||
li {
|
||||
background-color: transparent !important;
|
||||
|
||||
@@ -438,10 +438,12 @@
|
||||
"ReLoginErr": "Login time has exceeded 5 minutes, please login again"
|
||||
},
|
||||
"common": {
|
||||
"DownloadCenter": "Download center",
|
||||
"RestoreDefault": "Restore default",
|
||||
"ImportOrg": "Import organization",
|
||||
"CommunityEdition": "Community Edition",
|
||||
"EnterpriseEdition": "Enterprise Edition",
|
||||
"Product": "Product",
|
||||
"About": "About",
|
||||
"DownloadCenter": "Download center",
|
||||
"ImportOrg": "Import organization",
|
||||
"PermissionCompany": "Permission company",
|
||||
"ApproverNumbers": "Approver numbers",
|
||||
"ConvenientOperate": "Convenient operate",
|
||||
@@ -842,6 +844,8 @@
|
||||
"TotalJobLog": "Total job log"
|
||||
},
|
||||
"ops": {
|
||||
"Save": "Save",
|
||||
"Reset": "Reset",
|
||||
"SystemError": "System Error",
|
||||
"RunasHelpText": "Fill in the user name to run the script",
|
||||
"RunasPolicyHelpText": "Indicates the account selection strategy when there is no running user on the current asset",
|
||||
@@ -970,6 +974,7 @@
|
||||
"FailedAsset": "Failed asset",
|
||||
"AdhocDetail": "Adhoc detail",
|
||||
"RequiredContent": "Please input the command",
|
||||
"RequiredRunas": "Please input the run user",
|
||||
"DateFinished": "Date finished",
|
||||
"DeleteFile": "Delete file",
|
||||
"AssetAmount": "Assets amount",
|
||||
|
||||
@@ -840,6 +840,8 @@
|
||||
"Weekly": "週ごと"
|
||||
},
|
||||
"ops": {
|
||||
"Save": "保存#ホゾン#",
|
||||
"Reset": "リストア",
|
||||
"SystemError": "システムエラー",
|
||||
"RunasHelpText": "スクリプトを実行するユーザー名を入力",
|
||||
"RunasPolicyHelpText": "現在の資産にこの実行ユーザーが存在しない場合にアカウント選択ポリシーを実行することを示します",
|
||||
@@ -966,6 +968,7 @@
|
||||
"FailedAsset": "失敗したアセット",
|
||||
"AdhocDetail": "コマンド詳細",
|
||||
"RequiredContent": "コマンドを入力してください",
|
||||
"RequiredRunas": "実行ユーザーを入力してください",
|
||||
"DateFinished": "完了時間",
|
||||
"DeleteFile": "ファイルの削除",
|
||||
"AssetAmount": "資産",
|
||||
|
||||
@@ -434,6 +434,9 @@
|
||||
"ReLoginErr": "登录时长已超过 5 分钟,请重新登录"
|
||||
},
|
||||
"common": {
|
||||
"CommunityEdition": "社区版",
|
||||
"EnterpriseEdition": "企业版",
|
||||
"Product": "产品",
|
||||
"RestoreDefault": "恢复默认",
|
||||
"DownloadCenter": "下载中心",
|
||||
"ImportOrg": "导入组织",
|
||||
@@ -836,6 +839,8 @@
|
||||
"Weekly": "按周"
|
||||
},
|
||||
"ops": {
|
||||
"Save": "保存",
|
||||
"Reset": "还原",
|
||||
"SystemError": "系统错误",
|
||||
"RunasHelpText": "填写运行脚本的用户名",
|
||||
"RunasPolicyHelpText": "表示当前资产上没此运行用户时,采取什么账号选择策略",
|
||||
@@ -865,6 +870,7 @@
|
||||
"UploadPlaybook": "上传 Playbook",
|
||||
"RequiredAssetOrNode": "请至少选择一个资产或节点",
|
||||
"RequiredContent": "请输入命令",
|
||||
"RequiredRunas": "请输入运行用户",
|
||||
"RequiredEntryFile": "此文件作为运行的入口文件,必须存在",
|
||||
"ScrollToTop": "滚动到顶部",
|
||||
"ScrollToBottom": "滚动到底部",
|
||||
|
||||
3
src/icons/svg/direction-left.svg
Normal file
3
src/icons/svg/direction-left.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<!-- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#646A73" d="M4.856 11H16.5a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5H4.814l5.025 5.024a.5.5 0 0 1 0 .707l-.707.708a.5.5 0 0 1-.707 0L2.42 13.435l-.006.008L1 12.028l.008-.007L1 12.014 2.414 10.6l.008.007 6.003-6.003a.5.5 0 0 1 .707 0l.707.706a.5.5 0 0 1 0 .708L4.856 11ZM21.5 20a.5.5 0 0 1-.5-.5v-15a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-1Z"/><path fill-opacity=".2" fill="#000" d="M4.856 11H16.5a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5H4.814l5.025 5.024a.5.5 0 0 1 0 .707l-.707.708a.5.5 0 0 1-.707 0L2.42 13.435l-.006.008L1 12.028l.008-.007L1 12.014 2.414 10.6l.008.007 6.003-6.003a.5.5 0 0 1 .707 0l.707.706a.5.5 0 0 1 0 .708L4.856 11ZM21.5 20a.5.5 0 0 1-.5-.5v-15a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-1Z"/></svg> -->
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#646A73" d="M19.144 13H7.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h11.686l-5.024-5.025a.5.5 0 0 1 0-.707l.706-.707a.5.5 0 0 1 .708 0l6.003 6.004.007-.008 1.41 1.41a.005.005 0 0 1 0 .008.005.005 0 0 0 0 .007.005.005 0 0 1 0 .007l-1.41 1.411-.008-.007-6.002 6.003a.5.5 0 0 1-.708 0l-.707-.706a.5.5 0 0 1 0-.708L19.144 13ZM2.5 4a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-15a.5.5 0 0 1 .5-.5h1Z"/><path fill-opacity=".2" fill="#000" d="M19.144 13H7.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h11.686l-5.024-5.025a.5.5 0 0 1 0-.707l.706-.707a.5.5 0 0 1 .708 0l6.003 6.004.007-.008 1.41 1.41a.005.005 0 0 1 0 .008.005.005 0 0 0 0 .007.005.005 0 0 1 0 .007l-1.41 1.411-.008-.007-6.002 6.003a.5.5 0 0 1-.708 0l-.707-.706a.5.5 0 0 1 0-.708L19.144 13ZM2.5 4a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-15a.5.5 0 0 1 .5-.5h1Z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -3,7 +3,7 @@
|
||||
v-if="iVisible"
|
||||
:show-cancel="false"
|
||||
:show-confirm="false"
|
||||
:title="''"
|
||||
:title="$tc('common.About')"
|
||||
:visible.sync="iVisible"
|
||||
class="about-dialog"
|
||||
top="10%"
|
||||
@@ -11,10 +11,12 @@
|
||||
>
|
||||
<div class="box">
|
||||
<div class="head">
|
||||
<img :src="logoTextSrc" alt="logo" class="sidebar-logo-text">
|
||||
<img :src="logoSrc" alt="logo" class="sidebar-logo-text" height="70">
|
||||
</div>
|
||||
<div class="text">{{ $tc('ops.version') }}:<strong> version-dev </strong> <span v-if="!publicSettings.XPACK_LICENSE_IS_VALID"> GPLv3. </span></div>
|
||||
<div class="text">{{ $tc('common.PermissionCompany') }}:{{ corporation }}</div>
|
||||
<tr v-for="item of items" v-show="item.has || item.has === undefined" :key="item.label" class="text">
|
||||
<td class="title">{{ item.label }}: </td>
|
||||
<td class="value">{{ item.value }}</td>
|
||||
</tr>
|
||||
<el-divider class="divider" />
|
||||
<div class="text">
|
||||
<span v-for="(i, index) in actions" :key="index" class="text-link" @click="onClick(i.name)">
|
||||
@@ -42,7 +44,6 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
logoTextSrc: require('@/assets/img/logo_text_green.png'),
|
||||
actions: [
|
||||
{
|
||||
name: 'github',
|
||||
@@ -69,8 +70,46 @@ export default {
|
||||
return this.visible
|
||||
}
|
||||
},
|
||||
versionType() {
|
||||
return this.hasXPack ? this.$t('common.EnterpriseEdition') : this.$tc('common.CommunityEdition') + ' GPLv3'
|
||||
},
|
||||
items() {
|
||||
return [
|
||||
{
|
||||
label: this.$t('common.Product'),
|
||||
value: 'JumpServer ' + this.versionType
|
||||
},
|
||||
{
|
||||
label: this.$t('common.Version'),
|
||||
value: 'version-dev'
|
||||
},
|
||||
{
|
||||
label: this.$t('common.PermissionCompany'),
|
||||
value: this.corporation,
|
||||
has: this.hasXPack
|
||||
},
|
||||
{
|
||||
label: 'Copyright',
|
||||
value: this.copyright,
|
||||
has: !this.hasXPack
|
||||
}
|
||||
]
|
||||
},
|
||||
corporation() {
|
||||
return this.publicSettings.XPACK_LICENSE_INFO.corporation
|
||||
},
|
||||
copyright() {
|
||||
if (this.corporation.indexOf('FIT2CLOUD 飞致云') > -1) {
|
||||
return this.corporation
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
logoSrc() {
|
||||
return this.publicSettings['INTERFACE']['logo_logout']
|
||||
},
|
||||
hasXPack() {
|
||||
return this.publicSettings.XPACK_LICENSE_IS_VALID
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -90,29 +129,36 @@ export default {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.about-dialog {
|
||||
&>>> .el-dialog__header {
|
||||
background-color: #FAFBFD;
|
||||
border-bottom: none;
|
||||
&.dialog >>> .el-dialog__body {
|
||||
padding: 20px 30px;
|
||||
}
|
||||
&>>> .el-dialog__body {
|
||||
background-color: #FAFBFD;
|
||||
padding: 10px 40px 20px;
|
||||
}
|
||||
&>>> .el-dialog__footer {
|
||||
padding: 0;
|
||||
&.dialog >>> .el-dialog__footer {
|
||||
border-top: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.head {
|
||||
text-align: center;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.box {
|
||||
.text {
|
||||
margin-bottom: 10px;
|
||||
line-height: 2;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
|
||||
.title {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.value {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
span {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
:value="currentOrgId"
|
||||
class="org-select organization"
|
||||
filterable
|
||||
popper-class="switch-org"
|
||||
@change="changeOrg"
|
||||
>
|
||||
<template slot="prefix">
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<Logo v-if="showLogo" :collapse="false" />
|
||||
</div>
|
||||
</li>
|
||||
<li v-if="showOrganize()" class="left-item" style="margin-left: 21px">
|
||||
<li v-if="showOrganize()" class="left-item" style="margin-left: 21px; vertical-align: middle;">
|
||||
<Organization class="organization" />
|
||||
</li>
|
||||
</ul>
|
||||
@@ -109,7 +109,7 @@ export default {
|
||||
.left-item {
|
||||
line-height: $header-height;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
vertical-align: top;
|
||||
|
||||
& > > > .el-submenu__title {
|
||||
font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
|
||||
@@ -56,7 +56,7 @@ export default {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
line-height: 48px;
|
||||
// background: #2b2f3a;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
|
||||
@@ -3,19 +3,17 @@
|
||||
<div class="nav-header">
|
||||
<div class="active-mobile">
|
||||
<Organization v-if="$hasLicense()" class="organization" />
|
||||
<ViewSwitcher class="mobile-view-switch" mode="vertical" />
|
||||
</div>
|
||||
<div class="nav-title">
|
||||
<span
|
||||
v-show="!isCollapse"
|
||||
style="margin-left: 5px;"
|
||||
@click="viewShown = !viewShown"
|
||||
>
|
||||
{{ isRouteMeta.title || '' }}
|
||||
</span>
|
||||
|
||||
<span class="switch-view active-switch-view">
|
||||
<el-popover
|
||||
v-model="viewShown"
|
||||
placement="right-start"
|
||||
trigger="hover"
|
||||
width="160"
|
||||
@@ -24,6 +22,9 @@
|
||||
<svg-icon slot="reference" class="icon" icon-class="switch" />
|
||||
</el-popover>
|
||||
</span>
|
||||
<span class="switch-view show-switch-view">
|
||||
<svg-icon class="icon" icon-class="switch" @click="toggleSwitch" />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<el-scrollbar class="menu-wrap" wrap-class="scrollbar-wrapper">
|
||||
@@ -53,6 +54,9 @@
|
||||
<Hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="mobile-menu" :class="{'is-show': viewShown}" @click="viewShown = false">
|
||||
<ViewSwitcher :mode="'vertical'" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -124,6 +128,9 @@ export default {
|
||||
methods: {
|
||||
toggleSideBar() {
|
||||
this.$store.dispatch('app/toggleSideBar')
|
||||
},
|
||||
toggleSwitch() {
|
||||
this.viewShown = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -217,26 +224,57 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.is-show {
|
||||
display: block!important;;
|
||||
}
|
||||
|
||||
.mobile-menu {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding-top: 10px;
|
||||
background: #fff;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.show-switch-view {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.active-mobile {
|
||||
display: none;
|
||||
|
||||
& > > > .organization {
|
||||
height: 48px;
|
||||
line-height: 48px;
|
||||
padding-left: 8px;
|
||||
background: transparent;
|
||||
color: #fff;
|
||||
border-bottom: 1px solid rgba(31, 35, 41, .15);
|
||||
}
|
||||
|
||||
& > > > .menu-main {
|
||||
margin-left: -10px;
|
||||
.el-input--prefix .el-input__inner {
|
||||
height: 48px!important;
|
||||
line-height: 48px!important;
|
||||
}
|
||||
.svg-icon {
|
||||
color: #FFF!important;
|
||||
margin-right:0px!important;
|
||||
}
|
||||
}
|
||||
|
||||
& > > > .title-label {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.mobile-view-switch > > > .el-menu-item.is-active {
|
||||
color: #ffffff;
|
||||
.mobile-view-switch {
|
||||
&>>> .el-menu-item.is-active {
|
||||
color: var(--menu-text-active)!important;
|
||||
.svg-icon {
|
||||
color: var(--menu-text-active)!important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,7 +283,10 @@ export default {
|
||||
display: block;
|
||||
}
|
||||
.active-switch-view {
|
||||
display: none !important;;
|
||||
display: none!important;
|
||||
}
|
||||
.show-switch-view {
|
||||
display: block!important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -207,3 +207,10 @@ input[type=file] {
|
||||
.el-table .el-table__row .show-full-content > .cell {
|
||||
white-space: normal!important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 992px) {
|
||||
.el-select-dropdown.switch-org {
|
||||
left: 0!important;
|
||||
width: 100vw!important;
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
initial: {
|
||||
is_periodic: true,
|
||||
is_periodic: this.$store.getters.hasValidLicense,
|
||||
password_rules: {
|
||||
length: 30
|
||||
},
|
||||
@@ -64,6 +64,10 @@ export default {
|
||||
el: {
|
||||
readonly: true
|
||||
}
|
||||
},
|
||||
is_periodic: {
|
||||
type: 'switch',
|
||||
disabled: !this.$store.getters.hasValidLicense
|
||||
}
|
||||
},
|
||||
createSuccessNextRoute: { name: 'AccountPushList' },
|
||||
|
||||
@@ -185,8 +185,13 @@ export default {
|
||||
}
|
||||
>>> .el-collapse {
|
||||
border: none;
|
||||
.el-collapse-item:last-child .el-collapse-item__header {
|
||||
border: none;
|
||||
.el-collapse-item:last-child {
|
||||
.el-collapse-item__header {
|
||||
border: none;
|
||||
}
|
||||
.el-collapse-item__wrap {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -41,13 +41,13 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
days: localStorage.getItem('auditDays') || '7'
|
||||
days: localStorage.getItem('dashboardDays') || '7'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onChange(val) {
|
||||
this.days = val
|
||||
localStorage.setItem('auditDays', val)
|
||||
localStorage.setItem('dashboardDays', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,10 @@ export default {
|
||||
}
|
||||
},
|
||||
data() {
|
||||
const days = localStorage.getItem('dashboardDays') || '7'
|
||||
return {
|
||||
tableData: [],
|
||||
tableUrl: this.config.url + `&days=7`
|
||||
tableUrl: this.config.url + `&days=${days}`
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -61,6 +62,7 @@ export default {
|
||||
onChange(val) {
|
||||
this.tableUrl = this.config.url + `&days=${val}`
|
||||
this.getList()
|
||||
localStorage.setItem('dashboardDays', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,12 @@
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
days: {
|
||||
type: String,
|
||||
default: () => {
|
||||
return localStorage.getItem('dashboardDays') || '7'
|
||||
}
|
||||
},
|
||||
options: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
@@ -37,7 +43,7 @@ export default {
|
||||
}
|
||||
]
|
||||
return {
|
||||
select: localStorage.getItem('auditDays') || '7',
|
||||
select: this.days,
|
||||
iOptions: this.options.length > 0 ? this.options : defaultOptions
|
||||
}
|
||||
},
|
||||
|
||||
@@ -368,6 +368,10 @@ export default {
|
||||
this.$message.error(this.$tc('ops.RequiredContent'))
|
||||
return
|
||||
}
|
||||
if (!this.runas) {
|
||||
this.$message.error(this.$tc('ops.RequiredRunas'))
|
||||
return
|
||||
}
|
||||
|
||||
const data = {
|
||||
assets: hosts,
|
||||
|
||||
@@ -90,10 +90,12 @@ export default {
|
||||
name: 'run',
|
||||
can: this.$hasPerm('ops.add_jobexecution') && !this.$store.getters.currentOrgIsRoot,
|
||||
callback: ({ row }) => {
|
||||
const params = JSON.parse(row.parameters_define)
|
||||
if (Object.keys(params).length > 0) {
|
||||
this.item = row
|
||||
this.showJobRunDialog = true
|
||||
if (row?.use_parameter_define && row?.parameters_define) {
|
||||
const params = JSON.parse(row.parameters_define)
|
||||
if (Object.keys(params).length > 0) {
|
||||
this.item = row
|
||||
this.showJobRunDialog = true
|
||||
}
|
||||
} else {
|
||||
this.runJob(row)
|
||||
}
|
||||
|
||||
@@ -78,6 +78,7 @@ export default {
|
||||
type: 'button',
|
||||
align: 'left',
|
||||
icon: 'fa fa-save',
|
||||
tip: this.$tc('ops.Save'),
|
||||
el: {
|
||||
type: 'primary'
|
||||
},
|
||||
@@ -88,7 +89,8 @@ export default {
|
||||
reset: {
|
||||
type: 'button',
|
||||
align: 'left',
|
||||
icon: 'fa fa-refresh',
|
||||
icon: 'fa fa-undo',
|
||||
tip: this.$tc('ops.Reset'),
|
||||
el: {
|
||||
type: 'primary'
|
||||
},
|
||||
|
||||
@@ -37,12 +37,6 @@ export default {
|
||||
'OTP_ISSUER_NAME', 'OTP_VALID_WINDOW'
|
||||
]
|
||||
],
|
||||
[
|
||||
this.$t('setting.Ops'),
|
||||
[
|
||||
'WINDOWS_SSH_DEFAULT_SHELL'
|
||||
]
|
||||
],
|
||||
[
|
||||
this.$t('setting.Perm'),
|
||||
[
|
||||
|
||||
@@ -141,7 +141,7 @@ export default {
|
||||
'ops.view_job': ['assets.view_asset', 'assets.view_node', 'ops.view_adhoc', 'ops.view_playbook'],
|
||||
'ops.change_job': ['assets.view_asset', 'assets.view_node', 'ops.view_adhoc', 'ops.view_playbook'],
|
||||
'ops.add_job': ['assets.view_asset', 'assets.view_node', 'ops.view_adhoc', 'ops.view_playbook'],
|
||||
'ops.add_jobexecution': ['ops.view_celerytask'],
|
||||
'ops.add_jobexecution': ['ops.view_celerytaskexecution'],
|
||||
'xpack.add_syncinstancetask': [
|
||||
'assets.view_asset', 'assets.view_node', 'assets.view_systemuser',
|
||||
'xpack.view_account'
|
||||
|
||||
@@ -74,7 +74,7 @@ export default {
|
||||
width: '100px',
|
||||
label: this.$t('users.OrgRoles'),
|
||||
formatter: (row) => {
|
||||
return row['system_roles'].map(item => item['display_name']).join(', ') || '-'
|
||||
return row['org_roles'].map(item => item['display_name']).join(', ') || '-'
|
||||
},
|
||||
filters: [],
|
||||
columnKey: 'org_roles',
|
||||
|
||||
@@ -12,7 +12,7 @@ else
|
||||
fi
|
||||
|
||||
function change_version() {
|
||||
sedi "s@<strong> version-dev </strong>@<strong> ${VERSION} </strong>@g" "${project_dir}/src/layout/components/NavHeader/About.vue" || return 2
|
||||
sedi "s@version-dev@${VERSION}@g" "${project_dir}/src/layout/components/NavHeader/About.vue" || return 2
|
||||
}
|
||||
|
||||
function install_deps() {
|
||||
|
||||
Reference in New Issue
Block a user