Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit 2b3d37c

Browse files
committed
DEV: supports for form-kit changes
form.Object and form.Collection have been changed. Most importantly formObject doesnt yield name but data. It's not your responsibility to build an array of fields.
1 parent de86244 commit 2b3d37c

File tree

2 files changed

+80
-83
lines changed

2 files changed

+80
-83
lines changed

assets/javascripts/discourse/components/ai-embedding-editor.gjs

Lines changed: 27 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,11 @@ export default class AiEmbeddingEditor extends Component {
288288
});
289289
}
290290

291+
@action
292+
providerParamsKeys(providerParams) {
293+
return providerParams ? Object.keys(providerParams) : [];
294+
}
295+
291296
<template>
292297
{{#if this.showPresets}}
293298
<BackButton
@@ -493,8 +498,8 @@ export default class AiEmbeddingEditor extends Component {
493498

494499
{{! provider-specific content }}
495500
{{#if this.currentProvider}}
496-
{{#if data.provider_params}}
497-
<form.Object @name="provider_params" as |object name|>
501+
<form.Object @name="provider_params" as |object providerData|>
502+
{{#each (this.providerParamsKeys providerData) as |name|}}
498503
{{#let (get this.providerParams name) as |params|}}
499504
{{#if params}}
500505
<object.Field
@@ -523,8 +528,8 @@ export default class AiEmbeddingEditor extends Component {
523528
</object.Field>
524529
{{/if}}
525530
{{/let}}
526-
</form.Object>
527-
{{/if}}
531+
{{/each}}
532+
</form.Object>
528533
{{/if}}
529534

530535
<form.Actions class="ai-embedding-editor__action_panel">
@@ -550,33 +555,24 @@ export default class AiEmbeddingEditor extends Component {
550555
</form.Actions>
551556

552557
{{#if this.displayTestResult}}
553-
<form.Field
554-
@showTitle={{false}}
555-
@name="test_results"
556-
@title="test_results"
557-
@format="full"
558-
class="ai-embedding-editor-tests"
559-
as |field|
560-
>
561-
<field.Custom>
562-
<ConditionalLoadingSpinner
563-
@size="small"
564-
@condition={{this.testRunning}}
565-
>
566-
{{#if this.testResult}}
567-
<div class="ai-embedding-editor-tests__success">
568-
{{icon "check"}}
569-
{{i18n "discourse_ai.embeddings.tests.success"}}
570-
</div>
571-
{{else}}
572-
<div class="ai-embedding-editor-tests__failure">
573-
{{icon "xmark"}}
574-
{{this.testErrorMessage}}
575-
</div>
576-
{{/if}}
577-
</ConditionalLoadingSpinner>
578-
</field.Custom>
579-
</form.Field>
558+
<form.Container @format="full" class="ai-embedding-editor-tests">
559+
<ConditionalLoadingSpinner
560+
@size="small"
561+
@condition={{this.testRunning}}
562+
>
563+
{{#if this.testResult}}
564+
<div class="ai-embedding-editor-tests__success">
565+
{{icon "check"}}
566+
{{i18n "discourse_ai.embeddings.tests.success"}}
567+
</div>
568+
{{else}}
569+
<div class="ai-embedding-editor-tests__failure">
570+
{{icon "xmark"}}
571+
{{this.testErrorMessage}}
572+
</div>
573+
{{/if}}
574+
</ConditionalLoadingSpinner>
575+
</form.Container>
580576
{{/if}}
581577
</Form>
582578
{{/if}}

assets/javascripts/discourse/components/ai-llm-editor-form.gjs

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ export default class AiLlmEditorForm extends Component {
250250
});
251251
}
252252

253+
@action
254+
providerParamsKeys(data) {
255+
return data ? Object.keys(data) : [];
256+
}
257+
253258
<template>
254259
<Form
255260
@onSubmit={{this.save}}
@@ -334,32 +339,36 @@ export default class AiLlmEditorForm extends Component {
334339
<field.Password />
335340
</form.Field>
336341

337-
<form.Object @name="provider_params" as |object name|>
338-
{{#let
339-
(get (this.metaProviderParams data.provider) name)
340-
as |params|
341-
}}
342-
<object.Field
343-
@name={{name}}
344-
@title={{i18n (concat "discourse_ai.llms.provider_fields." name)}}
345-
@format="large"
346-
as |field|
347-
>
348-
{{#if (eq params.type "enum")}}
349-
<field.Select @includeNone={{false}} as |select|>
350-
{{#each params.values as |option|}}
351-
<select.Option
352-
@value={{option.id}}
353-
>{{option.name}}</select.Option>
354-
{{/each}}
355-
</field.Select>
356-
{{else if (eq params.type "checkbox")}}
357-
<field.Checkbox />
358-
{{else}}
359-
<field.Input @type={{params.type}} />
360-
{{/if}}
361-
</object.Field>
362-
{{/let}}
342+
<form.Object @name="provider_params" as |object providerParamsData|>
343+
{{#each (this.providerParamsKeys providerParamsData) as |name|}}
344+
{{#let
345+
(get (this.metaProviderParams data.provider) name)
346+
as |params|
347+
}}
348+
<object.Field
349+
@name={{name}}
350+
@title={{i18n
351+
(concat "discourse_ai.llms.provider_fields." name)
352+
}}
353+
@format="large"
354+
as |field|
355+
>
356+
{{#if (eq params.type "enum")}}
357+
<field.Select @includeNone={{false}} as |select|>
358+
{{#each params.values as |option|}}
359+
<select.Option
360+
@value={{option.id}}
361+
>{{option.name}}</select.Option>
362+
{{/each}}
363+
</field.Select>
364+
{{else if (eq params.type "checkbox")}}
365+
<field.Checkbox />
366+
{{else}}
367+
<field.Input @type={{params.type}} />
368+
{{/if}}
369+
</object.Field>
370+
{{/let}}
371+
{{/each}}
363372
</form.Object>
364373

365374
<form.Field
@@ -555,32 +564,24 @@ export default class AiLlmEditorForm extends Component {
555564
{{/unless}}
556565

557566
{{#if this.displayTestResult}}
558-
<form.Field
559-
@showTitle={{false}}
560-
@name="test_results"
561-
@title="test_results"
562-
@format="full"
563-
as |field|
564-
>
565-
<field.Custom>
566-
<ConditionalLoadingSpinner
567-
@size="small"
568-
@condition={{this.testRunning}}
569-
>
570-
{{#if this.testResult}}
571-
<div class="ai-llm-editor-tests__success">
572-
{{icon "check"}}
573-
{{i18n "discourse_ai.llms.tests.success"}}
574-
</div>
575-
{{else}}
576-
<div class="ai-llm-editor-tests__failure">
577-
{{icon "xmark"}}
578-
{{this.testErrorMessage}}
579-
</div>
580-
{{/if}}
581-
</ConditionalLoadingSpinner>
582-
</field.Custom>
583-
</form.Field>
567+
<form.Container @format="full">
568+
<ConditionalLoadingSpinner
569+
@size="small"
570+
@condition={{this.testRunning}}
571+
>
572+
{{#if this.testResult}}
573+
<div class="ai-llm-editor-tests__success">
574+
{{icon "check"}}
575+
{{i18n "discourse_ai.llms.tests.success"}}
576+
</div>
577+
{{else}}
578+
<div class="ai-llm-editor-tests__failure">
579+
{{icon "xmark"}}
580+
{{this.testErrorMessage}}
581+
</div>
582+
{{/if}}
583+
</ConditionalLoadingSpinner>
584+
</form.Container>
584585
{{/if}}
585586
</Form>
586587
</template>

0 commit comments

Comments
 (0)