Get rid of ifHasItemOfType
This commit is contained in:
parent
b3ac3cde84
commit
315261bf4f
5 changed files with 42 additions and 69 deletions
|
@ -1,6 +1,10 @@
|
|||
export default { htmlToPlainText };
|
||||
export default { htmlToPlainText, isEmpty };
|
||||
|
||||
function htmlToPlainText(input: string | null | undefined): string | null | undefined {
|
||||
if (!input) return;
|
||||
return $(input).text();
|
||||
}
|
||||
|
||||
function isEmpty(input: Array<unknown> | null | undefined): boolean {
|
||||
return (input?.length ?? 0) === 0;
|
||||
}
|
||||
|
|
|
@ -1,29 +1,6 @@
|
|||
{{!-- TODO: Refactor to avoid code duplication with special-creature-abilites-overview and talents-overview --}}
|
||||
|
||||
{{!-- ======================================================================== --}}
|
||||
{{!-- INLINE PARTIAL DEFINITIONS --}}
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
|
||||
{{!--
|
||||
!-- Render the given partial block only if the given itemsArray has length > 0,
|
||||
!-- else only an add button.
|
||||
!--
|
||||
!-- @param itemsArray: the array with the items to check the length of
|
||||
!-- @param dataType: the string type of the item
|
||||
--}}
|
||||
{{#*inline "ifHasItemOfType"}}
|
||||
{{#if (and (ne itemsArray undefined) (gt itemsArray.length 0))}}
|
||||
{{> @partial-block}}
|
||||
{{/if}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
||||
{{/inline}}
|
||||
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
{{!-- WEAPONS --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeWeaponPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.weapon dataType='weapon' }}
|
||||
{{#unless (isEmpty itemsByType.weapon)}}
|
||||
<ol class="ds4-item-list ds4-item-list--weapon item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs isEquipable=true hasQuantity=true}}
|
||||
{{!-- attack type --}}
|
||||
|
@ -56,11 +33,12 @@
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='weapon'}}
|
||||
|
||||
{{!-- ARMOR --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeArmorPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.armor dataType='armor' }}
|
||||
{{#unless (isEmpty itemsByType.armor)}}
|
||||
<ol class="ds4-item-list ds4-item-list--armor item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs isEquipable=true hasQuantity=true}}
|
||||
{{!-- armor material type --}}
|
||||
|
@ -92,12 +70,12 @@
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='armor'}}
|
||||
|
||||
{{!-- SHIELD --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeShieldPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.shield dataType='shield' }}
|
||||
{{#unless (isEmpty itemsByType.shield)}}
|
||||
<ol class="ds4-item-list ds4-item-list--shield item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs isEquipable=true hasQuantity=true}}
|
||||
{{!-- armor value --}}
|
||||
|
@ -112,11 +90,12 @@
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='shield'}}
|
||||
|
||||
{{!-- EQUIPMENT --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeEquipmentPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.equipment dataType='equipment' }}
|
||||
{{#unless (isEmpty itemsByType.equipment)}}
|
||||
<ol class="ds4-item-list ds4-item-list--equipment item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs isEquipable=true hasQuantity=true}}
|
||||
{{!-- storage location --}}
|
||||
|
@ -130,11 +109,12 @@
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='equipment'}}
|
||||
|
||||
{{!-- LOOT --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeLootPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.loot dataType='loot' }}
|
||||
{{#unless (isEmpty itemsByType.loot)}}
|
||||
<ol class="ds4-item-list ds4-item-list--loot item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs hasQuantity=true}}
|
||||
{{!-- storage location --}}
|
||||
|
@ -148,4 +128,5 @@
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='loot'}}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<div class="tab special-creature-abilities" data-group="primary" data-tab="special-creature-abilities">
|
||||
{{#unless (isEmpty itemsByType.specialCreatureAbility)}}
|
||||
<ol class="ds4-item-list ds4-item-list--special-creature-ability item-list">
|
||||
{{> systems/ds4/templates/actor/partials/item-list-header.hbs }}
|
||||
{{> systems/ds4/templates/actor/partials/item-list-header.hbs}}
|
||||
{{#each itemsByType.specialCreatureAbility as |itemData id|}}
|
||||
{{> systems/ds4/templates/actor/partials/item-list-entry.hbs itemData=itemData}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='specialCreatureAbility' }}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='specialCreatureAbility'}}
|
||||
</div>
|
||||
|
|
|
@ -38,6 +38,7 @@ titleKey=titleKey}}
|
|||
|
||||
|
||||
<div class="tab spells" data-group="primary" data-tab="spells">
|
||||
{{#unless (isEmpty itemsByType.spell)}}
|
||||
<ol class="ds4-item-list ds4-item-list--spell item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs isEquipable=true hideDescription=true}}
|
||||
{{!-- spell type --}}
|
||||
|
@ -81,6 +82,6 @@ titleKey=titleKey}}
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{!-- add button --}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='spell' }}
|
||||
</div>
|
||||
|
|
|
@ -1,29 +1,7 @@
|
|||
{{!-- TODO: Refactor to avoid code duplication with creature-special-abilities-overview and talents-overview --}}
|
||||
|
||||
{{!-- ======================================================================== --}}
|
||||
{{!-- INLINE PARTIAL DEFINITIONS --}}
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
|
||||
{{!--
|
||||
!-- Render the given partial block only if the given itemsArray has length > 0,
|
||||
!-- else only an add button.
|
||||
!--
|
||||
!-- @param itemsArray: the array with the items to check the length of
|
||||
!-- @param dataType: the string type of the item
|
||||
--}}
|
||||
{{#*inline "ifHasItemOfType"}}
|
||||
{{#if (and (ne itemsArray undefined) (gt itemsArray.length 0))}}
|
||||
{{> @partial-block}}
|
||||
{{/if}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType=dataType }}
|
||||
{{/inline}}
|
||||
|
||||
{{!-- ======================================================================== --}}
|
||||
|
||||
<div class="tab talents-abilities" data-group="primary" data-tab="talents-abilities">
|
||||
{{!-- TALENT --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeTalentPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.talent dataType='talent'}}
|
||||
{{#unless (isEmpty itemsByType.talent)}}
|
||||
<ol class="ds4-item-list ds4-item-list--talent item-list">
|
||||
{{#> systems/ds4/templates/actor/partials/item-list-header.hbs}}
|
||||
{{!-- rank --}}
|
||||
|
@ -36,35 +14,42 @@
|
|||
{{/systems/ds4/templates/actor/partials/item-list-entry.hbs}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='talent'}}
|
||||
|
||||
{{!-- RACIAL ABILITY --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeRacialAbilityPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.racialAbility dataType='racialAbility'}}
|
||||
{{#unless (isEmpty itemsByType.racialAbility)}}
|
||||
<ol class="ds4-item-list ds4-item-list--racial-ability item-list">
|
||||
{{> systems/ds4/templates/actor/partials/item-list-header.hbs}}
|
||||
{{#each itemsByType.racialAbility as |itemData id|}}
|
||||
{{> systems/ds4/templates/actor/partials/item-list-entry.hbs itemData=itemData}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='racialAbility'}}
|
||||
|
||||
{{!-- LANGUAGE --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeLanguagePlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.language dataType='language'}}
|
||||
{{#unless (isEmpty itemsByType.language)}}
|
||||
<ol class="ds4-item-list ds4-item-list--language item-list">
|
||||
{{> systems/ds4/templates/actor/partials/item-list-header.hbs}}
|
||||
{{#each itemsByType.language as |itemData id|}}
|
||||
{{> systems/ds4/templates/actor/partials/item-list-entry.hbs itemData=itemData}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='language'}}
|
||||
|
||||
{{!-- ALPHABET --}}
|
||||
<h4 class="ds4-item-list-title">{{localize 'DS4.ItemTypeAlphabetPlural'}}</h4>
|
||||
{{#> ifHasItemOfType itemsArray=itemsByType.alphabet dataType='alphabet'}}
|
||||
{{#unless (isEmpty itemsByType.alphabet)}}
|
||||
<ol class="ds4-item-list ds4-item-list--alphabet item-list">
|
||||
{{> systems/ds4/templates/actor/partials/item-list-header.hbs}}
|
||||
{{#each itemsByType.alphabet as |itemData id|}}
|
||||
{{> systems/ds4/templates/actor/partials/item-list-entry.hbs itemData=itemData}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
{{/ifHasItemOfType}}
|
||||
{{/unless}}
|
||||
{{> systems/ds4/templates/actor/partials/overview-add-button.hbs dataType='alphabet'}}
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue