vuefilemanager broadcast server enhancements

This commit is contained in:
Čarodej
2022-04-22 08:58:00 +02:00
parent d43efad45e
commit 5e86799a82
9 changed files with 293 additions and 402 deletions

View File

@@ -89,6 +89,7 @@ PUSHER_APP_SECRET=local
PUSHER_APP_CLUSTER=mt1
PUSHER_APP_HOST=
PUSHER_APP_PORT=
PUSHER_APP_TLS=true
IS_ADMIN_VUEFILEMANAGER_BAR=true
IS_SETUP_WIZARD_DEMO=false

View File

@@ -38,7 +38,7 @@ return [
'encrypted' => true,
'host' => env('PUSHER_APP_HOST'),
'port' => env('PUSHER_APP_PORT'),
'scheme' => env('APP_ENV') === 'local' ? 'http' : 'https',
'scheme' => env('PUSHER_APP_TLS', true) ? 'https' : 'http',
],
],

View File

@@ -1,75 +1,75 @@
{
"/js/main.js": "/js/main.js",
"/chunks/request.js": "/chunks/request.js?id=f781706053e9bbf4",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=ec6de7d620346ce4",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=3c2fc454c3fce8d2",
"/chunks/status-check.js": "/chunks/status-check.js?id=4ac8e2f771018e52",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=900f722cec76e3fc",
"/chunks/database.js": "/chunks/database.js?id=d4aa6463337e3617",
"/chunks/environment.js": "/chunks/environment.js?id=7c341d07bbb66f14",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cd99eb711b0f445c",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=411be9dfe82473c2",
"/chunks/shared.js": "/chunks/shared.js?id=edb1ccb3b36c5736",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=2b61116234f9d53b",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=67c4a82eee5f5525",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=8bc5664bfb82b4ed",
"/chunks/not-found.js": "/chunks/not-found.js?id=c7bf784d1bdf84f7",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=f1cbdc3b62c510de",
"/chunks/admin.js": "/chunks/admin.js?id=4f792a478603e636",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=e1963a2838400e40",
"/chunks/invoices.js": "/chunks/invoices.js?id=533ae4632294193f",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=1e9a044863794e91",
"/chunks/pages.js": "/chunks/pages.js?id=da87d3bf36a25adc",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=eaf40af15786f3c9",
"/chunks/plans.js": "/chunks/plans.js?id=22b15034dd98122f",
"/chunks/users.js": "/chunks/users.js?id=dc5f2a7cbf0878cd",
"/chunks/user-create.js": "/chunks/user-create.js?id=c7d3c5ca185553f3",
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=882e3da080b82cde",
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=4332b152dfea6d43",
"/chunks/user.js": "/chunks/user.js?id=e7b4fec1e8e3e666",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=2ec6a989451ebaf6",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=71811111d0d26f7b",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=4c138d191b4ec04c",
"/chunks/user-password.js": "/chunks/user-password.js?id=55bdec6344d551fa",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=54c1c447f3d1e024",
"/chunks/plan.js": "/chunks/plan.js?id=64c2482191d0264f",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=8137576306039f23",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=22de1f7933c17fcc",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=406c46e8968b81c1",
"/chunks/payments.js": "/chunks/payments.js?id=995c8bd6ac4c5770",
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=270d900a40678851",
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=256e2c53aaa22e9d",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=6fd0fd89ccfdd290",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=1c117d28ab2ed679",
"/chunks/app-index.js": "/chunks/app-index.js?id=28a108a8635bff65",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=f19fcab471bbe9d0",
"/chunks/app-others.js": "/chunks/app-others.js?id=67e3f820d23d5df2",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=db424609d44a5d33",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=405c5369ece232a5",
"/chunks/app-server.js": "/chunks/app-server.js?id=288e937e6f8d9f34",
"/chunks/app-language.js": "/chunks/app-language.js?id=1ff4c04588ed884b",
"/chunks/homepage.js": "/chunks/homepage.js?id=a20916d02e392001",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=8f0e89961cc767ef",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=5cfab9de2ff1894b",
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=f4399b8a099f6e7d",
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=0abe229c3868748e",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=9c157449d7d6d177",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=8944fc555c49c475",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=287986db0cdd725d",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=f2ca02feb6a0b72b",
"/chunks/settings.js": "/chunks/settings.js?id=c5442dad278be278",
"/chunks/profile.js": "/chunks/profile.js?id=ad324f09f7ba6f27",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=873e05e8a165f489",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=66dfd8b2cb57908c",
"/chunks/billing.js": "/chunks/billing.js?id=cfae2b3933cae2f9",
"/chunks/platform.js": "/chunks/platform.js?id=57d72fd8d58b34d1",
"/chunks/files.js": "/chunks/files.js?id=2cbe285c46af134d",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=79d470c543ec2014",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=1a3bc17c6f819827",
"/chunks/trash.js": "/chunks/trash.js?id=f7b5d1f0091f70b8",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=71283032869a04cc",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=2d78ab08b7e72f65",
"/chunks/invitation.js": "/chunks/invitation.js?id=0ffff788ea190214",
"/chunks/request.js": "/chunks/request.js?id=6770484e564115b3",
"/chunks/request-upload.js": "/chunks/request-upload.js?id=eb234dacadd33d8b",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
"/chunks/status-check.js": "/chunks/status-check.js?id=9239a586761b912d",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=ba76b9a8adbfdc0b",
"/chunks/database.js": "/chunks/database.js?id=5113b0d4284f764f",
"/chunks/environment.js": "/chunks/environment.js?id=e4fdb87ff173d48a",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
"/chunks/shared.js": "/chunks/shared.js?id=c0fa346721760ad2",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=6020e9e778bd00e5",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
"/chunks/admin.js": "/chunks/admin.js?id=a881c02da23d7112",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
"/chunks/pages.js": "/chunks/pages.js?id=bb5cc8327ca846a3",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=0bdc8a5935fd2197",
"/chunks/plans.js": "/chunks/plans.js?id=76398906ad873fc3",
"/chunks/users.js": "/chunks/users.js?id=b6629338e26b8313",
"/chunks/user-create.js": "/chunks/user-create.js?id=40254ae98547761e",
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=18f9d1ab17996507",
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=40e9f287b5258a40",
"/chunks/user.js": "/chunks/user.js?id=cf9a2a0d8c1fa1d9",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=ff6c1fc63a372d96",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=4f76194837113969",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=797d77ff2b1c08cc",
"/chunks/user-password.js": "/chunks/user-password.js?id=900ae71c3d4199ea",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=a3091617207684e5",
"/chunks/plan.js": "/chunks/plan.js?id=3e7b0b34c2247e6c",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=36d925def6a82cb2",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=df990f928a77c355",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=630deb1fc4e17ed9",
"/chunks/payments.js": "/chunks/payments.js?id=d59a2a18b680d65c",
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=27d6c1b58dbd1e6c",
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=450162f937b7b2fd",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=b0d1082fdcbbd17c",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=8ba3feb2cc81a2c3",
"/chunks/app-index.js": "/chunks/app-index.js?id=0c50096e8de09288",
"/chunks/app-environment.js": "/chunks/app-environment.js?id=3436286fd625f8b7",
"/chunks/app-others.js": "/chunks/app-others.js?id=dd23507db4551d0a",
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=f79027ce1f1f4c4b",
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=c7e7dc2975317062",
"/chunks/app-server.js": "/chunks/app-server.js?id=ff66d34e90ff98a0",
"/chunks/app-language.js": "/chunks/app-language.js?id=46d7fc713d36cea8",
"/chunks/homepage.js": "/chunks/homepage.js?id=0dabc3156ab1336c",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=9553d7a2912cb901",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=ea99d85aa3500595",
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=c26cb144101e7c79",
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=170d814982e1c475",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=c648cb698176a993",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=3d7559511768cd0e",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
"/chunks/settings.js": "/chunks/settings.js?id=13f38ad770e862c6",
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
"/chunks/platform.js": "/chunks/platform.js?id=622fe102512635e6",
"/chunks/files.js": "/chunks/files.js?id=e91e9fa66c979280",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=bc93b317f1ddc35a",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=dc31d8d4dd8220bb",
"/chunks/trash.js": "/chunks/trash.js?id=dff5da6dd52cf85a",
"/chunks/team-folders.js": "/chunks/team-folders.js?id=8926350140fe5aa2",
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=b9dcedcf37d523b5",
"/chunks/invitation.js": "/chunks/invitation.js?id=424b2783d9785a09",
"/css/tailwind.css": "/css/tailwind.css",
"/css/app.css": "/css/app.css"
}

