DEV: supports for form-kit changes (#1203)

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.
This commit is contained in:
Joffrey JAFFEUX 2025-03-19 15:01:14 +01:00 committed by GitHub
parent de8624416a
commit 75a1ade441
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 71 additions and 83 deletions

View File

@ -1,3 +1,4 @@
< 3.5.0.beta2-dev: de8624416a15b3d8e7ad350b083cc1420451ccec
< 3.5.0.beta1-dev: bdef136080074a993e7c4f5ca562edc31a8ba756
< 3.4.0.beta4-dev: a53719ab8eb071459f215227421b3ea4987e5f87
< 3.4.0.beta4-dev: 20612fde52d3f740cad64823ef8aadb0748b567f

View File

@ -493,8 +493,8 @@ export default class AiEmbeddingEditor extends Component {
{{! provider-specific content }}
{{#if this.currentProvider}}
{{#if data.provider_params}}
<form.Object @name="provider_params" as |object name|>
<form.Object @name="provider_params" as |object providerData|>
{{#each-in providerData as |name|}}
{{#let (get this.providerParams name) as |params|}}
{{#if params}}
<object.Field
@ -523,8 +523,8 @@ export default class AiEmbeddingEditor extends Component {
</object.Field>
{{/if}}
{{/let}}
</form.Object>
{{/if}}
{{/each-in}}
</form.Object>
{{/if}}
<form.Actions class="ai-embedding-editor__action_panel">
@ -550,33 +550,24 @@ export default class AiEmbeddingEditor extends Component {
</form.Actions>
{{#if this.displayTestResult}}
<form.Field
@showTitle={{false}}
@name="test_results"
@title="test_results"
@format="full"
class="ai-embedding-editor-tests"
as |field|
>
<field.Custom>
<ConditionalLoadingSpinner
@size="small"
@condition={{this.testRunning}}
>
{{#if this.testResult}}
<div class="ai-embedding-editor-tests__success">
{{icon "check"}}
{{i18n "discourse_ai.embeddings.tests.success"}}
</div>
{{else}}
<div class="ai-embedding-editor-tests__failure">
{{icon "xmark"}}
{{this.testErrorMessage}}
</div>
{{/if}}
</ConditionalLoadingSpinner>
</field.Custom>
</form.Field>
<form.Container @format="full" class="ai-embedding-editor-tests">
<ConditionalLoadingSpinner
@size="small"
@condition={{this.testRunning}}
>
{{#if this.testResult}}
<div class="ai-embedding-editor-tests__success">
{{icon "check"}}
{{i18n "discourse_ai.embeddings.tests.success"}}
</div>
{{else}}
<div class="ai-embedding-editor-tests__failure">
{{icon "xmark"}}
{{this.testErrorMessage}}
</div>
{{/if}}
</ConditionalLoadingSpinner>
</form.Container>
{{/if}}
</Form>
{{/if}}

View File

@ -334,32 +334,36 @@ export default class AiLlmEditorForm extends Component {
<field.Password />
</form.Field>
<form.Object @name="provider_params" as |object name|>
{{#let
(get (this.metaProviderParams data.provider) name)
as |params|
}}
<object.Field
@name={{name}}
@title={{i18n (concat "discourse_ai.llms.provider_fields." name)}}
@format="large"
as |field|
>
{{#if (eq params.type "enum")}}
<field.Select @includeNone={{false}} as |select|>
{{#each params.values as |option|}}
<select.Option
@value={{option.id}}
>{{option.name}}</select.Option>
{{/each}}
</field.Select>
{{else if (eq params.type "checkbox")}}
<field.Checkbox />
{{else}}
<field.Input @type={{params.type}} />
{{/if}}
</object.Field>
{{/let}}
<form.Object @name="provider_params" as |object providerParamsData|>
{{#each-in providerParamsData as |name|}}
{{#let
(get (this.metaProviderParams data.provider) name)
as |params|
}}
<object.Field
@name={{name}}
@title={{i18n
(concat "discourse_ai.llms.provider_fields." name)
}}
@format="large"
as |field|
>
{{#if (eq params.type "enum")}}
<field.Select @includeNone={{false}} as |select|>
{{#each params.values as |option|}}
<select.Option
@value={{option.id}}
>{{option.name}}</select.Option>
{{/each}}
</field.Select>
{{else if (eq params.type "checkbox")}}
<field.Checkbox />
{{else}}
<field.Input @type={{params.type}} />
{{/if}}
</object.Field>
{{/let}}
{{/each-in}}
</form.Object>
<form.Field
@ -555,32 +559,24 @@ export default class AiLlmEditorForm extends Component {
{{/unless}}
{{#if this.displayTestResult}}
<form.Field
@showTitle={{false}}
@name="test_results"
@title="test_results"
@format="full"
as |field|
>
<field.Custom>
<ConditionalLoadingSpinner
@size="small"
@condition={{this.testRunning}}
>
{{#if this.testResult}}
<div class="ai-llm-editor-tests__success">
{{icon "check"}}
{{i18n "discourse_ai.llms.tests.success"}}
</div>
{{else}}
<div class="ai-llm-editor-tests__failure">
{{icon "xmark"}}
{{this.testErrorMessage}}
</div>
{{/if}}
</ConditionalLoadingSpinner>
</field.Custom>
</form.Field>
<form.Container @format="full">
<ConditionalLoadingSpinner
@size="small"
@condition={{this.testRunning}}
>
{{#if this.testResult}}
<div class="ai-llm-editor-tests__success">
{{icon "check"}}
{{i18n "discourse_ai.llms.tests.success"}}
</div>
{{else}}
<div class="ai-llm-editor-tests__failure">
{{icon "xmark"}}
{{this.testErrorMessage}}
</div>
{{/if}}
</ConditionalLoadingSpinner>
</form.Container>
{{/if}}
</Form>
</template>