mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
vuefilemanager broadcast server enhancements
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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',
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
202
resources/js/components/Forms/BroadcastSetup.vue
Normal file
202
resources/js/components/Forms/BroadcastSetup.vue
Normal 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>
|
||||
@@ -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() {
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user