- cancel/resume subscription fix

- upload into root folder fix
- custom color theme part 3
This commit is contained in:
Peter Papp
2021-03-25 10:46:23 +01:00
parent a18ceb1b4f
commit ac6b2b09e1
41 changed files with 591 additions and 348 deletions

View File

@@ -26,6 +26,21 @@
<FormLabel class="mt-70">{{ $t('admin_settings.appearance.section_appearance') }}</FormLabel>
<!--TODO: add language-->
<div class="block-wrapper">
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Title" rules="required" v-slot="{ errors }">
<div class="inline-wrapper">
<div class="switch-label">
<label class="input-label">Color Theme:</label>
<small class="input-help">Your color change will be visible after app refresh.</small>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</div>
<input @input="$updateText('/admin/settings', 'app_color', app.color)" v-model="app.color" :placeholder="$t('admin_settings.appearance.title_plac')" type="color"
:class="{'is-error': errors[0]}" class="focus-border-theme"/>
</div>
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>{{ $t('admin_settings.appearance.logo') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="App Logo" v-slot="{ errors }">
@@ -91,7 +106,7 @@
mounted() {
axios.get('/api/admin/settings', {
params: {
column: 'app_title|app_description|app_logo|app_favicon|app_logo_horizontal'
column: 'app_title|app_description|app_logo|app_favicon|app_logo_horizontal|app_color'
}
})
.then(response => {
@@ -100,6 +115,7 @@
description: response.data.app_description,
favicon: response.data.app_favicon,
title: response.data.app_title,
color: response.data.app_color,
logo: response.data.app_logo,
}
})

View File

@@ -9,31 +9,31 @@
<!--Page Tab links-->
<div class="menu-list-wrapper horizontal">
<router-link replace :to="{name: 'PlanSettings', params: {id: plan.id}}"
class="menu-list-item link">
<div class="icon">
<settings-icon size="17"></settings-icon>
class="menu-list-item link link border-bottom-theme">
<div class="icon text-theme">
<settings-icon size="17" />
</div>
<div class="label">
<div class="label text-theme">
{{ $t('admin_page_plans.tabs.settings') }}
</div>
</router-link>
<router-link replace :to="{name: 'PlanSubscribers', params: {id: plan.id}}"
class="menu-list-item link">
<div class="icon">
<users-icon size="17"></users-icon>
class="menu-list-item link link border-bottom-theme">
<div class="icon text-theme">
<users-icon size="17" />
</div>
<div class="label">
<div class="label text-theme">
{{ $t('admin_page_plans.tabs.subscribers') }}
</div>
</router-link>
<router-link replace :to="{name: 'PlanDelete', params: {id: plan.id}}"
class="menu-list-item link">
<div class="icon">
<trash2-icon size="17"></trash2-icon>
class="menu-list-item link link border-bottom-theme">
<div class="icon text-theme">
<trash2-icon size="17" />
</div>
<div class="label">
<div class="label text-theme">
{{ $t('admin_page_plans.tabs.delete') }}
</div>
</router-link>

View File

@@ -1,7 +1,7 @@
<template>
<PageTab :is-loading="isLoading">
<PageTabGroup>
<DatatableWrapper @init="isLoading = false" :api="'/api/admin/plans/' + this.$route.params.id + '/subscribers'" :paginator="false" :columns="columns" :data="subscribers" class="table">
<DatatableWrapper @init="isLoading = false" :api="`/api/admin/plans/${this.$route.params.id}/subscribers`" :paginator="false" :columns="columns" :data="subscribers" class="table">
<!--Table data content-->
<template slot-scope="{ row }">
@@ -10,14 +10,14 @@
<router-link :to="{name: 'UserDetail', params: {id: row.data.id}}">
<DatatableCellImage
image-size="small"
:image="row.data.attributes.avatar"
:title="row.data.attributes.name"
:image="row.data.relationships.settings.data.attributes.avatar"
:title="row.data.relationships.settings.data.attributes.name"
/>
</router-link>
</td>
<td>
<span class="cell-item">
{{ row.relationships.storage.data.attributes.used }}%
{{ row.data.attributes.storage.used }}%
</span>
</td>
<td>

View File

@@ -69,7 +69,7 @@
</div>
</router-link>
<router-link replace :to="{name: 'UserDelete'}" v-if="user.data.relationships.settings.data.attributes.name !== admin.name"
<router-link replace :to="{name: 'UserDelete'}" v-if="admin && user.data.relationships.settings.data.attributes.name !== admin.data.relationships.settings.data.attributes.name"
class="menu-list-item link border-bottom-theme">
<div class="icon text-theme">
<trash2-icon size="17"></trash2-icon>
@@ -120,7 +120,7 @@
computed: {
...mapGetters(['config']),
admin() {
return this.$store.getters.user ? this.$store.getters.user.data.attributes : undefined
return this.$store.getters.user ? this.$store.getters.user : undefined
},
},
data() {

View File

@@ -16,7 +16,7 @@
<label>{{ $t('admin_page_user.select_role') }}:</label>
<div class="single-line-form">
<SelectInput v-model="userRole" :options="roles"
:placeholder="$t('admin_page_user.select_role')" :isError="errors[0]"/>
:placeholder="$t('admin_page_user.select_role')" :isError="errors[0]" />
<ButtonBase :loading="isSendingRequest" :disabled="isSendingRequest" type="submit"
button-style="theme" class="submit-button">
{{ $t('admin_page_user.save_role') }}
@@ -199,8 +199,6 @@
// Reset errors
this.$refs.changeRole.reset()
this.isSendingRequest = false
this.$emit('reload-user')
events.$emit('toaster', {
@@ -209,16 +207,16 @@
})
})
.catch(() => {
this.isSendingRequest = false
events.$emit('alert:open', {
title: this.$t('popup_error.title'),
message: this.$t('popup_error.message'),
})
})
.finally(() => {
this.isSendingRequest = false
})
}
}
},
}
</script>

