feat: cloud

This commit is contained in:
Andras Bacsai
2023-08-14 15:22:29 +02:00
parent b941f35812
commit e4279bf257
17 changed files with 189 additions and 74 deletions

View File

@@ -25,7 +25,7 @@
<body>
@livewireScripts
<x-toaster-hub />
@if (auth()->user()->isInstanceAdmin())
@if (auth()->user()->isInstanceAdmin() || is_subscription_in_grace_period())
<div class="fixed top-3 left-4" id="vue">
<magic-bar></magic-bar>
</div>

View File

@@ -0,0 +1,6 @@
<div class="flex flex-col items-center justify-center h-screen">
<span class="text-xl font-bold text-white">You have reached the limit of {{ $name }} you can create.</span>
<span>Please <a class="text-white underline "href="{{ route('team.show') }}">upgrade your
subscription<a /> to create more
{{ $name }}.</span>
</div>

View File

@@ -111,7 +111,7 @@
<span x-show="selected === 'yearly'" x-cloak class="text-warning">(save $6)</span>
<a x-show="selected === 'monthly'" x-cloak aria-describedby="tier-basic" class="buyme"
href="{{ getSubscriptionLink('monthly') }}">Subscribe</a>
href="{{ getSubscriptionLink('monthly_basic') }}">Subscribe</a>
<a x-show="selected === 'yearly'" x-cloak aria-describedby="tier-basic" class="buyme"
href="{{ getSubscriptionLink('yearly') }}">Subscribe</a>
<p class="mt-10 text-sm leading-6 text-white h-[6.5rem]">Start self-hosting in
@@ -185,7 +185,7 @@
</p>
<span x-show="selected === 'yearly'" x-cloak class="text-warning">(save $29)</span>
<a x-show="selected === 'monthly'" x-cloak aria-describedby="tier-essential" class="buyme"
href="{{ getSubscriptionLink('monthly') }}">Subscribe</a>
href="{{ getSubscriptionLink('monthly_pro') }}">Subscribe</a>
<a x-show="selected === 'yearly'" x-cloak aria-describedby="tier-essential" class="buyme"
href="{{ getSubscriptionLink('yearly') }}">Subscribe</a>
<p class="h-20 mt-10 text-sm leading-6 text-white">Scale your business or self-hosting environment.
@@ -255,7 +255,7 @@
</p>
<span x-show="selected === 'yearly'" x-cloak class="text-warning">(save $69)</span>
<a x-show="selected === 'monthly'" x-cloak aria-describedby="tier-growth" class="buyme"
href="{{ getSubscriptionLink('monthly') }}">Subscribe</a>
href="{{ getSubscriptionLink('monthly_ultimate') }}">Subscribe</a>
<a x-show="selected === 'yearly'" x-cloak aria-describedby="tier-growth" class="buyme"
href="{{ getSubscriptionLink('yearly') }}">Subscribe</a>
<p class="h-20 mt-10 text-sm leading-6 text-white">Deploy complex infrastuctures and

View File

