2023-24 AUS Women's Basketball Schedule - Acadia
-
Overall13-7
-
PCT.650
-
Conf13-7
-
C.PCT.650
-
StreakL1
-
Home7-4
-
Away6-3
-
Neutral0-0
September
2 events
There was a problem with a Velocity script | |
Page | sports/wbkb/2023-24/schedule-networked-template |
Error | VM #printTable: too many arguments to macro. Wanted 1 got 2 at u7uewgech0x6kfoasports/wbkb/2023-24/schedule-networked-template[line 1400, column 17] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: 5: #* BEGIN TABLE STYLE OPTIONS ***************# 6: #set($tableHelperClass = "") 7: #if ($options.get("table_bordered") != false) #set($tableHelperClass = "$tableHelperClass table-bordered") #end 8: #if ($options.get("table_head_dark") == true) #set($tableHelperClass = "$tableHelperClass thead-dark") #end 9: #if ($options.get("table_hover") != false) #set($tableHelperClass = "$tableHelperClass table-hover") #end 10: #* END TABLE STYLES OPTIONS ****************# 11: 12: ## CONFERENCE TEAM LINKING 13: #set ($confmemberIDs = $page.teamIDs) 14: 15: #set ($isPrinterFriendly = false) 16: #if ($request.getParameter("dec") == "printer-decorator") 17: #set ($isPrinterFriendly = true) 18: #end 19: 20: ## NEXT EVENT COUNTDOWN 21: #set ($showEventCountdown = true) 22: #if ($options.get("schedule_show_eventcountdown") == "false") 23: #set ($showEventCountdown = false) 24: #end 25: 26: #set ($showLeaders = true) 27: #if ($options.get("schedule_show_leaders") == "no") 28: #set ($showLeaders = false) 29: #end 30: #if ($request.getParameter("showLeaders") == true) 31: #set ($showLeaders = true) 32: #elseif ($request.getParameter("showLeaders") == false) 33: #set ($showLeaders = false) 34: #end 35: 36: #set ($showTeamLeadersCarousel = false) 37: #if ($options.get("schedule_show_team_leader_carousel") == "yes") 38: #set ($showTeamLeadersCarousel = true) 39: #end 40: 41: #set ($showRelatedArticles = false) 42: #if ($options.get("schedule_network_articles") == "yes") 43: #set ($showRelatedArticles = true) 44: #end 45: 46: #set ($leaderSportsMapped = ["basketball","soccer","volleyball","baseball","softball","hockey","lacrosse","waterpolo","football"]) 47: 48: #if ($showLeaders) 49: $website.include("${page.sectionPage.url}/roster?tmpl=roster-headshots-template") 50: #set ($rosterHeadshots = $!request.getAttribute("roster_headshots")) 51: #end 52: 53: #set ($isTeamSchedule = false) 54: #if ($schedule.team.length() > 0) ## ?teamId= 55: #set ($isTeamSchedule = true) 56: #end 57: 58: #set ($isSharedMeet = false) 59: #if ($schedule.team.length() == 0 && !$schedule.numericResults && !$page.contentType.equals('loki/schedule')) 60: #set ($isSharedMeet = true) 61: #end 62: 63: #set ($linksAbbreviations = { "Preview": "PR", "Box Score": "BX", "Results": "RE", "Recap": "RC", "Live stats": "LS", "Video": "V", "Audio": "A", "Photos": "PH", "Tickets": "T", "Directions": "DR" }) 64: #set ($linksOrder = ["LS", "VI", "BS", "RC", "RE", "GA", "AU", "DI", "TI", "PR", "LI"]) 65: #set ($excludeLinksWhenEventIsFinished = ["LS", "DI", "TI", "PR"]) 66: #set ($excludeLinksWhenEventIsLive = ["DI", "TI", "PR"]) 67: 68: #set ($restrictLinks = true) 69: #if ($options.get("schedule_restrict_links") == false) 70: #set ($restrictLinks = false) 71: #end 72: 73: #set ($showLinkIcons = true) 74: #if ($request.getParameter("showLinkIcons") == false) 75: #set ($showLinkIcons = false) 76: #end 77: 78: #set ($abbreviatedLinks = false) 79: #if ($request.getParameter("abbreviatedLinks") == true) 80: #set ($abbreviatedLinks = true) 81: #end 82: 83: #set ($showVsAt = true) 84: #if ($options.get("schedule_hide_vs_at") == true) 85: #set ($showVsAt = false) 86: #end 87: 88: #set ($showTeamStats = true) 89: #if ($options.get("schedule_hide_team_stats") == true) 90: #set ($showTeamStats = false) 91: #end 92: 93: #set ($showExhibitionGames = true) 94: #if ($options.get("schedule_hide_exhibition_events") == true) 95: #set ($showExhibitionGames = false) 96: #end 97: 98: #set ($showSpotOnAddToCal = false) 99: #if ($options.get("schedule_show_spoton_add_to_cal") == "show") 100: #if ($options.get('stanza_code').length() > 0) 101: #set ($showSpotOnAddToCal = true) 102: #set ($stanzaCode = $options.get('stanza_code').toLowerCase()) 103: #end 104: #end 105: 106: #set ($showTeamLogo = false) 107: #if ($options.get("schedule_show_team_logo") == "show" && !$isPrinterFriendly) 108: #set ($showTeamLogo = true) 109: #end 110: 111: #set ($includeTimeZone = true) 112: #if ($options.get('calendarIncludeTimeZone').length() > 0) 113: #set ($includeTimeZone = $options.get('calendarIncludeTimeZone').toLowerCase()) 114: #end 115: 116: #set ($enhancedLayout = false) 117: #set ($scheduleLayout = "standard") 118: #set ($scheduleView = "list") 119: #if ($options.get("schedule_enhanced_layout") == "yes" && !$isPrinterFriendly) 120: #set ($enhancedLayout = true) 121: #set ($scheduleLayout = "enhanced") 122: #set ($scheduleView = "cards") 123: #end 124: 125: #set ($resultFormat = "AP1") 126: #if ($options.get("schedule_result_format").equals("L, 1-2")) ## whether to show $event.APResult or $event.AP2Result 127: #set ($resultFormat = "AP2") 128: #end 129: 130: #set ($scheduleNextEventScroll = false) 131: #if ($options.get("schedule_next_event_scroll") && $options.get("schedule_next_event_scroll") == true) 132: #set ($scheduleNextEventScroll = true) 133: #end 134: 135: #set($groupMonths = true) 136: #set($groupDates = false) 137: #set($currentMonthFirst = false) 138: 139: #* Defines if schedules events should be grouped by dates into callapsible panels *# 140: #if(!$isTeamSchedule) ## Conference 141: #set($groupDates = true) 142: #end 143: 144: #if ($options.get("schedule_group_by_months") == false) 145: #set($groupMonths = false) 146: #end 147: #if ($options.get("schedule_group_by_dates") == false) 148: #set($groupDates = false) 149: #end 150: 151: #if ($options.get("schedule_current_month_first") == true) 152: #set($currentMonthFirst = true) 153: #end 154: 155: $request.setAttribute("scheduleNextEvent", false) 156: $request.setAttribute("scheduleLastEvent", $event.id) 157: 158: #set ($dateFormat = "EEE. d") 159: 160: #if ($options.get("schedule_date_format").equals("Thu. 3")) 161: #set ($dateFormat = "EEE. d") 162: #elseif ($options.get("schedule_date_format").equals("Mar. 15")) 163: #set ($dateFormat = "MMM dd") 164: #elseif ($options.get("schedule_date_format").equals("Mar. 15, 2013")) 165: #set ($dateFormat = "MMM dd, yyyy") 166: #elseif ($options.get("schedule_date_format").equals("March 15, 2013")) 167: #set ($dateFormat = "MMMM dd, yyyy") 168: #elseif ($options.get("schedule_date_format").equals("March 15")) 169: #set ($dateFormat = "MMMM dd") 170: #elseif ($options.get("schedule_date_format").equals("03/15/2013")) 171: #set ($dateFormat = "MM/dd/yyyy") 172: #elseif ($options.get("schedule_date_format").equals("03/15")) 173: #set ($dateFormat = "MM/dd") 174: #elseif ($options.get("schedule_date_format").equals("Thursday, March 15, 2013")) 175: #set ($dateFormat = "EEEE, MMMM dd, yyyy") 176: #elseif ($options.get("schedule_date_format").equals("Thursday, Mar. 15, 2013")) 177: #set ($dateFormat = "EEEE, MMM dd, yyyy") 178: #elseif ($options.get("schedule_date_format").equals("Thursday, March 15")) 179: #set ($dateFormat = "EEEE, MMMM dd") 180: #elseif ($options.get("schedule_date_format").equals("Thursday, Mar. 15")) 181: #set ($dateFormat = "EEEE, MMM dd") 182: #elseif ($options.get("schedule_date_format").equals("Thu., March 15")) 183: #set ($dateFormat = "EEE., MMMM dd") 184: #elseif ($options.get("schedule_date_format").equals("Thu., Mar. 15")) 185: #set ($dateFormat = "EEE., MMM dd") 186: #end 187: 188: #set ($confNotation = "*") 189: #set ($divisionNotation = "^") 190: #set ($exhibitionNotation = "#") 191: #set ($postseasonNotation = "%") 192: #set ($multipleLeadersNotation = "+") 193: 194: #if (!$enhancedLayout) 195: #set ($scheduleLayout = 1) 196: #if ($tool.math.toInteger($options.get("schedule_default_layout")) > 1) 197: #set ($scheduleLayout = $tool.math.toInteger($options.get("schedule_default_layout"))) 198: #end 199: 200: ## SET DEFAULT LABELS AND FIELDS FOR NUMERIC vs. NON-NUMERIC SCHEDULES 201: #if ($isTeamSchedule) 202: #if ($schedule.numericResults) ## team h2h 203: #if ($scheduleLayout == 1) 204: #set ($scheduleFields = ["date", "opponent+neutralsite", "result", "status", "notes", "links"]) 205: #set ($scheduleLabels = ["Date", "Opponent", "Result", "Status", "Notes", "Links"]) 206: #elseif ($scheduleLayout == 2) 207: #set ($scheduleFields = ["date", "opponent+neutralsite", "result", "status", "notes", "links"]) 208: #set ($scheduleLabels = ["Date", "Opponent", "Result", "Status", "Notes", "Links"]) 209: #elseif ($scheduleLayout == 3) 210: #set ($scheduleFields = ["date", "opponent", "result", "status", "notes+neutralsite", "links"]) 211: #set ($scheduleLabels = ["Date", "Opponent", "Result", "Status", "Notes", "Links"]) 212: #end 213: #else 214: #if ($scheduleLayout == 1) 215: #set ($scheduleFields = ["date", "opponent+neutralsite", "status", "team_away_result", "notes", "links"]) 216: #set ($scheduleLabels = ["Date", "Event", "Status", "Result", "Notes", "Links"]) 217: #elseif ($scheduleLayout == 2) 218: #set ($scheduleFields = ["date", "opponent", "status", "team_away_result", "notes+neutralsite", "links"]) 219: #set ($scheduleLabels = ["Date", "Event", "Status", "Result", "Notes", "Links"]) 220: #elseif ($scheduleLayout == 3) 221: #set ($scheduleFields = ["date", "opponent+neutralsite","status", "team_away_result", "notes", "links"]) 222: #set ($scheduleLabels = ["Date", "Event", "Status", "Result", "Notes", "Links"]) 223: #end 224: #end 225: #else ## CONFERENCE VIEW 226: #if($schedule.numericResults) ## conf h2h 227: #set ($scheduleFields = ["date", "team_away+team_away_result", "team_home+team_home_result", "notes+neutralsite", "status", "links"]) 228: #set ($scheduleLabels = ["Date", "Away", "Home", "Notes", "Status", "Links"]) 229: #else 230: #set ($scheduleFields = ["date", "team_away+team_away_result", "neutralsite", "notes", "links"]) 231: #set ($scheduleLabels = ["Date", "Team", "Event", "Notes", "Links"]) 232: #end 233: #end 234: 235: ## Remove dates from the array is they are present and groupDates is true. 236: #if ($groupDates) 237: #set ($filteredFields = "") 238: #foreach ($field in $scheduleFields) 239: #if ($field != "date") 240: #set ($filteredFields = "$filteredFields$field,") 241: #end 242: #end 243: #set ($scheduleFields = []) 244: #foreach ($f in $filteredFields.split(",")) 245: #set ($temp = $scheduleFields.add($f)) 246: #end 247: 248: #set ($filteredLabels = "") 249: #foreach ($label in $scheduleLabels) 250: #if ($label != "Date") 251: #set ($filteredLabels = "$filteredLabels$label,") 252: #end 253: #end 254: #set ($scheduleLabels = []) 255: #foreach ($l in $filteredLabels.split(",")) 256: #set ($temp = $scheduleLabels.add($l)) 257: #end 258: #end 259: ## End date removal 260: 261: ## SET FIELDS AND LABELS FROM OPTIONS IF AVAILABLE AND SANITIZE THEM 262: #if (!$options.get("schedule_fields").isEmpty() && !$options.get("schedule_labels").isEmpty()) 263: #set ($optionFields = $options.get("schedule_fields")) 264: #set ($optionFields = $optionFields.split(",")) 265: #foreach ($field in $optionFields) 266: #set ($field = $field.trim()) 267: $tool.list.set($optionFields, $tool.math.sub($velocityCount, 1), $field) 268: #end 269: 270: #set ($optionLabels = $options.get("schedule_labels")) 271: #set ($optionLabels = $optionLabels.split(",")) 272: #foreach ($label in $optionLabels) 273: #set ($label = $label.trim()) 274: #if ($label.equals("-")) 275: #set ($label = " ") 276: #end 277: $tool.list.set($optionLabels, $tool.math.sub($velocityCount, 1), $label) 278: #end 279: 280: #if ($tool.list.size($optionFields) == $tool.list.size($optionLabels)) 281: #set ($scheduleFields = $optionFields) 282: #set ($scheduleLabels = $optionLabels) 283: #end 284: #end 285: #end 286: 287: ## MACROS 288: #macro (printPageTitle) 289: #if ($page.title.length() > 0) 290: #if ($schedule.team.length() > 0 && $page.teams.size() > 1) 291: #set ($pageTitle = "${page.title} - ${schedule.team}") 292: #else 293: #set ($pageTitle = $page.title) 294: #end 295: <h1>$pageTitle</h1> 296: $!request.setAttribute("pageTitle", "${pageTitle}") 297: #end 298: $!request.setAttribute("pageDescription", "${pageTitle} - Record: $schedule.Record") 299: 300: #end ## printPageTitle 301: 302: #macro (printEventTypesFilter) 303: #if ($eventTypes.size() > 1) 304: #set ($id = "filter-by-type") 305: <div class="schedule-filter flex-grow-1"> 306: <div class="input-group"> 307: <span class="input-group-text" id="${id}-group-text">Type</span> 308: <select class="form-control type-filter form-select" aria-describedby="${id}-group-text" id="$id" data-filter="true" aria-label="Filter events by selecting an event type from the list"> 309: <option value="all">All</option> 310: #if ($eventTypes.contains("conference")) 311: <option value="conf">Conference</option> 312: #end 313: #if ($eventTypes.contains("division")) 314: <option value="division">Division</option> 315: #end 316: #if ($eventTypes.contains("exhibition")) 317: <option value="exhibition">Exhibition</option> 318: #end 319: #if ($eventTypes.contains("postseason")) 320: <option value="postseason">Post Season</option> 321: #end 322: </select> 323: </div> 324: </div> 325: #end 326: #end ## printEventTypesFilter 327: 328: #macro (printVenueFilter) 329: #if (($isSharedMeet || $isTeamSchedule) && $eventVenues.size() > 1) 330: #set ($id = "filter-by-venue") 331: <div class="schedule-filter flex-grow-1"> 332: <div class="input-group"> 333: <span class="input-group-text" id="${id}-group-text">Venue</span> 334: <select class="form-control venue-filter form-select" aria-describedby="${id}-group-text" id="$id" data-filter="true" aria-label="Filter events by selecting a venue from the list"> 335: <option value="all">All</option> 336: #if ($eventVenues.contains("home")) 337: <option value="home">Home Games</option> 338: #end 339: #if ($eventVenues.contains("away")) 340: <option value="away">Away Games</option> 341: #end 342: #if ($eventVenues.contains("neutral")) 343: <option value="neutral">Neutral Games</option> 344: #end 345: </select> 346: </div> 347: </div> 348: #end 349: #end ## printVenueFilter 350: 351: #macro (printArchiveFilter) 352: $!request.setAttribute("pageObj", $page) 353: ## INCLUDE NAVBAR FOR SEASON ARCHIVES 354: #set ($legacyArchiveFilter = false) 355: #set ($legacyArchiveFilter = $options.get("legacy_archive_filter") == true) 356: 357: ## legacy archive filter uses a navbar to power the season switcher 358: #if ($legacyArchiveFilter) 359: $website.include("navbar-schedule-archive?tmpl=schedule-archive-list-template") 360: #set ($archiveEntries = $request.getAttribute("schedule_archives")) 361: #if ($archiveEntries.size() > 0) 362: <div class="schedule-filter col-12 col-sm-6 col-md-auto flex-grow-1"> 363: <div class="input-group"> 364: <span class="input-group-text" id="filter-by-season-group-text">Season</span> 365: <select class="form-control season-filter form-select" onchange="location=this.value" aria-describedby="filter-by-season-group-text" id="filter-by-season" aria-label="Change the season by selecting an option from the list"> 366: #foreach ($entry in $archiveEntries) 367: #if ($entry.label.length() > 0 && $entry.targetURL.length() > 0) 368: <option value="$entry.targetURL" #if ($entry.targetURL.equals($page.url)) selected="selected" #end>$entry.label</option> 369: #end 370: #end 371: </select> 372: </div> 373: </div> 374: #end 375: #else 376: $website.include("conf-season-filter-template") 377: #end 378: #end ## printArchiveFilter 379: 380: #macro (printFilters) 381: <div class="page-filters schedule-filters d-print-none"> 382: <div class="btn-toolbar d-flex justify-content-between gap-3" role="toolbar" aria-label="Schedule tool bar"> 383: <div class="m-0" role="group" aria-label="Print friendly version"> 384: <a href="${page.url}?dec=printer-decorator" class="btn btn-link border text-decoration-none text-nowrap"><span class="fa fa-print"></span> Print</a> 385: #if ($showSpotOnAddToCal) 386: <div class="d-inline-block spoton-add-to-cal"><a class="spoton-it btn btn-link border text-decoration-none" data-size="medium" href="https://stanza.co/schedules"><span class="far fa-calendar-alt"></span> Add to calendar</a></div> 387: #end 388: </div> 389: #printArchiveFilter() 390: #printEventTypesFilter() 391: #printVenueFilter() 392: 393: </div> 394: </div> 395: #end ## printFilters 396: 397: #macro (printSubscribeLinks) 398: #if($schedule.events.size() > 0) 399: <div class="subscribe-links p-3 my-3 border"> 400: <div class="btn-group me-auto"> 401: <a class="btn btn-sm btn-outline-primary" href="$icalURL"><span class="far fa-calendar-alt"></span> <strong>iCalendar</strong></a> ## iCalendar 402: <a class="btn btn-sm btn-outline-primary" href="$rssURL"><span class="fas fa-rss"></span> <strong>RSS Feed</strong></a> ## RSS 403: </div> 404: </div> 405: #end 406: #end 407: 408: #macro (printPostSchedule) 409: #set ($schedulePostURL = "${page.url}-post") 410: #if ($website.exists($schedulePostURL)) 411: <div class="schedule-post">$website.include($schedulePostURL)</div> 412: #end 413: #end 414: 415: #macro (printLegends) 416: <div class="notations d-flex flex-column flex-md-row align-items-center justify-content-center align-items-md-start justify-content-md-start gap-3 flex-wrap my-3 small text-muted"> 417: #if($enhancedLayout) 418: <div class="event-legend-venue p-2 px-3 border rounded"> 419: <div class="d-flex align-items-center justify-content-center align-items-md-start justify-content-md-start flex-wrap gap-3"> 420: #if ($eventVenues.contains("home")) 421: <div class="card-venue-icon home home-color-indicator"> 422: <span class="fa-solid fa-circle fa-sm" aria-hidden="true"></span> 423: Home 424: </div> 425: #end 426: #if ($eventVenues.contains("away")) 427: <div class="card-venue-icon away away-color-indicator"> 428: <span class="fa-solid fa-circle fa-sm" aria-hidden="true"></span> 429: Away 430: </div> 431: #end 432: #if ($eventVenues.contains("neutral")) 433: <div class="card-venue-icon neutral neutral-color-indicator"> 434: <span class="fa-solid fa-circle fa-sm" aria-hidden="true"></span> 435: Neutral 436: </div> 437: #end 438: </div> 439: </div> 440: #end 441: 442: <div class="event-legend-type p-2 px-3 rounded"> 443: <div class="d-flex align-items-center justify-content-center align-items-md-start justify-content-md-start flex-wrap gap-3"> 444: #if ($eventTypes.contains("exhibition")) 445: <div class="exhibition"><strong>$exhibitionNotation</strong> <span>Exhibition</span></div> 446: #end 447: #if ($eventTypes.contains("conference")) 448: <div class="conf"><strong>$confNotation</strong> <span>Conference</span></div> 449: #end 450: #if ($eventTypes.contains("division")) 451: <div class="division"><strong>$divisionNotation</strong> <span>Division</span></div> 452: #end 453: #if ($eventTypes.contains("postseason")) 454: <div class="postseason"><strong>$postseasonNotation</strong> <span>Postseason</span></div> 455: #end 456: #if ($eventVenues.contains("home") && $isTeamSchedule) 457: <div class="home"><strong><span>Home events in bold</span></strong></div> 458: #end 459: </div> 460: </div> 461: 462: </div> 463: #end ## printLegends 464: 465: #macro (printLinkAriaLabel $event $link $linkTypeCounter) 466: #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}") 467: #if ($event.neutralSite.length() > 0 || $event.home) 468: #set ($vsOrAt = "vs.") 469: #else 470: #set ($vsOrAt = "at") 471: #end 472: #if ($event.teams.size() > 1) 473: #set ($ariaLabel = "${ariaLabel} ${event.teams.get(0).name} ${vsOrAt} ${event.teams.get(1).name}:") 474: #elseif ($event.teams.size() == 1) 475: #set ($ariaLabel = "${ariaLabel} ${event.teams.get(0).name}:") 476: #end 477: #if ($event.neutralSite.length() > 0) 478: #set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:") 479: #end 480: #set ($ariaLabel = "${ariaLabel} ${link.name}") 481: #if ($linkTypeCounter > 1) 482: #set ($ariaLabel = "${ariaLabel} link ${linkTypeCounter}") 483: #end 484: aria-label="$ariaLabel" 485: #end 486: 487: #macro (printEventLink $link $class) 488: #set ($linkText = $link.name) 489: #if ($abbreviatedLinks) 490: #if ($link.mapType == "LI" || "$!link.siteCustomSettings.abbreviatedTitle" != "") 491: #set ($linkText = "LI") 492: #if("$!link.siteCustomSettings.abbreviatedTitle" != "") 493: #set ($linkText = $link.siteCustomSettings.abbreviatedTitle) 494: #end 495: #else 496: #foreach ($l in $linksAbbreviations.entrySet()) 497: #if ($link.name.equalsIgnoreCase($l.key)) 498: #set ($linkText = $l.value) 499: #end 500: #end 501: #end 502: #end 503: 504: <a #printLinkAriaLabel($event, $link, $linkTypeCounter) href="$link.url" #if ($website.isExternalLink($link.url)) target="_blank" #end class="${class} d-print-none"> 505: #if ($showLinkIcons) 506: #if ($link.mapType == "GA") ##gallery 507: <span class="far fa-sm fa-images"></span> 508: #elseif ($link.mapType == "TI") ##tickets 509: <span class="fas fa-sm fa-ticket-alt"></span> 510: #elseif($link.mapType == "RC") ##recap 511: <span class="fa fa-sm fa-share"></span> 512: #elseif($link.mapType == "PR") ##preview 513: <span class="far fa-sm fa-eye"></span> 514: #elseif($link.mapType == "LS") ##live stats 515: <span class="fas fa-sm fa fa-eye"></span> 516: #elseif($link.mapType == "VI") ##video 517: <span class="fa fa-sm fa-video-camera"></span> 518: #elseif($link.mapType == "AU") ## audio 519: <span class="fas fa-sm fa-headphones-alt"></span> 520: #elseif($link.mapType == "DI") ##directions 521: <span class="fas fa-sm fa-directions"></span> 522: #elseif($link.mapType == "BS") ##box scores 523: <span class="far fa-sm fa-chart-bar"></span> 524: #elseif($link.mapType == "RE") ##results 525: <span class="fa fa-sm fa-calculator"></span> 526: #elseif($link.mapType == "LI") ##custom link 527: <span class="fa fa-sm fa-external-link"></span> 528: #end 529: <span class="text d-md-none d-lg-inline-block">$linkText</span> 530: #else 531: <span class="text">$linkText</span> 532: #end 533: </a> 534: #end 535: 536: #macro (printEventLinks $event $class) 537: #set ($eventLinks = $event.links) 538: 539: #set ($isFinished = false) 540: #if ($event.statusCode >= 0 || ($event.statusCode == -3 && $now.time >= ($event.date.time + (1000*60*60*24)))) ## -3 is reported for event sports 541: #set ($isFinished = true) 542: #end 543: 544: #if ($restrictLinks && ($event.inProgress || $isFinished)) 545: #set ($eventLinks = []) 546: #foreach ($link in $event.links) 547: #if ($event.inProgress && !$excludeLinksWhenEventIsLive.contains($link.mapType)) 548: #set ($ignoreme = $eventLinks.add($link)) 549: #elseif ($isFinished && !$excludeLinksWhenEventIsFinished.contains($link.mapType)) 550: #set ($ignoreme = $eventLinks.add($link)) 551: #end 552: #end 553: #end 554: 555: #foreach ($mapType in $linksOrder) 556: #foreach ($link in $eventLinks) 557: #if ($mapType == $link.mapType) 558: #printEventLink($link, "link $class") 559: #end 560: #end 561: #end 562: 563: #end ## printEventLinks 564: 565: #macro (printEventButtons $event) 566: #set ($eventLinks = $event.links) 567: 568: #set ($isFinished = false) 569: #if ($event.statusCode >= 0 || ($event.statusCode == -3 && $now.time >= ($event.date.time + (1000*60*60*24)))) ## -3 is reported for event sports 570: #set ($isFinished = true) 571: #end 572: 573: #if ($restrictLinks && ($event.inProgress || $isFinished)) 574: #set ($eventLinks = []) 575: #foreach ($link in $event.links) 576: #if ($event.inProgress && !$excludeLinksWhenEventIsLive.contains($link.mapType)) 577: #set ($ignoreme = $eventLinks.add($link)) 578: #elseif ($isFinished && !$excludeLinksWhenEventIsFinished.contains($link.mapType)) 579: #set ($ignoreme = $eventLinks.add($link)) 580: #end 581: #end 582: #end 583: 584: #set ($linksCounter = 0) 585: <div class="list-group list-group-horizontal-md w-100"> 586: #foreach ($mapType in $linksOrder) 587: #set ($linkTypeCounter = 0) 588: 589: #foreach ($link in $eventLinks) 590: #if ($mapType == $link.mapType) 591: #printEventLink($link, "link text-nowrap") 592: #end 593: #end 594: 595: #end 596: </div> 597: #end ## printEventButtons 598: 599: #macro (printEventCardLinks $event) 600: 601: #set ($isFinished = false) 602: #if ($event.statusCode >= 0 || ($event.statusCode == -3 && $now.time >= ($event.date.time + (1000*60*60*24)))) ## -3 is reported for event sports 603: #set ($isFinished = true) 604: #end 605: 606: #if ($restrictLinks && ($event.inProgress || $isFinished)) 607: #set ($eventLinks = []) 608: #foreach ($link in $event.links) 609: #if ($event.inProgress && !$excludeLinksWhenEventIsLive.contains($link.mapType)) 610: #set ($ignoreme = $eventLinks.add($link)) 611: #elseif ($isFinished && !$excludeLinksWhenEventIsFinished.contains($link.mapType)) 612: #set ($ignoreme = $eventLinks.add($link)) 613: #end 614: #end 615: #else 616: #set ($eventLinks = $event.links) 617: #end 618: 619: #set ($linksCounter = 0) 620: #foreach ($mapType in $linksOrder) 621: #set ($linkTypeCounter = 0) 622: #foreach ($link in $eventLinks) 623: #if ($mapType == $link.mapType) 624: #printEventLink($link, "link list-inline-item text-decoration-none") 625: #end 626: #end 627: 628: #end 629: #end ## printEventCardLinks 630: 631: #macro(neCounter $event) 632: <div class="events-countdown d-flex flex-column justify-content-center w-100"> 633: <div class="counter-details"> 634: <div class="counter-details-inner"> 635: #set ($countdownDateServer = $tool.timeZone.shift($event.date, $event.localTimeZone, $tool.timeZone.systemTimeZone)) 636: #set ($countdownDate = $formatter.formatDate($countdownDateServer, "yyyy-MM-dd+HH:mm:ss+z")) 637: $website.includeAgain("component-countdown-digits-template?date=${countdownDate}") 638: </div> 639: </div> 640: </div> 641: #end 642: 643: #macro (printNotation $title $notation) 644: <span class="notation small text-muted" title="$title">$notation</span> 645: #end 646: 647: #macro (printNotations $event) 648: #if ($event.conference) #printNotation("Conference", $confNotation) #end 649: #if ($event.division) #printNotation("Division", $divisionNotation) #end 650: #if (!$event.overall) #printNotation("Do not count in overall record", $exhibitionNotation) #end 651: #if ($event.postseason) #printNotation("Post season", $postseasonNotation) #end 652: #end 653: 654: #macro (printTeamLogoSetWidth $team $width) 655: #if ($showTeamLogo && $team.teamId.length() > 0) 656: <span class="event-logo logo-placeholder"> 657: <img src="${website.teamLogo($team.teamId)}" alt="$team.name team logo" style="max-width:${width}px; max-height:${width}px" class="#if ($enhancedLayout)img-thumbnail border-0#end" /> 658: </span> 659: #end 660: #end 661: 662: #macro (printTeamName $team) 663: #if ($team.name.length() > 0) 664: #if ($confmemberIDs.contains($team.teamId) && $page.teams.size() > 1 && !$isTeamSchedule) 665: <a href="${page.url}?teamId=${team.teamId}" class="text-decoration-none $page.teams.size()" title="${team.name}"> 666: <span class="team-name">$team.name</span> 667: </a> 668: #else 669: <span class="team-name" title="${team.name}">$team.name</span> 670: #end 671: #end 672: #end 673: 674: #macro (printAPResult $event) 675: #if ($resultFormat.equals("AP1")) 676: #set ($APResult = $event.APResult) 677: #elseif ($resultFormat.equals("AP2")) 678: #set ($APResult = $event.AP2Result) 679: #end 680: 681: #if (!$event.inProgress && $APResult.length() > 0) 682: #if ($APResult.startsWith("W, ")) 683: $APResult.replace("W, ", '<span class="text-success" data-context="result">W</span><span class="fw-normal">,</span> ') 684: #elseif ($APResult.startsWith("L, ")) 685: $APResult.replace("L, ", '<span class="text-danger" data-context="result">L</span><span class="fw-normal">,</span> ') 686: #else 687: $APResult 688: #end 689: #else 690: $event.result 691: #end 692: #end 693: 694: #macro (printEventStatus $event) 695: #if ($includeTimeZone) 696: #if ($includeTimeZone.contains('local')) 697: $formatter.formatStatus($event).setTimeFormat("h:mm a z").useEventTimeZone() 698: #else 699: $formatter.formatStatus($event).setTimeFormat("h:mm a z") 700: #end 701: #else 702: $formatter.formatStatus($event) 703: #end 704: #end 705: 706: #macro (printEventNeutralSite $event) 707: #if ($event.neutralSite.length() > 0) 708: @ $event.neutralSite 709: #end 710: #end 711: 712: #macro (printEventNotes $event) 713: #if ($event.notes.length() > 0) 714: $event.notes 715: #end 716: #end 717: 718: #macro (printBoxscoreRecapUrl $event) 719: #set ($boxscoreURL = "") 720: #set ($recapURL = "") 721: #foreach ($link in $event.links) 722: #if ($boxscoreURL.length() == 0 && $link.url.endsWith(".xml") && $link.mapType == "BS" && !$website.isExternalLink($link.url)) 723: data-boxscore="$link.url" 724: #elseif ($link.mapType == "RC" && $recapURL.length() == 0 && !$website.isExternalLink($link.url)) 725: data-recap="$link.url" 726: #end 727: #end 728: #end 729: 730: #macro (printTeamListImage $src $alt $class) 731: #set ($src = "${src}?max_height=576&max_width=576&crop=1") 732: <div class="ratio ratio-1x1"> 733: <span class="align-content-center"> 734: <img src="${src}" alt="${alt}" class="${class}" /> 735: </span> 736: </div> 737: #end 738: 739: #macro (printImage $src $alt $class) 740: #set ($src = "${src}?max_height=576&max_width=576&crop=1") 741: <div class="ratio ratio-1x1 rounded-circle overflow-hidden img-thumbnail"> 742: <span class="align-content-center"> 743: <img src="${src}" alt="${alt}" class="${class}" /> 744: </span> 745: </div> 746: #end 747: 748: #macro (printSharedMeet) 749: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 750: #set ($teamsThreshold = 20) 751: 752: #if ($teams.size() > $teamsThreshold) 753: #set ($teamsByAlphabets = {}) 754: #foreach ($team in $teams) 755: #set ($firstLetter = $team.value.charAt(0)) 756: #set ($arr = []) 757: #if ($teamsByAlphabets.containsKey($firstLetter)) 758: #set ($arr = $teamsByAlphabets.get($firstLetter)) 759: #end 760: #set ($bool = $arr.add($team)) 761: #set ($val = $teamsByAlphabets.put($firstLetter, $arr)) 762: #end 763: 764: <ul class="team-alphabets"> 765: #foreach ($alphabet in $teamsByAlphabets.entrySet()) 766: <li><a href="#${alphabet.key}">$alphabet.key</a></li> 767: #end 768: </ul> 769: 770: <div class="team-list clearfix"> 771: <div class="col"> 772: #foreach ($obj in $teamsByAlphabets.entrySet()) 773: #if ($velocityCount == 8 || $velocityCount == 15) 774: </div><div class="col"> 775: #end 776: #set ($teamList = $obj.value) 777: <ul> 778: <li class="title" id="${obj.key}">$obj.key</li> 779: #foreach ($team in $teamList) 780: <li><a href="${page.url}?teamId=${team.key}">$team.value</a></li> 781: #end 782: </ul> 783: #end 784: </div> 785: </div> 786: #else ## less than threshold 787: #if ($teams.size() == 0) 788: <div class="alert alert-secondary" role="alert"> 789: There are no teams that match this criteria. Please check back soon! 790: </div> 791: #else 792: <div class="team-list p-3 p-lg-5 border"> 793: <div class="fs-5 text-center mb-3">Available Team Schedules</div> 794: <div class="btn-toolbar d-flex justify-content-center align-items-center gap-2 mb-3"> 795: #foreach ($team in $teams) 796: <div> 797: <a href="${page.url}?teamId=${team.key}" class="btn btn-link border-0 text-decoration-none"> 798: <span class="d-flex justify-content-start align-items-center gap-2"> 799: <span class="img-mw-3" style="width:3rem;"> 800: #printTeamListImage($website.teamLogo($!{team.key}), ${team.value}, "img-fluid") 801: </span> 802: </span> 803: </a> 804: </div> 805: #end 806: </div> 807: <div class="btn-toolbar d-flex justify-content-center align-items-center gap-2"> 808: #foreach ($team in $teams) 809: <a href="${page.url}?teamId=${team.key}" class="btn btn-link border text-decoration-none"> 810: $team.value 811: </a> 812: #end 813: </div> 814: </div> 815: #* 816: <div class="team-list"> 817: <div class="row row-cols-2 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 g-3"> 818: #foreach ($team in $teams) 819: <div class="cards col"> 820: <div class="card position-relative"> 821: <div class="card-body d-flex flex-column gap-2"> 822: <div class="card-team-logo text-center w-100"> 823: <div class="d-flex flex-column align-items-center justify-content-center"> 824: <div style="width:5rem;"> 825: #printTeamListImage($website.teamLogo($!{team.key}), ${team.value}, "img-fluid") 826: </div> 827: </div> 828: </div> 829: <div class="card-title entry-title fw-bold mb-0 text-center"> 830: <a href="${page.url}?teamId=${team.key}" class="stretched-link">$team.value</a> 831: </div> 832: </div> 833: </div> 834: </div> 835: #end 836: </div> 837: </div> 838: 839: *# 840: #end 841: #end ## teams threshold 842: #end ## printSharedMeet 843: 844: #set($statClass = "flex-fill text-center border-bottom border-end p-2 p-lg-3 col-4 col-sm-3 col-md-4 col-lg-auto") 845: 846: #macro (printStat $label $val) 847: <li class="$statClass"> 848: <div class="d-flex flex-column justify-content-center align-items-center h-100"> 849: <div class="small text-uppercase text-muted">$label</div> 850: <div class="fs-5 lh-1 text-nowrap fw-bold">$val</div> 851: </div> 852: </li> 853: #end 854: 855: #macro (printStatGraph $label $val) 856: <li class="$statClass"> 857: <div class="d-flex flex-column justify-content-center align-items-center h-100 proj-progress-card"> 858: <div class="small text-uppercase fw-normal">$label</div> 859: <div class="fs-5 lh-1 text-nowrap fw-bold">$formatter.formatNumber($val, "#.000")</div> 860: 861: #set ($percent = $tool.math.mul($val, 100)) 862: <div class="progress mt-2 w-75"> 863: <div class="progress-bar bg-primary" role="progressbar" style="width: $formatter.formatNumber($percent, 1)%;" aria-valuenow="$formatter.formatNumber($percent, 1)" aria-valuemin="0" aria-valuemax="100"></div> 864: </div> 865: </div> 866: </li> 867: #end 868: 869: #macro (printEventCountdown) 870: ## NEXT EVENT COUNTDOWN 871: #if ($showEventCountdown) 872: 873: 874: #set ($currentDate = $now) 875: #set ($dateFormat = "MMM dd") 876: #set ($dayFormat = "EEEE") 877: 878: #set ($eventList = []) 879: 880: ## filter out exhibition events and count the number of previous and upcoming events 881: #foreach ($event in $schedule.events) 882: #if ($event.date && ($event.overall || !$hideExhibition) && !$event.cancelled && !$event.postponed) 883: #set ($eventServerDate = $tool.timeZone.shift($event.date, $event.localTimeZone, $tool.timeZone.systemTimeZone)) 884: #if (!$eventServerDate.before($currentDate)) 885: #set ($val = $eventList.add($event)) 886: #end 887: #end 888: #end 889: 890: #if ($eventList.size() > 0) 891: #printNextEventList($eventList) 892: $request.setAttribute("scheduleNextEvent", false) ## resetting this to false ensures the schedule will feature a next event if present. 893: #end 894: #end 895: #end 896: 897: #macro(eventDate $event) 898: ## conversion of a date into string and back to date sets the time to 00:00 899: #set ($today = $formatter.formatDate($now, "MMMM dd yyyy")) 900: #set ($today = $tool.date.format("MMMM dd yyyy", $today)) 901: #set ($date = $tool.date.format("MMMM dd yyyy", $event.date)) 902: #if($date.equals($today)) 903: Today 904: #else 905: $formatter.formatDate($event.date, "${dateFormat}") 906: #end 907: #end 908: 909: #macro (printTeamStats) 910: #if ($schedule.numericResults && $isTeamSchedule) 911: #set ($number = $schedule.Record.winPercentage) 912: #set ($confnumber = $schedule.conferenceRecord.winPercentage) 913: 914: <ul class="team-stats list-unstyled d-flex flex-wrap justify-content-center align-items-stretch border-top border-start"> 915: #printStat("Overall", $schedule.Record) 916: #printStatGraph("PCT", $number) 917: #printStat("Conf", $schedule.ConferenceRecord) 918: #printStatGraph("C.PCT", $confnumber) 919: #set ($streak = $schedule.streak.toString().replace('Lost ', '<span data-context="result">L</span>').replace('Won ', '<span data-context="result">W</span>')) 920: #printStat("Streak", $streak) 921: #printStat("Home", $schedule.homeRecord) 922: #printStat("Away", $schedule.awayRecord) 923: #printStat("Neutral", $schedule.neutralRecord) 924: </ul> ## team-stats 925: #end 926: #end ## printTeamStats 927: 928: #macro (liveEventIndicator) 929: <div class="next-event-header fw-bold d-flex align-items-center justify-content-start gap-2"> 930: <span class="fa fa-circle fa-sm fa-beat-fade text-primary" aria-hidden="true"></span> 931: <span>#printEventStatus($event)</span> 932: </div> 933: #end 934: 935: #macro (nextEventIndicator) 936: <div class="next-event-header fw-bold d-flex align-items-center justify-content-start gap-2"> 937: <span class="fa-regular fa-bell"></span> 938: <span class="text">Next Event</span> 939: </div> 940: #end 941: 942: #macro (printTeamEventForNextEvent $event) 943: <div class="card-header"> 944: <div class="next-event-header fw-bold d-flex align-items-center justify-content-center gap-2"> 945: <span class="text">Next Event</span> 946: </div> 947: </div> 948: <div class="card-body"> 949: <div class="d-flex flex-column justify-content-center align-items-center gap-2"> 950: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-3 w-100"> 951: <div class="text-start flex-grow-1 flex-shrink-1 w-100"> 952: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-2 gap-md-3"> 953: #if ($showTeamLogo && $event.opponent.teamId.length() > 0) 954: <div class="logo-aside-container"> 955: <div class="lac-placeholder bg-primary border rounded p-2"> 956: #printTeamLogoSetWidth($event.opponent, 72) 957: </div> 958: </div> 959: #end 960: <div class="flex-grow-1"> 961: <div class="d-flex flex-column align-items-center align-items-md-start justify-content-center gap-1"> 962: <div class="event-opponent d-flex align-items-center justify-content-center gap-2 fs-5"> 963: #printLocationIcon($event) 964: <span class="event-opponent-name mb-0 fw-bold align-middle">#printTeamName($event.opponent)</span> 965: #printNotations($event) 966: </div> 967: <div class="event-dateinfo"> 968: <div class="d-flex align-items-center justify-content-start gap-3"> 969: <div class="date d-flex align-items-center justify-content-center gap-1"> 970: <span class="fa fa-calendar-o fa-sm text-muted" aria-hidden="true"></span> 971: <span>#eventDate($event)</span> 972: </div> 973: <div class="status d-flex align-items-center justify-content-center gap-1"> 974: <span class="fa-regular fa-clock fa-sm text-muted" aria-hidden="true"></span> 975: <span>#printEventStatus($event)</span> 976: </div> 977: </div> 978: </div> 979: #if ($event.neutralSite.length() > 0) 980: <div class="event-neutralsite small text-muted text-center text-md-start">#printEventNeutralSite($event)</div> 981: #end 982: </div> 983: </div> 984: </div> 985: </div> 986: <div class="text-md-right flex-grow-1 flex-shrink-1 w-100"> 987: <div class="d-flex flex-column flex-md-row align-items-center flex-nowrap justify-content-end gap-3"> 988: #neCounter($event) 989: </div> 990: </div> 991: </div> 992: <div class="details d-flex flex-wrap gap-3 align-items-center justify-content-center w-100"> 993: #if ($event.notes.length() > 0) 994: <div class="event-notes small text-muted text-center">#printEventNotes($event)</div> 995: #end 996: </div> 997: </div> 998: </div> 999: #if($event.links.size() > 0) 1000: <div class="card-footer small"> 1001: <div class="event-controls d-flex flex-column flex-md-row align-items-md-center justify-content-center gap-3 "> 1002: <div class="event-links list-inline d-flex align-items-center justify-content-center gap-3 flex-wrap flex-grow-1"> 1003: #printEventCardLinks($event) 1004: </div> 1005: </div> 1006: </div> 1007: #end 1008: #end ## printTeamEventForNextEvent 1009: 1010: #macro (printConfEventForNextEvent $event) 1011: #set ($awayTeam = $event.teams.get(0)) 1012: #set ($homeTeam = $event.teams.get(1)) 1013: 1014: #set ($awayClass = "away") 1015: #set ($homeClass = "home") 1016: 1017: #if ($awayTeam.winner) 1018: #set ($awayClass = "${awayClass} winner") 1019: #set ($homeClass = "${homeClass} loser") 1020: #elseif ($homeTeam.winner) 1021: #set ($awayClass = "${awayClass} loser") 1022: #set ($homeClass = "${homeClass} winner") 1023: #end 1024: 1025: <div class="card-header"> 1026: <div class="next-event-header fw-bold d-flex align-items-center justify-content-center gap-2"> 1027: <span class="text">Next Event</span> 1028: </div> 1029: </div> 1030: <div class="card-body"> 1031: <div class="d-flex flex-column justify-content-center align-items-center gap-2"> 1032: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-3 w-100"> 1033: <div class="text-start flex-grow-1 w-100"> 1034: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-2 gap-md-3"> 1035: #if ($showTeamLogo && ($awayTeam.teamId.length() > 0 || $homeTeam.teamId.length() > 0)) 1036: <div class="logo-aside-container conference-logo"> 1037: <div class="d-flex flex-row flex-nowrap align-items-center justify-content-center gap-2"> 1038: #if ($awayTeam.teamId.length() > 0) 1039: <div class="lac-placeholder bg-primary border rounded p-2"> 1040: #printTeamLogoSetWidth($awayTeam, 84) 1041: </div> 1042: #end 1043: #if ($homeTeam.teamId.length() > 0) 1044: <div class="lac-placeholder bg-primary border rounded p-2"> 1045: #printTeamLogoSetWidth($homeTeam, 84) 1046: </div> 1047: #end 1048: </div> 1049: </div> 1050: #end 1051: 1052: <div class="flex-grow-1"> 1053: <div class="d-flex flex-column align-items-center align-items-md-start justify-content-center gap-1"> 1054: <div class="event-home-team d-flex flex-column align-items-center align-items-md-start justify-content-center justify-content-md-start gap-0 fs-5 w-100"> 1055: <div class="event-team-name away-team d-flex align-items-center justify-content-center gap-2"> 1056: <span class="event-opponent-name mb-0 fw-bold align-middle">#printTeamName($awayTeam)</span> 1057: </div> 1058: <div class="event-team-name home-team d-flex align-items-center justify-content-center justify-content-md-start gap-2"> 1059: #printLocationIcon($event) 1060: <span class="event-opponent-name mb-0 fw-bold align-middle">#printTeamName($homeTeam)</span> 1061: #printNotations($event) 1062: </div> 1063: </div> 1064: <div class="event-dateinfo"> 1065: <div class="d-flex align-items-center justify-content-start gap-3"> 1066: <div class="date d-flex align-items-center justify-content-center gap-1"> 1067: <span class="fa fa-calendar-o fa-sm text-muted" aria-hidden="true"></span> 1068: <span>#eventDate($event)</span> 1069: </div> 1070: <div class="status d-flex align-items-center justify-content-center gap-1"> 1071: <span class="fa-regular fa-clock fa-sm text-muted" aria-hidden="true"></span> 1072: <span>#printEventStatus($event)</span> 1073: </div> 1074: </div> 1075: </div> 1076: #if ($event.neutralSite.length() > 0) 1077: <div class="event-neutralsite small text-muted text-center text-md-start">#printEventNeutralSite($event)</div> 1078: #end 1079: </div> 1080: </div> 1081: </div> 1082: </div> 1083: <div class="text-md-right flex-grow-1 flex-shrink-1 w-100"> 1084: <div class="d-flex flex-column flex-md-row align-items-center flex-nowrap justify-content-end gap-3"> 1085: #neCounter($event) 1086: </div> 1087: </div> 1088: </div> 1089: <div class="details d-flex flex-wrap gap-3 align-items-center justify-content-center w-100"> 1090: #if ($event.notes.length() > 0) 1091: <div class="event-notes small text-muted text-center">#printEventNotes($event)</div> 1092: #end 1093: </div> 1094: </div> 1095: </div> 1096: #if($event.links.size() > 0 || $eventOverview) 1097: <div class="card-footer small"> 1098: <div class="event-controls d-flex flex-column flex-md-row align-items-md-center justify-content-center gap-3 "> 1099: <div class="event-links list-inline d-flex align-items-center justify-content-center gap-3 flex-wrap flex-grow-1"> 1100: #printEventCardLinks($event) 1101: </div> 1102: </div> 1103: </div> 1104: #end 1105: 1106: #end ## printConferenceEventForNextEvent 1107: 1108: #macro (printTeamEvent $event) 1109: #if ($eventClass.contains("schedule-next-event-indicator")) 1110: <div class="card-header"> 1111: #nextEventIndicator() 1112: </div> 1113: #elseif ($eventClass.contains("in-progress")) 1114: <div class="card-header"> 1115: #liveEventIndicator() 1116: </div> 1117: #end 1118: #if($eventClass.contains("has-recap")) 1119: #set ($eventOverview = true) 1120: #end 1121: <div class="card-body"> 1122: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-3"> 1123: <div class="text-start flex-grow-1 flex-shrink-1 w-100"> 1124: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-2"> 1125: #if ($showTeamLogo && $event.opponent.teamId.length() > 0) 1126: <div class="logo-aside-container"> 1127: #printTeamLogoSetWidth($event.opponent, 72) 1128: </div> 1129: #end 1130: <div class="flex-grow-1"> 1131: <div class="d-flex flex-column align-items-center align-items-md-start justify-content-center gap-2"> 1132: <div class="event-opponent d-flex align-items-center justify-content-center gap-2 fs-5"> 1133: #printLocationIcon($event) 1134: <span class="event-opponent-name mb-0 #if(($event.home && $event.neutralSite.length() == 0) && $isTeamSchedule)fw-bold#end align-middle">#printTeamName($event.opponent)</span> 1135: #printNotations($event) 1136: </div> 1137: <div class="event-dateinfo"> 1138: <div class="d-flex align-items-center justify-content-start gap-3"> 1139: <div class="date d-flex align-items-center justify-content-center gap-1"> 1140: <span class="fa fa-calendar-o fa-sm text-muted" aria-hidden="true"></span> 1141: <span>#eventDate($event)</span> 1142: </div> 1143: <div class="status d-flex align-items-center justify-content-center gap-1"> 1144: <span class="fa-regular fa-clock fa-sm text-muted" aria-hidden="true"></span> 1145: <span>#printEventStatus($event)</span> 1146: </div> 1147: </div> 1148: </div> 1149: #if ($event.neutralSite.length() > 0) 1150: <div class="event-neutralsite small text-muted text-center text-md-start">#printEventNeutralSite($event)</div> 1151: #end 1152: </div> 1153: </div> 1154: </div> 1155: </div> 1156: <div class="text-md-right flex-grow-1 flex-shrink-1 w-100"> 1157: <div class="d-flex flex-column flex-md-row align-items-center flex-nowrap justify-content-end gap-3"> 1158: ## Link Processing 1159: #set($boxscoreURL = "") 1160: #foreach ($link in $event.links) 1161: #if ($link.url.endsWith(".xml") && $link.mapType == "BS" && !$website.isExternalLink($link.url)) 1162: #set($boxscoreURL = $link.url) 1163: #end 1164: #end 1165: #if($leaderSportsMapped.contains($sport.replace("women's ", "").replace("men's ", ""))) 1166: #if ($showLeaders && $rosterHeadshots.size() > 0 && ($boxscoreURL.length() > 0)) 1167: <div class="text-md-center"> 1168: <div class="game-leaders d-none d-md-flex align-items-center justify-content-start"> 1169: $website.include("${boxscoreURL}?tmpl=schedule-game-leaders-template&teamId=${schedule.teamId}") 1170: </div> 1171: </div> 1172: #end 1173: #end 1174: <div class="text-md-center flex-grow-1"> 1175: <div class="d-flex flex-column align-items-center align-items-md-end justify-content-center gap-1"> 1176: <div class="event-result fw-bold text-nowrap fs-5">#printAPResult($event)</div> 1177: <div class="details d-flex flex-wrap gap-3 align-items-center justify-content-center justify-content-md-start"> 1178: <div class="event-notes small text-muted text-center text-md-end">#printEventNotes($event)</div> 1179: </div> 1180: </div> 1181: </div> 1182: </div> 1183: </div> 1184: </div> 1185: </div> 1186: #if($event.links.size() > 0 || $eventOverview) 1187: <div class="card-footer small"> 1188: <div class="event-controls d-flex flex-column flex-md-row align-items-md-center justify-content-center gap-3 "> 1189: <div class="event-links list-inline d-flex align-items-center justify-content-center justify-content-md-start gap-3 flex-wrap flex-grow-1"> 1190: #printEventCardLinks($event) 1191: </div> 1192: #if($eventOverview) 1193: <div class="event-overview d-none d-md-flex overflow-hidden border-start me-n3 mt-n2 mb-n2"> 1194: <a class="btn d-block btn-link event-overview-toggle w-100" aria-label="Event Overview"><span class="fa-regular fa-plus"></span></a> 1195: </div> 1196: #end 1197: </div> 1198: </div> 1199: #end 1200: 1201: #end ## printTeamEvent 1202: 1203: #macro (printConfEvent $event) 1204: #set ($awayTeam = $event.teams.get(0)) 1205: #set ($homeTeam = $event.teams.get(1)) 1206: 1207: #set ($awayClass = "away") 1208: #set ($homeClass = "home") 1209: 1210: #if ($awayTeam.winner) 1211: #set ($awayClass = "${awayClass} winner") 1212: #set ($homeClass = "${homeClass} loser") 1213: #elseif ($homeTeam.winner) 1214: #set ($awayClass = "${awayClass} loser") 1215: #set ($homeClass = "${homeClass} winner") 1216: #end 1217: 1218: #if ($eventClass.contains("schedule-next-event-indicator")) 1219: <div class="card-header"> 1220: #nextEventIndicator() 1221: </div> 1222: #elseif ($eventClass.contains("in-progress")) 1223: <div class="card-header"> 1224: #liveEventIndicator() 1225: </div> 1226: #end 1227: 1228: #if($eventClass.contains("has-recap")) 1229: #set ($eventOverview = true) 1230: #end 1231: 1232: <div class="card-body"> 1233: <div class="d-flex flex-column flex-md-row justify-content-center align-items-center gap-3"> 1234: <div class="text-start flex-grow-1 w-100"> 1235: <div class="d-flex flex-row justify-content-center align-items-center gap-2 #if($awayTeam.winner) fw-bold #end"> 1236: #if ($showTeamLogo && $awayTeam.teamId.length() > 0) 1237: <div class="logo-aside-container"> 1238: #printTeamLogoSetWidth($awayTeam, 40) 1239: </div> 1240: #end 1241: <div class="flex-grow-1 text-start"> 1242: <div class="d-flex flex-column align-items-start justify-content-center gap-1"> 1243: <div class="event-team-name away-team d-flex align-items-center justify-content-center gap-2"> 1244: <span class="event-opponent-name mb-0 align-middle">#printTeamName($awayTeam)</span> 1245: #printNotations($event) 1246: </div> 1247: </div> 1248: </div> 1249: <div class="flex-shrink-1"> 1250: #if($awayTeam.winner)<span class="fa-solid fa-sm fa-caret-right"></span>#end ${awayTeam.result} 1251: </div> 1252: </div> 1253: <div class="d-flex flex-row justify-content-center align-items-center gap-2 #if($homeTeam.winner) fw-bold #end"> 1254: #if ($showTeamLogo && $homeTeam.teamId.length() > 0) 1255: <div class="logo-aside-container"> 1256: #printTeamLogoSetWidth($homeTeam, 40) 1257: </div> 1258: #end 1259: <div class="flex-grow-1 text-start"> 1260: <div class="d-flex flex-column align-items-start justify-content-centergap-1"> 1261: <div class="event-team-name home-team d-flex align-items-center justify-content-center gap-2"> 1262: <span class="event-opponent-name mb-0 align-middle">#printTeamName($homeTeam)</span> 1263: #printNotations($event) 1264: </div> 1265: </div> 1266: </div> 1267: <div class="flex-shrink-1"> 1268: #if($homeTeam.winner)<span class="fa-solid fa-sm fa-caret-right"></span>#end ${homeTeam.result} 1269: </div> 1270: </div> 1271: </div> 1272: <div class="text-md-right flex-shrink-1 col-md-6 col-lg-4"> 1273: <div class="d-flex flex-column align-items-center align-items-md-end justify-content-center gap-1 text-center text-md-end"> 1274: <div class="event-dateinfo"> 1275: <div class="d-flex flex-column align-items-center justify-content-start align-items-lg-end justify-content-lg-end gap-2"> 1276: <div class="date d-flex align-items-center justify-content-center gap-1"> 1277: <span class="fa fa-calendar-o fa-sm text-muted" aria-hidden="true"></span> 1278: <span>#eventDate($event)</span> 1279: </div> 1280: <div class="status d-flex align-items-center justify-content-center gap-1"> 1281: <span class="fa-regular fa-clock fa-sm text-muted" aria-hidden="true"></span> 1282: <span>#printEventStatus($event)</span> 1283: </div> 1284: </div> 1285: </div> 1286: #if ($event.neutralSite.length() > 0) 1287: <div class="event-neutralsite small text-muted text-center text-md-end">#printEventNeutralSite($event)</div> 1288: #end 1289: <div class="details d-flex flex-wrap gap-3 align-items-center justify-content-center justify-content-md-start"> 1290: <div class="event-notes small text-muted text-center text-md-end">#printEventNotes($event)</div> 1291: </div> 1292: #if($leaderSportsMapped.contains($sport.replace("women's ", "").replace("men's ", ""))) 1293: #if ($showLeaders && $rosterHeadshots.size() > 0 && ($boxscoreURL.length() > 0)) 1294: <div class="game-leaders d-none d-md-flex align-items-center justify-content-center justify-content-lg-end"> 1295: $website.include("${boxscoreURL}?tmpl=schedule-game-leaders-template&teamId=${schedule.teamId}") 1296: </div> 1297: #end 1298: #end 1299: </div> 1300: </div> 1301: </div> 1302: </div> 1303: #if($event.links.size() > 0 || $eventOverview) 1304: <div class="card-footer small"> 1305: <div class="event-controls d-flex flex-column flex-md-row align-items-md-center justify-content-center gap-3 "> 1306: <div class="event-links list-inline d-flex align-items-center justify-content-center justify-content-md-start gap-3 flex-wrap flex-grow-1"> 1307: #printEventCardLinks($event) 1308: </div> 1309: #if($eventOverview) 1310: <div class="event-overview d-none d-md-flex overflow-hidden border-start me-n3 mt-n2 mb-n2"> 1311: <a class="btn d-block btn-link event-overview-toggle w-100" aria-label="Event Overview"><span class="fa-regular fa-plus"></span></a> 1312: </div> 1313: #end 1314: </div> 1315: </div> 1316: #end 1317: 1318: #end ## printConferenceEvent 1319: 1320: #macro (printLocationIcon $event) 1321: #if ($event.neutralSite.length() > 0 || $event.home) 1322: <span class="event-location-badge m-0 align-middle text-muted small">vs</span> 1323: #else 1324: <span class="event-location-badge m-0 align-middle text-muted small">at</span> 1325: #end 1326: #end 1327: 1328: #macro(buildEventClass $event) 1329: #set($class = "event-row") 1330: 1331: ## Location 1332: #if ($event.neutralSite.length() > 0) 1333: #set($class = "${class} neutral") 1334: #elseif ($event.home) 1335: #set($class = "${class} home") 1336: #else 1337: #set($class = "${class} away") 1338: #end 1339: 1340: ## Metadata Flags 1341: #if ($event.inProgress) 1342: #set($class = "${class} in-progress") 1343: #end 1344: #if ($event.conference) 1345: #set($class = "${class} conf") 1346: #end 1347: #if ($event.postseason) 1348: #set($class = "${class} postseason") 1349: #end 1350: #if ($event.division) 1351: #set($class = "${class} division") 1352: #end 1353: #if (!$event.overall) 1354: #set($class = "${class} exhibition") 1355: #end 1356: 1357: ## Schedule Status 1358: #if ($event.statusCode < 0 && !$event.inProgress) 1359: #if ($event.date && !$event.date.before($now)) 1360: #if (!$request.getAttribute("scheduleNextEvent")) 1361: #set($class = "${class} upcoming schedule-next-event-indicator") 1362: $request.setAttribute("scheduleNextEvent", true) 1363: #else 1364: #set($class = "${class} upcoming") 1365: #end 1366: #end 1367: #else 1368: #set($class = "${class} result") 1369: #end 1370: 1371: ## Link Processing 1372: #set($boxscoreURL = "") 1373: #set($recapURL = "") 1374: #foreach ($link in $event.links) 1375: #if ($link.url.endsWith(".xml") && $link.mapType == "BS" && !$website.isExternalLink($link.url)) 1376: #set($boxscoreURL = $link.url) 1377: #elseif ($link.mapType == "RC" && !$website.isExternalLink($link.url)) 1378: #set($recapURL = $link.url) 1379: #end 1380: #end 1381: 1382: #if (($boxscoreURL && $boxscoreURL.length() > 0) || ($recapURL && $recapURL.length() > 0)) 1383: #set($class = "${class} has-recap") 1384: #end 1385: 1386: #if ($recapURL && $recapURL.length() > 0) 1387: #set($class = "${class} has-links") 1388: #end 1389: $request.setAttribute("eventClass", $class) 1390: #end 1391: 1392: #macro (printEvents $evt $border) 1393: #if(!$border) 1394: #set($border = false) 1395: #end 1396: 1397: #if ($enhancedLayout) 1398: #printCards($evt, $border) 1399: #else 1400: #printTable($evt, $border) 1401: #end 1402: #end 1403: 1404: #macro (printCollapsibleMonths $evts) 1405: #set ($lastDate = "") 1406: #set ($lastTournament = "") 1407: #set ($eventsByMonth = {}) 1408: 1409: ## Group events by month 1410: #foreach($event in $evts) 1411: #set($monthKey = $formatter.formatDate($event.date, "MMMM")) 1412: #if (!$eventsByMonth.containsKey($monthKey)) 1413: #set($discard = $eventsByMonth.put($monthKey, [])) 1414: #end 1415: #set($discard = $eventsByMonth.get($monthKey).add($event)) 1416: #end 1417: 1418: ## Sort months chronologically 1419: #set($monthOrder = []) 1420: #foreach($monthName in $eventsByMonth.keySet()) 1421: #set($firstEventDate = $eventsByMonth.get($monthName).get(0).date) 1422: #set($eventYear = $formatter.formatDate($firstEventDate, "yyyy")) 1423: #set($dateString = "1 $monthName $eventYear") 1424: #set($monthDate = $dateTool.get($dateString)) 1425: #set($discard = $monthOrder.add({"name": $monthName, "date": $monthDate})) 1426: #end 1427: #set($monthOrder = $tool.sorter.sort($monthOrder, "date")) 1428: 1429: ## Prepare output ordering 1430: #set($outputMonthOrder = []) 1431: #set($expandMonth = "") 1432: #set($currentMonthName = $formatter.formatDate($now, "MMMM")) 1433: #set($currentYear = $formatter.formatDate($now, "yyyy")) 1434: #set($currentMonthDate = $dateTool.get("1 $currentMonthName $currentYear")) 1435: 1436: #if($currentMonthFirst) 1437: #set($mostRecent = {}) 1438: #set($found = false) 1439: #foreach($m in $monthOrder) 1440: #if(!$found) 1441: #foreach($e in $eventsByMonth.get($m.name)) 1442: #if($e.date.after($now) || $e.date.equals($now)) 1443: #set($mostRecent = $m) 1444: #set($expandMonth = $m.name) 1445: #set($found = true) 1446: #break 1447: #end 1448: #end 1449: #end 1450: #end 1451: 1452: ## If no upcoming/current event found, fall back to last month safely 1453: #if(!$found) 1454: #set($mostRecent = {}) 1455: #foreach($m in $monthOrder) 1456: #set($mostRecent = $m) 1457: #end 1458: #if($mostRecent.name) 1459: #set($expandMonth = $mostRecent.name) 1460: #end 1461: #end 1462: 1463: ## Add most recent month first 1464: #if($mostRecent.name) 1465: #set($discard = $outputMonthOrder.add($mostRecent)) 1466: #end 1467: 1468: ## Add Completed Marker only before first past month 1469: #set($addedCompletedMarker = false) 1470: #foreach($m in $monthOrder) 1471: #if($m.name != $mostRecent.name) 1472: #set($monthEvents = $eventsByMonth.get($m.name)) 1473: #set($monthStatus = "month-past") 1474: #foreach($e in $monthEvents) 1475: #if($e.date.after($now)) 1476: #set($monthStatus = "month-upcoming") 1477: #break 1478: #elseif($e.date.equals($now)) 1479: #set($monthStatus = "month-current") 1480: #break 1481: #end 1482: #end 1483: #if(!$addedCompletedMarker && $monthStatus == "month-past") 1484: #set($discard = $outputMonthOrder.add({"name": "COMPLETED_MARKER"})) 1485: #set($addedCompletedMarker = true) 1486: #end 1487: #set($discard = $outputMonthOrder.add($m)) 1488: #end 1489: #end 1490: #else 1491: ## Normal chronological list (currentMonthFirst = false) 1492: #set($addedCompletedMarker = false) 1493: #set($foundCurrentOrUpcoming = false) 1494: #foreach($m in $monthOrder) 1495: #set($monthEvents = $eventsByMonth.get($m.name)) 1496: #set($monthStatus = "month-past") 1497: #foreach($e in $monthEvents) 1498: #if($e.date.after($now)) 1499: #set($monthStatus = "month-upcoming") 1500: #set($foundCurrentOrUpcoming = true) 1501: #break 1502: #elseif($e.date.equals($now)) 1503: #set($monthStatus = "month-current") 1504: #set($foundCurrentOrUpcoming = true) 1505: #break 1506: #end 1507: #end 1508: #if(!$addedCompletedMarker && $monthStatus == "month-past") 1509: #set($discard = $outputMonthOrder.add({"name": "COMPLETED_MARKER"})) 1510: #set($addedCompletedMarker = true) 1511: #end 1512: #set($discard = $outputMonthOrder.add($m)) 1513: #end 1514: 1515: ## Decide which month to expand: first upcoming/current or fallback to last past 1516: #set($expandMonth = "") 1517: #set($foundExpand = false) 1518: #foreach($m in $monthOrder) 1519: #set($monthEvents = $eventsByMonth.get($m.name)) 1520: #set($monthStatus = "month-past") 1521: #foreach($e in $monthEvents) 1522: #if($e.date.after($now)) 1523: #set($monthStatus = "month-upcoming") 1524: #break 1525: #elseif($e.date.equals($now)) 1526: #set($monthStatus = "month-current") 1527: #break 1528: #end 1529: #end 1530: #if(!$foundExpand && ($monthStatus == "month-current" || $monthStatus == "month-upcoming")) 1531: #set($expandMonth = $m.name) 1532: #set($foundExpand = true) 1533: #end 1534: #end 1535: ## If none found (all past), expand last month 1536: #if(!$foundExpand && $monthOrder.size() > 0) 1537: #set($lastMonth = {}) 1538: #foreach($m in $monthOrder) 1539: #set($lastMonth = $m) 1540: #end 1541: #if($lastMonth.name) 1542: #set($expandMonth = $lastMonth.name) 1543: #end 1544: #end 1545: #end 1546: 1547: #foreach($m in $outputMonthOrder) 1548: #if($m.name == "COMPLETED_MARKER") 1549: #if($currentMonthFirst) 1550: <div class="completed-months-heading small text-muted rounded text-center"> 1551: <span class="fa-solid fa-sm fa-dash"></span> Previous Months <span class="fa-solid fa-sm fa-dash"></span> 1552: </div> 1553: #end 1554: #else 1555: #set($month = $m.name) 1556: #set($monthEvents = $eventsByMonth.get($month)) 1557: #set($eventCount = $monthEvents.size()) 1558: #set($isExpanded = false) 1559: #if($month == $expandMonth || $isPrinterFriendly) 1560: #set($isExpanded = true) 1561: #end 1562: 1563: #set($collapseClass = "") 1564: #set($ariaExpanded = "false") 1565: #if($isExpanded) 1566: #set($collapseClass = "show") 1567: #set($ariaExpanded = "true") 1568: #end 1569: 1570: ## Determine month status 1571: #set($monthStatus = "month-past") 1572: #foreach($e in $monthEvents) 1573: #if($e.date.after($now)) 1574: #set($monthStatus = "month-upcoming") 1575: #break 1576: #elseif($e.date.equals($now)) 1577: #set($monthStatus = "month-current") 1578: #break 1579: #end 1580: #end 1581: 1582: <div class="section-event-month $month.toLowerCase() $monthStatus"> 1583: <a class="toggle-month text-decoration-none" aria-label="Open/Close $month Calendar" data-bs-toggle="collapse" href="#$month.toLowerCase()-collapse" role="button" aria-expanded="$ariaExpanded" aria-controls="$month.toLowerCase()-collapse"> 1584: <span class="d-block section-header rounded text-white bg-primary p-2 px-3 position-relative"> 1585: <span class="d-flex flex-row justify-content-start justify-content-between gap-3"> 1586: <span class="month-heading flex-grow-1 fw-bold"> 1587: <span class="month-title">$month</span> 1588: </span> 1589: <span class="month-heading-control flex-shrink-1 small"> 1590: <span class="month-count small">$eventCount event#if($eventCount > 1)s#end</span> 1591: </span> 1592: <span class="toggle-month-indicator opacity-3"> 1593: <span class="fa fa-solid fa-sm fa-chevron-up"></span> 1594: </span> 1595: </span> 1596: </span> 1597: </a> 1598: <div class="collapse navbar-collapse $collapseClass" id="$month.toLowerCase()-collapse"> 1599: <div class="event-month-list d-flex flex-column gap-3 mt-3"> 1600: #if ($groupDates) 1601: #printCollapsibleDates($monthEvents, true) 1602: #else 1603: #printEvents($monthEvents, true) 1604: #end 1605: </div> 1606: </div> 1607: </div> 1608: #end 1609: #end 1610: 1611: #end 1612: 1613: 1614: #macro (printCollapsibleDates $evt, $border) 1615: #if(!$border) 1616: #set($border = false) 1617: #end 1618: ## GROUP EVENTS BY MONTH 1619: #set($eventsByDate = {}) 1620: #foreach($event in $evt) 1621: #set($dateKey = $formatter.formatDate($event.date, "${dateFormat}")) 1622: #if (!$eventsByDate.containsKey($dateKey)) 1623: #set($eval = $eventsByDate.put($dateKey, [])) 1624: #end 1625: #set($eval = $eventsByDate.get($dateKey).add($event)) 1626: #end 1627: 1628: <div class="section-event-group-dates d-flex flex-column gap-3"> 1629: #foreach($date in $eventsByDate.keySet()) 1630: #set($dateEvents = $eventsByDate.get($date)) 1631: #set($eventCount = $dateEvents.size()) 1632: 1633: <div class="card #if($groupDates)border-0 rounded-0#end section-event-date" data-date="$date"> 1634: <div class="card-header px-2"> 1635: <div class="d-flex flex-row justify-content-start justify-content-between"> 1636: <div class="date-heading flex-grow-1"> 1637: <div class="d-flex align-items-center justify-content-start gap-2"> 1638: <span class="fa fa-calendar-o fa-sm text-muted" aria-hidden="true"></span> 1639: <span class="date-title fw-bold">$date</span> 1640: </div> 1641: </div> 1642: <div class="date-heading-control flex-shrink-1 small"> 1643: <span class="date-count small opacity-75">$eventCount event#if($eventCount > 1)s#end</span> 1644: </div> 1645: </div> 1646: </div> 1647: <div class="card-body event-date-list #if($groupDates)px-0 rounded-0#end"> 1648: <div class="d-flex align-items-center justify-content-center gap-3 flex-column"> 1649: #printEvents($dateEvents, $border) 1650: </div> 1651: </div> 1652: </div> 1653: #end 1654: </div> 1655: #end 1656: 1657: #macro (printTableDateCards $evt) 1658: 1659: ## GROUP EVENTS BY MONTH 1660: #set($eventsByDate = {}) 1661: #foreach($event in $evt) 1662: #set($dateKey = $formatter.formatDate($event.date, "${dateFormat}")) 1663: #if (!$eventsByDate.containsKey($dateKey)) 1664: #set($eval = $eventsByDate.put($dateKey, [])) 1665: #end 1666: #set($eval = $eventsByDate.get($dateKey).add($event)) 1667: #end 1668: 1669: <div class="section-event-group-dates d-flex flex-column gap-3"> 1670: #foreach($date in $eventsByDate.keySet()) 1671: #set($dateEvents = $eventsByDate.get($date)) 1672: #set($eventCount = $dateEvents.size()) 1673: 1674: <div class="card border section-event-date" data-date="$date"> 1675: <div class="card-header px-2"> 1676: <div class="d-flex flex-row justify-content-start justify-content-between"> 1677: <div class="date-heading flex-grow-1"> 1678: <div class="d-flex align-items-center justify-content-start gap-2"> 1679: <span class="fa fa-calendar-o fa-sm text-muted" aria-hidden="true"></span> 1680: <span class="date-title fw-bold">$date</span> 1681: </div> 1682: </div> 1683: <div class="date-heading-control flex-shrink-1 small"> 1684: <span class="date-count small opacity-75">$eventCount event#if($eventCount > 1)s#end</span> 1685: </div> 1686: </div> 1687: </div> 1688: <div class="card-body event-date-list"> 1689: #printTable($dateEvents) 1690: </div> 1691: </div> 1692: #end 1693: </div> 1694: #end 1695: 1696: #macro (printNextEventList $evt) 1697: #if ($evt.size() > 0) 1698: #set ($eventObject = {}) 1699: #set ($eventList = $tool.sorter.sort($evt, "date")) 1700: #set ($val = $eventObject.put('nextevent', $evt.get(0))) 1701: <div class="nextevent-list d-flex flex-column gap-3 d-print-none"> 1702: #foreach($event in $eventObject) 1703: #buildEventClass($event) 1704: #set($eventClass = $request.getAttribute("eventClass")) 1705: 1706: #printNextEventCard($evt) 1707: #end 1708: </div> 1709: #end 1710: #end 1711: 1712: #macro (printNextEventCard $evt) 1713: <div class="card w-100 ${eventClass} bg-primary text-white" #printBoxscoreRecapUrl($event)> 1714: #if ($isTeamSchedule || $event.teams.size() == 1) 1715: #printTeamEventForNextEvent($event) 1716: #elseif ($event.teams.size() == 2) ## conference schedule with head-to-head events 1717: #printConfEventForNextEvent($event) 1718: #end 1719: </div> 1720: #end 1721: 1722: #macro (printCards $evt $border) 1723: #foreach($event in $evt) 1724: 1725: #if ($isTeamSchedule) 1726: #set ($theDate = $formatter.formatDate($event.date, "MMMM")) 1727: #else 1728: #set ($theDate = $formatter.formatDate($event.date, "EEEE, MMMM dd, yyyy")) 1729: #end 1730: 1731: #if (!$lastDate.equals($theDate)) 1732: #set ($lastTournament = "") ## force clear of tournament name being held because the month/date needs to be closed as well. 1733: #end 1734: #set ($lastDate = $theDate) 1735: 1736: #if($schedule.includeTournamentLabels) 1737: #if($!schedule.tournamentEvent.get($event.eventId)) 1738: #if($lastTournament.length() > 0 && $schedule.tournamentEvent.get($event.eventId) != $lastTournament) 1739: </div> ## CLEAR PREVIOUS TOURNAMENT IS THIS TOURNAMENT IS DIFFERENT 1740: #set ($lastTournament = "") 1741: #end 1742: 1743: #if($lastTournament.length() == 0 || !$lastTournament.equals($schedule.tournamentEvent.get($event.eventId))) 1744: <div class="event-group-tournament d-flex flex-column gap-3 pb-3 border-5 border-secondary"> 1745: #end 1746: 1747: #if(!$lastTournament.equals($schedule.tournamentEvent.get($event.eventId))) 1748: <div class="event-tournament section-tournament-header rounded text-white bg-secondary p-2 px-3">$schedule.tournamentEvent.get($event.eventId)</div> 1749: #end 1750: 1751: #set ($lastTournament = $schedule.tournamentEvent.get($event.eventId)) 1752: #else 1753: #if($lastTournament.length() > 0) 1754: </div> ## must close all open tournament div if next event is not part of a tournament 1755: #set ($lastTournament = "") 1756: #end 1757: #end 1758: #end 1759: 1760: #buildEventClass($event) 1761: #set($eventClass = $request.getAttribute("eventClass")) 1762: 1763: #set ($sport = $event.sport.toLowerCase()) 1764: #if ($showLeaders && $rosterHeadshots.size() > 0 && $leaderSportsMapped.contains($sport.replace("women's ", "").replace("men's ", ""))) 1765: #set ($eventClass = "${eventClass} has-leaders") 1766: #else 1767: #set ($eventClass = "${eventClass} no-leaders") 1768: #end 1769: 1770: <div class="card w-100 ${eventClass}" #printBoxscoreRecapUrl($event)> 1771: #if ($isTeamSchedule || $event.teams.size() == 1) 1772: #printTeamEvent($event) 1773: #elseif ($event.teams.size() == 2) ## conference schedule with head-to-head events 1774: #printConfEvent($event) 1775: #end 1776: </div> 1777: 1778: #if($schedule.includeTournamentLabels) 1779: #if($foreach.last && $lastTournament.length() > 0) </div> #end 1780: #end 1781: #end 1782: #end 1783: 1784: 1785: #macro (printTable $evt) 1786: $request.setAttribute("icl-dataTables-script", true) 1787: 1788: <div class="table-responsive table-responsive-via-datatables mb-3 w-100"> 1789: <table class="table ${tableHelperClass} small w-100"> 1790: <thead> 1791: <tr> 1792: #set ($colCount = 0) 1793: #foreach ($label in $scheduleLabels) 1794: #set ($class = "") 1795: #if($label.toLowerCase().contains("date")) 1796: #set ($class = "${class} table-active") 1797: #elseif($label.toLowerCase().contains("away") || $label.toLowerCase().contains("home")) 1798: #set ($class = "${class} col-12 col-md-4 col-lg-3 w-25") 1799: #elseif($label.toLowerCase().contains("opponent") || $label.toLowerCase().contains("opponent+neutralsite")) 1800: #set ($class = "${class} col-12 col-md-4 col-lg-3 w-25") 1801: #elseif($label.toLowerCase().contains("links")) 1802: #set ($class = "${class} col-12 col-md-4 col-lg-3 w-25") 1803: #elseif($label.toLowerCase().contains("notes")) 1804: #set ($class = "${class} col-12 col-md-4 col-lg-3 w-25") 1805: #elseif($label.toLowerCase().contains("status")) 1806: #set ($class = "${class} w-1") 1807: #end 1808: #if (!$tool.list.get($scheduleFields, $tool.math.sub($velocityCount, 1)).startsWith("_")) 1809: <th class="${class}" data-field-name="${label.toLowerCase()}">$label</th> 1810: #set ($colCount = $colCount + 1) 1811: #end 1812: #end 1813: </tr> 1814: </thead> 1815: #set ($lastdate = "") 1816: #set ($lastMonth = "") 1817: #set ($counter = 0) 1818: <tbody class="event-group"> 1819: #foreach ($event in $evt) 1820: #set ($formattedDate = $formatter.formatDate($event.date, $dateFormat)) 1821: #set ($theDate = $formatter.formatDate($event.date, "MMMM dd yyyy")) 1822: #set ($theMonth = $formatter.formatDate($event.date, "MMMM")) 1823: 1824: #set ($counter = $counter + 1) 1825: 1826: #buildEventClass($event) 1827: #set($eventClass = $request.getAttribute("eventClass")) 1828: 1829: #if ($scheduleFields.contains("_date") && !$lastDate.equals($theDate)) 1830: <tr class="${eventClass} date-title"><td colspan="${colCount}">$formattedDate</td></tr> 1831: 1832: ## EVENTS ARE GROUPED WHEN HERE SO RESET COUNTER BACK TO 0 1833: #set ($counter = 0) 1834: #end 1835: 1836: 1837: <tr class="${eventClass}" #if ($event.inProgress) title="In Progress" #end> 1838: #foreach ($field in $scheduleFields) 1839: 1840: ## DATE 1841: #if ($field.equals("date")) 1842: <td class="date w-1 table-active align-middle #if ($event.home) fw-bold #end"> 1843: <div class="nowrap d-block"> 1844: #if (!$lastDate.equals($theDate)) $formattedDate #else #end 1845: </div> 1846: </td> 1847: #end 1848: 1849: ## OPPONENT 1850: #if ($field.equals("opponent") || $field.equals("opponent+neutralsite")) 1851: <td class="team opponent align-middle text-center text-lg-start"> 1852: <div class="team-opponent-wrapper d-flex flex-column align-items-center justify-content-center align-items-lg-start justify-content-lg-start gap-0"> 1853: <div class="w-100 d-flex flex-column flex-lg-row align-items-center align-items-lg-center justify-content-center justify-content-lg-start gap-1"> 1854: #printTeamLogoSetWidth($event.opponent, 32) 1855: <div class="flex-grow-1"> 1856: #if ($showVsAt) 1857: #printLocationIcon($event) 1858: #end 1859: <span class="#if ($event.home) fw-bold #end">#printTeamName($event.opponent)</span> 1860: </div> 1861: </div> 1862: #if ($field.equals("opponent+neutralsite") && $event.neutralSite.length() > 0) 1863: <span class="neutralsite text-muted small">@ $event.neutralSite</span> 1864: #end 1865: 1866: #if ($eventClass.contains("next") && $groupMonths.equals(true)) 1867: <span class="event-location-badge badge bg-dark m-0 me-1 align-middle nowrap small"> 1868: <span class="fa-solid fa-bullhorn fw-normal" aria-hidden="true"></span> <span class="fw-normal">Next Event</span> 1869: </span> 1870: #end 1871: </div> 1872: </td> 1873: #end 1874: 1875: ## RESULT 1876: #if ($field.equals("result") || $field.equals("result+status")) 1877: <td class="result align-middle #if($event.home) fw-bold #end"> 1878: <div class="d-flex align-items-center justify-content-center justify-content-lg-between gap-2 flex-nowrap w-100"> 1879: <span class="text-nowrap">#printAPResult($event)</span> 1880: #if ($field.equals("result+status")) 1881: #if ($eventClass.contains("in-progress")) 1882: <span class="fa fa-circle fa-sm fa-beat-fade text-primary" aria-hidden="true"></span> 1883: #end 1884: <span class="text-nowrap #if ($event.home) fw-bold #end">#printEventStatus($event)</span> 1885: #end 1886: </div> 1887: </td> 1888: #end 1889: 1890: ## TEAM AWAY 1891: #if ($field.equals("team_away") || $field.equals("team_away+team_away_result")) 1892: #set ($class = "team awayteam align-middle ") 1893: #if ($field.equals("team_away+team_away_result")) 1894: #set ($class = "${class} teamresult") 1895: #end 1896: <td class="$class"> 1897: #if ($event.teams.size() > 0) 1898: #set ($awayTeam = $event.teams.get(0)) 1899: <div class="d-flex align-items-center justify-content-center justify-content-md-start gap-2 flex-nowrap #if ($awayTeam.winner) fw-bold #end"> 1900: #printTeamLogoSetWidth($awayTeam, 32) 1901: <span class="flex-grow-1">#printTeamName($awayTeam)</span> 1902: 1903: #if ($field.equals("team_away+team_away_result") && $awayTeam.result.length() > 0) 1904: #if ($awayTeam.winner) 1905: <span class="result winner"><span class="fa-solid fa-sm fa-caret-right" aria-hidden="true"></span> $awayTeam.result</span> 1906: #else 1907: <span class="result">$awayTeam.result</span> 1908: #end 1909: #end 1910: </div> 1911: #else 1912: 1913: #end 1914: </td> 1915: #end 1916: 1917: ## TEAM AWAY RESULT 1918: #if ($field.equals("team_away_result")) 1919: #set ($class = "e_result align-middle e_awayresult") 1920: #if ($event.teams.size() > 0 && $event.teams.get(0).winner) 1921: #set ($class = "${class} winner") 1922: #end 1923: <td class="${class}"> 1924: #if ($event.teams.size() > 0 && $event.teams.get(0).result.length() > 0) 1925: <span class="text-nowrap #if ($event.teams.get(0).winner) fw-bold #end"> 1926: #if ($event.teams.get(0).winner) <span class="fa-solid fa-sm fa-caret-right" aria-hidden="true"></span> #end 1927: $event.teams.get(0).result 1928: </span> 1929: #else 1930: #end 1931: </td> 1932: #end 1933: 1934: ## TEAM HOME 1935: #if ($field.equals("team_home") || $field.equals("team_home+team_home_result")) 1936: #set ($class = "team align-middle hometeam") 1937: #if ($field.equals("team_home+team_home_result")) 1938: #set ($class = "${class} teamresult") 1939: #end 1940: <td class="$class"> 1941: #if ($event.teams.size() > 1) 1942: #set ($homeTeam = $event.teams.get(1)) 1943: <div class="d-flex align-items-center justify-content-center justify-content-md-start gap-2 flex-nowrap #if ($homeTeam.winner) fw-bold #end"> 1944: #printTeamLogoSetWidth($homeTeam, 32) 1945: <span class="flex-grow-1">#printTeamName($homeTeam)</span> 1946: 1947: #if ($field.equals("team_home+team_home_result") && $homeTeam.result.length() > 0) 1948: #if ($homeTeam.winner) 1949: <span class="result winner"><span class="fa-solid fa-sm fa-caret-right" aria-hidden="true"></span> $homeTeam.result</span> 1950: #else 1951: <span class="result">$homeTeam.result</span> 1952: #end 1953: #end 1954: </div> 1955: #else 1956: 1957: #end 1958: </td> 1959: #end 1960: 1961: ## TEAM HOME RESULT 1962: #if ($field.equals("team_home_result")) 1963: #set ($class = "result align-middle homeresult") 1964: #if ($event.teams.size() > 1 && $event.teams.get(1).winner) 1965: #set ($class = "${class} winner") 1966: #end 1967: <td class="$class"> 1968: #if ($event.teams.size() > 1 && $event.teams.get(1).result.length() > 0) 1969: <span class="text-nowrap #if ($event.teams.get(1).winner) fw-bold #end"> 1970: #if ($event.teams.get(1).winner) <span class="fa-solid fa-sm fa-caret-right" aria-hidden="true"></span> #end 1971: $event.teams.get(1).result 1972: </span> 1973: #else 1974: #end 1975: </td> 1976: #end 1977: 1978: ## BOTH TEAMS AND THEIR RESULT 1979: #if ($field.equals("teams+result")) 1980: <td class="e_teams_result align-middle"> 1981: #foreach ($team in $event.teams) 1982: #if ($velocityCount == 1) 1983: #printNotations($event) 1984: #end 1985: 1986: #if ($velocityCount > 1) #end 1987: 1988: #printTeamLogoSetWidth($team, 32) 1989: #printTeamName($team) 1990: 1991: #if ($team.result.length() > 0) <span class="text-nowrap">$team.result</span> #end 1992: #end 1993: </td> 1994: #end 1995: 1996: ## STATUS 1997: #if ($field.equals("status")) 1998: <td class="status align-middle"> 1999: <div class="d-flex align-items-center justify-content-center justify-content-lg-between gap-2 flex-nowrap w-100"> 2000: #if ($eventClass.contains("in-progress")) 2001: <span class="fa fa-circle fa-sm fa-beat-fade text-primary" aria-hidden="true"></span> 2002: #end 2003: <span class="text-nowrap #if ($event.home) fw-bold #end">#printEventStatus($event)</span> 2004: #printNotations($event) 2005: </div> 2006: </td> 2007: #end 2008: 2009: ## LINKS (SAME ROW) 2010: #if ($field.equals("links")) 2011: <td class="links align-middle"> 2012: <div class="list-inline d-flex align-items-center justify-content-start flex-wrap gap-2"> 2013: #printEventLinks($event, "list-inline-item text-decoration-none m-0 text-nowrap") 2014: $wiki.event($event) 2015: </div> 2016: </td> 2017: #end 2018: ## NOTES (SAME ROW) 2019: #if ($field.equals("notes") || $field.equals("notes+neutralsite")) 2020: <td class="notes text-muted small align-middle"> 2021: <div class="d-flex align-items-center justify-content-center justify-content-lg-start gap-2"> 2022: $!event.notes #if ($field.equals("notes+neutralsite") && $event.neutralSite.length() > 0) @ $event.neutralSite #end 2023: </div> 2024: </td> 2025: #end 2026: 2027: ## NEUTRALSITE 2028: #if ($field.equals("neutralsite")) 2029: <td class="e_neutralsite align-middle"> 2030: #if ($event.neutralSite.length() > 0) 2031: ## DISPLAY THE @ CHARACTER ONLY FOR HEAD-TO-HEAD SCHEDULES (non numeric schedules sometimes use neutralSite field for event name) 2032: #if ($schedule.numericResults) @ #end $event.neutralSite 2033: #else 2034: 2035: #end 2036: </td> 2037: #end 2038: 2039: ## VENUE+LOCATION 2040: #if ($field.equals("venue+location")) 2041: <td class="e_venue"> 2042: #if ($event.venue.length() > 0) 2043: <div class="">$event.venue</div> 2044: #end 2045: #if ($event.address.length() > 0) 2046: <div class="address-formatted"> 2047: #if($event.address.length() > 0 && $event.city.length() > 0 && $event.stateCountry.length() > 0 && $event.zipCode.length() > 0) 2048: <a target="_blank" href="http://maps.google.com/maps?q=$!event.address.replace(' ','+'),+$!event.city.replace(' ','+'),+$!event.stateCountry+$!event.zipCode"> 2049: $!event.address, $!event.city, $!event.stateCountry $!event.zipCode 2050: </a> 2051: #else 2052: $!event.address, $!event.city, $!event.stateCountry $!event.zipCode 2053: #end 2054: </div> 2055: #end 2056: </td> 2057: #end 2058: 2059: ## VENUE 2060: #if ($field.equals("venue")) 2061: <td class="e_venue align-middle"> 2062: #if ($event.venue.length() > 0) 2063: $event.venue 2064: #end 2065: </td> 2066: #end 2067: 2068: ## VENUE 2069: #if ($field.equals("location")) 2070: <td class="e_location align-middle"> 2071: #if ($event.address.length() > 0) 2072: <div class="address-formatted"> 2073: #if($event.address.length() > 0 && $event.city.length() > 0 && $event.stateCountry.length() > 0 && $event.zipCode.length() > 0) 2074: <a target="_blank" href="http://maps.google.com/maps?q=$!event.address.replace(' ','+'),+$!event.city.replace(' ','+'),+$!event.stateCountry+$!event.zipCode"> 2075: $!event.address, $!event.city, $!event.stateCountry $!event.zipCode 2076: </a> 2077: #else 2078: $!event.address, $!event.city, $!event.stateCountry $!event.zipCode 2079: #end 2080: </div> 2081: #end 2082: </td> 2083: #end 2084: 2085: #end ## fields loop 2086: </tr> 2087: 2088: #foreach ($field in $scheduleFields) 2089: ## NOTES (NEW ROW) 2090: #if (($field.equals("_notes") && $event.notes.length() > 0) || ($field.equals("_notes+neutralsite") && ($event.notes.length() > 0 || $event.neutralSite.length() > 0))) 2091: <tr class="${eventClass}" #if ($event.inProgress) title="In Progress" #end> 2092: <td class="py-1 align-middle"> </td> 2093: <td colspan="${tool.math.sub($colCount, 1)}" class="notes py-1 text-muted small align-middle">$!event.notes #if ($field.equals("_notes+neutralsite") && $event.neutralSite.length() > 0) @ $event.neutralSite #end</td> 2094: </tr> 2095: #end 2096: 2097: ## LINKS (NEW ROW) 2098: #if ($field.equals("_links") && $event.links.size() > 0) 2099: <tr class="${eventClass}" #if ($event.inProgress) title="In Progress" #end> 2100: <td class="py-1 align-middle"> </td> 2101: <td colspan="${tool.math.sub($colCount, 1)}" class="links py-1 small align-middle"> 2102: #printEventLinks($event, "btn btn-outline-primary btn-sm") 2103: $wiki.event($event) 2104: </td> 2105: </tr> 2106: #end 2107: 2108: ## NEUTRAL SITE (NEW ROW) 2109: #if ($field.equals("_neutralsite") && $event.neutralSite.length() > 0) 2110: <tr class="${eventClass}" #if ($event.inProgress) title="In Progress" #end> 2111: <td class="py-1 align-middle"> </td> 2112: <td colspan="${tool.math.sub($colCount, 1)}" class="neutralsite py-1 small align-middle">#if ($schedule.numericResults) @ #end $event.neutralSite</td> 2113: </tr> 2114: #end 2115: #end ## fields loop 2116: 2117: #set ($lastDate = $theDate) 2118: #end ## EVENTS LOOP 2119: </tbody> 2120: </table> 2121: </div> 2122: #end 2123: 2124: #macro (printSchedule $evts) 2125: #if($evts.size() == 0) 2126: <div class="alert alert-secondary" role="alert"> 2127: No events are currently scheduled. Please check back soon! 2128: </div> 2129: #else 2130: <div class="schedule-inner#if ($enhancedLayout)-enhanced #end d-flex flex-column flex-md-row mb-3"> 2131: <div class="schedule-events-data flex-grow-1"> 2132: <div class="section-event-group event-group d-flex flex-column gap-3"> 2133: #if($groupMonths) 2134: #printCollapsibleMonths($evts) 2135: #else 2136: #printEvents($evts, false) 2137: #end 2138: </div> 2139: </div> 2140: #if ($showTeamLeadersCarousel || $showRelatedArticles) 2141: <div id="sidebar" class="flex-shrink-1 col-md-4 p-md-2 col-lg-3 p-lg-3"> 2142: #if ($rosterHeadshots.size() > 0 && $showTeamLeadersCarousel) 2143: $website.include("${page.sectionPage.url}/leaders?tmpl=stats-leader-carousel-template") 2144: #end 2145: #if ($showRelatedArticles) 2146: $website.include("${page.sectionPage.url}/news?tmpl=related-articles-template") 2147: #end 2148: </div> 2149: #end 2150: </div> 2151: #end 2152: #end 2153: 2154: ## END MACROS 2155: 2156: #set ($events = []) 2157: #set ($eventTypes = []) 2158: #set ($eventVenues = []) 2159: 2160: #foreach ($event in $schedule.events) 2161: #set ($addEvent = false) 2162: 2163: #if ($event.date && ($event.overall || $showExhibitionGames)) 2164: #set ($ignoreme = $events.add($event)) 2165: 2166: #if ($event.postseason && !$eventTypes.contains("postseason")) 2167: #set ($bool = $eventTypes.add("postseason")) 2168: #end 2169: 2170: #if ($event.conference && !$eventTypes.contains("conference")) 2171: #set ($bool = $eventTypes.add("conference")) 2172: #end 2173: 2174: #if ($event.division && !$eventTypes.contains("division")) 2175: #set ($bool = $eventTypes.add("division")) 2176: #end 2177: 2178: #if (!$event.overall && !$eventTypes.contains("exhibition")) 2179: #set ($bool = $eventTypes.add("exhibition")) 2180: #end 2181: 2182: #if ($event.neutralSite.length() > 0 && !$eventVenues.contains("neutral")) 2183: #set ($bool = $eventVenues.add("neutral")) 2184: #elseif ($event.home && !$eventVenues.contains("home")) 2185: #set ($bool = $eventVenues.add("home")) 2186: #else 2187: #if (!$eventVenues.contains("away")) 2188: #set ($bool = $eventVenues.add("away")) 2189: #end 2190: #end 2191: #end 2192: #end 2193: 2194: <div class="page-content schedule-content" data-team-schedule="$isTeamSchedule" data-schedule-type-h2h="$schedule.numericResults" data-schedule-view="${scheduleView}" data-schedule-layout="${scheduleLayout}" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/schedule-layout.js"> 2195: $wiki 2196: 2197: #set ($scheduleNoteURL = "${page.url}-note") 2198: #if ($website.exists($scheduleNoteURL)) 2199: $website.include($scheduleNoteURL) 2200: #end 2201: 2202: <div class="page-content-header d-flex flex-column align-items-center gap-3 mb-3"> 2203: #printPageTitle() 2204: #printFilters() 2205: #printTeamStats() 2206: #printEventCountdown() 2207: </div> 2208: 2209: #if ($isSharedMeet) 2210: #printSharedMeet() 2211: #else 2212: #printSchedule($events) 2213: #end 2214: 2215: #printPostSchedule() 2216: 2217: #printLegends() 2218: 2219: #set ($scheduleFooterURL = "${page.url}-footer") 2220: #if ($website.exists($scheduleFooterURL)) 2221: <div class="schedule-footer">$website.include($scheduleFooterURL)</div> 2222: #end 2223: 2224: #printSubscribeLinks() 2225: 2226: $sfs $wiki $rss 2227: </div> 2228: 2229: #if ($website.ads.isAdvertisingEnabled('SCHEDULE')) 2230: $website.includeAgain("global-adserver-slots?adSlot=schedule") 2231: #end 2232: 2233: #if ($request.getParameter("ajax").equals("true")) 2234: $!request.setAttribute("decorator", "") 2235: #end 2236: 2237: #if ($request.getAttribute("scheduleNextEvent") && $scheduleNextEventScroll) 2238: <script> 2239: $(document).ready(function() { 2240: setTimeout(function() { 2241: let nextEventPos = $(".schedule-next-event-indicator").offset().top; 2242: let headerHeight = 0; 2243: if ($("header.sticky-top").outerHeight() > 0) { 2244: headerHeight = $("header.sticky-top").outerHeight(); 2245: nextEventPos = nextEventPos - headerHeight; 2246: } 2247: $("html, body").animate({scrollTop: nextEventPos}, 500, 'swing'); 2248: }, 2000); 2249: }); 2250: </script> 2251: #end 2252: 2253: #if (!$enhancedLayout) 2254: <script> 2255: document.addEventListener('DOMContentLoaded', function () { 2256: document.querySelectorAll('.collapse').forEach(function (panel) { 2257: panel.addEventListener('shown.bs.collapse', function () { 2258: const tables = panel.querySelectorAll('table.dataTable'); 2259: 2260: tables.forEach(function (tableEl) { 2261: const $table = $(tableEl); 2262: 2263: // If the table hasn't been initialized, initialize it 2264: if (!$table.data('dataTableInitialized')) { 2265: if (typeof window.initDataTable === 'function') { 2266: window.initDataTable($table); 2267: } else { 2268: console.warn('initDataTable function is not available'); 2269: } 2270: } else { 2271: $table.DataTable().columns.adjust().draw(); 2272: } 2273: }); 2274: }); 2275: }); 2276: }); 2277: </script> 2278: #end 2279: 2280: #if ($showSpotOnAddToCal) 2281: <script> 2282: (function (id) { 2283: if (document.getElementById(id)) return; 2284: var so = document.createElement('script'); so.id = id; so.async = true; 2285: so.src = 'https://dff2h0hbfv6w4.cloudfront.net/scripts/presto.js'; 2286: var s = document.getElementsByTagName('script')[0]; 2287: s.parentNode.insertBefore(so, s); 2288: })('spoton-script'); 2289: </script> 2290: #end |
© 2025 Atlantic University Sport - Sport Universitaire de l'Atlantique. All rights reserved.
Terms of Use | Privacy Policy
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Privacy Policy & Terms of Service.