<Form @data={{this.formData}} @onSubmit={{this.handleSubmit}} @validate={{this.validateForm}} @onRegisterApi={{this.registerApi}} class="badge-form current-badge content-body" as |form data| > <h2 class="current-badge-header"> {{iconOrImage data}} <span class="badge-display-name">{{data.name}}</span> </h2> <form.Field @name="enabled" @validation="required" @title={{i18n "admin.badges.status"}} as |field| > <field.Question @yesLabel={{i18n "admin.badges.enabled"}} @noLabel={{i18n "admin.badges.disabled"}} /> </form.Field> {{#if this.readOnly}} <form.Container data-name="name" @title={{i18n "admin.badges.name"}}> <span class="readonly-field"> {{this.model.name}} </span> <LinkTo @route="adminSiteText" @query={{hash q=(concat this.textCustomizationPrefix "name")}} > {{d-icon "pencil"}} </LinkTo> </form.Container> {{else}} <form.Field @title={{i18n "admin.badges.name"}} @name="name" @disabled={{this.readOnly}} @validation="required" as |field| > <field.Input /> </form.Field> {{/if}} <form.Section @title="Design"> <form.Field @name="badge_type_id" @title={{i18n "admin.badges.badge_type"}} @disabled={{this.readOnly}} as |field| > <field.Select as |select|> {{#each this.badgeTypes as |badgeType|}} <select.Option @value={{badgeType.id}}> {{badgeType.name}} </select.Option> {{/each}} </field.Select> </form.Field> <form.ConditionalContent @activeName={{if data.image_url "upload-image" "choose-icon"}} as |cc| > <cc.Conditions as |Condition|> <Condition @name="choose-icon"> {{i18n "admin.badges.select_an_icon"}} </Condition> <Condition @name="upload-image"> {{i18n "admin.badges.upload_an_image"}} </Condition> </cc.Conditions> <cc.Contents as |Content|> <Content @name="choose-icon"> <form.Field @title={{i18n "admin.badges.icon"}} @showTitle={{false}} @name="icon" @onSet={{this.onSetIcon}} @format="small" as |field| > <field.Icon /> </form.Field> </Content> <Content @name="upload-image"> <form.Field @name="image_url" @showTitle={{false}} @title={{i18n "admin.badges.image"}} @onSet={{this.onSetImage}} @onUnset={{this.onUnsetImage}} as |field| > <field.Image @type="badge_image" /> </form.Field> </Content> </cc.Contents> </form.ConditionalContent> {{#if this.readOnly}} <form.Container data-name="description" @title={{i18n "admin.badges.description"}} > <span class="readonly-field"> {{this.model.description}} </span> <LinkTo @route="adminSiteText" @query={{hash q=(concat this.textCustomizationPrefix "description")}} > {{d-icon "pencil"}} </LinkTo> </form.Container> {{else}} <form.Field @title={{i18n "admin.badges.description"}} @name="description" @disabled={{this.readOnly}} as |field| > <field.Textarea /> </form.Field> {{/if}} {{#if this.readOnly}} <form.Container data-name="long_description" @title={{i18n "admin.badges.long_description"}} > <span class="readonly-field"> {{this.model.long_description}} </span> <LinkTo @route="adminSiteText" @query={{hash q=(concat this.textCustomizationPrefix "long_description") }} > {{d-icon "pencil"}} </LinkTo> </form.Container> {{else}} <form.Field @name="long_description" @title={{i18n "admin.badges.long_description"}} @disabled={{this.readOnly}} as |field| > <field.Textarea /> </form.Field> {{/if}} </form.Section> {{#if this.siteSettings.enable_badge_sql}} <form.Section @title="Query"> <form.Field @name="query" @title={{i18n "admin.badges.query"}} @disabled={{this.readOnly}} as |field| > <field.Code @lang="sql" /> </form.Field> {{#if (this.hasQuery data.query)}} <form.Container> <form.Button @isLoading={{this.preview_loading}} @label="admin.badges.preview.link_text" class="preview-badge" @action={{fn this.showPreview data "false"}} /> <form.Button @isLoading={{this.preview_loading}} @label="admin.badges.preview.plan_text" class="preview-badge-plan" @action={{fn this.showPreview data "true"}} /> </form.Container> <form.CheckboxGroup as |group|> <group.Field @name="auto_revoke" @disabled={{this.readOnly}} @showTitle={{false}} @title={{i18n "admin.badges.auto_revoke"}} as |field| > <field.Checkbox /> </group.Field> <group.Field @name="target_posts" @disabled={{this.readOnly}} @title={{i18n "admin.badges.target_posts"}} @showTitle={{false}} as |field| > <field.Checkbox /> </group.Field> </form.CheckboxGroup> <form.Field @name="trigger" @disabled={{this.readOnly}} @validation="required" @title={{i18n "admin.badges.trigger"}} as |field| > <field.Select as |select|> {{#each this.badgeTriggers as |badgeType|}} <select.Option @value={{badgeType.id}}> {{badgeType.name}} </select.Option> {{/each}} </field.Select> </form.Field> {{/if}} </form.Section> {{/if}} <form.Section @title="Settings"> <form.Field @name="badge_grouping_id" @disabled={{this.readOnly}} @validation="required" @title={{i18n "admin.badges.badge_grouping"}} as |field| > <field.Menu @selection={{this.currentBadgeGrouping data}} as |menu|> {{#each this.badgeGroupings as |grouping|}} <menu.Item @value={{grouping.id}}>{{grouping.name}}</menu.Item> {{/each}} <menu.Divider /> <menu.Item @action={{route-action "editGroupings"}}>Add new group</menu.Item> </field.Menu> </form.Field> <form.CheckboxGroup @title={{i18n "admin.badges.usage_heading"}} as |group|> <group.Field @title={{i18n "admin.badges.allow_title"}} @showTitle={{false}} @name="allow_title" as |field| > <field.Checkbox /> </group.Field> <group.Field @title={{i18n "admin.badges.multiple_grant"}} @showTitle={{false}} @name="multiple_grant" @disabled={{this.readOnly}} as |field| > <field.Checkbox /> </group.Field> </form.CheckboxGroup> <form.CheckboxGroup @title={{i18n "admin.badges.visibility_heading"}} as |group| > <group.Field @title={{i18n "admin.badges.listable"}} @showTitle={{false}} @name="listable" @disabled={{this.readOnly}} as |field| > <field.Checkbox /> </group.Field> <group.Field @title={{i18n "admin.badges.show_posts"}} @showTitle={{false}} @name="show_posts" @disabled={{this.readOnly}} as |field| > <field.Checkbox /> </group.Field> <group.Field @title={{i18n "admin.badges.show_in_post_header"}} @showTitle={{false}} @name="show_in_post_header" @disabled={{this.disableBadgeOnPosts data}} as |field| > <field.Checkbox> {{#if (this.postHeaderDescription data)}} {{i18n "admin.badges.show_in_post_header_disabled"}} {{/if}} </field.Checkbox> </group.Field> </form.CheckboxGroup> </form.Section> <PluginOutlet @name="admin-above-badge-buttons" @outletArgs={{hash badge=this.buffered form=form}} /> <form.Actions> <form.Submit /> {{#unless this.readOnly}} <form.Button @action={{this.handleDelete}} class="badge-form__delete-badge-btn btn-danger" > {{i18n "admin.badges.delete"}} </form.Button> {{/unless}} </form.Actions> {{#if this.grant_count}} <div class="content-body current-badge-actions"> <div> <LinkTo @route="badges.show" @model={{this}}> {{html-safe (i18n "badges.awarded" count=this.displayCount number=(number this.displayCount) ) }} </LinkTo> </div> </div> {{/if}} </Form>