Skip to content

Commit 127fd9d

Browse files
hsato03Henrique Sato
andauthored
UI: Project column in Default View (#8287)
The Default View has a projects toggle button that allows users to see which resources belong to projects, but there is nothing to indicate which project they belong to. For this reason, a project column was added if the projects button is enabled, indicating the name of the project to which the resource belongs. --------- Co-authored-by: Henrique Sato <henrique.sato@scclouds.com.br>
1 parent dda6725 commit 127fd9d

7 files changed

Lines changed: 108 additions & 12 deletions

File tree

ui/src/components/view/ListView.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,10 @@
330330
<router-link v-if="record.roleid && $router.resolve('/role/' + record.roleid).matched[0].redirect !== '/exception/404'" :to="{ path: '/role/' + record.roleid }">{{ text }}</router-link>
331331
<span v-else>{{ text }}</span>
332332
</template>
333+
<template v-if="column.key === 'project'">
334+
<router-link v-if="$router.resolve('/project/' + record.projectid).matched[0].redirect !== '/exception/404'" :to="{ path: '/project/' + record.projectid }">{{ text }}</router-link>
335+
<span v-else>{{ text }}</span>
336+
</template>
333337
<template v-if="column.key === 'templateversion'">
334338
<span> {{ record.version }} </span>
335339
</template>

ui/src/config/section/compute.js

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,18 @@ export default {
6161
if (store.getters.metrics) {
6262
fields.push(...metricsFields)
6363
}
64-
6564
if (store.getters.userInfo.roletype === 'Admin') {
6665
fields.splice(2, 0, 'instancename')
67-
fields.push('account')
6866
fields.push('hostname')
67+
fields.push('account')
6968
} else if (store.getters.userInfo.roletype === 'DomainAdmin') {
7069
fields.push('account')
7170
} else {
7271
fields.push('serviceofferingname')
7372
}
73+
if (store.getters.listAllProjects) {
74+
fields.push('project')
75+
}
7476
fields.push('zonename')
7577
return fields
7678
},
@@ -464,8 +466,13 @@ export default {
464466
columns: () => {
465467
const fields = ['displayname', 'state', 'name', 'type', 'current', 'parentName', 'created']
466468
if (['Admin', 'DomainAdmin'].includes(store.getters.userInfo.roletype)) {
467-
fields.push('domain')
468469
fields.push('account')
470+
if (store.getters.listAllProjects) {
471+
fields.push('project')
472+
}
473+
fields.push('domain')
474+
} else if (store.getters.listAllProjects) {
475+
fields.push('project')
469476
}
470477
return fields
471478
},
@@ -536,6 +543,9 @@ export default {
536543
if (['Admin', 'DomainAdmin'].includes(store.userInfo.roletype)) {
537544
fields.push('account')
538545
}
546+
if (store.listAllProjects) {
547+
fields.push('project')
548+
}
539549
if (store.apis.scaleKubernetesCluster.params.filter(x => x.name === 'autoscalingenabled').length > 0) {
540550
fields.splice(2, 0, 'autoscalingenabled')
541551
}
@@ -633,7 +643,13 @@ export default {
633643
docHelp: 'adminguide/autoscale_without_netscaler.html',
634644
resourceType: 'AutoScaleVmGroup',
635645
permission: ['listAutoScaleVmGroups'],
636-
columns: ['name', 'state', 'associatednetworkname', 'publicip', 'publicport', 'privateport', 'minmembers', 'maxmembers', 'availablevirtualmachinecount', 'account'],
646+
columns: (store) => {
647+
var fields = ['name', 'state', 'associatednetworkname', 'publicip', 'publicport', 'privateport', 'minmembers', 'maxmembers', 'availablevirtualmachinecount', 'account']
648+
if (store.listAllProjects) {
649+
fields.push('project')
650+
}
651+
return fields
652+
},
637653
details: ['name', 'id', 'account', 'domain', 'associatednetworkname', 'associatednetworkid', 'lbruleid', 'lbprovider', 'publicip', 'publicipid', 'publicport', 'privateport', 'minmembers', 'maxmembers', 'availablevirtualmachinecount', 'interval', 'state', 'created'],
638654
related: [{
639655
name: 'vm',
@@ -737,7 +753,15 @@ export default {
737753
docHelp: 'adminguide/virtual_machines.html#changing-the-vm-name-os-or-group',
738754
resourceType: 'VMInstanceGroup',
739755
permission: ['listInstanceGroups'],
740-
columns: ['name', 'account', 'domain'],
756+
757+
columns: (store) => {
758+
var fields = ['name', 'account']
759+
if (store.listAllProjects) {
760+
fields.push('project')
761+
}
762+
fields.push('domain')
763+
return fields
764+
},
741765
details: ['name', 'id', 'account', 'domain', 'created'],
742766
related: [{
743767
name: 'vm',
@@ -791,7 +815,12 @@ export default {
791815
var fields = ['name', 'fingerprint']
792816
if (['Admin', 'DomainAdmin'].includes(store.getters.userInfo.roletype)) {
793817
fields.push('account')
818+
if (store.getters.listAllProjects) {
819+
fields.push('project')
820+
}
794821
fields.push('domain')
822+
} else if (store.getters.listAllProjects) {
823+
fields.push('project')
795824
}
796825
return fields
797826
},
@@ -941,7 +970,12 @@ export default {
941970
var fields = ['name', 'type', 'description']
942971
if (['Admin', 'DomainAdmin'].includes(store.getters.userInfo.roletype)) {
943972
fields.push('account')
973+
if (store.getters.listAllProjects) {
974+
fields.push('project')
975+
}
944976
fields.push('domain')
977+
} else if (store.getters.listAllProjects) {
978+
fields.push('project')
945979
}
946980
return fields
947981
},

ui/src/config/section/event.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,22 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18+
import store from '@/store'
19+
1820
export default {
1921
name: 'event',
2022
title: 'label.events',
2123
icon: 'ScheduleOutlined',
2224
docHelp: 'adminguide/events.html',
2325
permission: ['listEvents'],
24-
columns: ['level', 'type', 'state', 'description', 'resource', 'username', 'account', 'domain', 'created'],
26+
columns: () => {
27+
var fields = ['level', 'type', 'state', 'description', 'resource', 'username', 'account']
28+
if (store.getters.listAllProjects) {
29+
fields.push('project')
30+
}
31+
fields.push(...['domain', 'created'])
32+
return fields
33+
},
2534
details: ['username', 'id', 'description', 'resourcetype', 'resourceid', 'state', 'level', 'type', 'account', 'domain', 'created'],
2635
searchFilters: ['level', 'domainid', 'account', 'keyword', 'resourcetype'],
2736
related: [{

ui/src/config/section/image.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ export default {
4747
fields.push('size')
4848
fields.push('account')
4949
}
50+
if (store.getters.listAllProjects) {
51+
fields.push('project')
52+
}
5053
if (['Admin'].includes(store.getters.userInfo.roletype)) {
5154
fields.push('templatetype')
5255
fields.push('order')
@@ -220,6 +223,9 @@ export default {
220223
fields.push('size')
221224
fields.push('account')
222225
}
226+
if (store.getters.listAllProjects) {
227+
fields.push('project')
228+
}
223229
if (['Admin'].includes(store.getters.userInfo.roletype)) {
224230
fields.push('order')
225231
}

ui/src/config/section/network.js

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,16 @@ export default {
3434
permission: ['listNetworks'],
3535
resourceType: 'Network',
3636
columns: () => {
37-
var fields = ['name', 'state', 'type', 'vpcname', 'cidr', 'ip6cidr', 'broadcasturi', 'domainpath', 'account', 'zonename']
37+
var fields = ['name', 'state', 'type', 'vpcname', 'cidr', 'ip6cidr', 'broadcasturi', 'domainpath']
3838
if (!isAdmin()) {
3939
fields = fields.filter(function (e) { return e !== 'broadcasturi' })
4040
}
41+
if (store.getters.listAllProjects) {
42+
fields.push('project')
43+
} else {
44+
fields.push('account')
45+
}
46+
fields.push('zonename')
4147
return fields
4248
},
4349
details: () => {
@@ -197,7 +203,14 @@ export default {
197203
docHelp: 'adminguide/networking_and_traffic.html#configuring-a-virtual-private-cloud',
198204
permission: ['listVPCs'],
199205
resourceType: 'Vpc',
200-
columns: ['name', 'state', 'displaytext', 'cidr', 'account', 'domain', 'zonename'],
206+
columns: () => {
207+
var fields = ['name', 'state', 'displaytext', 'cidr', 'account']
208+
if (store.getters.listAllProjects) {
209+
fields.push('project')
210+
}
211+
fields.push(...['domain', 'zonename'])
212+
return fields
213+
},
201214
details: ['name', 'id', 'displaytext', 'cidr', 'networkdomain', 'ip6routes', 'ispersistent', 'redundantvpcrouter', 'restartrequired', 'zonename', 'account', 'domain', 'dns1', 'dns2', 'ip6dns1', 'ip6dns2', 'publicmtu'],
202215
searchFilters: ['name', 'zoneid', 'domainid', 'account', 'tags'],
203216
related: [{
@@ -334,10 +347,16 @@ export default {
334347
if (store.getters.userInfo.roletype === 'Admin') {
335348
fields.splice(2, 0, 'instancename')
336349
fields.push('account')
350+
if (store.getters.listAllProjects) {
351+
fields.push('project')
352+
}
337353
fields.push('domain')
338354
fields.push('hostname')
339355
} else if (store.getters.userInfo.roletype === 'DomainAdmin') {
340356
fields.push('account')
357+
if (store.getters.listAllProjects) {
358+
fields.push('project')
359+
}
341360
} else {
342361
fields.push('serviceofferingname')
343362
}
@@ -730,7 +749,14 @@ export default {
730749
docHelp: 'adminguide/networking_and_traffic.html#reserving-public-ip-addresses-and-vlans-for-accounts',
731750
permission: ['listPublicIpAddresses'],
732751
resourceType: 'PublicIpAddress',
733-
columns: ['ipaddress', 'state', 'associatednetworkname', 'vpcname', 'virtualmachinename', 'allocated', 'account', 'domain', 'zonename'],
752+
columns: () => {
753+
var fields = ['ipaddress', 'state', 'associatednetworkname', 'vpcname', 'virtualmachinename', 'allocated', 'account']
754+
if (store.getters.listAllProjects) {
755+
fields.push('project')
756+
}
757+
fields.push(...['domain', 'zonename'])
758+
return fields
759+
},
734760
details: ['ipaddress', 'id', 'associatednetworkname', 'virtualmachinename', 'networkid', 'issourcenat', 'isstaticnat', 'virtualmachinename', 'vmipaddress', 'vlan', 'allocated', 'account', 'domain', 'zonename'],
735761
filters: ['allocated', 'reserved', 'free'],
736762
component: shallowRef(() => import('@/views/network/PublicIpResource.vue')),
@@ -1120,7 +1146,14 @@ export default {
11201146
title: 'label.vpncustomergatewayid',
11211147
icon: 'lock-outlined',
11221148
permission: ['listVpnCustomerGateways'],
1123-
columns: ['name', 'gateway', 'cidrlist', 'ipsecpsk', 'account', 'domain'],
1149+
columns: () => {
1150+
var fields = ['name', 'gateway', 'cidrlist', 'ipsecpsk', 'account']
1151+
if (store.getters.listAllProjects) {
1152+
fields.push('project')
1153+
}
1154+
fields.push('domain')
1155+
return fields
1156+
},
11241157
details: ['name', 'id', 'gateway', 'cidrlist', 'ipsecpsk', 'ikepolicy', 'ikelifetime', 'ikeversion', 'esppolicy', 'esplifetime', 'dpd', 'splitconnections', 'forceencap', 'account', 'domain'],
11251158
searchFilters: ['keyword', 'domainid', 'account'],
11261159
resourceType: 'VPNCustomerGateway',

ui/src/config/section/storage.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@ export default {
4949
if (store.getters.metrics) {
5050
fields.push(...metricsFields)
5151
}
52-
5352
if (store.getters.userInfo.roletype === 'Admin') {
54-
fields.push('account')
5553
fields.push('storage')
54+
fields.push('account')
5655
} else if (store.getters.userInfo.roletype === 'DomainAdmin') {
5756
fields.push('account')
5857
}
58+
if (store.getters.listAllProjects) {
59+
fields.push('project')
60+
}
5961
fields.push('zonename')
6062

6163
return fields
@@ -320,7 +322,12 @@ export default {
320322
var fields = ['name', 'state', 'volumename', 'intervaltype', 'physicalsize', 'created']
321323
if (['Admin', 'DomainAdmin'].includes(store.getters.userInfo.roletype)) {
322324
fields.push('account')
325+
if (store.getters.listAllProjects) {
326+
fields.push('project')
327+
}
323328
fields.push('domain')
329+
} else if (store.getters.listAllProjects) {
330+
fields.push('project')
324331
}
325332
fields.push('zonename')
326333
return fields

ui/src/views/AutogenView.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,9 @@ export default {
879879
this.$store.getters.customColumns[this.$store.getters.userInfo.id][this.$route.path] = this.selectedColumns
880880
} else {
881881
this.selectedColumns = this.$store.getters.customColumns[this.$store.getters.userInfo.id][this.$route.path] || this.selectedColumns
882+
if (this.$store.getters.listAllProjects && !this.projectView) {
883+
this.selectedColumns.push('project')
884+
}
882885
this.updateSelectedColumns()
883886
}
884887
}

0 commit comments

Comments
 (0)