mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
[Feature] 942 - Limited Sheet Views (#1090)
* Added stumps for all limited actor views * Added description to adversary and environment * style limited sheets * Limited views are no longer resizable * . * Update styles/less/sheets/actors/actor-sheet-shared.less Co-authored-by: Nikhil Nagarajan <potter.nikhil@gmail.com> --------- Co-authored-by: moliloo <dev.murilobrito@gmail.com> Co-authored-by: Nikhil Nagarajan <potter.nikhil@gmail.com>
This commit is contained in:
parent
ce3e2a804c
commit
ba84a75bd0
11 changed files with 479 additions and 12 deletions
|
|
@ -25,6 +25,10 @@ export default class AdversarySheet extends DHBaseActorSheet {
|
|||
};
|
||||
|
||||
static PARTS = {
|
||||
limited: {
|
||||
template: 'systems/daggerheart/templates/sheets/actors/adversary/limited.hbs',
|
||||
scrollable: ['.limited-container']
|
||||
},
|
||||
sidebar: {
|
||||
template: 'systems/daggerheart/templates/sheets/actors/adversary/sidebar.hbs',
|
||||
scrollable: ['.shortcut-items-section']
|
||||
|
|
@ -52,6 +56,18 @@ export default class AdversarySheet extends DHBaseActorSheet {
|
|||
}
|
||||
};
|
||||
|
||||
/** @inheritdoc */
|
||||
_initializeApplicationOptions(options) {
|
||||
const applicationOptions = super._initializeApplicationOptions(options);
|
||||
|
||||
if (applicationOptions.document.testUserPermission(game.user, 'LIMITED', { exact: true })) {
|
||||
applicationOptions.position.width = 360;
|
||||
applicationOptions.position.height = 'auto';
|
||||
}
|
||||
|
||||
return applicationOptions;
|
||||
}
|
||||
|
||||
/**@inheritdoc */
|
||||
async _prepareContext(options) {
|
||||
const context = await super._prepareContext(options);
|
||||
|
|
@ -65,6 +81,7 @@ export default class AdversarySheet extends DHBaseActorSheet {
|
|||
context = await super._preparePartContext(partId, context, options);
|
||||
switch (partId) {
|
||||
case 'header':
|
||||
case 'limited':
|
||||
await this._prepareHeaderContext(context, options);
|
||||
|
||||
const adversaryTypes = CONFIG.DH.ACTOR.allAdversaryTypes();
|
||||
|
|
|
|||
|
|
@ -76,6 +76,11 @@ export default class CharacterSheet extends DHBaseActorSheet {
|
|||
|
||||
/**@override */
|
||||
static PARTS = {
|
||||
limited: {
|
||||
id: 'limited',
|
||||
scrollable: ['.limited-container'],
|
||||
template: 'systems/daggerheart/templates/sheets/actors/character/limited.hbs'
|
||||
},
|
||||
sidebar: {
|
||||
id: 'sidebar',
|
||||
scrollable: ['.shortcut-items-section'],
|
||||
|
|
@ -141,23 +146,37 @@ export default class CharacterSheet extends DHBaseActorSheet {
|
|||
});
|
||||
}
|
||||
|
||||
/** @inheritdoc */
|
||||
_initializeApplicationOptions(options) {
|
||||
const applicationOptions = super._initializeApplicationOptions(options);
|
||||
|
||||
if (applicationOptions.document.testUserPermission(game.user, 'LIMITED', { exact: true })) {
|
||||
applicationOptions.position.width = 360;
|
||||
applicationOptions.position.height = 'auto';
|
||||
}
|
||||
|
||||
return applicationOptions;
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
async _onRender(context, options) {
|
||||
await super._onRender(context, options);
|
||||
|
||||
this.element
|
||||
.querySelector('.level-value')
|
||||
?.addEventListener('change', event => this.document.updateLevel(Number(event.currentTarget.value)));
|
||||
if (!this.document.testUserPermission(game.user, 'LIMITED', { exact: true })) {
|
||||
this.element
|
||||
.querySelector('.level-value')
|
||||
?.addEventListener('change', event => this.document.updateLevel(Number(event.currentTarget.value)));
|
||||
|
||||
const observer = this.document.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER, {
|
||||
exact: true
|
||||
});
|
||||
if (observer) {
|
||||
this.element.querySelector('.window-content').classList.add('viewMode');
|
||||
const observer = this.document.testUserPermission(game.user, CONST.DOCUMENT_OWNERSHIP_LEVELS.OBSERVER, {
|
||||
exact: true
|
||||
});
|
||||
if (observer) {
|
||||
this.element.querySelector('.window-content').classList.add('viewMode');
|
||||
}
|
||||
|
||||
this._createFilterMenus();
|
||||
this._createSearchFilter();
|
||||
}
|
||||
|
||||
this._createFilterMenus();
|
||||
this._createSearchFilter();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@ export default class DhCompanionSheet extends DHBaseActorSheet {
|
|||
};
|
||||
|
||||
static PARTS = {
|
||||
limited: {
|
||||
template: 'systems/daggerheart/templates/sheets/actors/companion/limited.hbs',
|
||||
scrollable: ['.limited-container']
|
||||
},
|
||||
header: { template: 'systems/daggerheart/templates/sheets/actors/companion/header.hbs' },
|
||||
details: { template: 'systems/daggerheart/templates/sheets/actors/companion/details.hbs' },
|
||||
effects: {
|
||||
|
|
|
|||
|
|
@ -26,6 +26,10 @@ export default class DhpEnvironment extends DHBaseActorSheet {
|
|||
|
||||
/**@override */
|
||||
static PARTS = {
|
||||
limited: {
|
||||
template: 'systems/daggerheart/templates/sheets/actors/environment/limited.hbs',
|
||||
scrollable: ['.limited-container']
|
||||
},
|
||||
header: { template: 'systems/daggerheart/templates/sheets/actors/environment/header.hbs' },
|
||||
features: {
|
||||
template: 'systems/daggerheart/templates/sheets/actors/environment/features.hbs',
|
||||
|
|
@ -47,6 +51,18 @@ export default class DhpEnvironment extends DHBaseActorSheet {
|
|||
}
|
||||
};
|
||||
|
||||
/** @inheritdoc */
|
||||
_initializeApplicationOptions(options) {
|
||||
const applicationOptions = super._initializeApplicationOptions(options);
|
||||
|
||||
if (applicationOptions.document.testUserPermission(game.user, 'LIMITED', { exact: true })) {
|
||||
applicationOptions.position.width = 360;
|
||||
applicationOptions.position.height = 'auto';
|
||||
}
|
||||
|
||||
return applicationOptions;
|
||||
}
|
||||
|
||||
/**@inheritdoc */
|
||||
async _preparePartContext(partId, context, options) {
|
||||
context = await super._preparePartContext(partId, context, options);
|
||||
|
|
|
|||
|
|
@ -47,6 +47,12 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) {
|
|||
return (this.#settingSheet ??= SheetClass ? new SheetClass({ document: this.document }) : null);
|
||||
}
|
||||
|
||||
get isVisible() {
|
||||
const viewPermission = this.document.testUserPermission(game.user, this.options.viewPermission);
|
||||
const limitedOnly = this.document.testUserPermission(game.user, this.options.viewPermission, { exact: true });
|
||||
return limitedOnly ? this.document.system.metadata.hasLimitedView : viewPermission;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Prepare Context */
|
||||
/* -------------------------------------------- */
|
||||
|
|
@ -72,6 +78,31 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) {
|
|||
return context;
|
||||
}
|
||||
|
||||
_configureRenderParts(options) {
|
||||
const parts = super._configureRenderParts(options);
|
||||
if (!this.document.system.metadata.hasLimitedView) return parts;
|
||||
|
||||
if (this.document.testUserPermission(game.user, 'LIMITED', { exact: true })) return { limited: parts.limited };
|
||||
|
||||
return Object.keys(parts).reduce((acc, key) => {
|
||||
if (key !== 'limited') acc[key] = parts[key];
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
|
||||
/** @inheritDoc */
|
||||
async _onRender(context, options) {
|
||||
await super._onRender(context, options);
|
||||
|
||||
if (
|
||||
this.document.system.metadata.hasLimitedView &&
|
||||
this.document.testUserPermission(game.user, 'LIMITED', { exact: true })
|
||||
) {
|
||||
this.element.classList = `${this.element.classList} limited`;
|
||||
}
|
||||
}
|
||||
|
||||
/**@inheritdoc */
|
||||
_attachPartListeners(partId, htmlElement, options) {
|
||||
super._attachPartListeners(partId, htmlElement, options);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ export default class BaseDataActor extends foundry.abstract.TypeDataModel {
|
|||
isNPC: true,
|
||||
settingSheet: null,
|
||||
hasResistances: true,
|
||||
hasAttribution: false
|
||||
hasAttribution: false,
|
||||
hasLimitedView: true
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,22 @@
|
|||
@import '../../utils/fonts.less';
|
||||
@import '../../utils/colors.less';
|
||||
@import '../../utils/mixin.less';
|
||||
|
||||
.appTheme({
|
||||
.limited-container {
|
||||
.domains-section img {
|
||||
filter: @golden-filter;
|
||||
}
|
||||
}
|
||||
}, {
|
||||
.limited-container {
|
||||
|
||||
.domains-section img {
|
||||
filter: brightness(0) saturate(100%);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
.application.sheet.daggerheart.actor.dh-style {
|
||||
.portrait img,
|
||||
.profile {
|
||||
|
|
@ -17,4 +36,192 @@
|
|||
font-family: @font-body;
|
||||
color: light-dark(@chat-blue-bg, @beige-50);
|
||||
}
|
||||
|
||||
&.limited {
|
||||
&.character,
|
||||
&.adversary,
|
||||
&.environment,
|
||||
&.companion {
|
||||
.window-content {
|
||||
display: unset;
|
||||
padding-bottom: 20px;
|
||||
background-image: url('../assets/parchments/dh-parchment-dark.png');
|
||||
}
|
||||
|
||||
.limited-container {
|
||||
width: 100%;
|
||||
padding-top: var(--header-height);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
|
||||
header {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
top: -36px;
|
||||
margin-bottom: -30px;
|
||||
|
||||
.profile {
|
||||
width: 100%;
|
||||
max-height: 275px;
|
||||
max-width: fit-content;
|
||||
mask-image: linear-gradient(0deg, transparent 0%, black 10%);
|
||||
}
|
||||
|
||||
.title-name {
|
||||
text-align: start;
|
||||
font-size: var(--font-size-28);
|
||||
color: light-dark(@dark-blue, @golden);
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.character-details {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
|
||||
.basic-info,
|
||||
.multiclass {
|
||||
text-align: center;
|
||||
padding: 0 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.domain-details,
|
||||
.bio-details,
|
||||
.partner-details {
|
||||
margin-top: 10px;
|
||||
|
||||
.domain-header,
|
||||
.bio-header,
|
||||
.partner-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 10px;
|
||||
gap: 10px;
|
||||
|
||||
h3 {
|
||||
font-size: var(--font-size-20);
|
||||
}
|
||||
}
|
||||
|
||||
.items-list {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.partner-placeholder {
|
||||
display: flex;
|
||||
opacity: 0.6;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
justify-content: center;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.domains-section {
|
||||
position: relative;
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
background-color: light-dark(transparent, @dark-blue);
|
||||
color: light-dark(@dark-blue, @golden);
|
||||
padding: 5px 10px;
|
||||
border: 1px solid light-dark(@dark-blue, @golden);
|
||||
border-radius: 6px;
|
||||
align-items: center;
|
||||
width: fit-content;
|
||||
height: 30px;
|
||||
place-self: center;
|
||||
margin-top: 10px;
|
||||
|
||||
h4 {
|
||||
font-size: var(--font-size-14);
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
color: light-dark(@dark-blue, @golden);
|
||||
}
|
||||
|
||||
.domain {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
|
||||
.label {
|
||||
font-size: var(--font-size-14);
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
color: light-dark(@dark-blue, @golden);
|
||||
}
|
||||
|
||||
img {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bio-list {
|
||||
display: flex;
|
||||
gap: 20px;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
margin-top: 10px;
|
||||
|
||||
.bio-info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
min-width: 90px;
|
||||
color: light-dark(@dark-blue, @golden);
|
||||
background-color: light-dark(@dark-blue-10, @golden-40);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.level-details {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.description {
|
||||
font-style: italic;
|
||||
text-align: center;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
.tags {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
padding-bottom: 10px;
|
||||
justify-content: center;
|
||||
|
||||
.tag {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 3px 5px;
|
||||
font-size: var(--font-size-12);
|
||||
font: @font-body;
|
||||
|
||||
background: light-dark(@dark-15, @beige-15);
|
||||
border: 1px solid light-dark(@dark, @beige);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.label {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: var(--font-size-12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
23
templates/sheets/actors/adversary/limited.hbs
Normal file
23
templates/sheets/actors/adversary/limited.hbs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<div class="limited-container">
|
||||
<header>
|
||||
<img class="profile" src="{{document.img}}" alt="{{document.name}}" data-action='editImage' data-edit="img">
|
||||
<h1 class="title-name">{{document.name}}</h1>
|
||||
</header>
|
||||
<div class="tags">
|
||||
<div class="tag">
|
||||
<span>
|
||||
{{localize (concat 'DAGGERHEART.GENERAL.Tiers.' source.system.tier)}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="tag">
|
||||
<span>{{adversaryType}}</span>
|
||||
</div>
|
||||
{{#if (eq source.system.type 'horde')}}
|
||||
<div class="tag">
|
||||
<span>{{source.system.hordeHp}}</span>
|
||||
<span>/{{localize "DAGGERHEART.GENERAL.HitPoints.short"}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="description">{{{document.system.description}}}</div>
|
||||
</div>
|
||||
97
templates/sheets/actors/character/limited.hbs
Normal file
97
templates/sheets/actors/character/limited.hbs
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
<div class="limited-container">
|
||||
<header>
|
||||
<img class="profile" src="{{document.img}}" alt="{{document.name}}" data-action='editImage' data-edit="img">
|
||||
<h1 class="title-name">{{document.name}}</h1>
|
||||
</header>
|
||||
<div class="character-details">
|
||||
<div class="basic-info">
|
||||
{{#if document.system.class.value}}
|
||||
<span data-action="editDoc" data-item-uuid="{{document.system.class.value.uuid}}">{{document.system.class.value.name}}</span>
|
||||
{{else}}
|
||||
<span class="missing-header-feature" data-action="openPack" data-key="classes">{{localize 'TYPES.Item.class'}}</span>
|
||||
{{/if}}
|
||||
<span class="dot">•</span>
|
||||
{{#if document.system.class.subclass}}
|
||||
<span data-action="editDoc" data-item-uuid="{{document.system.class.subclass.uuid}}">{{document.system.class.subclass.name}}</span>
|
||||
{{else}}
|
||||
<span class="missing-header-feature" data-action="openPack" data-key="subclasses">{{localize 'TYPES.Item.subclass'}}</span>
|
||||
{{/if}}
|
||||
<span class="dot">•</span>
|
||||
{{#if document.system.community}}
|
||||
<span data-action="editDoc" data-item-uuid="{{document.system.community.uuid}}">{{document.system.community.name}}</span>
|
||||
{{else}}
|
||||
<span class="missing-header-feature" data-action="openPack" data-key="communities">{{localize 'TYPES.Item.community'}}</span>
|
||||
{{/if}}
|
||||
<span class="dot">•</span>
|
||||
{{#if document.system.ancestry}}
|
||||
<span data-action="editDoc" data-item-uuid="{{document.system.ancestry.uuid}}">{{document.system.ancestry.name}}</span>
|
||||
{{else}}
|
||||
<span class="missing-header-feature" data-action="openPack" data-key="ancestries">{{localize 'TYPES.Item.ancestry'}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
{{#if document.system.multiclass.value}}
|
||||
<div class="multiclass">
|
||||
{{#if document.system.multiclass.value}}
|
||||
<span data-action="editDoc"data-item-uuid="{{document.system.multiclass.value.uuid}}">{{document.system.multiclass.value.name}}</span>
|
||||
{{else}}
|
||||
<span data-action="openPack" data-key="classes">{{localize 'DAGGERHEART.GENERAL.multiclass'}}</span>
|
||||
{{/if}}
|
||||
<span class="dot">•</span>
|
||||
{{#if document.system.multiclass.subclass}}
|
||||
<span data-action="editDoc" data-item-uuid="{{document.system.multiclass.subclass.uuid}}">{{document.system.multiclass.subclass.name}}</span>
|
||||
{{else}}
|
||||
<span class="missing-header-feature" data-action="openPack" data-key="subclasses">{{localize 'TYPES.Item.subclass'}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<h3 class="level-details">
|
||||
{{localize 'DAGGERHEART.GENERAL.level'}}
|
||||
{{document.system.levelData.level.changed}}
|
||||
</h3>
|
||||
<div class="domain-details">
|
||||
<div class="domain-header">
|
||||
<side-line-div class="invert"></side-line-div>
|
||||
<h3>{{localize "DAGGERHEART.GENERAL.Domain.plural"}}</h3>
|
||||
<side-line-div></side-line-div>
|
||||
</div>
|
||||
{{#if document.system.class.value}}
|
||||
<div class="domains-section">
|
||||
{{#each document.system.domainData as |data|}}
|
||||
<div class="domain">
|
||||
<img src="{{data.src}}" alt="" data-tooltip="{{data.description}}" />
|
||||
<span>{{data.label}}</span>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="bio-details">
|
||||
<div class="bio-header">
|
||||
<side-line-div class="invert"></side-line-div>
|
||||
<h3>{{localize "DAGGERHEART.GENERAL.Tabs.biography"}}</h3>
|
||||
<side-line-div></side-line-div>
|
||||
</div>
|
||||
<div class="bio-list">
|
||||
{{#if source.system.biography.characteristics.pronouns}}
|
||||
<div class="bio-info">
|
||||
<span>{{localize 'DAGGERHEART.ACTORS.Character.pronouns'}}</span>
|
||||
<span>{{source.system.biography.characteristics.pronouns}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if source.system.biography.characteristics.age}}
|
||||
<div class="bio-info">
|
||||
<span>{{localize 'DAGGERHEART.ACTORS.Character.age'}}</span>
|
||||
<span>{{source.system.biography.characteristics.age}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if source.system.biography.characteristics.faith}}
|
||||
<div class="bio-info">
|
||||
<span>{{localize 'DAGGERHEART.ACTORS.Character.faith'}}</span>
|
||||
<span>{{source.system.biography.characteristics.faith}}</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
31
templates/sheets/actors/companion/limited.hbs
Normal file
31
templates/sheets/actors/companion/limited.hbs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<div class="limited-container">
|
||||
<header>
|
||||
<img class="profile" src="{{document.img}}" alt="{{document.name}}" data-action='editImage' data-edit="img">
|
||||
<h1 class="title-name">{{document.name}}</h1>
|
||||
</header>
|
||||
<h3 class="level-details">
|
||||
{{localize 'DAGGERHEART.GENERAL.level'}}
|
||||
{{document.system.levelData.level.changed}}
|
||||
</h3>
|
||||
<div class="partner-details">
|
||||
<div class="partner-header">
|
||||
<side-line-div class="invert"></side-line-div>
|
||||
<h3>{{localize "DAGGERHEART.GENERAL.partner"}}</h3>
|
||||
<side-line-div></side-line-div>
|
||||
</div>
|
||||
{{#if document.system.partner}}
|
||||
<ul class="items-list">
|
||||
{{> 'daggerheart.inventory-item'
|
||||
item=document.system.partner
|
||||
type='companion'
|
||||
hideTags=true
|
||||
hideDescription=true
|
||||
isActor=true
|
||||
hideTooltip=true
|
||||
}}
|
||||
</ul>
|
||||
{{else}}
|
||||
<span class="partner-placeholder">{{localize "DAGGERHEART.ACTORS.Companion.noPartner"}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
21
templates/sheets/actors/environment/limited.hbs
Normal file
21
templates/sheets/actors/environment/limited.hbs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<div class="limited-container">
|
||||
<header>
|
||||
<img class="profile" src="{{document.img}}" alt="{{document.name}}" data-action='editImage' data-edit="img">
|
||||
<h1 class="title-name">{{document.name}}</h1>
|
||||
</header>
|
||||
<div class="tags">
|
||||
<div class="tag">
|
||||
<span>
|
||||
{{localize (concat 'DAGGERHEART.GENERAL.Tiers.' source.system.tier)}}
|
||||
</span>
|
||||
</div>
|
||||
{{#if source.system.type}}
|
||||
<div class="tag">
|
||||
<span>
|
||||
{{localize (concat 'DAGGERHEART.CONFIG.EnvironmentType.' source.system.type '.label')}}
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="description">{{{document.system.description}}}</div>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue