diff --git a/src/controllers/eventlineup.js b/src/controllers/eventlineup.js index ca30ef0..b87a411 100644 --- a/src/controllers/eventlineup.js +++ b/src/controllers/eventlineup.js @@ -5,100 +5,7 @@ const tsUtils = require('../lib/utils') const { loadEventLineupEntries } = require('teamsnap.js') exports.partials = path.join(__dirname, "../views/eventlineup/partials") - -const statusCodeIcons = { - 1: embeddedSvgFromPath("/teamsnap-ui/assets/icons/check.svg"), - 0: embeddedSvgFromPath("/teamsnap-ui/assets/icons/dismiss.svg"), - 2: embeddedSvgFromPath("/bootstrap-icons/question-lg.svg"), - null: embeddedSvgFromPath("/bootstrap-icons/question.svg"), - undefined: embeddedSvgFromPath("/bootstrap-icons/question-lg.svg") -} - -const statusCodeClasses = { - 1: "u-colorPositive", - 0: "u-colorNegative", - 2: "u-colorPrimary", - null: "u-colorGrey", - undefined: "u-colorGrey" -} - -const statusCodeButtonClasses = { - 1: "Button--yes", - 0: "Button--no", - 2: "Button--maybe", - null: "", - undefined: "" -} - -exports.helpers = { - flagsString: (flags) => { - return flags != null ? Array.from(flags).join(",") : '' - }, - plus1: (i) => Number(i)+1, - positions: () => ["P", "C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "EH", "DH", "DR"], - defense_positions: () => ["C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "P"], - avail_status_code_class: (status_code) => statusCodeButtonClasses[status_code], - avail_status_code_icon: (status_code) => statusCodeIcons[status_code], - positionLabelWithoutFlags: (label) => { - const {positionLabelWithoutFlags} = parsePositionLabel(label); - return positionLabelWithoutFlags - }, - positionLabelWithoutPOFlag: (label) => { - const {positionLabelWithoutFlags, positionFlags} = parsePositionLabel(label); - positionFlags.delete('PO') - return compilePositionLabel(positionLabelWithoutFlags, positionFlags) - }, - positionFlags: (label)=> { - const {positionFlags} = parsePositionLabel(label); - return `[${Array.from(positionFlags).join(",")}]` - }, - hasPositionFlags: (label) => { - const {positionLabelWithoutFlags, positionFlags} = parsePositionLabel(label); - return positionFlags.size > 0; - }, - comparePositionWithFlags: (labelWithoutFlags, eventLineupEntry, options) => { - labelWithFlags = eventLineupEntry?.label - const {positionLabelWithoutFlags} = parsePositionLabel(labelWithFlags); - return positionLabelWithoutFlags == labelWithoutFlags; - }, - isStarting: (member) => { - return (member.benchcoach?.eventLineupEntry != null); - }, - isInStartingLineup: (member) => { - if (member.benchcoach.eventLineupEntry == null || member.benchcoach.eventLineupEntry.label == '') return false; - const {positionFlags} = parsePositionLabel(member.benchcoach.eventLineupEntry?.label); - return (!positionFlags.has("PO")) - }, - isInPositionOnly: (member) => { - if (!member.benchcoach || member.benchcoach.eventLineupEntry == null) return false; - const {positionFlags} = parsePositionLabel(member.benchcoach.eventLineupEntry?.label); - return (member.benchcoach.eventLineupEntry != null && positionFlags.has("PO")) - }, - isInBench: (member) => { - 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.benchcoach.eventLineupEntry.label != '') || member.isNonPlayer) return false; - return (member.benchcoach.availability?.statusCode == 0 || member.benchcoach.availability?.statusCode == null) - }, - availabilityStatusShort: (availability) => { - const {YES, MAYBE, NO, NONE} = teamsnap.AVAILABILITIES - const statusShortLookup = {} - statusShortLookup[YES] = "YES" - statusShortLookup[MAYBE] = "MAY" - statusShortLookup[NO] = "NO" - statusShortLookup[NONE] = "UNK" - statusShortLookup[undefined] = "UNK" - return (statusShortLookup[availability?.statusCode]) - }, - filterNonPlayers: (members) => { - return members.filter(m=>!m.isNonPlayer) - }, - joinMemberEmailAddresses: (members) => { - return members.map(m=>m.emailAddresses.join(',')).join(',') - } -} +exports.helpers = require('../helpers/eventlineup.js') exports.getEventLineup = async (req, res)=>{ await Promise.all(req.promises) @@ -110,7 +17,7 @@ exports.getEventLineup = async (req, res)=>{ "/js/eventlineup.js", "/js/tinymce.min.js" ] - res.render("eventlineup/edit", {user, team, members, event, scripts, layout, event_lineup, event_lineup_entries, availabilitySummary, csrfToken}) + res.render("eventlineup/edit", {user, team, members, event, availabilities, scripts, layout, event_lineup, event_lineup_entries, availabilitySummary, csrfToken}) } exports.getAdjacentEventLineup = async (req, res) => { diff --git a/src/helpers/eventlineup.js b/src/helpers/eventlineup.js new file mode 100644 index 0000000..aabb973 --- /dev/null +++ b/src/helpers/eventlineup.js @@ -0,0 +1,119 @@ +const {embeddedSvgFromPath, parsePositionLabel, compilePositionLabel} = require("../lib/utils") +var hb = require('hbs').create(); + +const statusCodeIcons = { + 1: embeddedSvgFromPath("/teamsnap-ui/assets/icons/check.svg"), + 0: embeddedSvgFromPath("/teamsnap-ui/assets/icons/dismiss.svg"), + 2: embeddedSvgFromPath("/bootstrap-icons/question-lg.svg"), + null: embeddedSvgFromPath("/bootstrap-icons/question.svg"), + undefined: embeddedSvgFromPath("/bootstrap-icons/question-lg.svg") +} + +const statusCodeClasses = { + 1: "u-colorPositive", + 0: "u-colorNegative", + 2: "u-colorPrimary", + null: "u-colorGrey", + undefined: "u-colorGrey" +} + +const statusCodeButtonClasses = { + 1: "Button--yes", + 0: "Button--no", + 2: "Button--maybe", + null: "", + undefined: "" +} +exports.flagsString = (flags) => { + return flags != null ? Array.from(flags).join(",") : '' +}; +exports.plus1 = (i) => Number(i)+1; +exports.positions = () => ["P", "C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "EH", "DH", "DR"]; +exports.defense_positions = () => ["C", "1B", "2B", "3B", "SS", "LF", "CF", "RF", "P"]; +exports.avail_status_code_class = (status_code) => statusCodeButtonClasses[status_code]; +exports.avail_status_code_icon = (status_code) => statusCodeIcons[status_code]; +exports.positionLabelWithoutFlags = (label) => { + const {positionLabelWithoutFlags} = parsePositionLabel(label); + return positionLabelWithoutFlags +}; +exports.positionLabelWithoutPOFlag = (label) => { + const {positionLabelWithoutFlags, positionFlags} = parsePositionLabel(label); + positionFlags.delete('PO') + return compilePositionLabel(positionLabelWithoutFlags, positionFlags) +}; +exports.positionFlags = (label)=> { + const {positionFlags} = parsePositionLabel(label); + return `[${Array.from(positionFlags).join(",")}]` +}; +exports.hasPositionFlags = (label) => { + const {positionLabelWithoutFlags, positionFlags} = parsePositionLabel(label); + return positionFlags.size > 0; +}; +exports.comparePositionWithFlags = (labelWithoutFlags, eventLineupEntry, options) => { + labelWithFlags = eventLineupEntry?.label + const {positionLabelWithoutFlags} = parsePositionLabel(labelWithFlags); + return positionLabelWithoutFlags == labelWithoutFlags; +}; +exports.isStarting = (member) => { + return (member.benchcoach?.eventLineupEntry != null); +}; +exports.isInStartingLineup = (member) => { + if (member.benchcoach.eventLineupEntry == null || member.benchcoach.eventLineupEntry.label == '') return false; + const {positionFlags} = parsePositionLabel(member.benchcoach.eventLineupEntry?.label); + return (!positionFlags.has("PO")) +}; +exports.isInPositionOnly = (member) => { + if (!member.benchcoach || member.benchcoach.eventLineupEntry == null) return false; + const {positionFlags} = parsePositionLabel(member.benchcoach.eventLineupEntry?.label); + return (member.benchcoach.eventLineupEntry != null && positionFlags.has("PO")) +}; +exports.isInBench = (member) => { + if ((member.benchcoach.eventLineupEntry != null && member.benchcoach.eventLineupEntry.label != '') || member.isNonPlayer) return false; + return (member.benchcoach.availability?.statusCode != 0 && member.benchcoach.availability?.statusCode != null) +}; +exports. isInOut = (member) => { + if ((member.benchcoach.eventLineupEntry != null && member.benchcoach.eventLineupEntry.label != '') || member.isNonPlayer) return false; + return (member.benchcoach.availability?.statusCode == 0 || member.benchcoach.availability?.statusCode == null) +}; +exports.availabilityStatusShort = (availability) => { + const {YES, MAYBE, NO, NONE} = teamsnap.AVAILABILITIES + const statusShortLookup = {} + statusShortLookup[YES] = "YES" + statusShortLookup[MAYBE] = "MAY" + statusShortLookup[NO] = "NO" + statusShortLookup[NONE] = "UNK" + statusShortLookup[undefined] = "UNK" + return (statusShortLookup[availability?.statusCode]) +}; +exports.filterNonPlayers = (members) => { + return members.filter(m=>!m.isNonPlayer) +}; +exports.joinMemberEmailAddresses = (members) => { + return members.map(m=>m.emailAddresses.join(',')).join(',') +} +exports.loadSlots = (options) =>{ + var s = "" + const {members, event_lineup, event_lineup_entries, event, availabilities} = options.data.root + event_lineup_entries.forEach(eventLineupEntry =>{ + const availability = availabilities.find(a=>a.memberId==eventLineupEntry.memberId) + const member = members.find(m=>m.id==eventLineupEntry.memberId) + const {positionFlags} = parsePositionLabel(eventLineupEntry.label) + const initial_slotset = `lineup-${positionFlags.has('PO') ? 'positiononly' : 'starting'}-${event.id}` + + s+=options.fn({eventLineupEntry, availability, member, event, initial_slotset}) + }) + const players_without_lineup_entry = members.filter( + member=>!event_lineup_entries.map(lue=>lue.memberId).includes(member.id) && !member.isNonPlayer + ) + players_without_lineup_entry.forEach(member =>{ + const availability = availabilities.find(a=>a.memberId==member.id) + let initial_slotset + if (availability.statusCode == 0 || availability.statusCode == null) { + initial_slotset =`lineup-out-${event.id}` + } else { + initial_slotset =`lineup-bench-${event.id}` + } + s+=options.fn({availability, member, event, initial_slotset}) + }) + return s +} \ No newline at end of file diff --git a/src/public/css/eventsheet.css b/src/public/css/eventsheet.css index c1b9436..75dc6c0 100644 --- a/src/public/css/eventsheet.css +++ b/src/public/css/eventsheet.css @@ -264,7 +264,7 @@ section.lineup-card th.sequence.counter::before { } .lineup-card table { - font-size: 22px; + font-size: 21px; } .lineup-card td { @@ -743,6 +743,11 @@ header { } #roster-and-history th.availability-on-day div { transform: rotate(270deg); + margin-bottom: -5; + /* font-stretch: 40%; */ + font-stretch: 75%; + font-weight: 500; + text-align: left; } #roster-and-history thead > tr, #roster-and-history tfoot > tr { border-bottom: solid black 1px; diff --git a/src/public/css/eventsheet.css.map b/src/public/css/eventsheet.css.map index 1f25dcd..0c9e08b 100644 --- a/src/public/css/eventsheet.css.map +++ b/src/public/css/eventsheet.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../scss/eventsheet.scss"],"names":[],"mappings":";AAAQ;AACA;AACA;AACA;AACA;AAER;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;AACA;EACE;IACE;;EAEF;IACE;IACA;;;AAIJ;AACA;EACE;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;AACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;;;AAKN;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;EACA,qBACE;;;AAIJ;AAAA;EAEE;EACA;EACA;EACA,qBACE;;;AAIJ;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAQN;EACE;;;AAGF;AACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;;AAGF;EACE;;;AAGF;EACE;;AACA;EACE;;AAEF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAKA;EACE;EACA;EACA;EACA,qBACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;AACE;EACA;EACA;EACA;AACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;AACA;EACE;;AAQJ;EACE;EACA;EACA;;AAEF;EACE;;;AAON;EACE;;AAGF;EACE;;AAIA;EACE;EACA;;AAMF;EACE;;AAGF;EAOE;EACA;EACA;EACA;;AATA;EACE;;AACA;EACE;;;AAeV;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAMI;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAUZ;EACE;EAEA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EAIE;EACA;EACA;;AALA;EACE;;AAKF;EACI;;;AASV;EACE;AACA;EACA;EAEA;EACA;AACA;;AAEA;EACE;EACA;;AAGF;EACE;;AACA;EACE;;;AAON;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;AACA;AACA;AACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AASA;EACE;;AAEF;AACE;EACA;EACA;AACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAMN;EACE;EACA;EACA;;AAEF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAQJ;EACE;;AAGF;EACE;;AAGF;EACE;;;AAOJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;AACA;AAAA;;;AAIF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACI;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE","file":"eventsheet.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../scss/eventsheet.scss"],"names":[],"mappings":";AAAQ;AACA;AACA;AACA;AACA;AAER;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;AACA;EACE;IACE;;EAEF;IACE;IACA;;;AAIJ;AACA;EACE;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAQR;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;AACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;;;AAKN;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;EACA,qBACE;;;AAIJ;AAAA;EAEE;EACA;EACA;EACA,qBACE;;;AAIJ;AAAA;AAAA;AAAA;EAIE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEA;EACE;;;AAQN;EACE;;;AAGF;AACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;;AAGF;EACE;;;AAGF;EACE;;AACA;EACE;;AAEF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAKA;EACE;EACA;EACA;EACA,qBACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;AACE;EACA;EACA;EACA;AACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAGF;EACE;EACA;;AACA;EACE;;AAQJ;EACE;EACA;EACA;;AAEF;EACE;;;AAON;EACE;;AAGF;EACE;;AAIA;EACE;EACA;;AAMF;EACE;;AAGF;EAOE;EACA;EACA;EACA;;AATA;EACE;;AACA;EACE;;;AAeV;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAMI;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAIR;EACE,SALM;;AAUZ;EACE;EAEA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EAIE;EACA;EACA;;AALA;EACE;;AAKF;EACI;;;AASV;EACE;AACA;EACA;EAEA;EACA;AACA;;AAEA;EACE;EACA;;AAGF;EACE;;AACA;EACE;;;AAON;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;AACA;AACA;AACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAKF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AASA;EACE;;AAEF;AACE;EACA;EACA;AACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACI;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAMN;EACE;EACA;EACA;;AAEF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEE;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;AACA;EACA;EACA;EACA;;AAQJ;EACE;;AAGF;EACE;;AAGF;EACE;;;AAOJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;AACA;AAAA;;;AAIF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACI;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE","file":"eventsheet.css"} \ No newline at end of file diff --git a/src/public/js/eventlineup.js b/src/public/js/eventlineup.js index 7e1415d..70e78ac 100644 --- a/src/public/js/eventlineup.js +++ b/src/public/js/eventlineup.js @@ -635,8 +635,18 @@ function insertLineup(direction, teamId, eventId, element) { } +function initSlots () { + const slots = Array.from(document.querySelectorAll('.lineup-slot')) + slots.forEach(slot=>{ + console.log(slot,`.${slot.dataset.initialSlotset}`) + const parent = document.querySelector(`#${slot.dataset.initialSlotset}`) + parent.appendChild(slot) + slot.removeAttribute('data-initial-slotset') + }) +} function initPage (){ colorPositions(); + initSlots(); initFlagsCheckboxes(); refreshLineup(); for (bcLineup of document.querySelectorAll("[id^=event-lineup]")) { diff --git a/src/scss/eventsheet.scss b/src/scss/eventsheet.scss index d216392..a8d1b0f 100644 --- a/src/scss/eventsheet.scss +++ b/src/scss/eventsheet.scss @@ -295,7 +295,7 @@ section.lineup-card { .lineup-card table { - font-size: 22px; + font-size: 21px; } .lineup-card td { @@ -834,6 +834,11 @@ header { &.availability-on-day div { transform: rotate(270deg); + margin-bottom: -5; + /* font-stretch: 40%; */ + font-stretch: 75%; + font-weight: 500; + text-align: left; } // .position-capability { diff --git a/src/views/eventlineup/edit.hbs b/src/views/eventlineup/edit.hbs index 45944fd..5804959 100644 --- a/src/views/eventlineup/edit.hbs +++ b/src/views/eventlineup/edit.hbs @@ -85,11 +85,7 @@ {{/each}}