Compare commits

...

3 Commits

Author SHA1 Message Date
7e803cc8e3 fix for if availabilities aren't available 2024-05-20 09:07:54 -05:00
339d4c7923 Merge branch 'duplicate-checking' 2024-05-20 09:07:30 -05:00
58825b5bcd reloads the page on lineup save
realized that the duplicates come from saving the lineup more than once. this occurs when initially no one has an eventlineupentry, it gets one on save, but the front end is not updated on save, so it keeps creating entrires on save. simple fix is to refresh the page on save. "better" solution would be to have the front end update on save, but that's longer to implement. i started this by having `postEventLineup` return the newly fetched lineupentries.
2024-05-20 09:06:53 -05:00
3 changed files with 15 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
const path = require('path') const path = require('path')
const fs = require('fs') const fs = require('fs')
const {embeddedSvgFromPath, parsePositionLabel, compilePositionLabel} = require("../lib/utils") const {groupTeamsnapItems, parsePositionLabel, compilePositionLabel, teamsnapCallback} = require("../lib/utils")
const tsUtils = require('../lib/utils') const tsUtils = require('../lib/utils')
const { loadEventLineupEntries } = require('teamsnap.js') const { loadEventLineupEntries } = require('teamsnap.js')
@@ -105,14 +105,20 @@ exports.postEventLineup = async (req,res) => {
const eventLineupEntries = req.event_lineup.eventLineupEntries const eventLineupEntries = req.event_lineup.eventLineupEntries
const {newEventLineupEntries, deleteEventLineupEntries} = processPostedEventLineupEntries(body, eventLineupEntries, req.event_lineup) const {newEventLineupEntries, deleteEventLineupEntries} = processPostedEventLineupEntries(body, eventLineupEntries, req.event_lineup)
newEventLineupEntries.forEach(e=>{ newEventLineupEntries.forEach(e=>{
teamsnap.saveEventLineupEntry(e) teamsnap.saveEventLineupEntry(e, teamsnapCallback)
}) })
deleteEventLineupEntries.forEach(e=>{ deleteEventLineupEntries.forEach(e=>{
teamsnap.deleteEventLineupEntry(e) teamsnap.deleteEventLineupEntry(e, teamsnapCallback)
}) })
eventLineup = await teamsnap.loadEventLineups(req.params.event_id) const bulk_items = await teamsnap.bulkLoad(
res.status(201).end() {teamId: req.params.team_id, types: ['eventLineup', 'eventLineupEntry'], scopeTo:'event', event__id:req.params.event_id,},
null,
(err, items) => {teamsnapCallback(err, items, {req, source:"postEventLineup", method:'bulkLoad'})}
)
groupedReturnedItems = groupTeamsnapItems(bulk_items)
returnedEventLineupEntries = groupedReturnedItems.eventLineupEntries
res.status(201).end(JSON.stringify(returnedEventLineupEntries))
} }
const processPostedEventLineupEntries = (body, eventLineupEntries, eventLineup) => { const processPostedEventLineupEntries = (body, eventLineupEntries, eventLineup) => {

View File

@@ -108,7 +108,7 @@ exports.loadSlots = (options) =>{
players_without_lineup_entry.forEach(member =>{ players_without_lineup_entry.forEach(member =>{
const availability = availabilities.find(a=>a.memberId==member.id) const availability = availabilities.find(a=>a.memberId==member.id)
let initial_slotset let initial_slotset
if (availability.statusCode == 0 || availability.statusCode == null) { if (availability?.statusCode == 0 || availability?.statusCode == null) {
initial_slotset =`lineup-out-${event.id}` initial_slotset =`lineup-out-${event.id}`
} else { } else {
initial_slotset =`lineup-bench-${event.id}` initial_slotset =`lineup-bench-${event.id}`

View File

@@ -324,6 +324,7 @@ async function onSubmit(form, event) {
event.submitter.blur() event.submitter.blur()
waiting_icon.classList.add("u-hidden"); waiting_icon.classList.add("u-hidden");
success_icon.classList.remove("u-hidden"); success_icon.classList.remove("u-hidden");
console.log(text);
// success_icon.querySelector("span.message").innerHTML = text; // success_icon.querySelector("span.message").innerHTML = text;
}) })
.catch((error) => { .catch((error) => {
@@ -332,7 +333,8 @@ async function onSubmit(form, event) {
failure_icon.classList.remove("u-hidden"); failure_icon.classList.remove("u-hidden");
console.log(error); console.log(error);
// success_icon.querySelector("span.message").innerHTML = error; // success_icon.querySelector("span.message").innerHTML = error;
}); })
.finally(()=>{location.reload()});//refresh page
setTimeout(() => { setTimeout(() => {
[waiting_icon, success_icon, failure_icon].forEach(e=>e.classList.add('u-hidden')) [waiting_icon, success_icon, failure_icon].forEach(e=>e.classList.add('u-hidden'))
teamsnap_icon.classList.remove('u-hidden') teamsnap_icon.classList.remove('u-hidden')