- 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
+3
View File
@@ -1,6 +1,7 @@
<template>
<div id="vuefilemanager" @click="unClick" v-cloak>
<Alert />
<ToastrWrapper />
<router-view />
@@ -10,6 +11,7 @@
</template>
<script>
import ToastrWrapper from '@/components/Others/Notifications/ToastrWrapper'
import CookieDisclaimer from '@/components/Others/CookieDisclaimer'
import Vignette from '@/components/Others/Vignette'
import Alert from '@/components/FilesView/Alert'
@@ -19,6 +21,7 @@ export default {
name: 'app',
components: {
CookieDisclaimer,
ToastrWrapper,
Vignette,
Alert
},
@@ -48,11 +48,6 @@
transform: scale(0.95);
}
&.theme {
color: $theme;
background: rgba($theme, .1);
}
&.secondary {
color: $text;
background: $light_background;
@@ -7,14 +7,12 @@
<chevron-left-icon size="17" :class="{ 'is-active': browseHistory.length > 1 }" class="icon-back"></chevron-left-icon>
<span class="back-directory-title">
{{ directoryName }}
</span>
{{ directoryName }}
</span>
<span @click.stop="folderActions" v-if="
browseHistory.length > 1 && $isThisLocation(['base', 'public'])
" class="folder-options" id="folder-actions">
<more-horizontal-icon size="14" class="icon-more"></more-horizontal-icon>
</span>
<span @click.stop="folderActions" v-if="browseHistory.length > 1 && $isThisLocation(['base', 'public'])" class="folder-options group" id="folder-actions">
<more-horizontal-icon size="14" class="icon-more group-hover-text-theme" />
</span>
</div>
</div>
@@ -287,7 +285,7 @@ export default {
background: $light_background;
svg circle {
stroke: $theme;
color: inherit;
}
}
@@ -68,8 +68,6 @@ export default {
events.$on('drop', () => {
this.isVisible = false
})
}
}
</script>
@@ -88,43 +86,11 @@ export default {
border-radius: 8px;
box-shadow: 0 7px 25px 1px rgba(0, 0, 0, 0.12);
background: white;
/deep/ .text {
.title {
color: $text;
}
.count {
color: $text-muted;
}
}
/deep/ .icon-wrapper {
.icon {
stroke: $theme;
}
}
}
@media (prefers-color-scheme: dark) {
#multi-select-ui {
background: $dark_mode_foreground;
/deep/ .text {
.title {
color: $dark_mode_text_primary;
}
.count {
color: $dark_mode_text_secondary;
}
}
/deep/ .icon-wrapper {
.icon {
stroke: $theme;
}
}
}
}
@@ -15,7 +15,7 @@
</div>
<!--If is file or image, then link item-->
<span v-if="isFile || (isImage && !item.thumbnail)" class="file-icon-text">
<span v-if="isFile || (isImage && !item.thumbnail)" class="file-icon-text text-theme">
{{ item.mimetype }}
</span>
@@ -394,7 +394,7 @@ export default {
vertical-align: middle;
path, circle, line {
stroke: $theme;
color: inherit;
}
}
}
@@ -438,7 +438,6 @@ export default {
padding: 15px 0;
&.is-dragenter {
border: 2px dashed $theme;
border-radius: 8px;
}
@@ -489,7 +488,6 @@ export default {
text-align: center;
left: 0;
right: 0;
color: $theme;
@include font-size(12);
font-weight: 600;
user-select: none;
@@ -509,7 +509,6 @@ export default {
padding: 7px;
&.is-dragenter {
border: 2px dashed $theme;
border-radius: 8px;
}
@@ -1,14 +1,16 @@
<template>
<svg width="13px" height="15px" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="VueFileManager" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<g id="Storage-Alert-Copy" transform="translate(-888.000000, -238.000000)" stroke="#000000" stroke-width="1.6">
<g id="Sorting-Menu" transform="translate(865.000000, 67.000000)">
<g id="alphabet-icon" transform="translate(24.000000, 172.000000)">
<polyline id="Path" points="11.1999993 13.1999991 5.59999967 0.199999094 0 13.1999991 5.59999967 0.199999094"></polyline>
<line x1="2.25" y1="8" x2="8.75" y2="8" id="Line-2"></line>
</g>
</g>
</g>
</g>
<svg class="alphabet-icon" fill="none" stroke="currentColor" stroke-width="2" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" width="15px" height="15px" viewBox="0 0 13 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<polyline id="Path" points="11.1999993 13.1999991 5.59999967 0.199999094 0 13.1999991 5.59999967 0.199999094"></polyline>
<line x1="2.25" y1="8" x2="8.75" y2="8" id="Line-2"></line>
</svg>
</template>
</template>
<style lang="scss">
.alphabet-icon {
polyline, line, g {
color: inherit;
}
}
</style>
@@ -1,27 +1,28 @@
<template>
<div class="wrapper">
<div class="icon-wrapper">
<CheckSquareIcon class="icon" size="21"/>
<CheckSquareIcon class="icon text-theme" size="21" />
</div>
<div class="text" >
<span class="title">{{title }}</span>
<span class="count">{{subtitle }}</span>
<div class="text">
<span class="title">{{ title }}</span>
<span class="count">{{ subtitle }}</span>
</div>
</div>
</template>
<script>
import {CheckSquareIcon} from "vue-feather-icons";
import {mapGetters} from 'vuex'
import {events} from '@/bus'
import {CheckSquareIcon} from "vue-feather-icons"
export default {
name:'MultiSelected',
props: [ 'title' , 'subtitle' ],
components: {CheckSquareIcon},
}
export default {
name: 'MultiSelected',
props: [
'title',
'subtitle'
],
components: {
CheckSquareIcon
},
}
</script>
<style lang="scss" scoped>
@@ -31,25 +32,28 @@ import {events} from '@/bus'
.wrapper {
display: flex;
justify-content: center;
.text{
.text {
padding-left: 10px;
width: 100%;
word-break: break-all;
.title {
@include font-size(14);
@include font-size(14);
font-weight: 700;
line-height: 1.4;
display: block;
color: $text;
}
.count {
@include font-size(12);
@include font-size(12);
font-weight: 600;
color: $theme;
color: $text-muted;
display: block;
}
}
.icon-wrapper {
display: inline-flex;
align-items: center;
@@ -60,8 +64,9 @@ import {events} from '@/bus'
white-space: nowrap;
outline: none;
border: none;
.icon {
stroke: $text;
polyline, path {
color: inherit;
}
}
}
@@ -72,15 +77,17 @@ import {events} from '@/bus'
.title {
color: $dark_mode_text_primary;
}
.count {
color: $dark_mode_text_secondary;
}
}
}
.icon-wrapper {
.icon {
.icon {
stroke: $theme;
}
}
}
}
}
}
</style>
+10 -1
View File
@@ -16,6 +16,7 @@
<folder-plus-icon v-if="icon === 'create-folder'" size="17" class="group-hover-text-theme"/>
<smile-icon v-if="icon === 'no-options'" size="17" class="group-hover-text-theme"/>
<paperclip-icon v-if="icon === 'zip-folder'" size="17" class="group-hover-text-theme"/>
<alphabet-icon v-if="icon === 'alphabet'" size="17" class="group-hover-text-theme"/>
</div>
<div class="text-label group-hover-text-theme">
{{ title }}
@@ -24,6 +25,7 @@
</template>
<script>
import AlphabetIcon from '@/components/FilesView/Icons/AlphabetIcon'
import {
CornerDownRightIcon,
DownloadCloudIcon,
@@ -36,7 +38,10 @@ import {
StarIcon,
LinkIcon,
EyeIcon,
SmileIcon
SmileIcon,
GridIcon,
ListIcon,
CalendarIcon,
} from 'vue-feather-icons'
export default {
@@ -48,6 +53,7 @@ import {
FolderPlusIcon,
PaperclipIcon,
LifeBuoyIcon,
AlphabetIcon,
Trash2Icon,
SmileIcon,
Edit2Icon,
@@ -55,6 +61,9 @@ import {
LinkIcon,
StarIcon,
EyeIcon,
GridIcon,
ListIcon,
CalendarIcon,
}
}
</script>
@@ -1,6 +1,6 @@
<template>
<div class="progress-bar">
<span :style="{ width: progress + '%' }"></span>
<span class="bg-theme" :style="{ width: progress + '%' }"></span>
</div>
</template>
@@ -23,7 +23,6 @@ export default {
border-radius: 10px;
span {
background: $theme;
display: block;
height: 100%;
border-radius: 10px;
@@ -1,56 +1,17 @@
<template>
<div class="menu-options" id="menu-list">
<OptionGroup class="menu-option-group">
<Option v-if="isList" @click="changePreview('grid')" :title="$t('preview_sorting.grid_view')" icon="grid" />
<Option v-if="isGrid" @click="changePreview('list')" :title="$t('preview_sorting.list_view')" icon="list" />
<Option v-if="isList" @click.native="changePreview('grid')" :title="$t('preview_sorting.grid_view')" icon="grid" />
<Option v-if="isGrid" @click.native="changePreview('list')" :title="$t('preview_sorting.list_view')" icon="list" />
</OptionGroup>
<OptionGroup class="menu-option-group">
<Option @click.stop="sort('created_at')" :title="$t('preview_sorting.sort_date')" icon="calendar" />
<Option @click.stop="sort('name')" :title="$t('preview_sorting.sort_alphabet')" icon="alphabet" />
<Option @click.native.stop="sort('created_at')" :title="$t('preview_sorting.sort_date')" icon="calendar" />
<Option @click.native.stop="sort('name')" :title="$t('preview_sorting.sort_alphabet')" icon="alphabet" />
</OptionGroup>
<ul v-if="false" class="menu-option-group">
<li v-if="isList" class="menu-option" @click="changePreview('grid')">
<div class="icon">
<grid-icon size="17"/>
</div>
<div class="text-label">
{{ $t('preview_sorting.grid_view') }}
</div>
</li>
<li v-if="isGrid" class="menu-option" @click="changePreview('list')">
<div class="icon">
<list-icon size="17"/>
</div>
<div class="text-label">
{{ $t('preview_sorting.list_view') }}
</div>
</li>
</ul>
<ul v-if="false" class="menu-option-group">
<li class="menu-option" @click.stop="sort('created_at')">
<div class="icon">
<calendar-icon size="17"/>
</div>
<div class="text-label">
{{ $t('preview_sorting.sort_date') }}
</div>
<div class="show-icon">
<arrow-up-icon size="17" v-if="filter.field === 'created_at'" :class="{ 'arrow-down': filter.sort === 'ASC' }"/>
</div>
</li>
<li class="menu-option" @click.stop="sort('name')">
<div class="icon">
<alphabet-icon size="17" class="alphabet-icon"/>
</div>
<div class="text-label">
{{ $t('preview_sorting.sort_alphabet') }}
</div>
<div class="show-icon">
<arrow-up-icon size="17" v-if="filter.field === 'name'" :class="{ 'arrow-down': filter.sort === 'ASC' }"/>
</div>
</li>
</ul>
<!-- TODO: implementovat sipky
<arrow-up-icon size="17" v-if="filter.field === 'created_at'" :class="{ 'arrow-down': filter.sort === 'ASC' }"/>
<arrow-up-icon size="17" v-if="filter.field === 'name'" :class="{ 'arrow-down': filter.sort === 'ASC' }"/>-->
</div>
</template>
@@ -129,7 +90,6 @@ export default {
this.filter.sort = sorting ? sorting.sort : 'DESC'
this.filter.field = sorting ? sorting.field : 'created_at'
}
}
</script>
@@ -152,14 +112,6 @@ export default {
.icon {
margin-right: 20px;
line-height: 0;
.alphabet-icon {
/deep/ line,
/deep/ polyline {
stroke: $text;
}
}
}
.text-label {
@@ -222,15 +174,6 @@ export default {
.menu-option {
color: $dark_mode_text_primary;
.icon {
.alphabet-icon {
/deep/ line,
/deep/ polyline {
stroke: $dark_mode_text_primary;
}
}
}
}
}
}
@@ -5,7 +5,7 @@
<!--Is processing-->
<span v-if="isProcessingFile">
<refresh-cw-icon size="12" class="sync-alt"></refresh-cw-icon>
<refresh-cw-icon size="12" class="sync-alt text-theme" />
{{ $t('uploading.processing_file') }}
</span>
@@ -17,7 +17,7 @@
<div class="progress-wrapper">
<ProgressBar :progress="uploadingProgress" />
<span @click="cancelUpload" :title="$t('uploading.cancel')" class="cancel-icon">
<x-icon size="16" @click="cancelUpload"></x-icon>
<x-icon size="16" @click="cancelUpload" class="hover-text-theme"></x-icon>
</span>
</div>
</div>
@@ -63,7 +63,7 @@
margin-right: 5px;
polyline, path {
stroke: $theme;
color: inherit;
}
}
@@ -103,7 +103,7 @@
&:hover {
line {
stroke: $theme;
color: inherit;
}
}
}
@@ -4,7 +4,7 @@
<div class="plan-wrapper">
<header class="plan-header">
<div class="icon">
<hard-drive-icon class="text-theme" size="26"></hard-drive-icon>
<hard-drive-icon class="text-theme" size="26" />
</div>
<h1 class="title">{{ plan.data.attributes.name }}</h1>
<h2 class="description">{{ plan.data.attributes.description }}</h2>
@@ -12,16 +12,21 @@
<script>
import { CheckIcon } from 'vue-feather-icons'
import { mapGetters } from 'vuex'
export default {
name: 'ColorPicker',
props: [ 'pickedColor' ],
components: { CheckIcon },
computed: {
...mapGetters([
'config'
])
},
data () {
return {
selectedColor: this.pickedColor,
colors: [
'#41B883',
'#FE6F6F',
'#FE6F91',
'#FE6FC0',
@@ -53,6 +58,9 @@ export default {
this.$emit('input', value)
}
},
created() {
this.colors.push(this.config.app_color)
}
}
</script>
@@ -2,12 +2,12 @@
<div class="inline-wrapper icon-append copy-input" :class="size" @click="copyUrl">
<input ref="sel" :value="item.shared.link" id="link-input" type="text" class="input-text" readonly>
<div class="multi-icon">
<div class="icon-item">
<link-icon v-if="! isCopiedLink" size="14"></link-icon>
<check-icon v-if="isCopiedLink" size="14"></check-icon>
<div class="icon-item group hover-bg-theme-100">
<link-icon v-if="! isCopiedLink" size="14" class="group-hover-text-theme hover-text-theme"/>
<check-icon v-if="isCopiedLink" size="14" class="group-hover-text-theme hover-text-theme"/>
</div>
<div class="icon-item" @click.stop.prevent="menuForEmail">
<send-icon size="14"></send-icon>
<div class="icon-item group hover-bg-theme-100" @click.stop.prevent="menuForEmail">
<send-icon size="14" class="group-hover-text-theme hover-text-theme" />
</div>
</div>
</div>
@@ -78,7 +78,7 @@ export default {
line,
path,
polygon {
stroke: $text !important;
color: $text;
}
.icon-item {
@@ -89,13 +89,12 @@ export default {
cursor: pointer;
&:hover {
background: $text;
line,
polyline,
path,
polygon {
stroke: white !important;
color: inherit;
}
}
@@ -42,23 +42,19 @@
/deep/ a {
font-size: 15px;
color: $theme;
}
/deep/ b {
font-size: 15px;
font-weight: 700;
color: $theme;
}
}
b {
font-weight: 700;
color: $theme;
}
a {
color: $theme;
font-weight: 700;
@include font-size(15);
line-height: 1.6;
@@ -4,7 +4,7 @@
<div class="plan-wrapper">
<header class="plan-header">
<div class="icon">
<hard-drive-icon size="26"></hard-drive-icon>
<hard-drive-icon class="text-theme" size="26" />
</div>
<h1 class="title">{{ plan.data.attributes.name }}</h1>
<h2 class="description">{{ plan.data.attributes.description }}</h2>
@@ -14,7 +14,7 @@
<span class="storage-description">{{ $t('page_pricing_tables.storage_capacity') }}</span>
</section>
<footer class="plan-footer">
<b class="price">
<b class="price text-theme">
{{ plan.data.attributes.price }}/{{ $t('global.monthly_ac') }}
<small v-if="plan.data.attributes.tax_rates.length > 0" class="vat-disclaimer">{{ $t('page_pricing_tables.vat_excluded') }}</small>
</b>
@@ -97,7 +97,7 @@
.icon {
path, line, polyline, rect, circle {
color: $theme;
color: inherit;
}
}
@@ -136,7 +136,6 @@
}
.price {
color: $theme;
@include font-size(18);
display: block;
margin-bottom: 20px;
@@ -157,9 +157,8 @@
}
.is-dragenter {
border: 2px dashed $theme !important;
border-radius: 8px;
}
border-radius: 8px;
}
.folder-item {
display: block;
+1 -1
View File
@@ -85,7 +85,7 @@ const Helpers = {
// Push items to file queue
[...files].map(item => {
this.$store.commit('ADD_FILES_TO_QUEUE', {
folder_id: store.getters.currentFolder.id,
folder_id: store.getters.currentFolder.id ? store.getters.currentFolder.id : '',
file: item,
})
});
@@ -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,
}
})
+12 -12
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>
@@ -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>
+2 -2
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() {
@@ -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>
-5
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,
@@ -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 {
+2 -2
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 {
+1 -1
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>
+2 -2
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