Ghost/ghost/admin/app/components/collections/collection-form.hbs
Naz f4301b16e8 Added collection filter input to the Admin UI
refs https://github.com/TryGhost/Arch/issues/41

- Having a filter input for an automatic collection make it way easier to test things without messing with the database.
2023-07-18 18:36:49 +08:00

91 lines
5.2 KiB
Handlebars
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="gh-main-section">
<div class="flex justify-between items-center">
<h4 class="gh-main-section-header small bn">Basic settings</h4>
</div>
<section class="gh-main-section-block">
<div class="gh-main-section-content grey columns-1">
<GhFormGroup @errors={{@collection.errors}} @hasValidated={{@collection.hasValidated}} @property="title" class="mr2 flex-auto">
<label for="collection-title">Title</label>
<input type="text" class="gh-input" id="collection-title" name="title" value={{@collection.title}} {{on "input" (pick "target.value"
(fn this.setCollectionProperty "title" ))}} {{on "blur" (fn this.validateCollectionProperty "title" )}}
data-test-input="collection-title" />
<span class="error">
<GhErrorMessage @errors={{@collection.errors}} @property="title" />
</span>
</GhFormGroup>
<GhFormGroup @errors={{@collection.errors}} @hasValidated={{@collection.hasValidated}} @property="slug" class="mr2 flex-auto">
<label for="collection-slug">Slug</label>
<input type="text" class="gh-input" id="collection-slug" name="slug" value={{@collection.slug}} {{on "input" (pick "target.value"
(fn this.setCollectionProperty "slug" ))}} {{on "blur" (fn this.validateCollectionProperty "slug" )}}
data-test-input="collection-slug" />
<span class="error">
<GhErrorMessage @errors={{@collection.errors}} @property="slug" />
</span>
</GhFormGroup>
<GhFormGroup class="no-margin" @errors={{@collection.errors}} @hasValidated={{@collection.hasValidated}}
@property="description">
<label for="collection-description">Description</label>
<textarea id="collection-description" name="description" class="gh-input gh-collection-details-textarea"
{{on "input" (pick "target.value" (fn this.setCollectionProperty "description" ))}} {{on "blur" (fn
this.validateCollectionProperty "description" )}}
data-test-input="collection-description">{{@collection.description}}</textarea>
<GhErrorMessage @errors={{@collection.errors}} @property="description" />
<p>Maximum: <b>500</b> characters. Youve used {{gh-count-down-characters @collection.description 500}}</p>
</GhFormGroup>
<GhFormGroup class="gh-collection-image-uploader no-margin" @errors={{@collection.errors}} @hasValidated={{@collection.hasValidated}} @property="featureImage">
<label for="collection-image">Collection image</label>
<GhImageUploaderWithPreview
@image={{@collection.featureImage}}
@text="Upload collection image"
@allowUnsplash={{true}}
@update={{fn this.setCollectionProperty "featureImage"}}
@remove={{fn this.setCollectionProperty "featureImage" ""}}
/>
</GhFormGroup>
</div>
</section>
<section class="gh-main-section-block">
<div class="gh-main-section-content grey columns-1">
<GhFormGroup class="gh-collection-image-uploader no-margin" @errors={{@collection.errors}} @hasValidated={{@collection.hasValidated}} @property="type">
<label for="collection-image">Collection type</label>
<div class="gh-contentfilter-menu gh-contentfilter-visibility {{if @selectedVisibility.value "gh-contentfilter-selected"}}" data-test-visibility-select="true">
<PowerSelect
@selected={{this.selectedType}}
@options={{this.availableTypes}}
@searchEnabled={{false}}
@onChange={{this.changeType}}
@triggerComponent={{component "gh-power-select/trigger"}}
@triggerClass="gh-contentfilter-menu-trigger"
@dropdownClass="gh-contentfilter-menu-dropdown"
@matchTriggerWidth={{false}}
as |type|
>
{{#if type.name}}{{type.name}}{{else}}<span class="red">Unknown type</span>{{/if}}
</PowerSelect>
{{#if (eq this.selectedType.value 'manual')}}
<p>Add posts to this collection one by one through post settings menu.</p>
{{/if}}
{{#if (eq this.selectedType.value 'automatic')}}
<input type="text"
class="gh-input"
id="collection-filter"
name="filter"
value={{@collection.filter}}
{{on "input" (pick "target.value" (fn this.setCollectionProperty "filter" ))}}
{{on "blur" (fn this.validateCollectionProperty "filter" )}}
data-test-input="collection-filter" />
{{/if}}
</div>
</GhFormGroup>
</div>
</section>
</div>