@@ -1,29 +1,34 @@
<div>
<h1>Create a new Server</h1>
<div class="subtitle ">Servers are the main blocks of your infrastructure.</div>
<form class="flex flex-col gap-2" wire:submit.prevent='submit'>
<div class="flex gap-2">
<x-forms.input id="name" label="Name" required />
<x-forms.input id="description" label="Description" />
</div>
<div class="flex gap-2">
<x-forms.input id="ip" label="IP Address" required
helper="Could be IP Address (127.0.0.1) or Domain Name (duckduckgo.com)." />
<x-forms.input id="user" label="User" required />
<x-forms.input type="number" id="port" label="Port" required />
</div>
<x-forms.select label="Private Key" id="private_key_id">
<option disabled>Select a private key</option>
@foreach ($private_keys as $key)
@if ($loop->first)
<option selected value="{{ $key->id }}">{{ $key->name }}</option>
@else
<option value="{{ $key->id }}">{{ $key->name }}</option>
@endif
@endforeach
</x-forms.select>
<x-forms.button type="submit">
Save New Server
</x-forms.button>
</form>
@if ($limit_reached)
<x-limit-reached name="servers" />
@else
<h1>Create a new Server</h1>
<div class="subtitle ">Servers are the main blocks of your infrastructure.</div>
<form class="flex flex-col gap-2" wire:submit.prevent='submit'>
<div class="flex gap-2">
<x-forms.input id="name" label="Name" required />
<x-forms.input id="description" label="Description" />
</div>
<div class="flex gap-2">
<x-forms.input id="ip" label="IP Address" required
helper="Could be IP Address (127.0.0.1) or Domain Name (duckduckgo.com)." />
<x-forms.input id="user" label="User" required />
<x-forms.input type="number" id="port" label="Port" required />
</div>
<x-forms.select label="Private Key" id="private_key_id">
<option disabled>Select a private key</option>
@foreach ($private_keys as $key)
@if ($loop->first)
<option selected value="{{ $key->id }}">{{ $key->name }}</option>
@else
<option value="{{ $key->id }}">{{ $key->name }}</option>
@endif
@endforeach
</x-forms.select>
<x-forms.button type="submit">
Save New Server
</x-forms.button>
</form>
@endif
</div>

View File

@@ -35,6 +35,11 @@
<x-use-magic-bar link="/server/new" />
</div>
@endforelse
@isset($error)
<div class="text-center text-error">
<span>{{ $error }}</span>
</div>
@endisset
<script>
function goto(uuid) {
window.location.href = '/server/' + uuid;

View File

@@ -4,6 +4,6 @@
<div class="subtitle">You need to create a private key before you can create a server.</div>
<livewire:private-key.create from="server" />
@else
<livewire:server.new.by-ip :private_keys="$private_keys" />
<livewire:server.new.by-ip :private_keys="$private_keys" :limit_reached="$limit_reached" />
@endif
</x-layout>

View File

@@ -5,19 +5,25 @@
<livewire:team.form />
@if (is_cloud())
<div class="pb-8">
<h3>Subscription</h3>
<h2>Subscription</h2>
@if (data_get(auth()->user()->currentTeam(),
'subscription'))
<div>Status: {{ auth()->user()->currentTeam()->subscription->lemon_status }}</div>
<div>Type: {{ auth()->user()->currentTeam()->subscription->lemon_variant_name }}</div>
@if (auth()->user()->currentTeam()->subscription->lemon_status === 'cancelled')
<div class="pb-4">Subscriptions ends at: {{ getRenewDate() }}</div>
<x-forms.button><a class="text-white" href="{{ route('subscription') }}">Subscribe
Again</a>
<x-forms.button class="bg-coollabs-gradient"><a class="text-white hover:no-underline"
href="{{ route('subscription') }}">Resume Subscription</a>
</x-forms.button>
<div class="py-4">If you would like to change the subscription to a lower/higher plan, <a
class="text-white underline" href="https://docs.coollabs.io/contact" target="_blank">please
contact
us.</a></div>
@else
<div class="pb-4">Renews at: {{ getRenewDate() }}</div>
@endif
<x-forms.button><a class="text-white hover:no-underline" href="{{ getPaymentLink() }}">Update Payment
Details</a>
</x-forms.button>

View File

@@ -4,9 +4,8 @@
->currentTeam()" />
<div class="flex items-start gap-2">
<h2 class="pb-4">S3 Storages</h2>
<x-forms.button class="btn">
<a class="text-white hover:no-underline" href="/team/storages/new">+ Add</a>
</x-forms.button>
<a class="text-white hover:no-underline" href="/team/storages/new"> <x-forms.button class="btn">+ Add
</x-forms.button></a>
</div>
<div class="grid gap-2 lg:grid-cols-2">
@forelse ($s3 as $storage)