From f3a66b0b2ba2b00993fac7532ad75d289f14e75c Mon Sep 17 00:00:00 2001 From: Janis Streib <me@janis-streib.de> Date: Wed, 11 Nov 2020 20:21:48 +0100 Subject: [PATCH] FIX: evlog join (closes #190) --- frontend/src/api-services/evlog.service.js | 9 ++++++--- frontend/src/components/EVLogViewer.vue | 21 ++++++++++++++------- frontend/src/views/cntl/Groups.vue | 4 ++-- frontend/src/views/cntl/OU.vue | 3 ++- frontend/src/views/dnsvs/BCDRecords.vue | 2 +- 5 files changed, 25 insertions(+), 14 deletions(-) diff --git a/frontend/src/api-services/evlog.service.js b/frontend/src/api-services/evlog.service.js index a17d14360..7868b317f 100644 --- a/frontend/src/api-services/evlog.service.js +++ b/frontend/src/api-services/evlog.service.js @@ -1,16 +1,19 @@ import TransactionService from './transaction.service' export default { - getByFK(config, fk) { + getByFK(config, ref_obj_fq, refobj_id_field, refobj_id_value) { + const old = {} + old[refobj_id_field] = refobj_id_value const ta = [ + { name: ref_obj_fq + '.list', old: old }, { name: 'evlog.record.list', old: { - log_fk: fk, top_n_from_newest: true, top_n: 50, sorting_params_list: ['ta_timestamp desc'] - } + }, + join: { 0: null } }, { name: 'evlog.record_type.list' } ] diff --git a/frontend/src/components/EVLogViewer.vue b/frontend/src/components/EVLogViewer.vue index f1b779d61..fa81d14be 100644 --- a/frontend/src/components/EVLogViewer.vue +++ b/frontend/src/components/EVLogViewer.vue @@ -1,5 +1,6 @@ <template> - <b-modal size="xl" ok-title="Schließen" :title="'Eventlog: ' + title" :ok-only="true" :id="modal_id" @show="fetchData()"> + <b-modal size="xl" ok-title="Schließen" :title="'Eventlog: ' + title" :ok-only="true" :id="modal_id" + @show="fetchData()"> <Loading :data="[records]"> <b-table :responsive="true" striped :items="records" :fields="table_fields"> <template v-slot:cell(type)="data"> @@ -45,22 +46,28 @@ export default { } }, props: { - pk: { - required: true - }, title: { required: true }, modal_id: { required: true + }, + ref_obj_fq: { + required: true + }, + refobj_id_field: { + required: true + }, + refobj_id_value: { + required: true } }, methods: { async fetchData() { this.records = null - const res = await EVLogService.getByFK(this.$store.state.netdb_axios_config, this.pk) - this.records = res.data[0] - this.record_types = apiutil.dict_by_value_of_array(res.data[1], 'short_name') + const res = await EVLogService.getByFK(this.$store.state.netdb_axios_config, this.ref_obj_fq, this.refobj_id_field, this.refobj_id_value) + this.records = res.data[1] + this.record_types = apiutil.dict_by_value_of_array(res.data[2], 'short_name') } } } diff --git a/frontend/src/views/cntl/Groups.vue b/frontend/src/views/cntl/Groups.vue index cc60599ee..c3764a34b 100644 --- a/frontend/src/views/cntl/Groups.vue +++ b/frontend/src/views/cntl/Groups.vue @@ -59,8 +59,8 @@ :object_title="db_editor_object_fq_name != null?db_editor_object_fq_name[db_editor_object_fq_name]:''" :old_data="db_editor_old_data"> </DBEditor> - <EVLogViewer v-if="evlogGroup" modal_id="groups-evlog" :pk="evlogGroup.log_pk" - :title="'Gruppe: ' + evlogGroup.name"></EVLogViewer> + <EVLogViewer v-if="evlogGroup" modal_id="groups-evlog" + :title="'Gruppe: ' + evlogGroup.name" ref_obj_fq="cntl.group" refobj_id_field="name" :refobj_id_value="evlogGroup.name"></EVLogViewer> </div> </template> diff --git a/frontend/src/views/cntl/OU.vue b/frontend/src/views/cntl/OU.vue index 42f957a2b..d06b0a46f 100644 --- a/frontend/src/views/cntl/OU.vue +++ b/frontend/src/views/cntl/OU.vue @@ -126,7 +126,8 @@ :presets="db_editor_presets" :non_optionals_order="['ou_short_name', 'fqdn_value']" object_title="Domain-zu-Organisationseinheits-Zuordnung"></DBEditor> - <EVLogViewer v-if="evlogOu" modal_id="ou_evlog" :pk="evlogOu.log_pk" + <EVLogViewer v-if="evlogOu" modal_id="ou_evlog" ref_obj_fq="org.unit" refobj_id_field="short_name" + :refobj_id_value="evlogOu.short_name" :title="'Organisationseinheit: ' + evlogOu.name"></EVLogViewer> </div> </template> diff --git a/frontend/src/views/dnsvs/BCDRecords.vue b/frontend/src/views/dnsvs/BCDRecords.vue index c615fb1a8..3b657111b 100644 --- a/frontend/src/views/dnsvs/BCDRecords.vue +++ b/frontend/src/views/dnsvs/BCDRecords.vue @@ -311,7 +311,7 @@ :non_optionals_order="['value', 'description']"> </DBEditor> <EVLogViewer v-if="range" modal_id="evlog_bcd" :title="'BCD \''+ range.name + '\''" - :pk="range.log_pk"></EVLogViewer> + ref_obj_fq="nd.bcd" refobj_id_field="name_list" :refobj_id_value="[range.name]"></EVLogViewer> </Loading> </div> </template> -- GitLab