@@ -16,6 +16,7 @@ import RemoveComponentButton from "@/Components/Service/RemoveComponentButton.vu
16
16
import ComponentBlock from " @/Components/Service/ComponentBlock.vue" ;
17
17
import BackupSchedule from " @/Components/BackupSchedule.vue" ;
18
18
import ToggleComponent from " @/Components/Service/ToggleComponent.vue" ;
19
+ import { evaluate } from " @/expr-lang.js" ;
19
20
20
21
const model = defineModel ();
21
22
@@ -347,6 +348,44 @@ const calculateHealthcheckTimes = computed(() => {
347
348
pessimistic: pessimisticTime,
348
349
};
349
350
});
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
+ };
350
389
</script >
351
390
352
391
<template >
@@ -1230,6 +1269,9 @@ const calculateHealthcheckTimes = computed(() => {
1230
1269
] ||
1231
1270
props.errors[
1232
1271
`processes.${state.selectedProcessIndex['envVars']}.envVars.${index}.value`
1272
+ ] ||
1273
+ errors[
1274
+ `processes.${state.selectedProcessIndex['envVars']}.envVars.${index}.value`
1233
1275
]
1234
1276
"
1235
1277
>
@@ -1247,6 +1289,7 @@ const calculateHealthcheckTimes = computed(() => {
1247
1289
v-model =" envVar.value"
1248
1290
class =" grow"
1249
1291
placeholder =" Value"
1292
+ @blur =" evaluateEnvVarTemplate(envVar, index)"
1250
1293
/>
1251
1294
1252
1295
<SecondaryButton
@@ -1348,6 +1391,9 @@ const calculateHealthcheckTimes = computed(() => {
1348
1391
] ||
1349
1392
props.errors[
1350
1393
`processes.${state.selectedProcessIndex['secretVars']}.secretVars.vars.${index}.value`
1394
+ ] ||
1395
+ errors[
1396
+ `processes.${state.selectedProcessIndex['secretVars']}.secretVars.vars.${index}.value`
1351
1397
]
1352
1398
"
1353
1399
class =" col-span-full"
@@ -1364,6 +1410,7 @@ const calculateHealthcheckTimes = computed(() => {
1364
1410
v-model =" secretVar.value"
1365
1411
class =" grow"
1366
1412
placeholder =" Value"
1413
+ @blur =" evaluateSecretVarTemplate(secretVar, index)"
1367
1414
/>
1368
1415
1369
1416
<SecondaryButton
0 commit comments