- Remove custom tab implementation in favor of official ApplicationV2 tabs - Implement ApplicationTab typedef structure for Actor and Item sheets - Add memory-safe event listener management with proper cleanup - Update all sheet templates to use standard Foundry tab structure - Add template safety checks to prevent undefined access errors - Optimize performance with DOM updates instead of full re-renders - Maintain backward CSS compatibility during transition - Add dynamic tab configuration based on item types Key improvements: - ~200 lines of custom tab code removed - Memory leak prevention with proper event cleanup - Performance optimization (no re-render on tab switch) - Standards-compliant with Foundry V13 ApplicationV2 API - Consistent implementation across Actor and Item sheets - Template safety with Handlebars guards - Dynamic icon and localization support All 31 modified files now use the official Foundry VTT v13 tab system.
66 lines
3.3 KiB
Handlebars
66 lines
3.3 KiB
Handlebars
{{!--
|
|
SPDX-FileCopyrightText: 2021 Johannes Loher
|
|
SPDX-FileCopyrightText: 2021 Gesina Schwalbe
|
|
|
|
SPDX-License-Identifier: MIT
|
|
--}}
|
|
|
|
|
|
{{!-- TALENT --}}
|
|
<h4 class="ds4-embedded-document-list-title">{{localize 'DS4.ItemTypeTalentPlural'}}</h4>
|
|
{{#unless (isEmpty itemsByType.talent)}}
|
|
<ol class="ds4-embedded-document-list ds4-embedded-document-list--talent item-list">
|
|
{{#> systems/ds4/templates/sheets/actor/components/item-list-header.hbs type='talent'}}
|
|
{{!-- rank --}}
|
|
<div class="ds4-embedded-document-list__clickable" data-action="sortItems" data-data-path="system.rank.total"
|
|
title="{{localize 'DS4.SortByTalentRank'}}">{{localize 'DS4.TalentRank'}}</div>
|
|
{{/systems/ds4/templates/sheets/actor/components/item-list-header.hbs}}
|
|
{{#each itemsByType.talent as |item id|}}
|
|
{{#> systems/ds4/templates/sheets/actor/components/item-list-entry.hbs item=item}}
|
|
{{!-- rank --}}
|
|
<div>{{toRomanNumerals item.system.rank.total}}</div>
|
|
{{/systems/ds4/templates/sheets/actor/components/item-list-entry.hbs}}
|
|
{{/each}}
|
|
</ol>
|
|
{{/unless}}
|
|
{{> systems/ds4/templates/sheets/shared/components/add-button.hbs title='DS4.UserInteractionAddItemTitle'
|
|
documentType='item' type='talent'}}
|
|
|
|
{{!-- RACIAL ABILITY --}}
|
|
<h4 class="ds4-embedded-document-list-title">{{localize 'DS4.ItemTypeRacialAbilityPlural'}}</h4>
|
|
{{#unless (isEmpty itemsByType.racialAbility)}}
|
|
<ol class="ds4-embedded-document-list ds4-embedded-document-list--racial-ability item-list">
|
|
{{> systems/ds4/templates/sheets/actor/components/item-list-header.hbs type='racialAbility'}}
|
|
{{#each itemsByType.racialAbility as |item id|}}
|
|
{{> systems/ds4/templates/sheets/actor/components/item-list-entry.hbs item=item}}
|
|
{{/each}}
|
|
</ol>
|
|
{{/unless}}
|
|
{{> systems/ds4/templates/sheets/shared/components/add-button.hbs title='DS4.UserInteractionAddItemTitle'
|
|
documentType='item' type='racialAbility'}}
|
|
|
|
{{!-- LANGUAGE --}}
|
|
<h4 class="ds4-embedded-document-list-title">{{localize 'DS4.ItemTypeLanguagePlural'}}</h4>
|
|
{{#unless (isEmpty itemsByType.language)}}
|
|
<ol class="ds4-embedded-document-list ds4-embedded-document-list--language item-list">
|
|
{{> systems/ds4/templates/sheets/actor/components/item-list-header.hbs type='language'}}
|
|
{{#each itemsByType.language as |item id|}}
|
|
{{> systems/ds4/templates/sheets/actor/components/item-list-entry.hbs item=item}}
|
|
{{/each}}
|
|
</ol>
|
|
{{/unless}}
|
|
{{> systems/ds4/templates/sheets/shared/components/add-button.hbs title='DS4.UserInteractionAddItemTitle'
|
|
documentType='item' type='language'}}
|
|
|
|
{{!-- ALPHABET --}}
|
|
<h4 class="ds4-embedded-document-list-title">{{localize 'DS4.ItemTypeAlphabetPlural'}}</h4>
|
|
{{#unless (isEmpty itemsByType.alphabet)}}
|
|
<ol class="ds4-embedded-document-list ds4-embedded-document-list--alphabet item-list">
|
|
{{> systems/ds4/templates/sheets/actor/components/item-list-header.hbs type='alphabet'}}
|
|
{{#each itemsByType.alphabet as |item id|}}
|
|
{{> systems/ds4/templates/sheets/actor/components/item-list-entry.hbs item=item}}
|
|
{{/each}}
|
|
</ol>
|
|
{{/unless}}
|
|
{{> systems/ds4/templates/sheets/shared/components/add-button.hbs title='DS4.UserInteractionAddItemTitle'
|
|
documentType='item' type='alphabet'}}
|