From 0ad53a971e09a8421a03027d15699cf49828ae68 Mon Sep 17 00:00:00 2001 From: Julian Keck <julian.keck9@kit.edu> Date: Wed, 31 Jul 2024 17:37:57 +0200 Subject: [PATCH] UPD use rr_chain_target_subnet_gpk_list Closes #734 --- frontend/src/api-services/dns_fqdn.service.js | 6 ++--- .../api-services/dns_null_records.service.js | 2 +- frontend/src/components/FlatRecordTable.vue | 27 ++++++++++++------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/frontend/src/api-services/dns_fqdn.service.js b/frontend/src/api-services/dns_fqdn.service.js index e81f8b279..37ac3eca8 100644 --- a/frontend/src/api-services/dns_fqdn.service.js +++ b/frontend/src/api-services/dns_fqdn.service.js @@ -15,10 +15,9 @@ export default { { idx: 'rec_fqdns', name: 'dns.fqdn.list', inner_join_ref: { record_list: 'default' } }, { name: 'dnscfg.fqdn_type.list', old: { sorting_params_list: ['position'] } }, { name: 'dnscfg.record_inttype.list', old: { is_own: true, sorting_params_list: ['record_type'] } }, - { name: 'dns.ip_addr.list', inner_join_ref: { record_list: 'default' } }, { name: 'nd.ip_subnet.list', - inner_join_ref: { ip_addr_list: 'default' }, + inner_join_ref: { record_list: 'api_func_dns_record_rr_chain_target_contains_subnet' }, old: { sorting_params_list: ['type ASC', 'cidr ASC'] } } ] @@ -30,10 +29,9 @@ export default { { name: 'dns.record.list', old: { sorting_params_list: ['type', 'fqdn'], is_auth: true }, inner_join_ref: { fqdn_list: 'default' } }, { name: 'dnscfg.fqdn_type.list', old: { sorting_params_list: ['position'] } }, { name: 'dnscfg.record_inttype.list', old: { is_own: true, sorting_params_list: ['record_type'] } }, - { name: 'dns.ip_addr.list', inner_join_ref: { record_list: 'default' } }, { name: 'nd.ip_subnet.list', - inner_join_ref: { ip_addr_list: 'default' }, + inner_join_ref: { record_list: 'api_func_dns_record_rr_chain_target_contains_subnet' }, old: { sorting_params_list: ['type ASC', 'cidr ASC'] } } ] diff --git a/frontend/src/api-services/dns_null_records.service.js b/frontend/src/api-services/dns_null_records.service.js index 72b872d97..e03984a6f 100644 --- a/frontend/src/api-services/dns_null_records.service.js +++ b/frontend/src/api-services/dns_null_records.service.js @@ -3,7 +3,7 @@ import TransactionService from './transaction.service' export default { get_all(config, own) { const ta = [ - { name: 'dns.record.list', old: { is_own: own, sorting_params_list: ['type', 'fqdn'], rr_chain_target_subnet_list: null, is_auth: true } }, + { name: 'dns.record.list', old: { is_own: own, sorting_params_list: ['type', 'fqdn'], rr_chain_target_subnet_gfk_list: null, is_auth: true } }, { name: 'dns.fqdn.list', inner_join_ref: { record_list: 'default' } }, ] if (own === null) { diff --git a/frontend/src/components/FlatRecordTable.vue b/frontend/src/components/FlatRecordTable.vue index e77d10ab8..9982e156c 100644 --- a/frontend/src/components/FlatRecordTable.vue +++ b/frontend/src/components/FlatRecordTable.vue @@ -216,7 +216,7 @@ export default { return this.filtered_and_sorted_records.slice(this.per_page * (this.current_page - 1), this.per_page * this.current_page) }, fqdn_list_fields() { - return [ + let fields = [ { label: this.$t('system.fqdn'), key: 'fqdn', @@ -246,18 +246,25 @@ export default { label: this.$t('system.ttl'), key: 'ttl', sortable: true - }, - { - label: this.$tc('system.bcd', 2), - key: 'bcds', - sortable: false - }, + } + ] + if (this.subnets && this.subnets.length > 0) { + fields = fields.concat([ + { + label: this.$tc('system.bcd', 2), + key: 'bcds', + sortable: false + } + ]) + } + fields = fields.concat([ { label: this.$tc('system.action', 2), key: 'actions', sortable: false } - ] + ]) + return fields }, subnets_by_cidr() { return apiutil.dict_by_value_of_array(this.subnets, 'cidr') @@ -337,10 +344,10 @@ export default { URL.revokeObjectURL(link.href) }, get_bcd_for_record(record) { - if (!record.rr_chain_target_subnet_list) { + if (!record.rr_chain_target_subnet_gfk_list) { return new Set() } - return new Set(record.rr_chain_target_subnet_list.map(net => this.subnets_by_cidr[net]?.bcd || '').filter(net => net.length > 0)) + return new Set(this.subnets.filter(net => record.rr_chain_target_subnet_gfk_list.includes(net.gpk)).map(net => net.bcd).filter(net => net.length > 0)) }, filterFunc(item, term) { if (typeof term === 'string') { -- GitLab