Skip to content

Commit f65af67

Browse files
committed
feat: #135 add support for generated values for custom env and secret vars
1 parent aa23493 commit f65af67

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

Diff for: resources/js/Pages/Services/Partials/DeploymentData.vue

+47
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import RemoveComponentButton from "@/Components/Service/RemoveComponentButton.vu
1616
import ComponentBlock from "@/Components/Service/ComponentBlock.vue";
1717
import BackupSchedule from "@/Components/BackupSchedule.vue";
1818
import ToggleComponent from "@/Components/Service/ToggleComponent.vue";
19+
import { evaluate } from "@/expr-lang.js";
1920
2021
const model = defineModel();
2122
@@ -347,6 +348,44 @@ const calculateHealthcheckTimes = computed(() => {
347348
pessimistic: pessimisticTime,
348349
};
349350
});
351+
352+
const errors = ref({});
353+
354+
const evaluateEnvVarTemplate = (envVar, index) => {
355+
if (envVar.value) {
356+
try {
357+
envVar.value = evaluate(envVar.value, model.value);
358+
// Clear any previous error for this field
359+
delete errors.value[
360+
`processes.${state.selectedProcessIndex["envVars"]}.envVars.${index}.value`
361+
];
362+
} catch (error) {
363+
console.error("Error evaluating env var template:", error);
364+
// Set an error for this specific field
365+
errors.value[
366+
`processes.${state.selectedProcessIndex["envVars"]}.envVars.${index}.value`
367+
] = error.message; // 'Invalid template expression';
368+
}
369+
}
370+
};
371+
372+
const evaluateSecretVarTemplate = (secretVar, index) => {
373+
if (secretVar.value) {
374+
try {
375+
secretVar.value = evaluate(secretVar.value, model.value);
376+
// Clear any previous error for this field
377+
delete errors.value[
378+
`processes.${state.selectedProcessIndex["secretVars"]}.secretVars.vars.${index}.value`
379+
];
380+
} catch (error) {
381+
console.error("Error evaluating secret var template:", error);
382+
// Set an error for this specific field
383+
errors.value[
384+
`processes.${state.selectedProcessIndex["secretVars"]}.secretVars.vars.${index}.value`
385+
] = error.message; // 'Invalid template expression';
386+
}
387+
}
388+
};
350389
</script>
351390

352391
<template>
@@ -1230,6 +1269,9 @@ const calculateHealthcheckTimes = computed(() => {
12301269
] ||
12311270
props.errors[
12321271
`processes.${state.selectedProcessIndex['envVars']}.envVars.${index}.value`
1272+
] ||
1273+
errors[
1274+
`processes.${state.selectedProcessIndex['envVars']}.envVars.${index}.value`
12331275
]
12341276
"
12351277
>
@@ -1247,6 +1289,7 @@ const calculateHealthcheckTimes = computed(() => {
12471289
v-model="envVar.value"
12481290
class="grow"
12491291
placeholder="Value"
1292+
@blur="evaluateEnvVarTemplate(envVar, index)"
12501293
/>
12511294

12521295
<SecondaryButton
@@ -1348,6 +1391,9 @@ const calculateHealthcheckTimes = computed(() => {
13481391
] ||
13491392
props.errors[
13501393
`processes.${state.selectedProcessIndex['secretVars']}.secretVars.vars.${index}.value`
1394+
] ||
1395+
errors[
1396+
`processes.${state.selectedProcessIndex['secretVars']}.secretVars.vars.${index}.value`
13511397
]
13521398
"
13531399
class="col-span-full"
@@ -1364,6 +1410,7 @@ const calculateHealthcheckTimes = computed(() => {
13641410
v-model="secretVar.value"
13651411
class="grow"
13661412
placeholder="Value"
1413+
@blur="evaluateSecretVarTemplate(secretVar, index)"
13671414
/>
13681415

13691416
<SecondaryButton

0 commit comments

Comments
 (0)