Bug 34587: Add ability to delete saved reports

Signed-off-by: Jessica Zairo <jzairo@bywatersolutions.com>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Matt Blenkinsop 2023-08-01 09:14:36 +00:00 committed by Tomas Cohen Arazi
parent cbe5e86fe8
commit f57d5088c7
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
6 changed files with 84 additions and 9 deletions

3
.gitignore vendored
View File

@ -22,5 +22,4 @@ koha-tmpl/intranet-tmpl/prog/css/staff-global.css
koha-tmpl/intranet-tmpl/prog/js/vue/dist/
how-to.pl
koha-tmpl/intranet-tmpl/prog/en/modules/how-to.tt
installer/data/mysql/atomicupdate/demo_data.pl
koha-tmpl/intranet-tmpl/prog/en/modules/how-to.tt

View File

@ -19,6 +19,7 @@ use Modern::Perl;
use Mojo::Base 'Mojolicious::Controller';
use Koha::ERM::DefaultUsageReport;
use Koha::ERM::DefaultUsageReports;
use Scalar::Util qw( blessed );

View File

@ -75,4 +75,12 @@ __PACKAGE__->set_primary_key("erm_default_usage_report_id");
# You can replace this text with custom code or comments, and it will be preserved on regeneration
sub koha_object_class {
'Koha::ERM::DefaultUsageReport';
}
sub koha_objects_class {
'Koha::ERM::DefaultUsageReports';
}
1;

View File

@ -69,8 +69,17 @@
@update:modelValue="
setMetricTypesAndProviderList($event)
"
required
/>
:required="!query.report_type"
>
<template #search="{ attributes, events }">
<input
:required="!query.report_type"
class="vs__search"
v-bind="attributes"
v-on="events"
/>
</template>
</v-select>
<span class="required">{{ $__("Required") }}</span>
</li>
<li>

View File

@ -24,14 +24,32 @@
id="default_usage_reports"
v-model="default_usage_report"
label="report_name"
:reduce="report => report.report_url_params"
:reduce="report => report"
:options="default_usage_reports"
/>
:required="!default_usage_report"
>
<template #search="{ attributes, events }">
<input
:required="!default_usage_report"
class="vs__search"
v-bind="attributes"
v-on="events"
/>
</template>
</v-select>
<span class="required">{{ $__("Required") }}</span>
</li>
</ol>
</fieldset>
<fieldset class="action">
<ButtonSubmit />
<button
v-if="default_usage_report"
@click="deleteSavedReport($event)"
class="button_format"
>
Delete report
</button>
</fieldset>
</form>
</div>
@ -40,8 +58,17 @@
<script>
import ButtonSubmit from "../ButtonSubmit.vue"
import { APIClient } from "../../fetch/api-client.js"
import { inject } from "vue"
export default {
setup() {
const { setMessage, setError } = inject("mainStore")
return {
setMessage,
setError,
}
},
data() {
return {
initialized: false,
@ -63,12 +90,34 @@ export default {
error => {}
)
},
async deleteSavedReport(e) {
e.preventDefault()
const id = this.default_usage_report.erm_default_usage_report_id
if (id) {
const client = APIClient.erm
await client.default_usage_reports.delete(id).then(
success => {
this.setMessage(this.$__("Report deleted successfully"))
this.default_usage_reports =
this.default_usage_reports.filter(
report =>
report.erm_default_usage_report_id !== id
)
this.default_usage_report = null
},
error => {}
)
} else {
this.setError(
this.$__("No report was selected - could not delete")
)
}
},
displayDefaultReport(e) {
e.preventDefault()
this.$router.push({
name: "UsageStatisticsReportsViewer",
query: { data: this.default_usage_report },
query: { data: this.default_usage_report.report_url_params },
})
},
},
@ -79,4 +128,9 @@ export default {
}
</script>
<style></style>
<style scoped>
.button_format {
padding: 0.5em 1em;
margin-left: 0.5em;
}
</style>

View File

@ -377,6 +377,10 @@ export class ERMAPIClient extends HttpClient {
endpoint: "default_usage_reports",
body: default_usage_report,
}),
delete: (id) =>
this.delete({
endpoint: "default_usage_reports/" + id,
}),
};
}
}