Opened all of it this time, rather than driving the system through its API.
Two more defects of the same family as the NPC sheet, and in the same place —
the types added last:
- Talent and Art had no TYPES.Item.* label, so their sheets printed the raw
key "TYPES.Item.talent" under the name.
- Neither had a branch in item-sheet.hbs or an isTalent/isPower flag, so the
Detail tab rendered EMPTY over a document holding category, rule, uses per
case, Coherence cost, push cost and origin. Eleven of thirteen types were
handled, which is exactly the shape an eye skips.
Both now have a header statline and a full Detail section, and a guard walks
template.json: every declared type must have a label, a flag set in ringbrp.mjs,
and an {{#if isX}} section in the sheet.
One hardening fix: loseCoherence applies the cost and THEN announces it, so
anything that throws in between leaves the actor quietly poorer with no message.
localize() throws on a non-string, which an unrecognised reason key is.
Everything else came back clean, and it is worth recording what was checked so
the next audit knows what "checked" meant: 13 item types opened, all render; the
expedition sheet (4 tabs); all 7 chat cards driven through their real entry
points — roll, coherence, reaction via Combat.rollAll, hit location, weapon
damage, major wound, and contact through a case file that actually has a group;
all 3 dialogs opened by clicking the controls a player clicks. No errors, no raw
localisation keys anywhere.
Also: Culland Hall as a playable Scene. Drawn as SVG rather than generated,
because a room count, a door position and a label are all load-bearing here and
a generator cannot be trusted with any of them — three label-collision passes in
the browser before it was clean, which is the documented cost of doing it this
way. 2800x2000 at 100px to the square so the Foundry grid lands on the grid
drawn into the image; 5ft squares; no walls, because half-done walls are worse
than none and a GM who wants vision can add them in ten minutes.
Verified in Foundry: the scene imports, activates, and draws.
Version 1.0.2.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
539 lines
38 KiB
Handlebars
539 lines
38 KiB
Handlebars
<form class="ringbrp-sheet rb-item" autocomplete="off">
|
|
|
|
<header class="rb-item-header">
|
|
<img class="rb-item-img" src="{{item.img}}" data-edit="img"/>
|
|
<div class="rb-item-ident">
|
|
<input class="rb-name" name="name" type="text" value="{{item.name}}"/>
|
|
<span class="rb-type">{{localize (rbConcat "TYPES.Item." item.type)}}</span>
|
|
</div>
|
|
</header>
|
|
|
|
{{!-- ==========================================================
|
|
THE STATLINE — the 1984 weapons table, one row per item.
|
|
A player should know what this is without reading a form.
|
|
========================================================== --}}
|
|
{{#if isWeapon}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Damage"}}</span>
|
|
<a class="rb-stat-value rb-stat-roll" data-action="roll-damage">{{damageSummary}}</a></div>
|
|
{{#if attackRating}}
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Attack"}}</span>
|
|
<a class="rb-stat-value rb-stat-roll" data-action="roll-attack-item">{{attackRating}}%</a></div>
|
|
{{/if}}
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Range"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.rangeSummary}}{{sys.rangeSummary}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.WoundType"}}</span>
|
|
<span class="rb-stat-value">{{sys.woundType}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.FireMode"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.fireMode}}{{sys.fireMode}}{{else}}—{{/if}}</span></div>
|
|
{{#if sys.ammo.capacity}}
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Ammo"}}</span>
|
|
<span class="rb-stat-value">{{sys.ammo.loaded}}/{{sys.ammo.capacity}}</span></div>
|
|
{{/if}}
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.MassShort"}}</span>
|
|
<span class="rb-stat-value">{{sys.massKg}} kg</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isSkill}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Rating"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.value}}%</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.PrintedBase"}}</span>
|
|
<span class="rb-stat-value">{{sys.base.value}}%</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.BandsHint"}}</span>
|
|
<span class="rb-stat-value rb-stat-mono">{{rbBands sys.value}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isArmour}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Points"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.points}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.MassShort"}}</span>
|
|
<span class="rb-stat-value">{{sys.massKg}} kg</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Equipped"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.equipped}}{{localize "RINGBRP.Item.Worn"}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Coverage"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{localize coverageLabel}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.IgnoredBy"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#each sys.ignoredBy as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}—{{/each}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isAuthority}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Authority.Trust"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.trust.value}}/{{sys.trust.max}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Authority.Scope"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{scopeLabel}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Authority.Expires"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#if sys.expires}}{{sys.expires}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Authority.ScopeNote"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#if sys.scopeNote}}{{sys.scopeNote}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Authority.MergeHead"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{mergeLabel}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isVehicle}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Hull"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.hull.value}}/{{sys.hull.max}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Points"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.armourPoints}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Crew"}}</span>
|
|
<span class="rb-stat-value">{{sys.crew}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Seats"}}</span>
|
|
<span class="rb-stat-value">{{sys.seats}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Cargo"}}</span>
|
|
<span class="rb-stat-value">{{sys.cargoKg}} kg</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Speed"}}</span>
|
|
<span class="rb-stat-value">{{speedLabel}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Range"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.rangeKm}}{{sys.rangeKm}} km{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Operate"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{operateLabel}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Vehicle.Terrain"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#each sys.terrain as |t|}}{{t}}{{#unless @last}}, {{/unless}}{{else}}—{{/each}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isDevice}}
|
|
<section class="rb-statline {{#unless sys.functional}}rb-statline-locked{{/unless}}">
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Sheet.Integrity"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.integrity.value}}<span class="rb-stat-of">/{{sys.integrity.max}}</span></span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Status"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.functional}}{{localize "RINGBRP.Item.Functional"}}{{else}}{{localize "RINGBRP.Item.Inert"}}{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Tradition"}}</span>
|
|
<span class="rb-stat-value">{{#each sys.traditionIds as |t|}}{{t}}{{#unless @last}}, {{/unless}}{{/each}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.MassShort"}}</span>
|
|
<span class="rb-stat-value">{{sys.massKg}} kg</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isProject}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.Question"}}</span>
|
|
<span class="rb-stat-value rb-stat-question">{{sys.question}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Expedition.Step"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{rbAdd sys.currentStep 1}}<span class="rb-stat-of">/{{sys.steps.length}}</span></span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isGear}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Item.TotalMass"}}</span>
|
|
<span class="rb-stat-value">{{totalMass}} kg</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Quantity"}}</span>
|
|
<span class="rb-stat-value">{{sys.quantity}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Carried"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.carried}}{{localize "RINGBRP.Item.Yes"}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.PowerDraw"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.powerDraw}}{{sys.powerDraw}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.Facility"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#if sys.researchFacility}}{{sys.researchFacility}} ({{rbSign facilityMod}}%){{else}}—{{/if}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isDiscovery}}
|
|
<section class="rb-statline {{#unless sys.published}}rb-statline-locked{{/unless}}">
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.Question"}}</span>
|
|
<span class="rb-stat-value rb-stat-question">{{sys.question}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Status"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.published}}{{localize "RINGBRP.Item.Published"}}{{else}}{{localize "RINGBRP.Item.Unpublished"}}{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Unlocks"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.unlocks.length}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isGroup}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Population"}}</span>
|
|
<span class="rb-stat-value rb-stat-big">{{sys.population}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.PrincipalTaboo"}}</span>
|
|
<span class="rb-stat-value rb-stat-small rb-taboo">{{principalTaboo}}</span></div>
|
|
<div class="rb-stat rb-stat-wide"><span class="rb-stat-label">{{localize "RINGBRP.Item.PrincipalDesire"}}</span>
|
|
<span class="rb-stat-value rb-stat-small rb-desire">{{principalDesire}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isMaterial}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Item.ImmuneTo"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#each sys.immuneTo as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}—{{/each}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.SlowTo"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#each sys.slowTo as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}—{{/each}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.BlocksSensors"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{#each sys.blocksSensors as |x|}}{{x}}{{#unless @last}}, {{/unless}}{{else}}—{{/each}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.Neutrino"}}</span>
|
|
<span class="rb-stat-value">{{sys.neutrinoAbsorption}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isTalent}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Item.TalentCategory"}}</span>
|
|
<span class="rb-stat-value rb-stat-small">{{sys.category}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.UsesPerCase"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.usesPerCase}}{{sys.usedThisCase}} / {{sys.usesPerCase}}{{else}}—{{/if}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Coh.Label"}}</span>
|
|
<span class="rb-stat-value">{{#if sys.coherenceCost}}{{sys.coherenceCost}}{{else}}—{{/if}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
{{#if isPower}}
|
|
<section class="rb-statline">
|
|
<div class="rb-stat rb-stat-primary"><span class="rb-stat-label">{{localize "RINGBRP.Item.ArtRating"}}</span>
|
|
<span class="rb-stat-value">{{sys.value}}%</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Coh.Label"}}</span>
|
|
<span class="rb-stat-value">{{sys.coherenceCost}}</span></div>
|
|
<div class="rb-stat"><span class="rb-stat-label">{{localize "RINGBRP.Item.PushCost"}}</span>
|
|
<span class="rb-stat-value">{{sys.pushCost}}</span></div>
|
|
</section>
|
|
{{/if}}
|
|
|
|
<nav class="sheet-tabs rb-tabs" data-group="primary">
|
|
<a class="item" data-tab="detail">{{localize "RINGBRP.Tab.Detail"}}</a>
|
|
<a class="item" data-tab="desc">{{localize "RINGBRP.Tab.Description"}}</a>
|
|
</nav>
|
|
|
|
<section class="sheet-body rb-body">
|
|
<div class="tab" data-group="primary" data-tab="detail">
|
|
|
|
{{#if isSkill}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.Family"}}<input type="text" name="system.familyId" value="{{sys.familyId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Specialisation"}}<input type="text" name="system.specialisationId" value="{{sys.specialisationId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Category"}}
|
|
<select name="system.categoryId">
|
|
{{#each RINGBRP.categories as |c key|}}
|
|
<option value="{{key}}" {{#if (rbEq key ../sys.categoryId)}}selected{{/if}}>{{localize c.label}}</option>
|
|
{{/each}}
|
|
</select></label>
|
|
<label>{{localize "RINGBRP.Item.TransferGroup"}}<input type="text" name="system.transferGroup" value="{{sys.transferGroup}}"/></label>
|
|
</div>
|
|
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Values"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.Rating"}}<input type="number" name="system.value" value="{{sys.value}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.PrintedBase"}}<input type="number" name="system.base.value" value="{{sys.base.value}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.TrainingCap"}}<input type="number" name="system.trainingCap" value="{{sys.trainingCap}}"/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.CanBeTaught"}}<input type="checkbox" name="system.canBeTaught" {{checked sys.canBeTaught}}/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.ExperienceEligible"}}<input type="checkbox" name="system.experienceEligible" {{checked sys.experienceEligible}}/></label>
|
|
</div>
|
|
<p class="rb-hint">{{localize "RINGBRP.Item.FloorNote"}}</p>
|
|
{{/if}}
|
|
|
|
{{#if isWeapon}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.Class"}}
|
|
<select name="system.weaponClass">
|
|
{{#each RINGBRP.weaponClasses as |c|}}<option value="{{c}}" {{#if (rbEq c ../sys.weaponClass)}}selected{{/if}}>{{c}}</option>{{/each}}
|
|
</select></label>
|
|
<label>{{localize "RINGBRP.Item.WoundType"}}
|
|
<select name="system.woundType">
|
|
{{#each RINGBRP.woundTypeMap as |stat key|}}<option value="{{key}}" {{#if (rbEq key ../sys.woundType)}}selected{{/if}}>{{key}} → {{stat}}</option>{{/each}}
|
|
</select></label>
|
|
<label>{{localize "RINGBRP.Item.SkillFamily"}}<input type="text" name="system.skillFamilyId" value="{{sys.skillFamilyId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.SkillSpec"}}<input type="text" name="system.skillSpecialisationId" value="{{sys.skillSpecialisationId}}"/></label>
|
|
</div>
|
|
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.Damage"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.DamageMode"}}
|
|
<select name="system.damage.mode">
|
|
<option value="single" {{#if (rbEq sys.damage.mode "single")}}selected{{/if}}>single</option>
|
|
<option value="byBand" {{#if (rbEq sys.damage.mode "byBand")}}selected{{/if}}>by range band</option>
|
|
</select></label>
|
|
{{#if isByBand}}
|
|
<label>{{localize "RINGBRP.Item.DamageShort"}}<input type="text" name="system.damage.short" value="{{sys.damage.short}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.DamageMedium"}}<input type="text" name="system.damage.medium" value="{{sys.damage.medium}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.DamageLong"}}<input type="text" name="system.damage.long" value="{{sys.damage.long}}"/></label>
|
|
{{else}}
|
|
<label>{{localize "RINGBRP.Item.Damage"}}<input type="text" name="system.damage.formula" value="{{sys.damage.formula}}"/></label>
|
|
{{/if}}
|
|
<label class="rb-check">{{localize "RINGBRP.Item.AppliesDamageMod"}}<input type="checkbox" name="system.appliesDamageModifier" {{checked sys.appliesDamageModifier}}/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Monofilament"}}<input type="checkbox" name="system.monofilament" {{checked sys.monofilament}}/></label>
|
|
</div>
|
|
{{#if sys.monofilament}}<p class="rb-hint rb-hint-warn">{{localize "RINGBRP.Item.MonoNote"}}</p>{{/if}}
|
|
|
|
{{#if isRangedWeapon}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.Range"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.RangeShort"}}<input type="number" name="system.ranges.short" value="{{sys.ranges.short}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.RangeMedium"}}<input type="number" name="system.ranges.medium" value="{{sys.ranges.medium}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.RangeLong"}}<input type="number" name="system.ranges.long" value="{{sys.ranges.long}}"/></label>
|
|
</div>
|
|
<p class="rb-hint">{{localize "RINGBRP.Item.RangeNote"}}</p>
|
|
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Sheet.Ammo"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.FireMode"}}
|
|
<select name="system.fireMode">
|
|
{{#each RINGBRP.fireModes as |f|}}<option value="{{f}}" {{#if (rbEq f ../sys.fireMode)}}selected{{/if}}>{{#if f}}{{f}}{{else}}—{{/if}}</option>{{/each}}
|
|
</select></label>
|
|
<label>{{localize "RINGBRP.Item.Capacity"}}<input type="number" name="system.ammo.capacity" value="{{sys.ammo.capacity}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Loaded"}}<input type="number" name="system.ammo.loaded" value="{{sys.ammo.loaded}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Reserve"}}<input type="number" name="system.ammo.reserve" value="{{sys.ammo.reserve}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.EnergyPerShot"}}<input type="number" name="system.energyPerShot" value="{{sys.energyPerShot}}"/></label>
|
|
</div>
|
|
{{/if}}
|
|
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Physical"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Equipped"}}<input type="checkbox" name="system.equipped" {{checked sys.equipped}}/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Carried"}}<input type="checkbox" name="system.carried" {{checked sys.carried}}/></label>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isArmour}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Protection"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.Points"}}<input type="number" name="system.points" value="{{sys.points}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Equipped"}}<input type="checkbox" name="system.equipped" {{checked sys.equipped}}/></label>
|
|
<label>{{localize "RINGBRP.Item.Coverage"}}
|
|
<select name="system.coverage">
|
|
{{#each RINGBRP.coverage as |c key|}}<option value="{{key}}" {{#if (rbEq key ../sys.coverage)}}selected{{/if}}>{{localize c.label}}</option>{{/each}}
|
|
</select>
|
|
</label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.IsShield"}}<input type="checkbox" name="system.shield" {{checked sys.shield}}/></label>
|
|
{{#if sys.shield}}
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Raised"}}<input type="checkbox" name="system.raised" {{checked sys.raised}}/></label>
|
|
<label>{{localize "RINGBRP.Item.Wear"}}<input type="number" name="system.degradation.current" value="{{sys.degradation.current}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.WearMax"}}<input type="number" name="system.degradation.max" value="{{sys.degradation.max}}"/></label>
|
|
{{/if}}
|
|
</div>
|
|
<p class="rb-hint">{{localize "RINGBRP.Item.ArmourNote"}}</p>
|
|
{{/if}}
|
|
|
|
{{#if isGear}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Physical"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Quantity"}}<input type="number" name="system.quantity" value="{{sys.quantity}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.PowerDraw"}}<input type="number" name="system.powerDraw" value="{{sys.powerDraw}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Facility"}}
|
|
<select name="system.researchFacility">
|
|
<option value="">—</option>
|
|
{{#each RINGBRP.facilities as |v key|}}<option value="{{key}}" {{#if (rbEq key ../sys.researchFacility)}}selected{{/if}}>{{key}} ({{rbSign v}}%)</option>{{/each}}
|
|
</select></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Carried"}}<input type="checkbox" name="system.carried" {{checked sys.carried}}/></label>
|
|
<label>{{localize "RINGBRP.Item.BonusSkill"}}<input type="text" name="system.skillBonus.skillFamilyId" value="{{sys.skillBonus.skillFamilyId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.BonusValue"}}<input type="number" name="system.skillBonus.value" value="{{sys.skillBonus.value}}"/></label>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isAuthority}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Authority.Holder"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Authority.Holder"}}<input type="text" name="system.holderName" value="{{sys.holderName}}"/></label>
|
|
<label>{{localize "RINGBRP.Authority.Role"}}<input type="text" name="system.holderRole" value="{{sys.holderRole}}"/></label>
|
|
<label>{{localize "RINGBRP.Authority.Scope"}}
|
|
<select name="system.scope">
|
|
{{#each scopeOptions as |o|}}<option value="{{o.key}}" {{#if o.selected}}selected{{/if}}>{{o.label}}</option>{{/each}}
|
|
</select></label>
|
|
<label>{{localize "RINGBRP.Authority.Expires"}}<input type="text" name="system.expires" value="{{sys.expires}}"/></label>
|
|
<label class="rb-wide">{{localize "RINGBRP.Authority.ScopeNote"}}<input type="text" name="system.scopeNote" value="{{sys.scopeNote}}"/></label>
|
|
<label>{{localize "RINGBRP.Authority.Trust"}}<input type="number" name="system.trust.value" value="{{sys.trust.value}}"/></label>
|
|
<label>{{localize "RINGBRP.Authority.AI"}}<input type="text" name="system.aiPosture" value="{{sys.aiPosture}}" placeholder="gatekeeper / analyst / asset"/></label>
|
|
</div>
|
|
{{#if sys.dossier.length}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Authority.Dossier"}}</h3>
|
|
<ol class="rb-list rb-dossier-list">
|
|
{{#each sys.dossier as |d|}}
|
|
<li><span class="rb-strong">{{d.text}}</span>
|
|
<span class="rb-dim">{{d.familyId}}</span>
|
|
<span class="rb-dim">{{d.by}}</span>
|
|
<span class="rb-dim">{{d.level}}</span></li>
|
|
{{/each}}
|
|
</ol>
|
|
{{/if}}
|
|
{{#if sys.redFlags.length}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Authority.RedFlags"}}</h3>
|
|
<ul class="rb-list rb-flag-list">
|
|
{{#each sys.redFlags as |f|}}<li>{{f.text}}</li>{{/each}}
|
|
</ul>
|
|
{{/if}}
|
|
{{/if}}
|
|
|
|
{{#if isVehicle}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Transport"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Vehicle.Crew"}}<input type="number" name="system.crew" value="{{sys.crew}}"/></label>
|
|
<label>{{localize "RINGBRP.Vehicle.Seats"}}<input type="number" name="system.seats" value="{{sys.seats}}"/></label>
|
|
<label>{{localize "RINGBRP.Vehicle.Cargo"}}<input type="number" name="system.cargoKg" value="{{sys.cargoKg}}"/></label>
|
|
<label>{{localize "RINGBRP.Vehicle.Hull"}}<input type="number" name="system.hull.value" value="{{sys.hull.value}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Points"}}<input type="number" name="system.armourPoints" value="{{sys.armourPoints}}"/></label>
|
|
<label>{{localize "RINGBRP.Vehicle.Range"}}<input type="number" name="system.rangeKm" value="{{sys.rangeKm}}"/></label>
|
|
<label>{{localize "RINGBRP.Vehicle.Speed"}}
|
|
<select name="system.speedBand">
|
|
{{#each RINGBRP.speedBands as |lbl key|}}<option value="{{key}}" {{#if (rbEq key ../sys.speedBand)}}selected{{/if}}>{{localize lbl}}</option>{{/each}}
|
|
</select></label>
|
|
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="1" name="system.massKg" value="{{sys.massKg}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Coherence"}}<input type="number" name="system.coherenceCost" value="{{sys.coherenceCost}}"/></label>
|
|
</div>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Vehicle.Operate"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.SkillFamily"}}<input type="text" name="system.skillFamilyId" value="{{sys.skillFamilyId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Specialisation"}}<input type="text" name="system.skillSpecialisationId" value="{{sys.skillSpecialisationId}}"/></label>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isDevice}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.DocumentId"}}<input type="text" name="system.documentId" value="{{sys.documentId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Material"}}<input type="text" name="system.materialId" value="{{sys.materialId}}"/></label>
|
|
<label>{{localize "RINGBRP.Sheet.Integrity"}}<input type="number" name="system.integrity.value" value="{{sys.integrity.value}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.IntegrityMax"}}<input type="number" name="system.integrity.max" value="{{sys.integrity.max}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Mass"}}<input type="number" step="0.1" name="system.massKg" value="{{sys.massKg}}"/></label>
|
|
</div>
|
|
|
|
{{#each sys.functions as |fn key|}}
|
|
<h3 class="rb-cat-head">{{key}}
|
|
{{#if fn.requiredDiscoveryIds.length}}
|
|
<span class="rb-locked-chip">{{localize "RINGBRP.Item.Locked"}}</span>
|
|
{{/if}}
|
|
</h3>
|
|
<div class="rb-fnbody">
|
|
{{#if fn.effect}}<p class="rb-fn-effect">{{fn.effect}}</p>{{/if}}
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.SkillFamily"}}<input type="text" name="system.functions.{{key}}.skillFamilyId" value="{{fn.skillFamilyId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.SkillSpec"}}<input type="text" name="system.functions.{{key}}.skillSpecialisationId" value="{{fn.skillSpecialisationId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Difficulty"}}<input type="text" name="system.functions.{{key}}.difficulty" value="{{fn.difficulty}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.DifficultyAfter"}}<input type="text" name="system.functions.{{key}}.difficultyAfterDiscovery" value="{{fn.difficultyAfterDiscovery}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.PowerCost"}}<input type="number" name="system.functions.{{key}}.powerCost" value="{{fn.powerCost}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.PowerCostFail"}}<input type="number" name="system.functions.{{key}}.powerCostOnFailure" value="{{fn.powerCostOnFailure}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.RequiresIntegrity"}}<input type="number" name="system.functions.{{key}}.requiresIntegrity" value="{{fn.requiresIntegrity}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.HoursPerAttempt"}}<input type="number" name="system.functions.{{key}}.hoursPerAttempt" value="{{fn.hoursPerAttempt}}"/></label>
|
|
</div>
|
|
{{#if fn.onFumble}}<p class="rb-hint rb-hint-warn">{{fn.onFumble}}</p>{{/if}}
|
|
</div>
|
|
{{/each}}
|
|
{{/if}}
|
|
|
|
{{#if isDiscovery}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<label class="rb-block">{{localize "RINGBRP.Item.Question"}}</label>
|
|
<input type="text" name="system.question" value="{{sys.question}}" class="rb-wide"/>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.DiscoveryId"}}<input type="text" name="system.discoveryId" value="{{sys.discoveryId}}"/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Publishable"}}<input type="checkbox" name="system.publishable" {{checked sys.publishable}}/></label>
|
|
<label class="rb-check">{{localize "RINGBRP.Item.Published"}}<input type="checkbox" name="system.published" {{checked sys.published}}/></label>
|
|
</div>
|
|
{{#if sys.unlocks.length}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Unlocks"}}</h3>
|
|
<ol class="rb-list">
|
|
{{#each sys.unlocks as |u|}}<li><span class="rb-strong">{{u.documentId}}</span><span class="rb-dim">{{u.functionId}}</span></li>{{/each}}
|
|
</ol>
|
|
{{/if}}
|
|
{{/if}}
|
|
|
|
{{#if isProject}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Steps"}}</h3>
|
|
<ol class="rb-steps">
|
|
{{#each sys.steps as |s i|}}
|
|
<li class="rb-step {{#if (rbEq i ../sys.currentStep)}}rb-step-current{{/if}} {{#if (rbEq s.state 'complete')}}rb-step-done{{/if}}">
|
|
<span class="rb-step-n">{{rbAdd i 1}}</span>
|
|
<div class="rb-step-body">
|
|
<span class="rb-step-type">{{s.stepType}}</span>
|
|
<span class="rb-dim">{{s.skillFamilyId}}{{#if s.skillSpecialisationId}} ({{s.skillSpecialisationId}}){{/if}} · {{s.difficulty}}{{#if s.hours}} · {{s.hours}} h{{/if}}{{#if s.facility}} · {{s.facility}}{{/if}}</span>
|
|
{{#if s.objective}}<div class="rb-objective">{{s.objective}}</div>{{/if}}
|
|
</div>
|
|
<span class="rb-step-state">{{s.state}}</span>
|
|
</li>
|
|
{{/each}}
|
|
</ol>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Values"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.Status"}}<input type="text" name="system.status" value="{{sys.status}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.CurrentStep"}}<input type="number" name="system.currentStep" value="{{sys.currentStep}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.MaxResearchers"}}<input type="number" name="system.maxResearchers" value="{{sys.maxResearchers}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Yields"}}<input type="text" name="system.yieldsDiscoveryId" value="{{sys.yieldsDiscoveryId}}"/></label>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isGroup}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid3">
|
|
<label>{{localize "RINGBRP.Item.GroupId"}}<input type="text" name="system.groupId" value="{{sys.groupId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Population"}}<input type="number" name="system.population" value="{{sys.population}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.NpcTemplate"}}<input type="text" name="system.npcTemplateId" value="{{sys.npcTemplateId}}"/></label>
|
|
</div>
|
|
<label class="rb-block">{{localize "RINGBRP.Item.OfferForm"}}</label>
|
|
<input type="text" name="system.correctOfferForm" value="{{sys.correctOfferForm}}" class="rb-wide"/>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Taboos"}}</h3>
|
|
<ol class="rb-list">{{#each sys.taboos as |t|}}<li><span class="rb-taboo">{{t.text}}</span>{{#if t.penaltyIfViolated}}<span class="rb-dim">{{t.penaltyIfViolated}}%</span>{{/if}}</li>{{/each}}</ol>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Desires"}}</h3>
|
|
<ol class="rb-list">{{#each sys.desires as |d|}}<li><span class="rb-desire">{{d.text}}</span></li>{{/each}}</ol>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Rewards"}}</h3>
|
|
<ol class="rb-list">
|
|
{{#each sys.rewardsByStanding as |rewards standing|}}
|
|
<li><span class="rb-standing-chip">+{{standing}}</span>
|
|
<span class="rb-dim">{{#each rewards as |r|}}{{r}}{{#unless @last}} · {{/unless}}{{/each}}</span></li>
|
|
{{/each}}
|
|
</ol>
|
|
{{/if}}
|
|
|
|
{{#if isMaterial}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.MaterialId"}}<input type="text" name="system.materialId" value="{{sys.materialId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.Neutrino"}}<input type="number" step="0.01" name="system.neutrinoAbsorption" value="{{sys.neutrinoAbsorption}}"/></label>
|
|
</div>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.ImmuneTo"}}</h3>
|
|
<p class="rb-tags">{{#each sys.immuneTo as |t|}}<span class="rb-tag">{{t}}</span>{{else}}<span class="rb-dim">—</span>{{/each}}</p>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.SlowTo"}}</h3>
|
|
<p class="rb-tags">{{#each sys.slowTo as |t|}}<span class="rb-tag">{{t}}</span>{{else}}<span class="rb-dim">—</span>{{/each}}</p>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.BlocksSensors"}}</h3>
|
|
<p class="rb-tags">{{#each sys.blocksSensors as |t|}}<span class="rb-tag">{{t}}</span>{{else}}<span class="rb-dim">—</span>{{/each}}</p>
|
|
{{/if}}
|
|
|
|
{{#if isTalent}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.TalentId"}}<input type="text" name="system.talentId" value="{{sys.talentId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.TalentCategory"}}<input type="text" name="system.category" value="{{sys.category}}"/></label>
|
|
</div>
|
|
<label class="rb-wide">{{localize "RINGBRP.Item.TalentSummary"}}<input type="text" name="system.summary" value="{{sys.summary}}"/></label>
|
|
<label class="rb-wide">{{localize "RINGBRP.Item.TalentRule"}}<textarea name="system.rule" rows="3">{{sys.rule}}</textarea></label>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Tab.Combat"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.UsesPerCase"}}<input type="number" name="system.usesPerCase" value="{{sys.usesPerCase}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.UsedThisCase"}}<input type="number" name="system.usedThisCase" value="{{sys.usedThisCase}}"/></label>
|
|
<label>{{localize "RINGBRP.Coh.Label"}}<input type="number" name="system.coherenceCost" value="{{sys.coherenceCost}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.GrantsAction"}}<input type="text" name="system.grantsAction" value="{{sys.grantsAction}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.SkillBonusFam"}}<input type="text" name="system.skillBonus.skillFamilyId" value="{{sys.skillBonus.skillFamilyId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.SkillBonusVal"}}<input type="number" name="system.skillBonus.value" value="{{sys.skillBonus.value}}"/></label>
|
|
</div>
|
|
{{/if}}
|
|
|
|
{{#if isPower}}
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Item.Identity"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Item.ArtId"}}<input type="text" name="system.artId" value="{{sys.artId}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.ArtRating"}}<input type="number" name="system.value" value="{{sys.value}}"/></label>
|
|
</div>
|
|
<label class="rb-wide">{{localize "RINGBRP.Item.ArtSummary"}}<input type="text" name="system.summary" value="{{sys.summary}}"/></label>
|
|
<label class="rb-wide">{{localize "RINGBRP.Item.ArtRule"}}<textarea name="system.rule" rows="3">{{sys.rule}}</textarea></label>
|
|
<h3 class="rb-cat-head">{{localize "RINGBRP.Coh.Label"}}</h3>
|
|
<div class="rb-grid2">
|
|
<label>{{localize "RINGBRP.Coh.Label"}}<input type="number" name="system.coherenceCost" value="{{sys.coherenceCost}}"/></label>
|
|
<label>{{localize "RINGBRP.Item.PushCost"}}<input type="number" name="system.pushCost" value="{{sys.pushCost}}"/></label>
|
|
</div>
|
|
<label class="rb-wide">{{localize "RINGBRP.Item.PushRule"}}<textarea name="system.pushRule" rows="2">{{sys.pushRule}}</textarea></label>
|
|
<label class="rb-wide">{{localize "RINGBRP.Item.Origin"}}<input type="text" name="system.origin" value="{{sys.origin}}"/></label>
|
|
{{/if}}
|
|
</div>
|
|
|
|
<div class="tab" data-group="primary" data-tab="desc">
|
|
{{editor descriptionHTML target="system.description" button=true editable=editable engine="prosemirror"}}
|
|
</div>
|
|
</section>
|
|
</form>
|