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:
parent
cbe5e86fe8
commit
f57d5088c7
|
|
@ -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
|
||||
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue