diff --git a/frontend/src/api-services/dns_fqdn.service.js b/frontend/src/api-services/dns_fqdn.service.js index e81f8b27968ac68ae3df75d4683c91e187254607..37ac3eca8f7b99fd1a7e57ffb4f69cd71bfd4aa4 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 72b872d97b3a32542c33d3ccf6c05500441545c3..e03984a6f349b5e224b0a6a5a82bff18935d31f6 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 e77d10ab8448862648ebeeac0dd834879d2f2f5a..9982e156cd2aeb5037226785ddbb176a076eacd9 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') {