set default max team members in admin and setup wizard

This commit is contained in:
Čarodej
2022-04-05 07:47:37 +02:00
parent 2c86c62d7f
commit d386f70be8
6 changed files with 131 additions and 69 deletions

View File

@@ -1,3 +1,14 @@
## Version 2.0.14
#### Release date: 5. April 2022
- Added option to set default max team members for new user registrations
## Version 2.0.13
#### Release date: 4. April 2022
- Auto plan synchronization improvements.
- Fixed issue with thumbnails in grid preview type
- PayPal sandbox option was added into PayPal credentials setup
- Fixed issue in mobile spotlight where you trying open searched image
## Version 2.0.12
#### Release date: 2. April 2022
- Added status column to the fixed plan table

View File

@@ -7,7 +7,7 @@
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=df5bd89528649783",
"/chunks/database.js": "/chunks/database.js?id=15cc488117dccf7b",
"/chunks/environment.js": "/chunks/environment.js?id=ab5382f4452a258a",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=288594cd7f628cf8",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=15938ff1ad2d6ed2",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=916450217130f3b8",
"/chunks/shared.js": "/chunks/shared.js?id=d988ff3a8c3443dd",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=d718abdaf5edb271",
@@ -43,7 +43,7 @@
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=a694a01f3641712c",
"/chunks/app-index.js": "/chunks/app-index.js?id=efdbfa062749ca00",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=e73ab59f2d81adb0",
"/chunks/app-others.js": "/chunks/app-others.js?id=16dc948aa2205189",
"/chunks/app-others.js": "/chunks/app-others.js?id=4593855ee48a3b94",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=1cfffc99465b9a7a",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=a5dc9e715f8561bd",
"/chunks/app-server.js": "/chunks/app-server.js?id=2554ff5c24994949",

View File

@@ -1,40 +1,12 @@
<template>
<PageTab :is-loading="isLoading">
<!--Store & Upload-->
<div v-if="app" class="card shadow-card">
<FormLabel>
{{ $t('storage_upload') }}
<div v-if="app" class="card shadow-card">
<FormLabel>
{{ $t('Upload Settings') }}
</FormLabel>
<!--Available only when is not metered billing-->
<div v-if="config.subscriptionType !== 'metered'">
<AppInputSwitch
:title="$t('admin_settings.others.storage_limit')"
:description="$t('admin_settings.others.storage_limit_help')"
>
<SwitchInput
@input="$updateText('/admin/settings', 'storage_limitation', app.storageLimitation)"
v-model="app.storageLimitation"
:state="app.storageLimitation"
class="switch"
/>
</AppInputSwitch>
<AppInputText v-if="app.storageLimitation" :title="$t('admin_settings.others.default_storage')">
<input
@input="$updateText('/admin/settings', 'default_max_storage_amount', app.defaultStorage)"
v-model="app.defaultStorage"
min="1"
max="999999999"
:placeholder="$t('admin_settings.others.default_storage_plac')"
type="number"
class="focus-border-theme input-dark"
/>
</AppInputText>
</div>
<AppInputText
<AppInputText
:title="$t('admin_settings.others.upload_limit')"
:description="$t('admin_settings.others.upload_limit_help')"
>
@@ -78,6 +50,52 @@
class="focus-border-theme input-dark"
/>
</AppInputText>
</div>
<!--Store & Upload-->
<div v-if="app" class="card shadow-card">
<FormLabel>
{{ $t('User Features') }}
</FormLabel>
<!--Available only when is not metered billing-->
<div v-if="config.subscriptionType !== 'metered'">
<AppInputSwitch
:title="$t('admin_settings.others.storage_limit')"
:description="$t('admin_settings.others.storage_limit_help')"
>
<SwitchInput
@input="$updateText('/admin/settings', 'storage_limitation', app.storageLimitation)"
v-model="app.storageLimitation"
:state="app.storageLimitation"
class="switch"
/>
</AppInputSwitch>
<AppInputText v-if="app.storageLimitation" :title="$t('admin_settings.others.default_storage')">
<input
@input="$updateText('/admin/settings', 'default_max_storage_amount', app.defaultStorage)"
v-model="app.defaultStorage"
min="1"
max="999999999"
:placeholder="$t('admin_settings.others.default_storage_plac')"
type="number"
class="focus-border-theme input-dark"
/>
</AppInputText>
</div>
<AppInputText :title="$t('max_team_members')" :description="$t('zero_for_unlimited_members')" :is-last="true">
<input
@input="$updateText('/admin/settings', 'default_max_team_member', app.teamsDefaultMembers)"
v-model="app.teamsDefaultMembers"
min="1"
max="999999999"
:placeholder="$t('admin_settings.others.default_storage_plac')"
type="number"
class="focus-border-theme input-dark"
/>
</AppInputText>
</div>
<!-- ReCaptcha -->
@@ -424,7 +442,7 @@ export default {
axios
.get('/api/admin/settings', {
params: {
column: 'contact_email|google_analytics|default_max_storage_amount|storage_limitation|mimetypes_blacklist|upload_limit|subscriptionType|chunk_size',
column: 'contact_email|google_analytics|default_max_storage_amount|storage_limitation|mimetypes_blacklist|upload_limit|subscriptionType|chunk_size|default_max_team_member',
},
})
.then((response) => {
@@ -439,6 +457,7 @@ export default {
uploadLimit: response.data.upload_limit,
subscriptionType: response.data.subscriptionType,
chunkSize: response.data.chunk_size,
teamsDefaultMembers: response.data.default_max_team_member,
}
})
},

