translations update

This commit is contained in:
carodej
2020-07-12 11:02:21 +02:00
parent 3c3a18cf6b
commit a74c1c7b6e
46 changed files with 13226 additions and 2018 deletions

View File

@@ -14,7 +14,7 @@
<settings-icon size="17"></settings-icon>
</div>
<div class="label">
Settings
{{ $t('admin_page_plans.tabs.settings') }}
</div>
</router-link>
@@ -24,7 +24,7 @@
<users-icon size="17"></users-icon>
</div>
<div class="label">
Subscribers
{{ $t('admin_page_plans.tabs.subscribers') }}
</div>
</router-link>
@@ -34,7 +34,7 @@
<trash2-icon size="17"></trash2-icon>
</div>
<div class="label">
Delete Plan
{{ $t('admin_page_plans.tabs.delete') }}
</div>
</router-link>
</div>

View File

@@ -8,52 +8,60 @@
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
<div class="form-group">
<FormLabel>Plan Details</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_details') }}
</FormLabel>
<!--Name-->
<div class="block-wrapper">
<label>Name:</label>
<label>{{ $t('admin_page_plans.form.name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<input v-model="plan.name" placeholder="Plan name" type="text" :class="{'is-error': errors[0]}"/>
<input v-model="plan.name" :placeholder="$t('admin_page_plans.form.name_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Description-->
<div class="block-wrapper">
<label>Description (optional):</label>
<label>{{ $t('admin_page_plans.form.description') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Description" v-slot="{ errors }">
<textarea v-model="plan.description" placeholder="Plan description" :class="{'is-error': errors[0]}"/>
<textarea v-model="plan.description" :placeholder="$t('admin_page_plans.form.description_plac')" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<FormLabel>Plan Pricing</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_pricing') }}
</FormLabel>
<!--Price-->
<div class="block-wrapper">
<label>Price:</label>
<label>{{ $t('admin_page_plans.form.price') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Plan price" rules="required" v-slot="{ errors }">
<input v-model="plan.price" placeholder="Plan price" type="number" step="0.01" min="1" max="99999" :class="{'is-error': errors[0]}"/>
<input v-model="plan.price" :placeholder="$t('admin_page_plans.form.price_plac')" type="number" step="0.01" min="1" max="99999"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Storage Capacity-->
<div class="block-wrapper">
<label>Storage Capacity:</label>
<label>{{ $t('admin_page_plans.form.storage') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Storage capacity" rules="required" v-slot="{ errors }">
<input v-model="plan.capacity" placeholder="Storage capacity" type="number" min="1" max="999999999" :class="{'is-error': errors[0]}"/>
<input v-model="plan.capacity" :placeholder="$t('admin_page_plans.form.storage_plac')" type="number" min="1" max="999999999"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<small class="input-help">You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.</small>
<small class="input-help">
{{ $t('admin_page_plans.form.storage_helper') }}
</small>
</div>
</div>
<div class="form-group">
<ButtonBase :disabled="isLoading" :loading="isLoading" button-style="theme" type="submit">
Create Plan
{{ $t('admin_page_plans.create_plan_button') }}
</ButtonBase>
</div>
</ValidationObserver>
@@ -72,7 +80,7 @@
import ButtonBase from '@/components/FilesView/ButtonBase'
import PageHeader from '@/components/Others/PageHeader'
import {required} from 'vee-validate/dist/rules'
import { mapGetters } from 'vuex'
import {mapGetters} from 'vuex'
import {events} from "@/bus"
import axios from 'axios'
@@ -119,13 +127,10 @@
})
.then(response => {
// End loading
this.isLoading = false
// Show toaster
events.$emit('toaster', {
type: 'success',
message: 'Your plan was successfully created!',
message: this.$t('toaster.plan_created'),
})
// Go to User page
@@ -136,29 +141,14 @@
// Validation errors
if (error.response.status == 422) {
// Email validation error
if (error.response.data.errors['email']) {
this.$refs.createPlan.setErrors({
'email': error.response.data.errors['email']
});
}
// Password validation error
if (error.response.data.errors['password']) {
this.$refs.createPlan.setErrors({
'password': error.response.data.errors['password']
});
}
// Password validation error
if (error.response.data.errors['storage_capacity']) {
this.$refs.createPlan.setErrors({
'storage capacity': 'The storage capacity must be lower than 10 digit number.'
'storage capacity': this.$t('errors.capacity_digit')
});
}
} else {
events.$emit('alert:open', {
@@ -167,9 +157,11 @@
})
}
}).finally(() => {
// End loading
this.isLoading = false
})
})
}
},
}

View File

@@ -1,24 +1,19 @@
<template>
<PageTab class="form-fixed-width">
<PageTabGroup>
<FormLabel>Delete Plan</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_delete') }}
</FormLabel>
<InfoBox>
<p>You can delete plan, but, pay attention!</p>
<p>{{ $t('admin_page_plans.disclaimer_delete_plan') }}</p>
</InfoBox>
<ValidationObserver ref="deletePlan" @submit.prevent="deletePlan" v-slot="{ invalid }" tag="form"
class="form block-form">
<ValidationProvider tag="div" class="block-wrapper" v-slot="{ errors }" mode="passive"
name="Plan name" :rules="'required|is:' + plan.attributes.name">
<ValidationObserver ref="deletePlan" @submit.prevent="deletePlan" v-slot="{ invalid }" tag="form" class="form block-form">
<ValidationProvider tag="div" class="block-wrapper" v-slot="{ errors }" mode="passive" name="Plan name" :rules="'required|is:' + plan.attributes.name">
<label>{{ $t('admin_page_user.label_delete_user', {user: plan.attributes.name}) }}:</label>
<div class="single-line-form">
<input v-model="planName"
placeholder="Type plan name"
type="text"
:class="{'is-error': errors[0]}"
/>
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit"
button-style="danger" class="submit-button">
Delete Plan
<input v-model="planName" :placeholder="$t('admin_page_plans.form.name_delete_plac')" type="text" :class="{'is-error': errors[0]}" />
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit" button-style="danger" class="submit-button">
{{ $t('admin_page_plans.delete_plan_button') }}
</ButtonBase>
</div>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
@@ -47,15 +42,15 @@
'plan'
],
components: {
FormLabel,
InfoBox,
PageTabGroup,
PageTab,
ValidationProvider,
ValidationObserver,
PageTabGroup,
ButtonBase,
FormLabel,
SetupBox,
required,
InfoBox,
PageTab,
},
data() {
return {
@@ -88,8 +83,8 @@
// Show message
events.$emit('success:open', {
emoji: '👍',
title: 'Plan was deleted',
message: 'Your plan was successfully deleted.',
title: this.$t('popup_deleted_plan.title'),
message: this.$t('popup_deleted_plan.message'),
})
this.$router.push({name: 'Plans'})
@@ -116,14 +111,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -2,15 +2,17 @@
<PageTab>
<ValidationObserver ref="personalInformation" v-slot="{ invalid }" tag="form" class="form block-form form-fixed-width">
<PageTabGroup>
<FormLabel>Plan details</FormLabel>
<FormLabel>
{{ $t('admin_page_plans.form.title_details') }}
</FormLabel>
<!--Visible-->
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Status:</label>
<small class="input-help">Status of your plan availability on website.</small>
<label class="input-label">{{ $t('admin_page_plans.form.status') }}:</label>
<small class="input-help">{{ $t('admin_page_plans.form.status_help') }}</small>
</div>
<SwitchInput @input="changeStatus" class="switch" :state="plan.attributes.status"/>
</div>
@@ -19,34 +21,36 @@
<!--Name-->
<div class="block-wrapper">
<label>Name:</label>
<label>{{ $t('admin_page_plans.form.name') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Name" rules="required" v-slot="{ errors }">
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'name', plan.attributes.name)" v-model="plan.attributes.name" placeholder="Plan name" type="text" :class="{'is-error': errors[0]}"/>
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'name', plan.attributes.name)" v-model="plan.attributes.name" :placeholder="$t('admin_page_plans.form.name_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Description-->
<div class="block-wrapper">
<label>Description (optional):</label>
<label>{{ $t('admin_page_plans.form.description') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Description" v-slot="{ errors }">
<textarea @input="$updateText('/plans/' + $route.params.id + '/update', 'description', plan.attributes.description)" v-model="plan.attributes.description" placeholder="Plan description" :class="{'is-error': errors[0]}"/>
<textarea @input="$updateText('/plans/' + $route.params.id + '/update', 'description', plan.attributes.description)" v-model="plan.attributes.description" :placeholder="$t('admin_page_plans.form.description_plac')" :class="{'is-error': errors[0]}"></textarea>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
</div>
<!--Storage Capacity-->
<div class="block-wrapper">
<label>Storage Capacity in GB:</label>
<label>{{ $t('admin_page_plans.form.storage') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Storage capacity" rules="required" v-slot="{ errors }">
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'capacity', plan.attributes.capacity)" v-model="plan.attributes.capacity" placeholder="Storage capacity" type="number" min="1" max="999999999" :class="{'is-error': errors[0]}"/>
<input @input="$updateText('/plans/' + $route.params.id + '/update', 'capacity', plan.attributes.capacity)" v-model="plan.attributes.capacity" :placeholder="$t('admin_page_plans.form.storage_plac')" type="number" min="1" max="999999999" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<small class="input-help">You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.</small>
<small class="input-help">
{{ $t('admin_page_plans.form.storage_helper') }}
</small>
</div>
<InfoBox>
<p>Price change for your plan is not available due to Stripe service design. If you wish change your price plan, please, create new plan.</p>
<p>{{ $t('admin_page_plans.disclaimer_edit_price') }}</p>
</InfoBox>
</PageTabGroup>
</ValidationObserver>
@@ -107,13 +111,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>

View File

@@ -33,7 +33,7 @@
</DatatableWrapper>
</PageTabGroup>
<InfoBox v-else>
<p>There is no any subscriber yet.</p>
<p>{{ $t('admin_page_plans.subscribers.empty') }}</p>
</InfoBox>
</PageTab>
</template>
@@ -65,7 +65,7 @@
isLoading: false,
columns: [
{
label: 'User',
label: this.$t('admin_page_user.table.name'),
field: 'data.attributes.name',
sortable: true
},
@@ -99,14 +99,4 @@
.block-form {
max-width: 100%;
}
@media only screen and (max-width: 960px) {
}
@media (prefers-color-scheme: dark) {
}
</style>