removed code duplication of item body from talent
- added isPhysical boolean to getData output of item-sheet.ts - added isPhysical checks for displays of physical-only information in templates
This commit is contained in:
parent
5bdfdd410b
commit
e6b51c66a6
5 changed files with 32 additions and 51 deletions
|
@ -39,6 +39,10 @@ interface DS4ItemPhysical {
|
|||
storageLocation: string;
|
||||
}
|
||||
|
||||
export function isDS4ItemDataTypePhysical(input: DS4ItemDataType): boolean {
|
||||
return "quantity" in input && "price" in input && "availability" in input && "storageLocation" in input;
|
||||
}
|
||||
|
||||
interface DS4ItemEquipable {
|
||||
equipped: boolean;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { DS4Item } from "./item";
|
||||
import { DS4ItemDataType } from "./item-data";
|
||||
import { DS4ItemDataType, isDS4ItemDataTypePhysical } from "./item-data";
|
||||
|
||||
/**
|
||||
* Extend the basic ItemSheet with some very simple modifications
|
||||
|
@ -26,7 +26,13 @@ export class DS4ItemSheet extends ItemSheet<DS4ItemDataType, DS4Item> {
|
|||
|
||||
/** @override */
|
||||
getData(): ItemSheetData<DS4ItemDataType, DS4Item> {
|
||||
const data = { ...super.getData(), config: CONFIG.DS4, isOwned: this.item.isOwned, actor: this.item.actor };
|
||||
const data = {
|
||||
...super.getData(),
|
||||
config: CONFIG.DS4,
|
||||
isOwned: this.item.isOwned,
|
||||
actor: this.item.actor,
|
||||
isPhysical: isDS4ItemDataTypePhysical(this.item.data.data),
|
||||
};
|
||||
console.log(data);
|
||||
return data;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,9 @@
|
|||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="description">{{localize "DS4.HeadingDescription"}}</a>
|
||||
<a class="item" data-tab="effects">{{localize "DS4.HeadingEffects"}}</a>
|
||||
{{#if isPhysical}}
|
||||
<a class="item" data-tab="details">{{localize "DS4.HeadingDetails"}}</a>
|
||||
{{/if}}
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
|
@ -13,10 +15,12 @@
|
|||
{{!-- Description Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/description.hbs}}
|
||||
|
||||
{{!-- Details Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/details.hbs}}
|
||||
|
||||
{{!-- Effects Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/effects.hbs}}
|
||||
|
||||
{{#if isPhysical}}
|
||||
{{!-- Details Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/details.hbs}}
|
||||
{{/if}}
|
||||
|
||||
</section>
|
|
@ -11,14 +11,16 @@
|
|||
<a class="entity-link" draggable="true" data-entity="Actor" data-id="{{actor._id}}"><i
|
||||
class="fas fa-user"></i>{{actor.name}}</a>
|
||||
</div>
|
||||
<div class="side-property">
|
||||
<label for="data.quantity">{{localize 'DS4.Quantity'}}</label>
|
||||
<input type="number" min="0" step="1" data-dtype="Number" name="data.quantity" value="{{data.quantity}}" />
|
||||
</div>
|
||||
<div class="side-property">
|
||||
<label for="data.storageLocation">{{localize 'DS4.StorageLocation'}}</label>
|
||||
<input type="text" data-dtype="String" name="data.storageLocation" value="{{data.storageLocation}}" />
|
||||
</div>
|
||||
{{#if isPhysical}}
|
||||
<div class="side-property">
|
||||
<label for="data.quantity">{{localize 'DS4.Quantity'}}</label>
|
||||
<input type="number" min="0" step="1" data-dtype="Number" name="data.quantity" value="{{data.quantity}}" />
|
||||
</div>
|
||||
<div class="side-property">
|
||||
<label for="data.storageLocation">{{localize 'DS4.StorageLocation'}}</label>
|
||||
<input type="text" data-dtype="String" name="data.storageLocation" value="{{data.storageLocation}}" />
|
||||
</div>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<span>{{localize "DS4.NotOwned"}}</span>
|
||||
{{/if}}
|
||||
|
|
|
@ -30,43 +30,8 @@
|
|||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{!-- Sheet Tab Navigation --}}
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
<a class="item" data-tab="description">{{localize "DS4.HeadingDescription"}}</a>
|
||||
<a class="item" data-tab="effects">{{localize "DS4.HeadingEffects"}}</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
<section class="sheet-body">
|
||||
{{!-- The item tab for details. --}}
|
||||
<div class="tab flexrow" data-group="primary" data-tab="description">
|
||||
{{!-- As you add new fields, add them in here! --}}
|
||||
<div class="side-properties">
|
||||
{{!-- TODO: remove duplication of isOwned section here and in description.hbs--}}
|
||||
{{#if isOwned}}
|
||||
{{#if (ne data.equipped undefined)}}<div class="side-property">
|
||||
<label for="data.equipped">{{localize 'DS4.ItemEquipped'}}</label>
|
||||
<input type="checkbox" name="data.equipped" data-dtype="Boolean" {{checked data.equipped}} title="{{localize 'DS4.ItemEquipped'}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="side-property">
|
||||
<label for="data.actor">{{localize 'DS4.ItemOwner'}}</label>
|
||||
<a class="entity-link" draggable="true" data-entity="Actor" data-id="{{actor._id}}"><i
|
||||
class="fas fa-user"></i>{{actor.name}}</a>
|
||||
</div>
|
||||
{{else}}
|
||||
<span>{{localize "DS4.NotOwned"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="description" title="{{localize 'DS4.HeadingDescription'}}">
|
||||
{{editor content=data.description target="data.description" button=true owner=owner editable=editable}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{!-- Effects Tab --}}
|
||||
{{> systems/ds4/templates/item/partials/effects.hbs }}
|
||||
|
||||
</section>
|
||||
|
||||
{{!-- Common Item body --}}
|
||||
{{> systems/ds4/templates/item/partials/body.hbs}}
|
||||
|
||||
</form>
|
||||
|
|
Loading…
Reference in a new issue