From dbd16e82858ad9f1f39f2fe8a6b33b4f7891945a Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Mon, 5 Sep 2022 09:09:32 +0200 Subject: [PATCH] fix: fqdn or expose port required --- .../routes/api/v1/applications/handlers.ts | 8 ++- apps/ui/src/lib/store.ts | 11 +++ .../routes/applications/[id]/__layout.svelte | 70 ++++++++++--------- .../src/routes/applications/[id]/index.svelte | 37 ++++++++-- 4 files changed, 86 insertions(+), 40 deletions(-) diff --git a/apps/api/src/routes/api/v1/applications/handlers.ts b/apps/api/src/routes/api/v1/applications/handlers.ts index 3f71c6fd5..85f35a7b7 100644 --- a/apps/api/src/routes/api/v1/applications/handlers.ts +++ b/apps/api/src/routes/api/v1/applications/handlers.ts @@ -500,11 +500,15 @@ export async function checkDomain(request: FastifyRequest) { } export async function checkDNS(request: FastifyRequest) { try { + const { id } = request.params let { exposePort, fqdn, forceSave, dualCerts } = request.body - - if (fqdn) fqdn = fqdn.toLowerCase(); + if (!fqdn) { + return {} + } else { + fqdn = fqdn.toLowerCase(); + } if (exposePort) exposePort = Number(exposePort); const { destinationDocker: { id: dockerId, remoteIpAddress, remoteEngine }, exposePort: configuredPort } = await prisma.application.findUnique({ where: { id }, include: { destinationDocker: true } }) diff --git a/apps/ui/src/lib/store.ts b/apps/ui/src/lib/store.ts index cbe906d51..eac686757 100644 --- a/apps/ui/src/lib/store.ts +++ b/apps/ui/src/lib/store.ts @@ -45,6 +45,17 @@ export const appSession: Writable = writable({ supportedServiceTypesAndVersions: [] }); export const disabledButton: Writable = writable(false); +export const isDeploymentEnabled: Writable = writable(false); +export function checkIfDeploymentEnabledApplications(isAdmin: boolean, application: any) { + return ( + isAdmin && + (application.fqdn || (application.settings.isBot && application.exposePort)) && + application.gitSource && + application.repository && + application.destinationDocker && + application.buildPack + ); +} export const status: Writable = writable({ application: { isRunning: false, diff --git a/apps/ui/src/routes/applications/[id]/__layout.svelte b/apps/ui/src/routes/applications/[id]/__layout.svelte index e69a6fe8a..7ede7832b 100644 --- a/apps/ui/src/routes/applications/[id]/__layout.svelte +++ b/apps/ui/src/routes/applications/[id]/__layout.svelte @@ -60,23 +60,26 @@ import { goto } from '$app/navigation'; import { onDestroy, onMount } from 'svelte'; import { t } from '$lib/translations'; - import { appSession, disabledButton, status, location, setLocation, addToast } from '$lib/store'; + import { + appSession, + status, + location, + setLocation, + addToast, + isDeploymentEnabled, + checkIfDeploymentEnabledApplications + } from '$lib/store'; import { errorNotification, handlerNotFoundLoad } from '$lib/common'; import Tooltip from '$lib/components/Tooltip.svelte'; let statusInterval: any; let forceDelete = false; - $disabledButton = - !$appSession.isAdmin || - (!application.fqdn && !application.settings.isBot) || - !application.gitSource || - !application.repository || - !application.destinationDocker || - !application.buildPack; - const { id } = $page.params; + $isDeploymentEnabled = checkIfDeploymentEnabledApplications($appSession.isAdmin, application); + async function handleDeploySubmit(forceRebuild = false) { + if (!$isDeploymentEnabled) return; try { const { buildId } = await post(`/applications/${id}/deploy`, { ...application, @@ -214,7 +217,7 @@ {#if $status.application.isExited} @@ -266,7 +269,7 @@ id="stop" on:click={stopApplication} type="submit" - disabled={$disabledButton} + disabled={!$isDeploymentEnabled} class="icons bg-transparent text-sm flex items-center space-x-2 text-error" > - - -
+ changeSettings('isDBBranching')} + title="Enable DB Branching" + description="Enable DB Branching" + /> +