Skip to content

Commit 87bcafa

Browse files
committed
ui fixes
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent 316fdbc commit 87bcafa

File tree

5 files changed

+54
-6
lines changed

5 files changed

+54
-6
lines changed

ui/public/locales/en.json

+6
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@
518518
"label.clear.list": "Clear list",
519519
"label.clear.notification": "Clear notification",
520520
"label.clientid": "Provider Client ID",
521+
"label.clientaddress": "Client Address",
521522
"label.close": "Close",
522523
"label.cloud.managed": "CloudManaged",
523524
"label.cloudian.admin.password": "Admin Service Password",
@@ -582,6 +583,7 @@
582583
"label.confirmdeclineinvitation": "Are you sure you want to decline this project invitation?",
583584
"label.confirmpassword": "Confirm password",
584585
"label.confirmpassword.description": "Please type the same password again.",
586+
"label.connected": "Connected Clients",
585587
"label.connected.agents": "Connected Agents",
586588
"label.connect": "Connect",
587589
"label.connectiontimeout": "Connection timeout",
@@ -723,6 +725,7 @@
723725
"label.delete.internal.lb": "Delete internal LB",
724726
"label.delete.ipv4.subnet": "Delete IPv4 subnet",
725727
"label.delete.ip.v6.prefix": "Delete IPv6 prefix",
728+
"label.delete.logs.web.sessions": "Delete Logs Web Session",
726729
"label.delete.netscaler": "Delete NetScaler",
727730
"label.delete.niciranvp": "Remove Nvp controller",
728731
"label.delete.opendaylight.device": "Delete OpenDaylight controller",
@@ -999,6 +1002,7 @@
9991002
"label.shared.filesystems": "Shared FileSystems",
10001003
"label.filesystem": "Filesystem",
10011004
"label.filter": "Filter",
1005+
"label.filters": "Filters",
10021006
"label.filter.annotations.all": "All comments",
10031007
"label.filter.annotations.self": "Created by me",
10041008
"label.filterby": "Filter by",
@@ -1373,6 +1377,7 @@
13731377
"label.login.portal": "Portal login",
13741378
"label.login.single.signon": "Single sign-on",
13751379
"label.logout": "Logout",
1380+
"label.logs.web.sessions": "Logs Web Sessions",
13761381
"label.lun": "LUN",
13771382
"label.lun.number": "LUN #",
13781383
"label.lxc": "LXC",
@@ -2990,6 +2995,7 @@
29902995
"message.delete.failed": "Delete fail",
29912996
"message.delete.gateway": "Please confirm you want to delete the gateway.",
29922997
"message.delete.ip.v6.prefix.processing": "Deleting IPv6 prefix...",
2998+
"message.delete.logs.web.session": "Deleting logs web session...",
29932999
"message.delete.port.forward.processing": "Deleting port forwarding rule...",
29943000
"message.delete.project": "Are you sure you want to delete this project?",
29953001
"message.delete.rule.processing": "Deleting rule...",

ui/src/components/view/ListView.vue

+9
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,15 @@
128128
@exec-action="$parent.execAction"/>
129129
<router-link :to="{ path: $route.path + '/' + record.id }">{{ text }}</router-link>
130130
</template>
131+
<template v-if="column.key === 'filters'">
132+
<QuickView
133+
style="margin-left: 5px"
134+
:actions="actions"
135+
:resource="record"
136+
:enabled="quickViewEnabled() && actions.length > 0 && columns && columns[0].dataIndex === 'filters' "
137+
@exec-action="$parent.execAction"/>
138+
<router-link :to="{ path: $route.path + '/' + record.id }">{{ record.filters.join(', ') }}</router-link>
139+
</template>
131140
<template v-if="column.key === 'username'">
132141
<span v-if="$showIcon() && !['vm', 'vnfapp'].includes($route.path.split('/')[1])" style="margin-right: 5px">
133142
<resource-icon v-if="$showIcon() && record.icon && record.icon.base64image" :image="record.icon.base64image" size="2x"/>

