Add a dropdown to specify collection type

This commit is contained in:
Mike Colagrosso 2024-12-15 23:00:13 -07:00 committed by Alex Cabal
parent 10d2265513
commit 6dd8d50148
3 changed files with 44 additions and 5 deletions

View file

@ -82,6 +82,9 @@ $ebook = $ebook ?? new Ebook();
value="<?= Formatter::EscapeHtml((string)($ebook->EbookPlaceholder?->YearPublished)) ?>" value="<?= Formatter::EscapeHtml((string)($ebook->EbookPlaceholder?->YearPublished)) ?>"
/> />
</label> </label>
</fieldset>
<p>For existing collections, leave the type blank. It will be ignored.</p>
<fieldset>
<label class="icon collection"> <label class="icon collection">
<span>Collection</span> <span>Collection</span>
<datalist id="collection-names"> <datalist id="collection-names">
@ -96,6 +99,16 @@ $ebook = $ebook ?? new Ebook();
value="<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 0){ ?><?= Formatter::EscapeHtml($ebook->CollectionMemberships[0]->Collection->Name) ?><? } ?>" value="<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 0){ ?><?= Formatter::EscapeHtml($ebook->CollectionMemberships[0]->Collection->Name) ?><? } ?>"
/> />
</label> </label>
<label>
<span>Type</span>
<span>
<select name="type-collection-name-1">
<option value=""></option>
<option value="<?= Enums\CollectionType::Series->value ?>"<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 0 && $ebook->CollectionMemberships[0]->Collection->Type == Enums\CollectionType::Series){ ?> selected="selected"<? } ?>>Series</option>
<option value="<?= Enums\CollectionType::Set->value ?>"<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 0 && $ebook->CollectionMemberships[0]->Collection->Type == Enums\CollectionType::Set){ ?> selected="selected"<? } ?>>Set</option>
</select>
</span>
</label>
<label class="icon ordered-list"> <label class="icon ordered-list">
<span>Number in collection</span> <span>Number in collection</span>
<input <input
@ -119,6 +132,16 @@ $ebook = $ebook ?? new Ebook();
value="<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 1){ ?><?= Formatter::EscapeHtml($ebook->CollectionMemberships[1]->Collection->Name) ?><? } ?>" value="<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 1){ ?><?= Formatter::EscapeHtml($ebook->CollectionMemberships[1]->Collection->Name) ?><? } ?>"
/> />
</label> </label>
<label>
<span>Type</span>
<span>
<select name="type-collection-name-2">
<option value=""></option>
<option value="<?= Enums\CollectionType::Series->value ?>"<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 1 && $ebook->CollectionMemberships[1]->Collection->Type == Enums\CollectionType::Series){ ?> selected="selected"<? } ?>>Series</option>
<option value="<?= Enums\CollectionType::Set->value ?>"<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 1 && $ebook->CollectionMemberships[1]->Collection->Type == Enums\CollectionType::Set){ ?> selected="selected"<? } ?>>Set</option>
</select>
</span>
</label>
<label class="icon ordered-list"> <label class="icon ordered-list">
<span>Number in collection</span> <span>Number in collection</span>
<input <input
@ -140,6 +163,16 @@ $ebook = $ebook ?? new Ebook();
value="<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 2){ ?><?= Formatter::EscapeHtml($ebook->CollectionMemberships[2]->Collection->Name) ?><? } ?>" value="<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 2){ ?><?= Formatter::EscapeHtml($ebook->CollectionMemberships[2]->Collection->Name) ?><? } ?>"
/> />
</label> </label>
<label>
<span>Type</span>
<span>
<select name="type-collection-name-3">
<option value=""></option>
<option value="<?= Enums\CollectionType::Series->value ?>"<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 2 && $ebook->CollectionMemberships[2]->Collection->Type == Enums\CollectionType::Series){ ?> selected="selected"<? } ?>>Series</option>
<option value="<?= Enums\CollectionType::Set->value ?>"<? if(isset($ebook->CollectionMemberships) && sizeof($ebook->CollectionMemberships) > 2 && $ebook->CollectionMemberships[2]->Collection->Type == Enums\CollectionType::Set){ ?> selected="selected"<? } ?>>Set</option>
</select>
</span>
</label>
<label class="icon ordered-list"> <label class="icon ordered-list">
<span>Number in collection</span> <span>Number in collection</span>
<input <input

View file

@ -23,12 +23,11 @@ form.create-update-ebook-placeholder fieldset label:has(textarea[name="ebook-pla
grid-column: 1 / span 2; grid-column: 1 / span 2;
} }
form.create-update-ebook-placeholder fieldset fieldset:has(input[name="sequence-number-collection-name-1"]), form.create-update-ebook-placeholder fieldset:has(input[name="sequence-number-collection-name-1"]),
form.create-update-ebook-placeholder fieldset fieldset:has(input[name="sequence-number-collection-name-2"]), form.create-update-ebook-placeholder fieldset:has(input[name="sequence-number-collection-name-2"]),
form.create-update-ebook-placeholder fieldset fieldset:has(input[name="sequence-number-collection-name-3"]), form.create-update-ebook-placeholder fieldset:has(input[name="sequence-number-collection-name-3"]){
form.create-update-ebook-placeholder fieldset fieldset:has(input[name="ebook-placeholder-year-published"]){
display: grid; display: grid;
grid-template-columns: 200px 1fr; grid-template-columns: 1fr 200px 200px;
gap: 2rem; gap: 2rem;
} }
@ -44,6 +43,12 @@ form.create-update-ebook-placeholder summary{
font-style: italic; font-style: italic;
} }
form.create-update-ebook-placeholder p{
margin-bottom: 1rem;
margin-top: 1.5rem;
font-style: italic;
}
form.create-update-ebook-placeholder fieldset p{ form.create-update-ebook-placeholder fieldset p{
font-style: italic; font-style: italic;
margin: 0; margin: 0;

View file

@ -61,6 +61,7 @@ try{
} }
$collectionSequenceNumber = HttpInput::Int(POST, 'sequence-number-' . $collectionNameField); $collectionSequenceNumber = HttpInput::Int(POST, 'sequence-number-' . $collectionNameField);
$collection = Collection::FromName($collectionName); $collection = Collection::FromName($collectionName);
$collection->Type = Enums\CollectionType::tryFrom(HttpInput::Str(POST, 'type-' . $collectionNameField) ?? '');
$cm = new CollectionMembership(); $cm = new CollectionMembership();
$cm->Collection = $collection; $cm->Collection = $collection;