Skip to content

Commit

Permalink
Merge pull request #814 from frank-weinberg/bugfix/fourth-blocker
Browse files Browse the repository at this point in the history
Properly handle switching to/from noPivot in too many blockers popup
  • Loading branch information
frank-weinberg authored Dec 13, 2024
2 parents 0b9a796 + 5050d93 commit 2041a2b
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 12 deletions.
18 changes: 13 additions & 5 deletions html/components/plt-input/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<td class="Role Jammer sbShowOnLt" rowspan="2" sbClass="OnTrack: Role: ==='Jammer'" sbSet="Role: 'Jammer'">
<span class="Num" sbDisplay="RosterNumber"></span><span class="Pos">J</span>
</td>
<td class="Role Pivot sbShowOnLt" rowspan="2" sbClass="OnTrack: Role: ==='Pivot'" sbSet="Role: 'Pivot'">
<td class="Role Pivot sbShowOnLt" rowspan="2" sbClass="OnTrack: Role: ==='Pivot'" sbCall="pltSetPivot">
<span class="Num" sbDisplay="RosterNumber"></span><span class="Pos">P</span>
</td>
<td class="Role Blocker sbShowOnLt" rowspan="2" sbClass="OnTrack: Role: ==='Blocker'" sbCall="pltSetBlocker">
Expand Down Expand Up @@ -114,31 +114,39 @@
sbClass="sbHide: ^NoPivot: ! | sbInBox: ^PenaltyBox | sbUnserved: ^HasUnserved"
sbDisplay="RosterNumber: 'Replace ' + v"
sbSet="Skater: '[Skater]'"
sbCall="sbCloseDialog"
sbCall="pltFinishReplace"
></button>
<button
class="Replace"
sbContext="^Position(Pivot)"
sbClass="sbHide: ^NoPivot | sbInBox: ^PenaltyBox | sbUnserved: ^HasUnserved"
sbDisplay="RosterNumber: 'Replace ' + v + ' (Pivot)'"
sbSet="Skater: '[Skater]' | ^NoPivot"
sbCall="pltFinishReplace"
></button>
<button
class="Replace"
sbContext="^Position(Blocker1)"
sbClass="sbInBox: ^PenaltyBox | sbUnserved: ^HasUnserved"
sbDisplay="RosterNumber: 'Replace ' + v"
sbSet="Skater: '[Skater]'"
sbCall="sbCloseDialog"
sbCall="pltFinishReplace"
></button>
<button
class="Replace"
sbContext="^Position(Blocker2)"
sbClass="sbInBox: ^PenaltyBox | sbUnserved: ^HasUnserved"
sbDisplay="RosterNumber: 'Replace ' + v"
sbSet="Skater: '[Skater]'"
sbCall="sbCloseDialog"
sbCall="pltFinishReplace"
></button>
<button
class="Replace"
sbContext="^Position(Blocker3)"
sbClass="sbInBox: ^PenaltyBox | sbUnserved: ^HasUnserved"
sbDisplay="RosterNumber: 'Replace ' + v"
sbSet="Skater: '[Skater]'"
sbCall="sbCloseDialog"
sbCall="pltFinishReplace"
></button>
<button sbCall="sbCloseDialog">Do not add <span sbDisplay="RosterNumber"></span></button>
</div>
Expand Down
31 changes: 24 additions & 7 deletions html/components/plt-input/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,21 @@
})();

function pltSetBlocker(k) {
if (isTrue(WS.state[k.upTo('Team') + '.AllBlockersSet'])) {
_pltOpenReplaceDialog(k);
if (isTrue(WS.state[k.upTo('Team') + '.AllBlockersSet']) && WS.state[k + '.Role'] !== 'Pivot' && WS.state[k + '.Role'] !== 'Blocker') {
_pltOpenReplaceDialog(k, 'Blocker');
} else {
WS.Set(k + '.Role', 'Blocker');
}
}

function pltSetPivot(k) {
if (isTrue(WS.state[k.upTo('Team') + '.AllBlockersSet']) && isTrue(WS.state[k.upTo('Team') + '.NoPivot']) && WS.state[k + '.Role'] !== 'Blocker') {
_pltOpenReplaceDialog(k, 'Pivot');
} else {
WS.Set(k + '.Role', 'Pivot');
}
}

function pltAdvanceOrAnnotation(k, v, elem) {
if (elem.hasClass('Advance')) {
WS.Set(k.upTo('Team') + '.AdvanceFieldings', true);
Expand Down Expand Up @@ -98,10 +106,19 @@ function _pltUpdateCurrentJamStyle() {
//
//###################################################################

function _pltOpenReplaceDialog(k) {
let pltReplacePath = '';
let pltReplaceTarget = '';

function _pltOpenReplaceDialog(k, pos) {
pltReplacePath = k + '.Role'; pltReplaceTarget = pos;
WS.SetupDialog($('#BlockerReplaceDialog'), k, { modal: true, title: 'Replace Blocker', width: '400px' });
}

function pltFinishReplace(k, v, elem, event) {
sbCloseDialog(k, v, elem, event);
WS.Set(pltReplacePath, pltReplaceTarget);
}

//###################################################################
//
// Penalty Editor
Expand Down Expand Up @@ -138,9 +155,9 @@ function pltCurrentIfInvalid(k, v, elem) {
return elem.children('[value="' + v + '"]').length
? v
: WS.state[k.upTo('Period') + '.CurrentJam'] ||
WS.state[
'ScoreBoard.Game(' + k.Game + ').Period(' + WS.state['ScoreBoard.Game(' + k.Game + ').CurrentPeriodNumber'] + ').CurrentJam'
];
WS.state[
'ScoreBoard.Game(' + k.Game + ').Period(' + WS.state['ScoreBoard.Game(' + k.Game + ').CurrentPeriodNumber'] + ').CurrentJam'
];
}

function pltIsThisPeriod(k, v, elem) {
Expand Down Expand Up @@ -200,7 +217,7 @@ function _pltOpenAnnotationEditor(gameId, teamId, skaterId) {
WS.state['ScoreBoard.Game(' + gameId + ').CurrentPeriodNumber'] +
').Jam(' +
WS.state[
'ScoreBoard.Game(' + gameId + ').Period(' + WS.state['ScoreBoard.Game(' + gameId + ').CurrentPeriodNumber'] + ').CurrentJamNumber'
'ScoreBoard.Game(' + gameId + ').Period(' + WS.state['ScoreBoard.Game(' + gameId + ').CurrentPeriodNumber'] + ').CurrentJamNumber'
] +
fieldingPrefix;
} else {
Expand Down

0 comments on commit 2041a2b

Please sign in to comment.