Compare commits
7 Commits
5e1facf24a
...
1c3cafdcda
| Author | SHA1 | Date | |
|---|---|---|---|
|
1c3cafdcda
|
|||
|
fb0ca76c29
|
|||
|
e4b981d676
|
|||
|
c4c0d0fb7d
|
|||
|
3695cd8975
|
|||
|
bcade85182
|
|||
|
d50f94acc8
|
26
package-lock.json
generated
26
package-lock.json
generated
@@ -9,7 +9,7 @@
|
|||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@teamsnap/teamsnap-ui": "^3.12.3",
|
"@teamsnap/teamsnap-ui": "^3.12.3",
|
||||||
"better-sqlite3": "^9.4.1",
|
"better-sqlite3": "^9.6.0",
|
||||||
"better-sqlite3-session-store": "^0.1.0",
|
"better-sqlite3-session-store": "^0.1.0",
|
||||||
"bootstrap": "^5.3.1",
|
"bootstrap": "^5.3.1",
|
||||||
"bootstrap-icons": "^1.10.5",
|
"bootstrap-icons": "^1.10.5",
|
||||||
@@ -813,9 +813,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/better-sqlite3": {
|
"node_modules/better-sqlite3": {
|
||||||
"version": "9.4.1",
|
"version": "9.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-9.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-9.6.0.tgz",
|
||||||
"integrity": "sha512-QpqiQeMI4WkE+dQ68zTMX5OzlPGc7lXIDP1iKUt4Omt9PdaVgzKYxHIJRIzt1E+RUBQoFmkip/IbvzyrxehAIg==",
|
"integrity": "sha512-yR5HATnqeYNVnkaUTf4bOP2dJSnyhP4puJN/QPRyx4YkBEEUxib422n2XzPqDEHjQQqazoYoADdAm5vE15+dAQ==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bindings": "^1.5.0",
|
"bindings": "^1.5.0",
|
||||||
@@ -1618,9 +1618,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/detect-libc": {
|
"node_modules/detect-libc": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
|
||||||
"integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
|
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
@@ -3270,9 +3270,9 @@
|
|||||||
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
|
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
|
||||||
},
|
},
|
||||||
"node_modules/node-abi": {
|
"node_modules/node-abi": {
|
||||||
"version": "3.54.0",
|
"version": "3.62.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz",
|
||||||
"integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==",
|
"integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"semver": "^7.3.5"
|
"semver": "^7.3.5"
|
||||||
},
|
},
|
||||||
@@ -3719,9 +3719,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prebuild-install": {
|
"node_modules/prebuild-install": {
|
||||||
"version": "7.1.1",
|
"version": "7.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
|
||||||
"integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
|
"integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"detect-libc": "^2.0.0",
|
"detect-libc": "^2.0.0",
|
||||||
"expand-template": "^2.0.3",
|
"expand-template": "^2.0.3",
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@teamsnap/teamsnap-ui": "^3.12.3",
|
"@teamsnap/teamsnap-ui": "^3.12.3",
|
||||||
"better-sqlite3": "^9.4.1",
|
"better-sqlite3": "^9.6.0",
|
||||||
"better-sqlite3-session-store": "^0.1.0",
|
"better-sqlite3-session-store": "^0.1.0",
|
||||||
"bootstrap": "^5.3.1",
|
"bootstrap": "^5.3.1",
|
||||||
"bootstrap-icons": "^1.10.5",
|
"bootstrap-icons": "^1.10.5",
|
||||||
|
|||||||
@@ -5,100 +5,7 @@ const tsUtils = require('../lib/utils')
|
|||||||
const { loadEventLineupEntries } = require('teamsnap.js')
|
const { loadEventLineupEntries } = require('teamsnap.js')
|
||||||
|
|
||||||
exports.partials = path.join(__dirname, "../views/eventlineup/partials")
|
exports.partials = path.join(__dirname, "../views/eventlineup/partials")
|
||||||
|
exports.helpers = require('../helpers/eventlineup.js')
|
||||||
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.getEventLineup = async (req, res)=>{
|
exports.getEventLineup = async (req, res)=>{
|
||||||
await Promise.all(req.promises)
|
await Promise.all(req.promises)
|
||||||
@@ -110,7 +17,7 @@ exports.getEventLineup = async (req, res)=>{
|
|||||||
"/js/eventlineup.js",
|
"/js/eventlineup.js",
|
||||||
"/js/tinymce.min.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) => {
|
exports.getAdjacentEventLineup = async (req, res) => {
|
||||||
|
|||||||
119
src/helpers/eventlineup.js
Normal file
119
src/helpers/eventlineup.js
Normal file
@@ -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
|
||||||
|
}
|
||||||
@@ -84,6 +84,10 @@ const getPluralType = (type) =>{
|
|||||||
// is not generated in the lookup. this is a
|
// is not generated in the lookup. this is a
|
||||||
// kludge around that. (specifically availabilitySummary)
|
// kludge around that. (specifically availabilitySummary)
|
||||||
plural = teamsnap.getPluralType(type) || (function() {
|
plural = teamsnap.getPluralType(type) || (function() {
|
||||||
|
if (type === undefined){
|
||||||
|
return type
|
||||||
|
}
|
||||||
|
|
||||||
switch (type.slice(-1)) {
|
switch (type.slice(-1)) {
|
||||||
case 'y':
|
case 'y':
|
||||||
return type.slice(0, -1) + 'ies';
|
return type.slice(0, -1) + 'ies';
|
||||||
|
|||||||
@@ -153,13 +153,53 @@ table tr th:empty::after, table tr td:empty::after {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
}
|
}
|
||||||
|
|
||||||
.eventsheet > section > div {
|
.eventsheet > section > div {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
.eventsheet > section.NW {
|
||||||
|
grid-area: 1/1/2/2;
|
||||||
|
}
|
||||||
|
.eventsheet > section.NE {
|
||||||
|
grid-area: 1/2/2/3;
|
||||||
|
}
|
||||||
|
.eventsheet > section.SW {
|
||||||
|
grid-area: 2/1/3/2;
|
||||||
|
}
|
||||||
|
.eventsheet > section.SE {
|
||||||
|
grid-area: 2/2/3/3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.eventsheet > .section-divider {
|
||||||
|
position: absolute;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
grid-template-rows: repeat(2, 1fr);
|
||||||
|
grid-column-gap: 0px;
|
||||||
|
grid-row-gap: 0px;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
--divider-border: lightgrey dashed 1px;
|
||||||
|
}
|
||||||
|
.eventsheet > .section-divider .NW {
|
||||||
|
grid-area: 1/1/2/2;
|
||||||
|
border-right: var(--divider-border);
|
||||||
|
border-bottom: var(--divider-border);
|
||||||
|
}
|
||||||
|
.eventsheet > .section-divider .NE {
|
||||||
|
grid-area: 1/2/2/3;
|
||||||
|
border-bottom: var(--divider-border);
|
||||||
|
}
|
||||||
|
.eventsheet > .section-divider .SW {
|
||||||
|
grid-area: 2/1/3/2;
|
||||||
|
border-right: var(--divider-border);
|
||||||
|
}
|
||||||
|
.eventsheet > .section-divider .SE {
|
||||||
|
grid-area: 2/2/3/3;
|
||||||
|
}
|
||||||
|
|
||||||
.lineup-card th {
|
.lineup-card th {
|
||||||
width: inherit;
|
width: inherit;
|
||||||
@@ -224,7 +264,7 @@ section.lineup-card th.sequence.counter::before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.lineup-card table {
|
.lineup-card table {
|
||||||
font-size: 22px;
|
font-size: 21px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lineup-card td {
|
.lineup-card td {
|
||||||
@@ -703,6 +743,11 @@ header {
|
|||||||
}
|
}
|
||||||
#roster-and-history th.availability-on-day div {
|
#roster-and-history th.availability-on-day div {
|
||||||
transform: rotate(270deg);
|
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 {
|
#roster-and-history thead > tr, #roster-and-history tfoot > tr {
|
||||||
border-bottom: solid black 1px;
|
border-bottom: solid black 1px;
|
||||||
@@ -735,14 +780,6 @@ td.is-present-checkbox.available-status-code-None > span {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.game-number .label {
|
|
||||||
font-size: xx-small;
|
|
||||||
}
|
|
||||||
|
|
||||||
.game-number .label, .game-number .value {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#front-cover {
|
#front-cover {
|
||||||
border: solid 1px black;
|
border: solid 1px black;
|
||||||
}
|
}
|
||||||
@@ -759,10 +796,18 @@ td.is-present-checkbox.available-status-code-None > span {
|
|||||||
}
|
}
|
||||||
#front-cover .game-number, #front-cover .homeaway {
|
#front-cover .game-number, #front-cover .homeaway {
|
||||||
display: grid;
|
display: grid;
|
||||||
font-size: xx-large;
|
|
||||||
align-content: center;
|
align-content: center;
|
||||||
width: 1.4em;
|
width: 1.4em;
|
||||||
|
}
|
||||||
|
#front-cover .homeaway {
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
|
font-size: xx-large;
|
||||||
|
}
|
||||||
|
#front-cover .game-number {
|
||||||
|
font-size: large;
|
||||||
|
font-stretch: extra-condensed;
|
||||||
|
font-weight: 700;
|
||||||
|
text-wrap: nowrap;
|
||||||
}
|
}
|
||||||
#front-cover .title {
|
#front-cover .title {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
|||||||
@@ -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;;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;AACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;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;;;AAKF;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;;;AAGF;EACE;;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;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"}
|
{"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"}
|
||||||
@@ -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 (){
|
function initPage (){
|
||||||
colorPositions();
|
colorPositions();
|
||||||
|
initSlots();
|
||||||
initFlagsCheckboxes();
|
initFlagsCheckboxes();
|
||||||
refreshLineup();
|
refreshLineup();
|
||||||
for (bcLineup of document.querySelectorAll("[id^=event-lineup]")) {
|
for (bcLineup of document.querySelectorAll("[id^=event-lineup]")) {
|
||||||
|
|||||||
@@ -153,10 +153,6 @@ table {
|
|||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.B5 > .eventsheet {
|
.B5 > .eventsheet {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
@@ -173,13 +169,58 @@ table {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
|
||||||
|
> div {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
align-items: stretch;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.NW {
|
||||||
|
grid-area: 1 / 1 / 2 / 2;
|
||||||
|
}
|
||||||
|
&.NE {
|
||||||
|
grid-area: 1 / 2 / 2 / 3;
|
||||||
|
}
|
||||||
|
&.SW {
|
||||||
|
grid-area: 2 / 1 / 3 / 2;
|
||||||
|
}
|
||||||
|
&.SE {
|
||||||
|
grid-area: 2 / 2 / 3 / 3;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.eventsheet > section > div {
|
.eventsheet > .section-divider {
|
||||||
display: flex;
|
position: absolute;
|
||||||
flex: 1;
|
display: grid;
|
||||||
align-items: stretch;
|
grid-template-columns: repeat(2, 1fr);
|
||||||
height: auto;
|
grid-template-rows: repeat(2, 1fr);
|
||||||
|
grid-column-gap: 0px;
|
||||||
|
grid-row-gap: 0px;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
--divider-border: lightgrey dashed 1px;
|
||||||
|
|
||||||
|
.NW {
|
||||||
|
grid-area: 1 / 1 / 2 / 2;
|
||||||
|
border-right:var(--divider-border);
|
||||||
|
border-bottom:var(--divider-border);
|
||||||
|
}
|
||||||
|
.NE {
|
||||||
|
grid-area: 1 / 2 / 2 / 3;
|
||||||
|
border-bottom:var(--divider-border);
|
||||||
|
}
|
||||||
|
.SW {
|
||||||
|
grid-area: 2 / 1 / 3 / 2;
|
||||||
|
border-right:var(--divider-border);
|
||||||
|
}
|
||||||
|
.SE {
|
||||||
|
grid-area: 2 / 2 / 3 / 3;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.lineup-card th {
|
.lineup-card th {
|
||||||
@@ -231,8 +272,6 @@ div.grid-container > .substitution-table {
|
|||||||
grid-area: "substitution-table";
|
grid-area: "substitution-table";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
section.lineup-card {
|
section.lineup-card {
|
||||||
counter-reset: lineup-sequence-counter 0;
|
counter-reset: lineup-sequence-counter 0;
|
||||||
|
|
||||||
@@ -256,7 +295,7 @@ section.lineup-card {
|
|||||||
|
|
||||||
|
|
||||||
.lineup-card table {
|
.lineup-card table {
|
||||||
font-size: 22px;
|
font-size: 21px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lineup-card td {
|
.lineup-card td {
|
||||||
@@ -298,7 +337,7 @@ section.blank {
|
|||||||
}
|
}
|
||||||
td.substitution {
|
td.substitution {
|
||||||
border-width: 0.5;
|
border-width: 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#lineup-card-exchange td.player-name {
|
#lineup-card-exchange td.player-name {
|
||||||
@@ -795,6 +834,11 @@ header {
|
|||||||
|
|
||||||
&.availability-on-day div {
|
&.availability-on-day div {
|
||||||
transform: rotate(270deg);
|
transform: rotate(270deg);
|
||||||
|
margin-bottom: -5;
|
||||||
|
/* font-stretch: 40%; */
|
||||||
|
font-stretch: 75%;
|
||||||
|
font-weight: 500;
|
||||||
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
// .position-capability {
|
// .position-capability {
|
||||||
@@ -839,14 +883,6 @@ td.is-present-checkbox.available-status-code-None > span {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.game-number .label {
|
|
||||||
font-size: xx-small
|
|
||||||
}
|
|
||||||
|
|
||||||
.game-number .label, .game-number .value{
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#front-cover {
|
#front-cover {
|
||||||
border: solid 1px black;
|
border: solid 1px black;
|
||||||
|
|
||||||
@@ -864,10 +900,20 @@ td.is-present-checkbox.available-status-code-None > span {
|
|||||||
|
|
||||||
.game-number, .homeaway{
|
.game-number, .homeaway{
|
||||||
display: grid;
|
display: grid;
|
||||||
font-size: xx-large;
|
|
||||||
align-content: center;
|
align-content: center;
|
||||||
width: 1.4em;
|
width: 1.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.homeaway {
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
|
font-size: xx-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.game-number {
|
||||||
|
font-size: large;
|
||||||
|
font-stretch: extra-condensed;
|
||||||
|
font-weight: 700;
|
||||||
|
text-wrap: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
|
|||||||
@@ -85,11 +85,7 @@
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<div class="slot-set">
|
<div class="slot-set">
|
||||||
{{#each members}}
|
|
||||||
{{#if (isInStartingLineup this)}}
|
|
||||||
{{> slot member=this}}
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,11 +95,7 @@
|
|||||||
<span>Position Only</span>
|
<span>Position Only</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="slot-set">
|
<div class="slot-set">
|
||||||
{{#each members}}
|
|
||||||
{{#if (isInPositionOnly this)}}
|
|
||||||
{{> slot member=this}}
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="lineup-bench-{{event.id}}" class="Panel u-maxWidthSm bench Panel--full">
|
<div id="lineup-bench-{{event.id}}" class="Panel u-maxWidthSm bench Panel--full">
|
||||||
@@ -112,11 +104,9 @@
|
|||||||
<span>Bench</span>
|
<span>Bench</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="slot-set">
|
<div class="slot-set">
|
||||||
{{#each members}}
|
{{#loadSlots}}
|
||||||
{{#if (isInBench this)}}
|
{{>slot member=member event_lineup=event_event_lineup availablity=availability}}
|
||||||
{{> slot member=this event=../event}}
|
{{/loadSlots}}
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="lineup-out-{{event.id}}" class="Panel u-maxWidthSm out Panel--full">
|
<div id="lineup-out-{{event.id}}" class="Panel u-maxWidthSm out Panel--full">
|
||||||
@@ -129,11 +119,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="slot-set">
|
<div class="slot-set">
|
||||||
{{#each members}}
|
|
||||||
{{#if (isInOut this)}}
|
|
||||||
{{> slot member=this}}
|
|
||||||
{{/if}}
|
|
||||||
{{/each}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
7
src/views/eventlineup/partials/page_section_divider.hbs
Normal file
7
src/views/eventlineup/partials/page_section_divider.hbs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
<div class="section-divider">
|
||||||
|
<div class="dotted-line NW" style=""></div>
|
||||||
|
<div class="dotted-line NE" style=""></div>
|
||||||
|
<div class="dotted-line SW" style=""></div>
|
||||||
|
<div class="dotted-line SE" style=""></div>
|
||||||
|
</div>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<div class="Panel-expandableRow lineup-slot">
|
<div class="Panel-expandableRow lineup-slot" data-initial-slotset="{{initial_slotset}}">
|
||||||
<input type="hidden" name="label" value="{{member.benchcoach.eventLineupEntry.label}}">
|
<input type="hidden" name="label" value="{{eventLineupEntry.label}}">
|
||||||
<input type="hidden" name="flags" value="{{flagsString member.benchcoach.eventLineupEntry.flags}}">
|
<input type="hidden" name="flags" value="{{flagsString eventLineupEntry.flags}}">
|
||||||
<input type="hidden" name="sequence" value="{{member.benchcoach.eventLineupEntry.sequence}}">
|
<input type="hidden" name="sequence" value="{{eventLineupEntry.sequence}}">
|
||||||
<input type="hidden" name="eventId" value="{{event.id}}">
|
<input type="hidden" name="eventId" value="{{event.id}}">
|
||||||
<input type="hidden" name="eventLineupEntryId" value="{{member.benchcoach.eventLineupEntry.id}}">
|
<input type="hidden" name="eventLineupEntryId" value="{{eventLineupEntry.id}}">
|
||||||
<input type="hidden" name="availabilityStatusCode", value="{{member.benchcoach.availability?.statusCode}}">
|
<input type="hidden" name="availabilityStatusCode", value="{{availability?.statusCode}}">
|
||||||
<input type="hidden" name="memberId" value="{{member.id}}">
|
<input type="hidden" name="memberId" value="{{member.id}}">
|
||||||
<input type="hidden" name="lastName" value="{{member.lastName}}">
|
<input type="hidden" name="lastName" value="{{member.lastName}}">
|
||||||
<input type="hidden" name="firstName" value="{{member.firstName}}">
|
<input type="hidden" name="firstName" value="{{member.firstName}}">
|
||||||
@@ -18,11 +18,11 @@
|
|||||||
<div class="Panel-cell u-padXs u-sizeFill u-flex">
|
<div class="Panel-cell u-padXs u-sizeFill u-flex">
|
||||||
<div
|
<div
|
||||||
class="Popup availability-status-code-{{
|
class="Popup availability-status-code-{{
|
||||||
member.benchcoach.availability?.statusCode
|
availability?.statusCode
|
||||||
}}"
|
}}"
|
||||||
>
|
>
|
||||||
{{#if member.benchcoach.availability}}
|
{{#if availability}}
|
||||||
{{#with member.benchcoach.availability}}
|
{{#with availability}}
|
||||||
<button class="Popup-toggle Button Button--smallSquare {{avail_status_code_class statusCode}}"
|
<button class="Popup-toggle Button Button--smallSquare {{avail_status_code_class statusCode}}"
|
||||||
type="button"
|
type="button"
|
||||||
data-control="popup"
|
data-control="popup"
|
||||||
@@ -63,17 +63,17 @@
|
|||||||
<div class="u-flexGrow1"></div>
|
<div class="u-flexGrow1"></div>
|
||||||
<div class="Popup">
|
<div class="Popup">
|
||||||
<button type="button" class="Popup-toggle Button Button--smallSquare" onclick="this.closest('div').querySelector('.Popup-container').classList.toggle('is-open');this.blur();" href="javascript:void(0)">
|
<button type="button" class="Popup-toggle Button Button--smallSquare" onclick="this.closest('div').querySelector('.Popup-container').classList.toggle('is-open');this.blur();" href="javascript:void(0)">
|
||||||
{{{embeddedSvgFromPath "/teamsnap-ui/assets/icons/flag.svg"}}}
|
{{{embeddedSvgFromPath "/bootstrap-icons/three-dots.svg"}}}
|
||||||
</button>
|
</button>
|
||||||
<div class="Popup-container Popup-container--rightHang position-label-flags">
|
<div class="Popup-container Popup-container--rightHang position-label-flags">
|
||||||
<div class="Popup-content u-padSm u-textCenter">
|
<div class="Popup-content u-padSm u-textCenter">
|
||||||
<div class="Checkbox Checkbox--inline">
|
<div class="Checkbox Checkbox--inline">
|
||||||
<input class="Checkbox-input" type="checkbox" name="flag-drd" id="flag-drd-{{member.id}}-{{member.benchcoach.eventLineupEntry.id}}" onclick="refreshLineup()">
|
<input class="Checkbox-input" type="checkbox" name="flag-drd" id="flag-drd-{{member.id}}-{{eventLineupEntry.id}}" onclick="refreshLineup()">
|
||||||
<label class="Checkbox-label" for="flag-drd-{{member.id}}-{{member.benchcoach.eventLineupEntry.id}}">DR<small>d</small></label>
|
<label class="Checkbox-label" for="flag-drd-{{member.id}}-{{eventLineupEntry.id}}">DR<small>d</small></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="Checkbox Checkbox--inline">
|
<div class="Checkbox Checkbox--inline">
|
||||||
<input class="Checkbox-input" type="checkbox" name="flag-dhd" id="flag-dhd-{{member.id}}-{{member.benchcoach.eventLineupEntry.id}}" onclick="refreshLineup()">
|
<input class="Checkbox-input" type="checkbox" name="flag-dhd" id="flag-dhd-{{member.id}}-{{eventLineupEntry.id}}" onclick="refreshLineup()">
|
||||||
<label class="Checkbox-label" for="flag-dhd-{{member.id}}-{{member.benchcoach.eventLineupEntry.id}}">DH<small>d</small></label>
|
<label class="Checkbox-label" for="flag-dhd-{{member.id}}-{{eventLineupEntry.id}}">DH<small>d</small></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
--
|
--
|
||||||
</option>
|
</option>
|
||||||
{{#each (positions)}}
|
{{#each (positions)}}
|
||||||
<option value="{{this}}" {{#if (comparePositionWithFlags this ../member.benchcoach.eventLineupEntry)}}selected{{/if}}>
|
<option value="{{this}}" {{#if (comparePositionWithFlags this ../eventLineupEntry)}}selected{{/if}}>
|
||||||
{{this}}
|
{{this}}
|
||||||
</option>
|
</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
<body class="B5">
|
<body class="B5">
|
||||||
<div class="sheet eventsheet" id="page-1">
|
<div class="sheet eventsheet" id="page-1">
|
||||||
{{!-- NW --}}
|
{{>page_section_divider}}
|
||||||
<section id="defense-card" data-card-location="NW">
|
<section class="NW" id="defense-card">
|
||||||
<header>
|
<header>
|
||||||
<div class="event-title float-left">
|
<div class="event-title float-left">
|
||||||
{{event.formattedTitle}} – {{dateFormat event.startDate "ddd, MMM D h:mm A" }}
|
{{event.formattedTitle}} – {{dateFormat event.startDate "ddd, MMM D h:mm A" }}
|
||||||
@@ -32,8 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{!-- NE --}}
|
<section class="NE" id="roster-and-history">
|
||||||
<section id="roster-and-history" data-card-location="NE">
|
|
||||||
<div class="roster-and-history">
|
<div class="roster-and-history">
|
||||||
{{> roster_and_history
|
{{> roster_and_history
|
||||||
event=event
|
event=event
|
||||||
@@ -44,8 +43,7 @@
|
|||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{!-- SW --}}
|
<section class="SW lineup-card dugout" id="lineup-card-dugout">
|
||||||
<section class="lineup-card" id="lineup-card-dugout" data-card-location="SW">
|
|
||||||
<header>
|
<header>
|
||||||
<div class="float-left event-title">{{event.formattedTitle}}</div>
|
<div class="float-left event-title">{{event.formattedTitle}}</div>
|
||||||
<div class="float-right homeaway">{{event.gameType}}</div>
|
<div class="float-right homeaway">{{event.gameType}}</div>
|
||||||
@@ -83,8 +81,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{!-- SE --}}
|
<section class="SE lineup-card exchange" id="lineup-card-exchange">
|
||||||
<section class="lineup-card" id="lineup-card-exchange" data-card-location="SE">
|
|
||||||
<header>
|
<header>
|
||||||
<div class="float-left event-title">{{event.formattedTitle}}</div>
|
<div class="float-left event-title">{{event.formattedTitle}}</div>
|
||||||
<div class="float-right homeaway">{{event.gameType}}</div>
|
<div class="float-right homeaway">{{event.gameType}}</div>
|
||||||
@@ -124,19 +121,18 @@
|
|||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
<div class="sheet eventsheet" id="page-2">
|
<div class="sheet eventsheet" id="page-2">
|
||||||
{{!-- NW --}}
|
{{>page_section_divider}}
|
||||||
<section id="front-cover">
|
<section class="NW" id="front-cover">
|
||||||
<header>
|
<header>
|
||||||
<div class="homeaway">
|
<div class="game-number">
|
||||||
<span>{{firstLetter event.gameType}}</span>
|
{{event.label}}
|
||||||
</div>
|
</div>
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<span class="date-time">{{dateFormat event.startDate "ddd, MMM D h:mm A" }}</span>
|
<span class="date-time">{{dateFormat event.startDate "ddd, MMM D h:mm A" }}</span>
|
||||||
<span class="location">{{event.locationName}}</span>
|
<span class="location">{{event.locationName}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="game-number">
|
<div class="homeaway">
|
||||||
<span class="label">Game #</span>
|
<span>{{firstLetter event.gameType}}</span>
|
||||||
<span class="value">XX</span>
|
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div style="display:block;max-height: 1em;background-color: lightgray;border-bottom: solid 2px black;">
|
<div style="display:block;max-height: 1em;background-color: lightgray;border-bottom: solid 2px black;">
|
||||||
@@ -184,8 +180,7 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{!-- NE --}}
|
<section class="NE blank" id="defense-card">
|
||||||
<section id="defense-card" class="blank">
|
|
||||||
<header>
|
<header>
|
||||||
<div class="event-title float-left">
|
<div class="event-title float-left">
|
||||||
|
|
||||||
@@ -214,8 +209,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{!-- SW --}}
|
<section class="SW lineup-card exchange blank" id="lineup-card-exchange-blank">
|
||||||
<section class="lineup-card exchange blank" id="lineup-card-exchange-blank">
|
|
||||||
<div class="starting-lineup-table">
|
<div class="starting-lineup-table">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
@@ -247,8 +241,7 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{!-- SE --}}
|
<section class="SE lineup-card dugout blank" id="lineup-card-dugout-blank">
|
||||||
<section class="lineup-card exchange blank" id="lineup-card-dugout-blank">
|
|
||||||
<div class="starting-lineup-table">
|
<div class="starting-lineup-table">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
Reference in New Issue
Block a user