Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/MobileMessaging/vue/src/ReportParameters/ReportParameters.vue')
-rw-r--r--plugins/MobileMessaging/vue/src/ReportParameters/ReportParameters.vue79
1 files changed, 79 insertions, 0 deletions
diff --git a/plugins/MobileMessaging/vue/src/ReportParameters/ReportParameters.vue b/plugins/MobileMessaging/vue/src/ReportParameters/ReportParameters.vue
new file mode 100644
index 0000000000..d0c067265d
--- /dev/null
+++ b/plugins/MobileMessaging/vue/src/ReportParameters/ReportParameters.vue
@@ -0,0 +1,79 @@
+<!--
+ Matomo - free/libre analytics platform
+ @link https://matomo.org
+ @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+-->
+
+<template>
+ <div v-if="report && report.type === 'mobile'">
+ <SelectPhoneNumbers
+ :phone-numbers="phoneNumbers"
+ :with-introduction="true"
+ :model-value="report.phoneNumbers"
+ @update:model-value="$emit('change', 'phoneNumbers', $event)"
+ />
+ </div>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue';
+import { Report } from 'ScheduledReports';
+import SelectPhoneNumbers from '../SelectPhoneNumbers/SelectPhoneNumbers.vue';
+
+const REPORT_TYPE = 'mobile';
+
+export default defineComponent({
+ props: {
+ report: {
+ type: Object,
+ required: true,
+ },
+ phoneNumbers: {
+ type: [Array, Object],
+ required: true,
+ },
+ },
+ components: {
+ SelectPhoneNumbers,
+ },
+ emits: ['change'],
+ created() {
+ const {
+ resetReportParametersFunctions,
+ updateReportParametersFunctions,
+ getReportParametersFunctions,
+ } = window;
+
+ if (!resetReportParametersFunctions[REPORT_TYPE]) {
+ resetReportParametersFunctions[REPORT_TYPE] = (report: Report) => {
+ report.phoneNumbers = [];
+ report.formatmobile = 'sms';
+ };
+ }
+
+ if (!updateReportParametersFunctions[REPORT_TYPE]) {
+ updateReportParametersFunctions[REPORT_TYPE] = (report: Report) => {
+ if (!report?.parameters) {
+ return;
+ }
+
+ if (report.parameters && report.parameters.phoneNumbers) {
+ report.phoneNumbers = report.parameters.phoneNumbers;
+ }
+ report.formatmobile = 'sms';
+ };
+ }
+
+ if (!getReportParametersFunctions[REPORT_TYPE]) {
+ getReportParametersFunctions[REPORT_TYPE] = (report: Report) => {
+ // returning [''] when no phone numbers are selected avoids the "please provide a value
+ // for 'parameters'" error message
+ const phoneNumbers: string[]|undefined = report.phoneNumbers as string[]|undefined;
+ return {
+ phoneNumbers: phoneNumbers || [''],
+ };
+ };
+ }
+ },
+});
+</script>