Skip to content

Commit 1f294bc

Browse files
authored
Fix issues regarding damage, accuracy toggles in the item sheets (#514)
* Improve the UX on various item fields * Highlight toggleable sections
1 parent 885554c commit 1f294bc

File tree

13 files changed

+196
-154
lines changed

13 files changed

+196
-154
lines changed

lang/en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
"Secondary": "Secondary",
9595
"IsInitiative": "Roll Initiative",
9696
"IsRoll": "Request Rolls?",
97+
"PerformCheck": "Perform Check",
9798
"RollCheck": "Roll Check",
9899
"RollCheckOptions": "Customize Roll",
99100
"RollCheckTooltip": "[Shift + Click] for Open Check",

module/documents/effects/active-effect-config.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ export class FUActiveEffectConfig extends foundry.applications.sheets.ActiveEffe
9292
await super._onRender(context, options);
9393
const html = this.element;
9494

95+
// DETAILS TAB
96+
const details = html.querySelector('section[data-tab="details"]');
97+
if (details) {
98+
details.append(document.createTextNode('HELLO'));
99+
}
100+
95101
// CHANGES Tab
96102
if (!html.querySelector('#effect-key-options')) {
97103
const options = getAttributeKeys();

module/helpers/templates.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export const preloadHandlebarsTemplates = async function () {
5757

5858
// Common partials
5959
'systems/projectfu/templates/common/active-effects.hbs',
60+
'systems/projectfu/templates/common/fieldset-toggle.hbs',
6061

6162
// Effects
6263
'systems/projectfu/templates/effects/active-effect-details.hbs',

module/sheets/actor-sheet-utils.mjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1256,7 +1256,6 @@ function prepareSorting(context) {
12561256

12571257
function onRenderFUActorSheet(sheet, element) {
12581258
// Automatically expand elements that are in the _expanded state
1259-
console.log(sheet._expanded);
12601259
if (sheet._expanded) {
12611260
sheet._expanded.forEach((itemId) => {
12621261
const expandedDescriptions = element.querySelectorAll(`li[data-item-id=${itemId}] .individual-description`);

styles/css/actor/actor-v1/actor.css

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,6 +1081,23 @@
10811081
border: 0.01em solid #148782;
10821082
}
10831083

1084+
/* Legend when fieldset or legend has .disabled */
1085+
.projectfu .title-fieldset legend.untoggled {
1086+
background-color: var(--color-button-disabled-bg);
1087+
border-color: var(--color-text-disabled);
1088+
}
1089+
1090+
.projectfu .title-fieldset legend.toggled {
1091+
background: #3a6b5d;
1092+
color: #ffffff;
1093+
transition: background 0.2s;
1094+
}
1095+
1096+
.projectfu .title-fieldset div.untoggled {
1097+
opacity: 0.5;
1098+
pointer-events: none;
1099+
}
1100+
10841101
.projectfu .resource-content {
10851102
color: #2b4a42;
10861103
background-color: transparent;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<fieldset class="title-fieldset desc resource-content {{class}}">
2+
<legend class="{{#if value}}toggled{{else}}untoggled{{/if}}">
3+
<input type="checkbox"
4+
id="{{name}}"
5+
name="{{name}}"
6+
hidden
7+
{{#if value}}checked{{/if}}>
8+
<label class="resource-label-m" style="cursor:pointer;" for="{{name}}">
9+
{{#if icon}}<i class="{{icon}}"></i>{{/if}}
10+
{{label}}
11+
</label>
12+
</legend>
13+
<div class="{{#unless value}}untoggled disabled{{/unless}}">
14+
{{> @partial-block}}
15+
</div>
16+
</fieldset>
Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,39 @@
1-
<fieldset class="title-fieldset desc resource-content">
2-
<legend class="resource-label-full">
3-
<label class="resource-label-m"><i class="fas fa-dice icon"></i>{{localize
4-
'FU.Accuracy'}}</label>
5-
</legend>
1+
{{#if system.hasRoll.value }}
2+
<fieldset class="title-fieldset desc resource-content">
3+
<legend class="resource-label-full">
4+
<label class="resource-label-m"><i class="fas fa-dice icon"></i>{{localize
5+
'FU.Accuracy'}}</label>
6+
</legend>
67

7-
<div class="grid grid-3col">
8-
<div class="resource-content flexcol flex-group-center">
9-
<label for="system.rollInfo.attributes.primary.value" class="resource-label-m">{{localize
10-
'FU.Primary'}}
11-
</label>
12-
<select name="system.rollInfo.attributes.primary.value"
13-
class="resource-inputs select-dropdown" {{disabled (not system.hasRoll.value)}}>
14-
{{selectOptions attrAbbr selected=system.rollInfo.attributes.primary.value sort=true
15-
localize=true}}
16-
</select>
17-
</div>
18-
<div class="resource-content flexcol flex-group-center">
19-
<label for="system.rollInfo.attributes.secondary.value" class="resource-label-m">
20-
{{localize 'FU.Secondary'}} </label>
21-
<select name="system.rollInfo.attributes.secondary.value"
22-
class="resource-inputs select-dropdown"
8+
<div class="grid grid-3col">
9+
<div class="resource-content flexcol flex-group-center">
10+
<label for="system.rollInfo.attributes.primary.value" class="resource-label-m">{{localize
11+
'FU.Primary'}}
12+
</label>
13+
<select name="system.rollInfo.attributes.primary.value"
14+
class="resource-inputs select-dropdown" {{disabled (not system.hasRoll.value)}}>
15+
{{selectOptions attrAbbr selected=system.rollInfo.attributes.primary.value sort=true
16+
localize=true}}
17+
</select>
18+
</div>
19+
<div class="resource-content flexcol flex-group-center">
20+
<label for="system.rollInfo.attributes.secondary.value" class="resource-label-m">
21+
{{localize 'FU.Secondary'}} </label>
22+
<select name="system.rollInfo.attributes.secondary.value"
23+
class="resource-inputs select-dropdown"
2324
{{disabled (not system.hasRoll.value)}}>
24-
{{selectOptions attrAbbr selected=system.rollInfo.attributes.secondary.value sort=true
25-
localize=true}}
26-
</select>
27-
</div>
28-
<div class="resource-content flexcol flex-group-center">
29-
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
30-
<input type="number" name="system.rollInfo.accuracy.value"
31-
value="{{ system.rollInfo.accuracy.value }}"
32-
class="resource-inputs"
25+
{{selectOptions attrAbbr selected=system.rollInfo.attributes.secondary.value sort=true
26+
localize=true}}
27+
</select>
28+
</div>
29+
<div class="resource-content flexcol flex-group-center">
30+
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
31+
<input type="number" name="system.rollInfo.accuracy.value"
32+
value="{{ system.rollInfo.accuracy.value }}"
33+
class="resource-inputs"
3334
{{disabled (not system.hasRoll.value)}}
34-
data-dtype="Number" />
35+
data-dtype="Number" />
36+
</div>
3537
</div>
36-
</div>
37-
</fieldset>
38+
</fieldset>
39+
{{/if}}
Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,54 @@
1-
<fieldset class="title-fieldset desc resource-content">
2-
<legend>
3-
<label class="resource-label-m">
4-
<i class="fas fa-dice icon"></i>
5-
{{localize 'FU.Accuracy'}}
6-
</label>
7-
</legend>
8-
<div class="item-settings grid grid2-col">
9-
<label class="checkbox resource-label-sm">
10-
<span>{{localize 'FU.UseWeaponAccuracy'}}</span>
11-
<input type="checkbox" name="system.useWeapon.accuracy" {{ checked system.useWeapon.accuracy }} {{disabled (not system.hasRoll.value)}} />
12-
</label>
13-
</div>
1+
{{#if system.hasRoll.value}}
2+
<fieldset class="title-fieldset desc resource-content">
3+
<legend>
4+
<label class="resource-label-m">
5+
<i class="fas fa-dice icon"></i>
6+
{{localize 'FU.Accuracy'}}
7+
</label>
8+
</legend>
149

15-
<div class="grid grid-3col">
16-
<div class=" flexcol flex-group-center">
17-
<label for="system.attributes.primary" class="resource-label-m">{{localize 'FU.Primary'}}</label>
18-
<select name="system.attributes.primary" class="resource-inputs select-dropdown" {{disabled (or (not system.hasRoll.value) system.useWeapon.accuracy) }}>
19-
{{#if system.useWeapon.accuracy}}
20-
{{selectOptions attrAbbr selected='' blank='-' sort=true localize=true}}
21-
{{else}}
22-
{{selectOptions attrAbbr selected=system.attributes.primary sort=true localize=true}}
23-
{{/if}}
24-
</select>
25-
</div>
26-
<div class=" flexcol flex-group-center">
27-
<label for="system.attributes.secondary" class="resource-label-m">{{localize 'FU.Secondary'}}</label>
28-
<select name="system.attributes.secondary" class="resource-inputs select-dropdown" {{disabled
29-
(or (not system.hasRoll.value) system.useWeapon.accuracy) }}>
30-
{{#if system.useWeapon.accuracy}}
31-
{{selectOptions attrAbbr selected='' blank='-' sort=true localize=true}}
32-
{{else}}
33-
{{selectOptions attrAbbr selected=system.attributes.secondary sort=true localize=true}}
34-
{{/if}}
35-
</select>
36-
</div>
37-
<div class=" flexcol flex-group-center">
38-
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
39-
<input type="number" name="system.accuracy" value="{{ system.accuracy }}" class="resource-inputs" {{disabled
40-
(not system.hasRoll.value)}}/>
41-
</div>
42-
<div class="resource-content flexcol flex-group-center">
43-
<label for="system.defense" class="resource-label-m flexlarge align-left">{{localize 'FU.Defense'}}</label>
44-
<select name="system.defense" class="resource-inputs select-dropdown-m" {{disabled
45-
(not system.useWeapon.accuracy)}}>
46-
{{selectOptions defenses selected=system.defense sort=true localize=true labelAttr="abbr" blank="-"}}
47-
</select>
10+
11+
<div class="grid grid-3col">
12+
<div class=" flexcol flex-group-center">
13+
<label for="system.attributes.primary" class="resource-label-m">{{localize 'FU.Primary'}}</label>
14+
<select name="system.attributes.primary" class="resource-inputs select-dropdown" {{disabled (or (not system.hasRoll.value) system.useWeapon.accuracy) }}>
15+
{{#if system.useWeapon.accuracy}}
16+
{{selectOptions attrAbbr selected='' blank='-' sort=true localize=true}}
17+
{{else}}
18+
{{selectOptions attrAbbr selected=system.attributes.primary sort=true localize=true}}
19+
{{/if}}
20+
</select>
21+
</div>
22+
<div class=" flexcol flex-group-center">
23+
<label for="system.attributes.secondary" class="resource-label-m">{{localize 'FU.Secondary'}}</label>
24+
<select name="system.attributes.secondary" class="resource-inputs select-dropdown" {{disabled
25+
(or (not system.hasRoll.value) system.useWeapon.accuracy) }}>
26+
{{#if system.useWeapon.accuracy}}
27+
{{selectOptions attrAbbr selected='' blank='-' sort=true localize=true}}
28+
{{else}}
29+
{{selectOptions attrAbbr selected=system.attributes.secondary sort=true localize=true}}
30+
{{/if}}
31+
</select>
32+
</div>
33+
<div class=" flexcol flex-group-center">
34+
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
35+
<input type="number" name="system.accuracy" value="{{ system.accuracy }}" class="resource-inputs" {{disabled
36+
(not system.hasRoll.value)}}/>
37+
</div>
38+
<div class="resource-content flexcol flex-group-center">
39+
<label for="system.defense" class="resource-label-m flexlarge align-left">{{localize 'FU.Defense'}}</label>
40+
<select name="system.defense" class="resource-inputs select-dropdown-m" {{disabled
41+
(not system.useWeapon.accuracy)}}>
42+
{{selectOptions defenses selected=system.defense sort=true localize=true labelAttr="abbr" blank="-"}}
43+
</select>
44+
</div>
45+
46+
<div class="resource-content flexcol flex-group-center">
47+
<label class="checkbox resource-label-sm">
48+
<span>{{localize 'FU.UseWeaponAccuracy'}}</span>
49+
<input type="checkbox" name="system.useWeapon.accuracy" {{ checked system.useWeapon.accuracy }} {{disabled (not system.hasRoll.value)}} />
50+
</label>
51+
</div>
4852
</div>
49-
</div>
50-
</fieldset>
53+
</fieldset>
54+
{{/if}}
Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,24 @@
1-
<fieldset class="title-fieldset desc resource-content">
2-
<legend class="resource-label-full">
3-
<label class="resource-label-m"><i class="fas fa-dice icon"></i>{{localize
4-
'FU.Damage'}}</label>
5-
</legend>
6-
7-
<div class="item-settings">
8-
<label class="checkbox resource-label-m"> <span>{{localize 'FU.HasDamage'}}</span><input
9-
type="checkbox" name="system.rollInfo.damage.hasDamage.value" {{ checked
10-
system.rollInfo.damage.hasDamage.value }} /> </label>
11-
</div>
12-
1+
{{#> 'systems/projectfu/templates/common/fieldset-toggle.hbs'
2+
name="system.rollInfo.damage.hasDamage.value"
3+
value=system.rollInfo.damage.hasDamage.value
4+
icon="fas fa-dice icon"
5+
label=(localize "FU.Damage")
6+
}}
137
<div class="grid grid-2col">
148
<div class="resource-content flexcol flex-group-center">
15-
<label for="system.rollInfo.damage.type.value" class="resource-label-m flexlarge">{{localize
16-
'FU.DamageType'}} </label>
9+
<label for="system.rollInfo.damage.type.value" class="resource-label-m flexlarge">
10+
{{localize 'FU.DamageType'}}
11+
</label>
1712
<select name="system.rollInfo.damage.type.value" class="resource-inputs select-dropdown-m">
18-
{{selectOptions damageTypes selected=system.rollInfo.damage.type.value sort=true
19-
localize=true}}
13+
{{selectOptions damageTypes selected=system.rollInfo.damage.type.value sort=true localize=true}}
2014
</select>
2115
</div>
2216
<div class="resource-content flexcol flex-group-center">
2317
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
2418
<input type="number" name="system.rollInfo.damage.value"
25-
value="{{ system.rollInfo.damage.value }}" class="resource-inputs"
19+
value="{{ system.rollInfo.damage.value }}"
20+
class="resource-inputs"
2621
data-dtype="Number" />
2722
</div>
2823
</div>
29-
</fieldset>
24+
{{/ 'systems/projectfu/templates/common/fieldset-toggle.hbs'}}
Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,38 @@
1-
<fieldset class="title-fieldset desc resource-content">
2-
<legend>
3-
<label class="resource-label-m"><i class="fas fa-dice icon"></i>{{localize 'FU.Damage'}}</label>
4-
</legend>
5-
<div class="item-settings grid grid2-col">
6-
<label class="checkbox resource-label-sm">
7-
<span>{{localize 'FU.HasDamage'}}</span>
8-
<input type="checkbox" name="system.damage.hasDamage" {{ checked system.damage.hasDamage }} {{disabled (not system.useWeapon.accuracy)}} />
9-
</label>
10-
<label class="checkbox resource-label-sm">
11-
<span>{{localize 'FU.UseWeaponDamage'}}</span>
12-
<input type="checkbox" name="system.useWeapon.damage" {{ checked system.useWeapon.damage }} {{disabled (not system.damage.hasDamage)}} />
13-
</label>
14-
</div>
15-
<div class="grid grid-2col">
16-
<div class=" flexcol flex-group-center">
17-
<label class="resource-label-m flexlarge">{{localize 'FU.DamageType'}}</label>
18-
<select name="system.damage.type" class="resource-inputs select-dropdown-m" {{disabled (not system.damage.hasDamage)}}>
19-
{{#if system.useWeapon.damage}}
20-
{{selectOptions damageTypes selected=system.damage.type blank='-' sort=true localize=true}}
21-
{{else}}
22-
{{selectOptions damageTypes selected=system.damage.type sort=true localize=true}}
23-
{{/if}}
24-
</select>
25-
</div>
26-
<div class=" flexcol flex-group-center">
27-
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
28-
<input type="number" name="system.damage.value" value="{{ system.damage.value }}" class="resource-inputs" {{disabled (not system.damage.hasDamage)}} />
29-
</div>
30-
<div class="resource-content flexcol flex-group-center">
31-
<label class="resource-label-m">{{localize 'FU.DamageOnRoll'}}</label>
32-
<input type="text" name="system.damage.onRoll" value="{{ system.damage.onRoll }}" class="resource-inputs select-dropdown-l" />
33-
</div>
34-
<div class="resource-content flexcol flex-group-center">
35-
<label class="resource-label-m">{{localize 'FU.DamageOnApply'}}</label>
36-
<input type="text" name="system.damage.onApply" value="{{ system.damage.onApply }}" class="resource-inputs select-dropdown-l" />
37-
</div>
38-
</div>
39-
</fieldset>
1+
{{#> 'systems/projectfu/templates/common/fieldset-toggle.hbs'
2+
name="system.damage.hasDamage"
3+
value=system.damage.hasDamage
4+
icon="fas fa-dice icon"
5+
label=(localize "FU.Damage")
6+
}}
7+
<div class="item-settings grid grid2-col">
8+
<label class="checkbox resource-label-sm">
9+
<span>{{localize 'FU.UseWeaponDamage'}}</span>
10+
<input type="checkbox" name="system.useWeapon.damage" {{ checked system.useWeapon.damage }} {{disabled (not system.damage.hasDamage)}} />
11+
</label>
12+
</div>
13+
<div class="grid grid-2col">
14+
<div class=" flexcol flex-group-center">
15+
<label class="resource-label-m flexlarge">{{localize 'FU.DamageType'}}</label>
16+
<select name="system.damage.type" class="resource-inputs select-dropdown-m" {{disabled (not system.damage.hasDamage)}}>
17+
{{#if system.useWeapon.damage}}
18+
{{selectOptions damageTypes selected=system.damage.type blank='-' sort=true localize=true}}
19+
{{else}}
20+
{{selectOptions damageTypes selected=system.damage.type sort=true localize=true}}
21+
{{/if}}
22+
</select>
23+
</div>
24+
<div class=" flexcol flex-group-center">
25+
<label class="resource-label-m">{{localize 'FU.Bonus'}}</label>
26+
<input type="number" name="system.damage.value" value="{{ system.damage.value }}" class="resource-inputs" {{disabled (not system.damage.hasDamage)}} />
27+
</div>
28+
<div class="resource-content flexcol flex-group-center">
29+
<label class="resource-label-m">{{localize 'FU.DamageOnRoll'}}</label>
30+
<input type="text" name="system.damage.onRoll" value="{{ system.damage.onRoll }}" class="resource-inputs select-dropdown-l" />
31+
</div>
32+
<div class="resource-content flexcol flex-group-center">
33+
<label class="resource-label-m">{{localize 'FU.DamageOnApply'}}</label>
34+
<input type="text" name="system.damage.onApply" value="{{ system.damage.onApply }}" class="resource-inputs select-dropdown-l" />
35+
</div>
36+
</div>
37+
38+
{{/ 'systems/projectfu/templates/common/fieldset-toggle.hbs'}}

0 commit comments

Comments
 (0)