View File

@@ -124,37 +124,6 @@
</AppInputText>
</ValidationProvider>
<AppInputSwitch
title="Storage Limitation"
description="If this value is off, all users will have infinity storage capacity and you won't be able to charge your users for storage plan."
>
<SwitchInput v-model="app.storageLimitation" :state="app.storageLimitation" />
</AppInputSwitch>
<ValidationProvider
tag="div"
mode="passive"
name="Default Storage Space"
rules="required"
v-slot="{ errors }"
>
<AppInputText
v-if="app.storageLimitation"
title="Default Storage Space for Accounts"
:error="errors[0]"
>
<input
class="focus-border-theme input-dark"
v-model="app.defaultStorage"
min="1"
max="999999999"
placeholder="Set default storage space in GB"
type="number"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<AppInputSwitch
title="Allow User Registration"
description="You can disable public registration for new users. You will still able to create new users in administration panel."
@@ -164,6 +133,67 @@
</AppInputSwitch>
</div>
<div class="card text-left shadow-card">
<FormLabel>User Features</FormLabel>
<AppInputSwitch
title="Storage Limitation"
description="If this value is off, all users will have infinity storage capacity and you won't be able to charge your users for storage plan."
>
<SwitchInput v-model="app.storageLimitation" :state="app.storageLimitation" />
</AppInputSwitch>
<ValidationProvider
tag="div"
mode="passive"
name="Default Storage Space"
rules="required"
v-slot="{ errors }"
>
<AppInputText
v-if="app.storageLimitation"
title="Default Storage Space for Accounts"
:error="errors[0]"
>
<input
class="focus-border-theme input-dark"
v-model="app.defaultStorage"
min="1"
max="999999999"
placeholder="Set default storage space in GB"
type="number"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider
tag="div"
mode="passive"
name="Default Storage Space"
rules="required"
v-slot="{ errors }"
>
<AppInputText
v-if="app.teamsDefaultMembers"
title="Max Team Members"
description="Type -1 to set unlimited team members."
:error="errors[0]"
:is-last="true"
>
<input
class="focus-border-theme input-dark"
v-model="app.teamsDefaultMembers"
min="1"
max="999999999"
placeholder="Set default max team members"
type="number"
:class="{'!border-rose-600': errors[0]}"
/>
</AppInputText>
</ValidationProvider>
</div>
<div v-if="isExtended" class="card text-left shadow-card">
<FormLabel>Subscription</FormLabel>
@@ -258,7 +288,8 @@ export default {
touch_icon: undefined,
contactMail: undefined,
googleAnalytics: undefined,
defaultStorage: '5',
defaultStorage: 5,
teamsDefaultMembers: 5,
userRegistration: 1,
storageLimitation: 1,
},
@@ -294,6 +325,7 @@ export default {
if (this.app.googleAnalytics) formData.append('googleAnalytics', this.app.googleAnalytics)
if (this.app.defaultStorage) formData.append('defaultStorage', this.app.defaultStorage)
if (this.app.teamsDefaultMembers) formData.append('teamsDefaultMembers', this.app.teamsDefaultMembers)
if (this.app.logo) formData.append('logo', this.app.logo)

View File

@@ -96,7 +96,7 @@
allowHomepage: {{ $settings->allow_homepage ?? 1 }},
storageLimit: {{ $settings->storage_limitation ?? 1 }},
teamsDefaultMembers: {{ $settings->default_max_team_member ?? 5 }},
teamsDefaultMembers: {{ $settings->default_max_team_member ?? 10 }},
storageDefaultSpace: {{ $settings->default_max_storage_amount ?? 5 }},
storageDefaultSpaceFormatted: '{{ isset($settings->default_max_storage_amount) ? format_gigabytes($settings->default_max_storage_amount) : format_gigabytes(5) }}',
mimetypesBlacklist: '{{ isset($settings->mimetypes_blacklist) ? $settings->mimetypes_blacklist: null}}',

View File

@@ -82,7 +82,7 @@ class StoreAppSettingsController extends Controller
],
[
'name' => 'default_max_team_member',
'value' => $request->input('defaultMaxTeamMember') ?? 10,
'value' => $request->input('teamsDefaultMembers') ?? 10,
],
[
'name' => 'user_verification',