Skip to content
Merged
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
1b83f8b
fix table warning after migration
May 5, 2022
cd24751
fix logout error
May 9, 2022
faa77f3
fixes UT
May 10, 2022
66d4edc
revert coverage flag
May 10, 2022
40ea060
update dependencies
May 10, 2022
1b1c261
revert dependencies
May 10, 2022
bd920e3
fix UT errors
May 11, 2022
e0ced65
fixes clear notification
May 13, 2022
b1fd1a8
Merge branch 'main-upstream' into feature/ui-migrate-ant-design
May 16, 2022
587e550
fix treeview & dragable
May 17, 2022
d3db181
fix auto-select treeNode
May 17, 2022
89b5472
fixes dark mode UI
May 19, 2022
1571a22
fixes data of columns not displayed in the list view
May 19, 2022
af0bbbe
removed comments
May 19, 2022
ed93daf
Merge branch 'main-upstream' into feature/ui-migrate-ant-design
May 26, 2022
b87f5ea
fix sidemenu background color with project view after reload browser
May 26, 2022
cecc6ff
Merge branch 'main' into feature/ui-migrate-ant-design
Jun 30, 2022
6bdc540
fixes ant-theme-generator can't load modules
Jul 1, 2022
f1cd992
fixes the table `index` parameter of `rowKey` function is deprecated.
Jul 5, 2022
33e9f28
fixes search text select box
Jul 13, 2022
67cd64d
fix reset filter & filter column
Aug 2, 2022
2a0ed66
fix network service provider styles
Aug 2, 2022
48123e3
fix order list error
Aug 3, 2022
fea49a4
fix table select row fail
Aug 4, 2022
8c7b1d1
fixes some errors, warning
Aug 4, 2022
212e79e
fix error console add ldap account
Aug 8, 2022
d3bd980
Merge branch 'main-upstream' into feature/ui-migrate-ant-design
Aug 10, 2022
fdad8eb
Merge branch 'main' into feature/ui-migrate-ant-design
Aug 17, 2022
b39b954
Merge branch 'main' into feature/ui-migrate-ant-design
Sep 12, 2022
204255a
Merge branch 'main' of github.com:apache/cloudstack into ant3-upgrade
davidjumani Mar 2, 2023
3433760
Fixing select search
davidjumani Mar 6, 2023
7b16195
Fix custom cells render in tables
davidjumani Mar 6, 2023
70de5cb
More fixes
davidjumani Mar 6, 2023
7b0043d
standardize action to actions
davidjumani Mar 7, 2023
405ece3
Misc fixes
davidjumani Mar 10, 2023
b60de9e
Adding missing docs for sections
davidjumani Mar 14, 2023
51a9acc
Fixing unit tests
davidjumani Mar 16, 2023
44d725e
Merge branch 'main' of github.com:apache/cloudstack into ant3-upgrade
davidjumani Mar 16, 2023
fedf44f
Merge branch 'main' of github.com:apache/cloudstack into ant3-upgrade
davidjumani Apr 11, 2023
bf8c51a
Fix autoscale create groups
davidjumani Apr 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4,912 changes: 2,538 additions & 2,374 deletions ui/package-lock.json

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@
"@fortawesome/free-brands-svg-icons": "^5.15.2",
"@fortawesome/free-solid-svg-icons": "^5.15.2",
"@fortawesome/vue-fontawesome": "^3.0.0-4",
"ant-design-vue": "^2.2.3",
"ant-design-vue": "^3.2.9",
"antd": "^4.21.4",
"antd-theme-webpack-plugin": "^1.3.9",
"axios": "^0.21.1",
"babel-plugin-require-context-hook": "^1.0.0",
Expand Down
5 changes: 3 additions & 2 deletions ui/src/components/CheckBoxSelectPair.vue
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,14 @@
showSearch
optionFilterProp="label"
:filterOption="(input, option) => {
return option.children[0].children.toLowerCase().indexOf(input.toLowerCase()) >= 0
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}"
@change="val => { handleSelectChange(val) }">
<a-select-option
v-for="(opt) in selectSource"
:key="opt.id"
:disabled="opt.enabled === false">
:disabled="opt.enabled === false"
:label="opt.displaytext || opt.name || opt.description">
{{ opt.displaytext || opt.name || opt.description }}
</a-select-option>
</a-select>
Expand Down
4 changes: 2 additions & 2 deletions ui/src/components/header/SamlDomainSwitcher.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
showSearch
optionFilterProp="label"
:filterOption="(input, option) => {
return option.children[0].children.toLowerCase().indexOf(input.toLowerCase()) >= 0
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}"
@change="changeAccount"
@focus="fetchData" >
Expand All @@ -42,7 +42,7 @@
</a-tooltip>
</template>