View File

@@ -41,9 +41,6 @@
<!--Navigation Sidebar-->
<MenuBar />
<!--Toastr-->
<ToastrWrapper />
<!--File page-->
<keep-alive :include="['Admin', 'Users']">
<router-view :class="{'is-scaled-down': isScaledDown}" />
@@ -54,7 +51,6 @@
<script>
import MobileSortingAndPreview from '@/components/FilesView/MobileSortingAndPreview'
import MobileMultiSelectMenu from '@/components/FilesView/MobileMultiSelectMenu'
import ToastrWrapper from '@/components/Others/Notifications/ToastrWrapper'
import ProcessingPopup from '@/components/FilesView/ProcessingPopup'
import FileFullPreview from '@/components/FilesView/FileFullPreview'
import MobileNavigation from '@/components/Others/MobileNavigation'
@@ -79,7 +75,6 @@ export default {
MobileNavigation,
FileFullPreview,
ProcessingPopup,
ToastrWrapper,
CreateFolder,
ShareCreate,
MobileMenu,

View File

@@ -4,7 +4,7 @@
<MobileHeader :title="$router.currentRoute.meta.title" />
<div class="content-page">
<div class="plan-title">
<credit-card-icon size="42" class="title-icon"></credit-card-icon>
<credit-card-icon size="42" class="title-icon text-theme" />
<h1>{{ $t('page_upgrade_account.title') }}</h1>
<h2>{{ $t('page_upgrade_account.desription') }}</h2>
</div>
@@ -95,6 +95,7 @@
:placeholder="$t('user_settings.name_plac')"
type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -109,6 +110,7 @@
:placeholder="$t('user_settings.address_plac')"
type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -124,6 +126,7 @@
:placeholder="$t('user_settings.city_plac')"
type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -138,6 +141,7 @@
:placeholder="$t('user_settings.postal_code_plac')"
type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -167,6 +171,7 @@
:placeholder="$t('user_settings.state_plac')"
type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
/>
<small class="input-help">
State, county, province, or region.
@@ -184,6 +189,7 @@
:placeholder="$t('user_settings.phone_number_plac')"
type="text"
:class="{'is-error': errors[0]}"
class="focus-border-theme"
/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
@@ -708,7 +714,7 @@
margin: 0 auto 80px;
path, line, polyline, rect, circle {
color: $theme;
color: inherit;
}
h1 {

View File

@@ -6,7 +6,7 @@
<!--Page Title-->
<div class="plan-title">
<cloud-icon size="42" class="title-icon"></cloud-icon>
<cloud-icon size="42" class="title-icon text-theme" />
<h1>{{ $t('page_pricing_tables.title') }}</h1>
<h2>{{ $t('page_pricing_tables.description') }}</h2>
</div>
@@ -75,7 +75,7 @@
margin: 0 auto 80px;
path, line, polyline, rect, circle {
color: $theme;
color: inherit;
}
h1 {

View File

@@ -53,7 +53,7 @@
<!--Empty page-->
<template v-slot:empty-page>
<InfoBox>
<p>{{ $t('user_payments.empty') }} <router-link v-if="user.data.attributes.stripe_customer" :to="{name: 'CreatePaymentMethod'}">Add new payment method.</router-link> </p>
<p>{{ $t('user_payments.empty') }} <router-link v-if="user.data.attributes.stripe_customer" :to="{name: 'CreatePaymentMethod'}" class="text-theme">Add new payment method.</router-link> </p>
</InfoBox>
</template>
</DatatableWrapper>

View File

@@ -128,7 +128,7 @@
// Send delete request
axios
.post('/api/subscription/cancel')
.post('/api/user/subscription/cancel')
.then(() => {
// Update user data
@@ -172,7 +172,7 @@
// Send delete request
axios
.post('/api/subscription/resume')
.post('/api/user/subscription/resume')
.then(() => {
// Update user data