File: D:/web/matomo.vdk/plugins/UsersManager/vue/src/AnonymousSettings/AnonymousSettings.vue
<!--
Matomo - free/libre analytics platform
@link https://matomo.org
@license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
-->
<template>
<ContentBlock :content-title="title">
<div class="alert alert-info" v-if="anonymousSites.length === 0">
{{ translate('UsersManager_NoteNoAnonymousUserAccessSettingsWontBeUsed2') }}
</div>
<div v-form v-if="anonymousSites.length > 0">
<div>
<Field
uicontrol="radio"
name="anonymousDefaultReport"
v-model="defaultReport"
:introduction="translate(
'UsersManager_WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess',
)"
:options="defaultReportOptions"
/>
</div>
<div>
<Field
uicontrol="select"
name="anonymousDefaultReportWebsite"
v-model="defaultReportWebsite"
:options="anonymousSites"
/>
</div>
<div>
<Field
uicontrol="radio"
name="anonymousDefaultDate"
v-model="defaultDate"
:introduction="translate('UsersManager_ForAnonymousUsersReportDateToLoadByDefault')"
:options="availableDefaultDates"
/>
</div>
<SaveButton
:saving="loading"
@confirm="save()"
/>
</div>
</ContentBlock>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import {
AjaxHelper,
ContentBlock,
NotificationsStore,
translate,
} from 'CoreHome';
import { Form, SaveButton, Field } from 'CorePluginsAdmin';
interface AnonymousSettingsState {
defaultReport: string;
loading: boolean;
defaultReportWebsite: string|number;
defaultDate: string;
}
export default defineComponent({
props: {
title: {
type: String,
required: true,
},
anonymousSites: {
type: Array,
required: true,
},
anonymousDefaultReport: {
type: [String, Number],
required: true,
},
anonymousDefaultSite: {
type: String,
required: true,
},
anonymousDefaultDate: {
type: String,
required: true,
},
availableDefaultDates: {
type: Object,
required: true,
},
defaultReportOptions: {
type: Object,
required: true,
},
},
components: {
ContentBlock,
SaveButton,
Field,
},
directives: {
Form,
},
data(): AnonymousSettingsState {
return {
loading: false,
defaultReport: `${this.anonymousDefaultReport}`,
defaultReportWebsite: this.anonymousDefaultSite,
defaultDate: this.anonymousDefaultDate,
};
},
methods: {
save() {
const postParams = {
anonymousDefaultReport: this.defaultReport === '1'
? this.defaultReportWebsite
: this.defaultReport,
anonymousDefaultDate: this.defaultDate,
};
this.loading = true;
AjaxHelper.post(
{
module: 'UsersManager',
action: 'recordAnonymousUserSettings',
format: 'json',
},
postParams,
{ withTokenInUrl: true },
).then(() => {
const id = NotificationsStore.show({
message: translate('CoreAdminHome_SettingsSaveSuccess'),
id: 'anonymousUserSettings',
context: 'success',
type: 'transient',
});
NotificationsStore.scrollToNotification(id);
}).finally(() => {
this.loading = false;
});
},
},
});
</script>