View File

@@ -0,0 +1,202 @@
<template>
<div>
<FormLabel icon="wifi">
{{ $te('broadcasting') ? $t('broadcasting') : 'Broadcasting' }}
</FormLabel>
<ValidationProvider
tag="div"
mode="passive"
name="Broadcast Driver"
rules="required"
v-slot="{ errors }"
>
<AppInputText
title="Broadcast Driver"
:error="errors[0]"
:is-last="broadcast.driver === 'none' || broadcast.driver === undefined"
>
<SelectInput
v-model="broadcast.driver"
:options="broadcastDrivers"
placeholder="Select your broadcast driver"
:isError="errors[0]"
/>
</AppInputText>
</ValidationProvider>
<div v-if="broadcast.driver === 'native'">
<ValidationProvider tag="div" mode="passive" name="Host" rules="required" v-slot="{ errors }">
<AppInputText title="Hostname or IP" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.host"
placeholder="Type your hostname or IP"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="TLS" v-slot="{ errors }">
<AppInputSwitch
title="Required TLS Connection"
description="When enabled, you must have installed ssl certificate on your server host"
:is-last="true"
>
<SwitchInput v-model="broadcast.tls" :state="broadcast.tls" />
</AppInputSwitch>
</ValidationProvider>
</div>
<div v-if="broadcast.driver === 'pusher'">
<ValidationProvider tag="div" mode="passive" name="App ID" rules="required" v-slot="{ errors }">
<AppInputText title="App ID" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.id"
placeholder="Type your app id"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Key" rules="required" v-slot="{ errors }">
<AppInputText title="Key" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.key"
placeholder="Paste your key"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Secret" rules="required" v-slot="{ errors }">
<AppInputText title="Secret" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.secret"
placeholder="Paste your secret"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider
tag="div"
mode="passive"
name="Cluster"
rules="required"
v-slot="{ errors }"
>
<AppInputText title="Cluster" :error="errors[0]" :is-last="true">
<SelectInput
v-model="broadcast.cluster"
:options="pusherClusters"
placeholder="Select your cluster"
:isError="errors[0]"
/>
</AppInputText>
</ValidationProvider>
</div>
</div>
</template>
<script>
import {ValidationObserver, ValidationProvider} from 'vee-validate/dist/vee-validate.full'
import SelectInput from '../Inputs/SelectInput'
import AppInputText from './Layouts/AppInputText'
import FormLabel from '../UI/Labels/FormLabel'
import AppInputSwitch from "./Layouts/AppInputSwitch";
import SwitchInput from "../Inputs/SwitchInput";
export default {
name: 'BroadcastSetup',
components: {
SwitchInput,
AppInputSwitch,
ValidationObserver,
ValidationProvider,
AppInputText,
SelectInput,
FormLabel,
},
watch: {
broadcast: {
handler(newValue, oldValue) {
this.$emit('input', newValue)
},
deep: true
},
},
data() {
return {
broadcast: {
driver: undefined,
id: undefined,
key: undefined,
secret: undefined,
cluster: undefined,
tls: true,
},
broadcastDrivers: [
{
label: 'Pusher',
value: 'pusher',
},
{
label: 'VueFileManager',
value: 'native',
},
{
label: 'None',
value: 'none',
},
],
pusherClusters: [
{
label: 'US East (N. Virginia)',
value: 'mt1',
},
{
label: 'Asia Pacific (Singapore)',
value: 'ap1',
},
{
label: 'Asia Pacific (Mumbai)',
value: 'ap2',
},
{
label: 'US East (Ohio)',
value: 'us2',
},
{
label: 'Asia Pacific (Tokyo)',
value: 'ap3',
},
{
label: 'US West (Oregon)',
value: 'us3',
},
{
label: 'Asia Pacific (Sydney)',
value: 'ap4',
},
{
label: 'EU (Ireland)',
value: 'eu',
},
{
label: 'South America (São Paulo)',
value: 'sa1',
},
],
}
}
}
</script>