<a-select-option v-for="(account, index) in samlAccounts" :key="index">
<a-select-option v-for="(account, index) in samlAccounts" :key="index" :label="`${account.accountName} (${account.domainName})`">
Comment thread
shwstppr marked this conversation as resolved.
{{ `${account.accountName} (${account.domainName})` }}
</a-select-option>
</a-select>
Expand Down
60 changes: 34 additions & 26 deletions ui/src/components/header/UserMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,33 +38,25 @@
<span>{{ nickname() }}</span>
</span>
<template #overlay>
<a-menu class="user-menu-wrapper">
<router-link :to="{ path: '/accountuser/' + $store.getters.userInfo.id }">
<a-menu-item class="user-menu-item" key="0">
<UserOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name">{{ $t('label.profilename') }}</span>
</a-menu-item>
</router-link>
<a @click="toggleUseBrowserTimezone">
<a-menu-item class="user-menu-item" key="1">
<ClockCircleOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name" style="margin-right: 5px">{{ $t('label.use.local.timezone') }}</span>
<a-switch :checked="$store.getters.usebrowsertimezone" />
</a-menu-item>
</a>
<a :href="$config.docBase" target="_blank">
<a-menu-item class="user-menu-item" key="2">
<QuestionCircleOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name">{{ $t('label.help') }}</span>
</a-menu-item>
</a>
<a-menu class="user-menu-wrapper" @click="handleClickMenu">
<a-menu-item class="user-menu-item" key="profile">
<UserOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name">{{ $t('label.profilename') }}</span>
</a-menu-item>
<a-menu-item class="user-menu-item" key="timezone">
<ClockCircleOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name" style="margin-right: 5px">{{ $t('label.use.local.timezone') }}</span>
<a-switch :checked="$store.getters.usebrowsertimezone" />
</a-menu-item>
<a-menu-item class="user-menu-item" key="document">
<QuestionCircleOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name">{{ $t('label.help') }}</span>
</a-menu-item>
<a-menu-divider/>
<a href="javascript:;" @click="handleLogout">
<a-menu-item class="user-menu-item" key="3">
<LogoutOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name">{{ $t('label.logout') }}</span>
</a-menu-item>
</a>
<a-menu-item class="user-menu-item" key="logout">
<LogoutOutlined class="user-menu-item-icon" />
<span class="user-menu-item-name">{{ $t('label.logout') }}</span>
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
Expand Down Expand Up @@ -145,6 +137,22 @@ export default {
})
})
},
handleClickMenu (item) {
switch (item.key) {
case 'profile':
this.$router.push(`/accountuser/${this.$store.getters.userInfo.id}`)
break
case 'timezone':
this.toggleUseBrowserTimezone()
break
case 'document':
window.open(this.$config.docBase, '_blank')
break
case 'logout':
this.handleLogout()
break
}
},
handleLogout () {
return this.Logout({}).then(() => {
this.$router.push('/user/login')
Expand Down
2 changes: 1 addition & 1 deletion ui/src/components/view/AnnotationsTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
<template #content>
<div v-ctrl-enter="saveNote">
<a-textarea
rows="4"
:rows="4"
@change="handleNoteChange"
v-model:value="annotation"
:placeholder="$t('label.add.note')" />
Expand Down
56 changes: 29 additions & 27 deletions ui/src/components/view/BulkActionProgress.vue
Original file line number Diff line number Diff line change
Expand Up @@ -52,36 +52,38 @@
size="middle"
:columns="selectedColumns"
:dataSource="tableChanged ? filteredItems : selectedItems"
:rowKey="(record, idx) => ($route.path.includes('/template') || $route.path.includes('/iso')) ? record.zoneid: record.id"
:rowKey="record => ($route.path.includes('/template') || $route.path.includes('/iso')) ? record.zoneid: record.id"
:pagination="true"
@change="handleTableChange"
style="overflow-y: auto">
<template #status="{text}">
<status :text=" text ? text : $t('state.inprogress') " displayText></status>
</template>
<template #algorithm="{record}">
{{ returnAlgorithmName(record.algorithm) }}
</template>
<template #privateport="{record}">
{{ record.privateport }} - {{ record.privateendport }}
</template>
<template #publicport="{record}">
{{ record.publicport }} - {{ record.publicendport }}
</template>
<template #protocol="{record}">
{{ capitalise(record.protocol) }}
</template>
<template #startport="{record}">
{{ record.icmptype || record.startport >= 0 ? record.icmptype || record.startport : $t('label.all') }}
</template>
<template #endport="{record}">
{{ record.icmpcode || record.endport >= 0 ? record.icmpcode || record.endport : $t('label.all') }}
</template>
<template #vm="{record}">
<div><desktop-outlined /> {{ record.virtualmachinename }} ({{ record.vmguestip }})</div>
</template>
<template #cidrlist="{ record }">
<span style="white-space: pre-line"> {{ record.cidrlist?.replaceAll(" ", "\n") }}</span>
<template #bodyCell="{ column, text, record }">
<template v-if="column.key === 'status'">
<status :text=" text ? text : $t('state.inprogress') " displayText></status>
</template>
<template v-if="column.key === 'algorithm'">
{{ returnAlgorithmName(record.algorithm) }}
</template>
<template v-if="column.key === 'privateport'">
{{ record.privateport }} - {{ record.privateendport }}
</template>
<template v-if="column.key === 'publicport'">
{{ record.publicport }} - {{ record.publicendport }}
</template>
<template v-if="column.key === 'protocol'">
{{ capitalise(record.protocol) }}
</template>
<template v-if="column.key === 'startport'">
{{ record.icmptype || record.startport >= 0 ? record.icmptype || record.startport : $t('label.all') }}
</template>
<template v-if="column.key === 'endport'">
{{ record.icmpcode || record.endport >= 0 ? record.icmpcode || record.endport : $t('label.all') }}
</template>
<template v-if="column.key === 'vm'">
<div><desktop-outlined /> {{ record.virtualmachinename }} ({{ record.vmguestip }})</div>
</template>
<template v-if="column.key === 'cidrlist'">
<span style="white-space: pre-line"> {{ record.cidrlist?.replaceAll(" ", "\n") }}</span>
</template>
</template>
</a-table>
<br/>
Expand Down
56 changes: 29 additions & 27 deletions ui/src/components/view/BulkActionView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -55,35 +55,37 @@
size="middle"
:columns="selectedColumns"
:dataSource="selectedItems"
:rowKey="(record, idx) => $route.path.includes('/iso/') ? record.zoneid : record.id"
:rowKey="record => $route.path.includes('/iso/') ? record.zoneid : record.id"
:pagination="true"
style="overflow-y: auto">
<template #algorithm="{record}">
{{ returnAlgorithmName(record.algorithm) }}
</template>
<template #column="{ text }">
<span v-for="(column, index) in selectedColumns" :key="index"> {{ text }} ==== {{ column }}</span>
</template>
<template #privateport="{record}">
{{ record.privateport }} - {{ record.privateendport }}
</template>
<template #publicport="{record}">
{{ record.publicport }} - {{ record.publicendport }}
</template>
<template #protocol="{record}">
{{ capitalise(record.protocol) }}
</template>
<template #vm="{record}">
<div><desktop-outlined /> {{ record.virtualmachinename }} ({{ record.vmguestip }})</div>
</template>
<template #startport="{record}">
{{ record.icmptype || record.startport >= 0 ? record.icmptype || record.startport : $t('label.all') }}
</template>
<template #endport="{record}">
{{ record.icmpcode || record.endport >= 0 ? record.icmpcode || record.endport : $t('label.all') }}
</template>
<template #cidrlist="{record}">
<span style="white-space: pre-line"> {{ record.cidrlist?.replaceAll(" ", "\n") }}</span>
<template #bodyCell="{ column, text, record }">
<template v-if="column.key === 'algorithm'">
{{ returnAlgorithmName(record.algorithm) }}
</template>
<template v-if="column.key === 'column'">
<span v-for="(column, index) in selectedColumns" :key="index"> {{ text }} ==== {{ column }}</span>
</template>
<template v-if="column.key === 'privateport'">
{{ record.privateport }} - {{ record.privateendport }}
</template>
<template v-if="column.key === 'publicport'">
{{ record.publicport }} - {{ record.publicendport }}
</template>
<template v-if="column.key === 'protocol'">
{{ capitalise(record.protocol) }}
</template>
<template v-if="column.key === 'vm'">
<div><desktop-outlined /> {{ record.virtualmachinename }} ({{ record.vmguestip }})</div>
</template>
<template v-if="column.key === 'startport'">
{{ record.icmptype || record.startport >= 0 ? record.icmptype || record.startport : $t('label.all') }}
</template>
<template v-if="column.key === 'endport'">
{{ record.icmpcode || record.endport >= 0 ? record.icmpcode || record.endport : $t('label.all') }}
</template>
<template v-if="column.key === 'cidrlist'">
<span style="white-space: pre-line"> {{ record.cidrlist?.replaceAll(" ", "\n") }}</span>
</template>
</template>
</a-table>
<a-divider />
Expand Down
12 changes: 8 additions & 4 deletions ui/src/components/view/DedicateDomain.vue
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,16 @@
showSearch
optionFilterProp="label"
:filterOption="(input, option) => {
return option.children[0].children.toLowerCase().indexOf(input.toLowerCase()) >= 0
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}"
@change="handleChangeDomain"
v-focus="true"
v-model:value="domainId">
<a-select-option v-for="(domain, index) in domainsList" :value="domain.id" :key="index">
<a-select-option
v-for="(domain, index) in domainsList"
:value="domain.id"
:key="index"
:label="domain.path || domain.name || domain.description">
{{ domain.path || domain.name || domain.description }}
</a-select-option>
</a-select>
Expand All @@ -43,9 +47,9 @@
style="width: 100%"
@change="handleChangeAccount"
showSearch
optionFilterProp="label"
optionFilterProp="value"
:filterOption="(input, option) => {
return option.children[0].children.toLowerCase().indexOf(input.toLowerCase()) >= 0
return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
}" >
<a-select-option v-for="(account, index) in accountsList" :value="account.name" :key="index">
{{ account.name }}
Expand Down
8 changes: 4 additions & 4 deletions ui/src/components/view/DetailsTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -112,14 +112,14 @@ export default {
type: Object,
required: true
},
loading: {
type: Boolean,
default: false
},
items: {
type: Object,
default: () => {}
},
loading: {
type: Boolean,
default: false
},
bordered: {
type: Boolean,
default: false
Expand Down
12 changes: 4 additions & 8 deletions ui/src/components/view/EventsTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -152,19 +152,15 @@ export default {
for (var columnKey of this.columnKeys) {
if (!this.selectedColumnKeys.includes(columnKey)) continue
this.columns.push({
key: columnKey,
title: this.$t('label.' + String(columnKey).toLowerCase()),
dataIndex: columnKey,
slots: { customRender: columnKey },
sorter: function (a, b) { return genericCompare(a[this.dataIndex] || '', b[this.dataIndex] || '') }
})
}
this.columns.push({
dataIndex: 'dropdownFilter',
slots: {
filterDropdown: 'filterDropdown',
filterIcon: 'filterIcon'
}
})
if (this.columns.length > 0) {
this.columns[this.columns.length - 1].customFilterDropdown = true
}
}
}
}
Expand Down
11 changes: 8 additions & 3 deletions ui/src/components/view/InfoCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
icon="barcode-outlined"
type="dashed"
size="small"
:copyResource="resource.id"
:copyResource="String(resource.id)"
@onClick="$message.success($t('label.copied.clipboard'))" />
<span style="margin-left: 10px;">{{ resource.id }}</span>
</div>
Expand Down Expand Up @@ -849,8 +849,13 @@ export default {
return this.resource.templateid
},
resourceIcon () {
if (this.$showIcon() && this.resource?.icon?.base64image) {
return this.resource.icon.base64image
if (this.$showIcon()) {
if (this.resource?.icon?.base64image) {
return this.resource.icon.base64image
}
if (this.resource?.resourceIcon?.base64image) {
return this.resource.resourceIcon.base64image
}
}
return null
},
Expand Down
Loading