support for flags in eventLineup edit

This commit is contained in:
2024-03-05 09:15:18 -06:00
parent 2f2f33ce74
commit 35d6eba599
5 changed files with 49 additions and 16 deletions

View File

@@ -1,6 +1,6 @@
const path = require('path')
const fs = require('fs')
const {embeddedSvgFromPath, parsePositionLabel} = require("../lib/utils")
const {embeddedSvgFromPath, parsePositionLabel, compilePositionLabel} = require("../lib/utils")
const tsUtils = require('../lib/utils')
const { loadEventLineupEntries } = require('teamsnap.js')
@@ -15,6 +15,7 @@ const statusCodeIcons = {
}
exports.helpers = {
flagsString: (flags) => flags?.join(","),
plus1: (i) => Number(i)+1,
positions: () => ["P", "C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "EH", "DH"],
defense_positions: () => ["C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "P"],
@@ -49,7 +50,7 @@ exports.helpers = {
return (member.benchcoach?.eventLineupEntry != null);
},
isInStartingLineup: (member) => {
if (member.benchcoach.eventLineupEntry == null) return false;
if (member.benchcoach.eventLineupEntry == null || member.benchcoach.eventLineupEntry.label == '') return false;
const {positionFlags} = parsePositionLabel(member.benchcoach.eventLineupEntry?.label);
return (positionFlags != "PO")
},
@@ -59,11 +60,11 @@ exports.helpers = {
return (member.benchcoach.eventLineupEntry != null && positionFlags == "PO")
},
isInBench: (member) => {
if (member.benchcoach.eventLineupEntry != null || member.isNonPlayer) return false;
if ((member.benchcoach.eventLineupEntry != null && member.benchcoach.eventLineupEntry.label != '') || member.isNonPlayer) return false;
return (member.benchcoach.availability?.statusCode != 0 && member.benchcoach.availability?.statusCode != null)
},
isInOut: (member) => {
if (member.benchcoach.eventLineupEntry != null || member.isNonPlayer) return false;
if ((member.benchcoach.eventLineupEntry != null && member.benchcoach.eventLineupEntry.label != '') || member.isNonPlayer) return false;
return (member.benchcoach.availability?.statusCode == 0 || member.benchcoach.availability?.statusCode == null)
},
availabilityStatusShort: (availability) => {
@@ -103,8 +104,9 @@ attachBenchcoachPropertiesToMember = (members, event_lineup_entries, availabilit
if (event_lineup_entry != null) {
// member.link('eventLineupEntry', event_lineup_entry)
member.benchcoach.eventLineupEntry = event_lineup_entry
const {positionLabelWithoutFlag} = parsePositionLabel(event_lineup_entry.label);
const {positionLabelWithoutFlag, positionFlags} = parsePositionLabel(event_lineup_entry.label);
member.benchcoach.eventLineupEntry.positionLabelWithoutFlag = positionLabelWithoutFlag
member.benchcoach.eventLineupEntry.flags = positionFlags
}
else {
member.benchcoach.eventLineupEntry = null
@@ -157,11 +159,12 @@ const processPostedEventLineupEntries = (body, eventLineupEntries, eventLineup)
const lineupEntryId = body.eventLineupEntryId[i]
const lineupEntryLabel = body.label[i]
const lineupEntrySequence = body.sequence[i]
const lineupEntryFlags = body.flags[i]
if (lineupEntryId != '') {
// Update lineup entry
const eventLineupEntry = eventLineupEntries.find((e)=>e.id==Number(lineupEntryId))
eventLineupEntry.sequence = lineupEntrySequence
eventLineupEntry.label = lineupEntryLabel
eventLineupEntry.label = compilePositionLabel(lineupEntryLabel, lineupEntryFlags)
newEventLineupEntries.push(eventLineupEntry)
}
else if (lineupEntryLabel != '') {
@@ -170,7 +173,7 @@ const processPostedEventLineupEntries = (body, eventLineupEntries, eventLineup)
eventLineupEntry.eventLineupId = eventLineup.id
eventLineupEntry.memberId = memberId
eventLineupEntry.sequence = lineupEntrySequence
eventLineupEntry.label = lineupEntryLabel
eventLineupEntry.label = compilePositionLabel(lineupEntryLabel, lineupEntryFlags)
newEventLineupEntries.push(eventLineupEntry)
}
else {