View File

@@ -8,102 +8,14 @@
tag="form"
class="card shadow-card"
>
<FormLabel icon="wifi">
{{ $t('broadcasting') }}
</FormLabel>
<ValidationProvider tag="div" mode="passive" name="Broadcast Driver" rules="required" v-slot="{ errors }">
<AppInputText title="Broadcast Driver" :error="errors[0]">
<SelectInput
v-model="broadcast.driver"
:options="broadcastDrivers"
placeholder="Select your broadcast driver"
:isError="errors[0]"
/>
</AppInputText>
</ValidationProvider>
<div v-if="broadcast.driver === 'native'">
<ValidationProvider tag="div" mode="passive" name="Host" rules="required" v-slot="{ errors }">
<AppInputText title="Hostname or IP" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.host"
placeholder="Type your hostname or IP"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Port" rules="required" v-slot="{ errors }">
<AppInputText title="Port" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.port"
placeholder="Type your port"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
</div>
<div v-if="broadcast.driver === 'pusher'">
<ValidationProvider tag="div" mode="passive" name="App ID" rules="required" v-slot="{ errors }">
<AppInputText title="App ID" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.id"
placeholder="Type your app id"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Key" rules="required" v-slot="{ errors }">
<AppInputText title="Key" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.key"
placeholder="Paste your key"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Secret" rules="required" v-slot="{ errors }">
<AppInputText title="Secret" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.secret"
placeholder="Paste your secret"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Cluster" rules="required" v-slot="{ errors }">
<AppInputText title="Cluster" :error="errors[0]">
<SelectInput
v-model="broadcast.cluster"
:options="pusherClusters"
placeholder="Select your cluster"
:isError="errors[0]"
/>
</AppInputText>
</ValidationProvider>
</div>
<BroadcastSetup v-model="broadcast" />
<ButtonBase
:loading="isSendingBroadcastForm"
:disabled="isSendingBroadcastForm"
type="submit"
button-style="theme"
class="w-full sm:w-auto"
class="mt-6 w-full sm:mt-7 sm:w-auto"
>
{{ $t('save_broadcast_settings') }}
</ButtonBase>
@@ -164,10 +76,12 @@ import PageTab from '../../../../components/Layout/PageTab'
import MailSetup from '../../../../components/Forms/MailSetup'
import { events } from '../../../../bus'
import axios from 'axios'
import BroadcastSetup from "../../../../components/Forms/BroadcastSetup";
export default {
name: 'AppEnvironment',
components: {
BroadcastSetup,
ValidationObserver,
ValidationProvider,
StorageSetup,
@@ -186,67 +100,7 @@ export default {
isSendingEmailForm: false,
isSendingStorageForm: false,
isSendingBroadcastForm: false,
broadcast: {
driver: undefined,
id: undefined,
key: undefined,
secret: undefined,
cluster: undefined,
port: undefined,
host: undefined,
},
broadcastDrivers: [
{
label: 'Pusher',
value: 'pusher',
},
{
label: 'VueFileManager Broadcast Server',
value: 'native',
},
{
label: 'None',
value: 'none',
},
],
pusherClusters: [
{
label: 'US East (N. Virginia)',
value: 'mt1',
},
{
label: 'Asia Pacific (Singapore)',
value: 'ap1',
},
{
label: 'Asia Pacific (Mumbai)',
value: 'ap2',
},
{
label: 'US East (Ohio)',
value: 'us2',
},
{
label: 'Asia Pacific (Tokyo)',
value: 'ap3',
},
{
label: 'US West (Oregon)',
value: 'us3',
},
{
label: 'Asia Pacific (Sydney)',
value: 'ap4',
},
{
label: 'EU (Ireland)',
value: 'eu',
},
{
label: 'South America (São Paulo)',
value: 'sa1',
},
],
broadcast: undefined,
}
},
methods: {
@@ -276,15 +130,7 @@ export default {
.finally(() => {
this.isSendingBroadcastForm = false
this.broadcast = {
driver: undefined,
id: undefined,
key: undefined,
secret: undefined,
cluster: undefined,
host: undefined,
port: undefined,
}
this.broadcast = undefined
})
},
async storageSetupSubmit() {

View File

@@ -23,113 +23,7 @@
<MailSetup v-model="mail" class="card text-left shadow-card" />
<div class="card text-left shadow-card">
<FormLabel icon="wifi">
{{ $t('Broadcasting') }}
</FormLabel>
<ValidationProvider
tag="div"
mode="passive"
name="Broadcast Driver"
rules="required"
v-slot="{ errors }"
>
<AppInputText
title="Broadcast Driver"
:error="errors[0]"
:is-last="broadcast.driver === 'none' || broadcast.driver === undefined"
>
<SelectInput
v-model="broadcast.driver"
:options="broadcastDrivers"
placeholder="Select your broadcast driver"
:isError="errors[0]"
/>
</AppInputText>
</ValidationProvider>
<div v-if="broadcast.driver === 'native'">
<ValidationProvider tag="div" mode="passive" name="Host" rules="required" v-slot="{ errors }">
<AppInputText title="Hostname or IP" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.host"
placeholder="Type your hostname or IP"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Port" rules="required" v-slot="{ errors }">
<AppInputText title="Port" :error="errors[0]" :is-last="true">
<input
class="focus-border-theme input-dark"
v-model="broadcast.port"
placeholder="Type your port"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
</div>
<div v-if="broadcast.driver === 'pusher'">
<ValidationProvider tag="div" mode="passive" name="App ID" rules="required" v-slot="{ errors }">
<AppInputText title="App ID" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.id"
placeholder="Type your app id"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Key" rules="required" v-slot="{ errors }">
<AppInputText title="Key" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.key"
placeholder="Paste your key"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider tag="div" mode="passive" name="Secret" rules="required" v-slot="{ errors }">
<AppInputText title="Secret" :error="errors[0]">
<input
class="focus-border-theme input-dark"
v-model="broadcast.secret"
placeholder="Paste your secret"
type="text"
:class="{ '!border-rose-600': errors[0] }"
/>
</AppInputText>
</ValidationProvider>
<ValidationProvider
tag="div"
mode="passive"
name="Cluster"
rules="required"
v-slot="{ errors }"
>
<AppInputText title="Cluster" :error="errors[0]" :is-last="true">
<SelectInput
v-model="broadcast.cluster"
:options="pusherClusters"
placeholder="Select your cluster"
:isError="errors[0]"
/>
</AppInputText>
</ValidationProvider>
</div>
</div>
<BroadcastSetup v-model="broadcast" class="card text-left shadow-card" />
<div class="card text-left shadow-card">
<FormLabel>Environment Setup</FormLabel>
@@ -185,10 +79,12 @@ import { SettingsIcon } from 'vue-feather-icons'
import Headline from '../../components/UI/Labels/LogoHeadline'
import { events } from '../../bus'
import axios from 'axios'
import BroadcastSetup from "../../components/Forms/BroadcastSetup";
export default {
name: 'EnvironmentSetup',
components: {
BroadcastSetup,
MailSetup,
StorageSetup,
AuthContentWrapper,
@@ -221,67 +117,7 @@ export default {
],
storage: undefined,
mail: undefined,
broadcast: {
driver: undefined,
id: undefined,
key: undefined,
secret: undefined,
cluster: undefined,
port: undefined,
host: undefined,
},
broadcastDrivers: [
{
label: 'Pusher',
value: 'pusher',
},
{
label: 'VueFileManager Broadcast Server',
value: 'native',
},
{
label: 'None',
value: 'none',
},
],
pusherClusters: [
{
label: 'US East (N. Virginia)',
value: 'mt1',
},
{
label: 'Asia Pacific (Singapore)',
value: 'ap1',
},
{
label: 'Asia Pacific (Mumbai)',
value: 'ap2',
},
{
label: 'US East (Ohio)',
value: 'us2',
},
{
label: 'Asia Pacific (Tokyo)',
value: 'ap3',
},
{
label: 'US West (Oregon)',
value: 'us3',
},
{
label: 'Asia Pacific (Sydney)',
value: 'ap4',
},
{
label: 'EU (Ireland)',
value: 'eu',
},
{
label: 'South America (São Paulo)',
value: 'sa1',
},
],
broadcast: undefined,
}
},
methods: {

View File

@@ -26,6 +26,7 @@ class StoreBroadcastServiceCredentialsController
'PUSHER_APP_CLUSTER' => $request->input('cluster'),
'PUSHER_APP_HOST' => '',
'PUSHER_APP_PORT' => '',
'PUSHER_APP_TLS' => true,
],
'native' => [
'BROADCAST_DRIVER' => 'pusher',
@@ -34,7 +35,8 @@ class StoreBroadcastServiceCredentialsController
'PUSHER_APP_SECRET' => 'local',
'PUSHER_APP_CLUSTER' => 'local',
'PUSHER_APP_HOST' => $request->input('host'),
'PUSHER_APP_PORT' => $request->input('port'),
'PUSHER_APP_PORT' => '',
'PUSHER_APP_TLS' => $request->boolean('tls') ? 'true' : 'false',
],
'none' => [
'BROADCAST_DRIVER' => 'null',

View File

@@ -89,6 +89,9 @@ class StoreEnvironmentSettingsController extends Controller
'PUSHER_APP_KEY' => $request->input('broadcast.key'),
'PUSHER_APP_SECRET' => $request->input('broadcast.secret'),
'PUSHER_APP_CLUSTER' => $request->input('broadcast.cluster'),
'PUSHER_APP_HOST' => '',
'PUSHER_APP_PORT' => '',
'PUSHER_APP_TLS' => true,
],
'native' => [
'BROADCAST_DRIVER' => 'pusher',
@@ -97,7 +100,8 @@ class StoreEnvironmentSettingsController extends Controller
'PUSHER_APP_SECRET' => 'local',
'PUSHER_APP_CLUSTER' => 'local',
'PUSHER_APP_HOST' => $request->input('broadcast.host'),
'PUSHER_APP_PORT' => $request->input('broadcast.port'),
'PUSHER_APP_PORT' => '',
'PUSHER_APP_TLS' => $request->boolean('tls') ? 'true' : 'false',
],
'none' => [
'BROADCAST_DRIVER' => 'null',

View File

@@ -17,7 +17,7 @@ class SetUploadRequestAsFilledController
]);
// Send user notification
if (! (is_demo() && $uploadRequest->user->email === 'howdy@hi5ve.digital')) {
if ($uploadRequest->user->email !== 'howdy@hi5ve.digital') {
$uploadRequest->user->notify(new UploadRequestFulfilledNotification($uploadRequest));
}