Browse Source

Fix for #6501 - don't fail to publish app when cron expression is empty in any automation, just don't publish that automation. Also adding an error to automation to make it clear an expression is required.

pull/6739/head
mike12345567 4 years ago
parent
commit
90bc52336a
  1. 13
      packages/builder/src/components/automation/SetupPanel/CronBuilder.svelte
  2. 2
      packages/server/src/automations/utils.ts

13
packages/builder/src/components/automation/SetupPanel/CronBuilder.svelte

@ -1,5 +1,5 @@
<script> <script>
import { Button, Select, Input } from "@budibase/bbui" import { Button, Select, Input, Label } from "@budibase/bbui"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
@ -9,6 +9,7 @@
dispatch("change", e.detail) dispatch("change", e.detail)
} }
let touched = false
let presets = false let presets = false
const CRON_EXPRESSIONS = [ const CRON_EXPRESSIONS = [
@ -36,8 +37,10 @@
</script> </script>
<div class="block-field"> <div class="block-field">
<Input on:change={onChange} {value} /> <Input on:change={onChange} {value} on:blur={() => (touched = true)} />
{#if touched && !value}
<Label><div class="error">Please specify a CRON expression</div></Label>
{/if}
<div class="presets"> <div class="presets">
<Button on:click={() => (presets = !presets)} <Button on:click={() => (presets = !presets)}
>{presets ? "Hide" : "Show"} Presets</Button >{presets ? "Hide" : "Show"} Presets</Button
@ -62,4 +65,8 @@
.block-field { .block-field {
padding-top: var(--spacing-s); padding-top: var(--spacing-s);
} }
.error {
padding-top: var(--spacing-xs);
color: var(--spectrum-global-color-red-500);
}
</style> </style>

2
packages/server/src/automations/utils.ts

@ -97,7 +97,7 @@ export async function enableCronTrigger(appId: any, automation: any) {
) )
} }
// need to create cron job // need to create cron job
if (isCronTrigger(automation)) { if (isCronTrigger(automation) && trigger?.inputs.cron) {
// make a job id rather than letting Bull decide, makes it easier to handle on way out // make a job id rather than letting Bull decide, makes it easier to handle on way out
const jobId = `${appId}_cron_${newid()}` const jobId = `${appId}_cron_${newid()}`
const job: any = await queue.add( const job: any = await queue.add(

Loading…
Cancel
Save