ui/src/components/view/LogsConsole.vue

+7-6
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<!-- Container that holds both the scrollable content and the fixed footer -->
3939
<div class="drawer-container">
4040
<div class="tabs-wrapper">
41-
<a-tabs :activeKey="activeTabKey">
41+
<a-tabs v-model:activeKey="activeTabKey">
4242
<a-tab-pane
4343
v-for="tab in tabs"
4444
:key="tab.key"
@@ -176,7 +176,7 @@ export default {
176176
this.prepareTabsAndOpenWebSockets(session.websocket)
177177
}
178178
}).catch(error => {
179-
console.log(error)
179+
this.$notifyError(error)
180180
}).finally(() => {
181181
this.loading = false
182182
if (this.tabsValid) {
@@ -185,7 +185,7 @@ export default {
185185
})
186186
},
187187
prepareTabsAndOpenWebSockets (webSocketsDetails) {
188-
this.tabs = []
188+
var wsTabs = []
189189
for (var webSocketDetails of webSocketsDetails) {
190190
var tab = {
191191
key: webSocketDetails.managementserverid,
@@ -196,16 +196,17 @@ export default {
196196
logsErrorCount: 0,
197197
logsWarningCount: 0
198198
}
199-
this.tabs.push(tab)
199+
wsTabs.push(tab)
200200
}
201+
this.tabs = wsTabs.sort((a, b) => a.title.localeCompare(b.title))
201202
this.openWebSockets()
202203
},
203204
openWebSockets () {
204205
this.closeWebSockets()
205206
if (!this.tabsValid) {
206207
return
207208
}
208-
for (var tab of this.tabs) {
209+
for (const tab of this.tabs) {
209210
tab.webSocket = new WebSocket(tab.webSocketUrl)
210211
211212
tab.webSocket.addEventListener('message', (event) => {
@@ -264,7 +265,7 @@ export default {
264265
tempDiv.innerHTML = htmlString
265266
const plainTextData = tempDiv.textContent || tempDiv.innerText || ''
266267
var blob = new Blob([plainTextData], { type: 'text/plain' })
267-
var filename = this.filters.join('-') + '.log'
268+
var filename = this.currentTab.title + '-' + this.filters.join('-') + '.log'
268269
if (window.navigator.msSaveOrOpenBlob) {
269270
window.navigator.msSaveBlob(blob, filename)
270271
} else {

ui/src/config/section/tools.js

+26
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,32 @@ export default {
234234
groupMap: (selection) => { return selection.map(x => { return { id: x } }) }
235235
}
236236
]
237+
},
238+
{
239+
name: 'listLogsWebSessions',
240+
title: 'label.logs.web.sessions',
241+
icon: 'gateway-outlined',
242+
permission: ['listLogsWebSessions'],
243+
columns: () => {
244+
const cols = ['filters', 'account', 'clientaddress', 'connected']
245+
return cols
246+
},
247+
details: () => {
248+
const fields = ['id', 'account', 'filters', 'clientaddress', 'connected']
249+
return fields
250+
},
251+
actions: [
252+
{
253+
api: 'deleteLogsWebSessions',
254+
icon: 'delete-outlined',
255+
label: 'label.delete.logs.web.session',
256+
message: 'message.delete.logs.web.session',
257+
dataView: true,
258+
groupAction: true,
259+
popup: true,
260+
groupMap: (selection) => { return selection.map(x => { return { id: x } }) }
261+
}
262+
]
237263
}
238264
]
239265
}

ui/src/utils/plugins.js

+6
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@ export const pollJobPlugin = {
9797
if (contextId) {
9898
contexts.push(contextId)
9999
}
100+
if (jobId) {
101+
const jobIdFirstPart = jobId.split('-')[0]
102+
if (!contexts.includes(jobIdFirstPart)) {
103+
contexts.push(jobIdFirstPart)
104+
}
105+
}
100106

101107
eventBus.on('update-job-details', (args) => {
102108
const { jobId, resourceId } = args

0 commit comments

Comments
 (0)