1
1
package com.coder.toolbox.views
2
2
3
3
import com.coder.toolbox.CoderToolboxContext
4
+ import com.coder.toolbox.settings.SignatureFallbackStrategy
4
5
import com.coder.toolbox.util.toURL
5
6
import com.coder.toolbox.views.state.CoderCliSetupContext
6
7
import com.coder.toolbox.views.state.CoderCliSetupWizardState
8
+ import com.jetbrains.toolbox.api.ui.components.CheckboxField
9
+ import com.jetbrains.toolbox.api.ui.components.LabelField
10
+ import com.jetbrains.toolbox.api.ui.components.LabelStyleType
7
11
import com.jetbrains.toolbox.api.ui.components.RowGroup
8
12
import com.jetbrains.toolbox.api.ui.components.TextField
9
13
import com.jetbrains.toolbox.api.ui.components.TextType
@@ -24,12 +28,34 @@ class DeploymentUrlStep(
24
28
) :
25
29
WizardStep {
26
30
private val urlField = TextField (context.i18n.ptrl(" Deployment URL" ), " " , TextType .General )
27
- private val errorField = ValidationErrorField (context.i18n.pnotr(" " ))
31
+ private val emptyLine = LabelField (context.i18n.pnotr(" " ), LabelStyleType . Normal )
28
32
29
- override val panel : RowGroup = RowGroup (
30
- RowGroup . RowField (urlField ),
31
- RowGroup . RowField (errorField )
33
+ private val signatureFallbackStrategyField = CheckboxField (
34
+ context.settingsStore.fallbackOnCoderForSignatures.isAllowed( ),
35
+ context.i18n.ptrl( " Fallback on releases.coder.com when CLI signatures can't be found " )
32
36
)
37
+ private val infoLine =
38
+ LabelField (context.i18n.ptrl(" Can be reconfigured later on from the Settings page" ), LabelStyleType .Secondary )
39
+
40
+ private val errorField = ValidationErrorField (context.i18n.pnotr(" " ))
41
+
42
+ override val panel: RowGroup
43
+ get() {
44
+ if (context.settingsStore.fallbackOnCoderForSignatures == SignatureFallbackStrategy .NOT_CONFIGURED ) {
45
+ return RowGroup (
46
+ RowGroup .RowField (urlField),
47
+ RowGroup .RowField (emptyLine),
48
+ RowGroup .RowField (signatureFallbackStrategyField),
49
+ RowGroup .RowField (infoLine),
50
+ RowGroup .RowField (errorField)
51
+ )
52
+
53
+ }
54
+ return RowGroup (
55
+ RowGroup .RowField (urlField),
56
+ RowGroup .RowField (errorField)
57
+ )
58
+ }
33
59
34
60
override fun onVisible () {
35
61
errorField.textState.update {
@@ -38,9 +64,14 @@ class DeploymentUrlStep(
38
64
urlField.textState.update {
39
65
context.secrets.lastDeploymentURL
40
66
}
67
+
68
+ signatureFallbackStrategyField.checkedState.update {
69
+ context.settingsStore.fallbackOnCoderForSignatures.isAllowed()
70
+ }
41
71
}
42
72
43
73
override fun onNext (): Boolean {
74
+ context.settingsStore.updateSignatureFallbackStrategy(signatureFallbackStrategyField.checkedState.value)
44
75
var url = urlField.textState.value
45
76
if (url.isBlank()) {
46
77
errorField.textState.update { context.i18n.ptrl(" URL is required" ) }
0 commit comments