Page source: |
1: ## PICK UP OPTIONS
2: $website.include("options")
3: #set ($options = $request.getAttribute("options"))
4:
5: #set ($locale = "en_us")
6: #set ($locale = $options.get("locale"))
7:
8: #set ($showConf = true)
9: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide"))
10: #set ($showConf = false)
11: #end
12:
13: #set ($teamId = $attributes.get("teamId"))
14: #set ($stats = $splits.overall)
15:
16: #set ($pos = "")
17: #if ($sport.enumCode == 0) ## Football
18: #set ($pos = "off")
19: #elseif ($sport.enumCode == 2) ## Basketball
20: #set ($pos = "sh")
21: #elseif ($sport.enumCode == 3) ## Soccer
22: #set ($pos = "kickers")
23: #elseif ($sport.enumCode == 9) ## Field Hockey
24: #set ($pos = "fielder")
25: #end
26:
27: #set ($posEsc = $formatter.escapeXml($request.getParameter("pos").toLowerCase()))
28: #if ($posEsc.length() > 0)
29: #set ($pos = $posEsc)
30: #end
31:
32: #if ($sport.enumCode == 2) ## Basketball
33: #if ($pos == "bc")
34: #set ($pos = "sh")
35: #end
36: #if ($pos == "bt")
37: #set ($pos = "st")
38: #end
39: #if ($pos == "bm")
40: #set ($pos = "sm")
41: #end
42: #end
43:
44: #if ($sport.enumCode == 3) ## Soccer
45: #if ($pos == "goalie")
46: #set ($pos = "kickers")
47: #end
48: #if ($pos == "gg")
49: #set ($pos = "kg")
50: #end
51: #end
52:
53: #if ($sport.enumCode == 9) ## Field Hockey
54: #if ($pos == "goalie")
55: #set ($pos = "fielder")
56: #end
57: #if ($pos == "gg")
58: #set ($pos = "kg")
59: #end
60: #end
61:
62: #set ($restriction = 0)
63: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r")))
64: #if ($restrictionEsc.length() > 0 && $restrictionEsc.equals("1"))
65: #set ($restriction = 1)
66: #end
67:
68: #set ($view = "profile")
69: #if ($request.getParameter("view"))
70: #set ($view = $formatter.escapeXml($!request.getParameter("view")))
71: #end
72:
73: #if ($briefsCategoriesLabels)
74: #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
75: #set($firstCategoryPos = $briefsCategoriesSeason.keySet().iterator().next())
76: #end
77:
78: #set ($showRoster = false)
79: #if ($options.get("stats_show_roster") and $options.get("stats_show_roster").equalsIgnoreCase("yes"))
80: #set ($showRoster = true)
81: #end
82:
83: #set ($showAttendance = true)
84: #if ($options.get("stats_show_attendance") and $options.get("stats_show_attendance").equalsIgnoreCase("hide"))
85: #set ($showAttendance = false)
86: #end
87:
88: ## MACROS
89: #macro (printTableHeader $label $class)
90: <th class="text-uppercase $class">$label</th>
91: #end
92:
93: #macro (printResultAriaLabel $event)
94: #set ($ariaLabel = "${event.sport} event: ${formatter.formatDate($event.date, 'MMMM d hh:mm a:')}")
95: #if ($event.neutralSite.length() > 0 || $event.home)
96: #set ($ariaLabel = "${ariaLabel} vs.")
97: #else
98: #set ($ariaLabel = "${ariaLabel} at")
99: #end
100: #set ($ariaLabel = "${ariaLabel} ${event.opponent.name}:")
101: #if ($event.neutralSite.length() > 0)
102: #set ($ariaLabel = "${ariaLabel} @ ${event.neutralSite}:")
103: #end
104: #set ($ariaLabel = "${ariaLabel} Box Score")
105: aria-label="$ariaLabel"
106: #end
107:
108: #macro (printLineupCategories $categories $r)
109:
110: #if ($allowChooseSort)
111: #set ($sortParam = "")
112:
113: #if ($lineupDefaultSorting && $lineupDefaultSorting.containsKey($pos))
114: #set ($sortParam = $lineupDefaultSorting.get($pos))
115: #end
116:
117: #if ($request.getParameter("sort").length() > 0)
118: #set ($sortParam = $request.getParameter("sort"))
119: #end
120: #end
121:
122: <div class="brief-categories">
123: <select class="category-switcher form-control my-3">
124: #foreach ($category in $categories.entrySet())
125: #set ($briefCategoryURL = "${page.url}?tmpl=brief-category-template&pos=${category.key}&r=${r}")
126: #if ($sortParam.length() > 0)
127: #set ($briefCategoryURL = "${briefCategoryURL}&sort=${sortParam}")
128: #end
129:
130: <option value="$briefCategoryURL">$category.value</option>
131: #end
132: </select>
133: <div class="panes">
134: #foreach($category in $categories.entrySet())
135: #if ($foreach.count == 1)
136: <div class="pane active">Loading...</div>
137: #else
138: <div class="pane d-none">Loading...</div>
139: #end
140: #end
141: </div>
142: </div>
143: #end ## printLineupCategories
144:
145: #macro(printBriefCategories $r)
146: ## Set this for the inner page to pull something out
147: #if ($r == 1)
148: #set ($restrictionLabel = "conf")
149: $!request.setAttribute("teamStats", $splits.conference)
150: #else
151: #set ($restrictionLabel = "overall")
152: $!request.setAttribute("teamStats", $splits.overall)
153: #end
154:
155: #if ($briefsCategoriesLabels)
156: #set($allowChooseSort = false)
157:
158: #if ($lineupFilters && $lineupFilters.containsKey("allowChooseSort"))
159: #set ($allowChooseSort = true)
160: #end
161:
162: #if ($briefsCategoriesLabels.containsKey("Game"))
163: #set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
164:
165: ## Print Game categories tables
166: ## Get the first Game category position
167: #set ($gamePos = $briefsCategoriesGame.keySet().iterator().next())
168:
169: ## GAME
170: <div #if ($pos.equals($gamePos)) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-game" role="tabpanel">
171: #printLineupCategories($briefsCategoriesGame, $r)
172: </div>
173:
174: ## Print the Season categories tables
175: #set ($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
176:
177: ## SEASON
178: <div #if ($pos.equals($firstCategoryPos)) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-season" role="tabpanel">
179: #printLineupCategories($briefsCategoriesSeason, $r)
180: </div>
181:
182: ## Print the Minutes categories tables
183: #if ($briefsCategoriesLabels.containsKey("Minutes"))
184: #set($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
185: #set($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
186:
187: #set($showMinutesTab = false)
188: #if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
189: #set($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
190:
191: #set($lineupMinOverallStat = $lineupMinOverallValues[0])
192: #set($lineupMinOverallMinVal = $lineupMinOverallValues[1])
193: #set($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
194:
195: #if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue)
196: #set($showMinutesTab = true)
197: #end
198: #end
199:
200: #if ($showMinutesTab)
201: ## MINUTES
202: <div #if ($pos.equals($minutesPos)) class="tab-pane active" #else class="tab-pane" #end id="lineup-${restrictionLabel}-minutes" role="tabpanel">
203: #printLineupCategories($briefsCategoriesMinutes, $r)
204: </div>
205: #end
206: #end ## end minutes
207: #else
208: ## SINGLE SEASON
209: #set($briefsCategoriesSeason = $briefsCategoriesLabels.get("Season"))
210: #printLineupCategories($briefsCategoriesSeason, $r)
211: #end
212:
213: #elseif ($lineupFilters)
214:
215: ## All of the supported sports has lineupFilters, so print it without matter it does not have briefs category, yeah voleyball is you :)
216: #set ($sort = $formatter.escapeXml($request.getParameter("sort")))
217: #set ($url = "../players?teamId=${attributes.teamId}&view=lineup&sort=$!{sort}&r=${r}")
218: $website.includeAgain($url)
219:
220: #else
221: We do not support this sport
222: #end
223: #end ## printBriefCategories
224:
225: #macro (printCategories $briefCategoryLabels $v)
226: <div class="nav nav-pills mb-3" role="tablist">
227: #foreach($label in $briefCategoryLabels.entrySet())
228: #set($catLabel = $label.value)
229: #if ($locale == "en_gb" && $catLabel == "Defense")
230: #set ($catLabel = "Defence")
231: #end
232: #set ($btnClass = "btn btn-outline-secondary rounded-0")
233: #if ($pos == $label.key || ($pos.length() == 0 && $velocityCount == 1))
234: #set ($btnClass = "${btnClass} active")
235: #end
236: <button class="$btnClass" data-url="${page.url}?view=${v}&pos=${label.key}" data-toggle="tab" data-target="#gamelog-${v}-${label.key}" style="margin-right:-1px">${catLabel}</button>
237: #end
238: </div>
239: <div class="tab-content">
240: #foreach ($briefCat in $briefCategoryLabels.entrySet())
241: #set ($classAttr = "tab-pane")
242: #if ($briefCat.key == $pos || ($pos.length() == 0 && $velocityCount == 1))
243: #set ($classAttr = "${classAttr} active")
244: #end
245: <div class="$classAttr" id="gamelog-${v}-${briefCat.key}" role="tabpanel">
246: #if ($v == "gamelog")
247: #gamelogData($briefCat.key)
248: #elseif ($v == "splits")
249: #splitsTeamNetworkData($briefCat.key)
250: #end
251: </div>
252: #end
253: </div>
254: #end ## printCategories
255:
256: #macro (printSeasonGameMinutesTabs $r)
257: #if ($briefsCategoriesLabels.containsKey("Game"))
258: #set ($briefsCategoriesGame = $briefsCategoriesLabels.get("Game"))
259: #set ($gamePos = $briefsCategoriesGame.keySet().iterator().next())
260:
261: #set ($restrictionLabel = "overall")
262: #if ($r == 1)
263: #set ($restrictionLabel = "conf")
264: #end
265:
266: #set ($showMinutesTab = false)
267: #if ($briefsCategoriesLabels.containsKey("Minutes"))
268: #set ($briefsCategoriesMinutes = $briefsCategoriesLabels.get("Minutes"))
269: #set ($minutesPos = $briefsCategoriesMinutes.keySet().iterator().next())
270:
271: #if ($lineupMinTeam && $lineupMinTeam.containsKey($minutesPos))
272: #set ($lineupMinOverallValues = $lineupMinTeam.get($minutesPos))
273: #set ($lineupMinOverallStat = $lineupMinOverallValues[0])
274: #set ($lineupMinOverallMinVal = $lineupMinOverallValues[1])
275: #set ($lineupMinOverallMinNumericValue = $tool.number.toNumber($lineupMinOverallMinVal))
276:
277: #if ($tool.math.round($splits.overall[$lineupMinOverallStat]) && $tool.math.round($splits.overall[$lineupMinOverallStat]) >= $lineupMinOverallMinNumericValue)
278: #set($showMinutesTab = true)
279: #end
280: #end
281: #end
282:
283: #set ($sortParam = "")
284: #if ($request.getParameter("sort").length() > 0)
285: #set ($sortParam = $request.getParameter("sort"))
286: #set ($sortParam = "&sort=${sortParam}")
287: #end
288:
289: <div class="nav nav-pills" role="tablist">
290: #printSubTab($pos.equals($gamePos), "${url}?view=lineup&r=${r}&pos=${gamePos}${sortParam}", "Game", "#lineup-${restrictionLabel}-game")
291: #printSubTab($pos.equals($firstCategoryPos), "${url}?view=lineup&r=${r}&pos=${firstCategoryPos}${sortParam}", "Season", "#lineup-${restrictionLabel}-season")
292: #if ($showMinutesTab)
293: #printSubTab($pos.equals($minutesPos), "${url}?view=lineup&r=${r}&pos=${minutesPos}${sortParam}", "Minutes", "#lineup-${restrictionLabel}-minutes")
294: #end
295: </div>
296: <div class="tab-content">
297: #printBriefCategories($r)
298: </div>
299: #end
300: #end ## printSeasonGameMinutesTabs
301:
302: #macro (printLineupTabs)
303: #set ($navClass = "nav nav-pills")
304: #if ($briefsCategoriesLabels.containsKey("Game"))
305: #set ($navClass = "${navClass} float-left mr-3")
306: #end
307: <div class="$navClass" role="tablist">
308: #printSubTab(true, "${url}?view=lineup&r=0&pos=${pos}", "Overall", "#lineup-overall-pane")
309: #if ($showConf)
310: #printSubTab(false, "${url}?view=lineup&r=1&pos=${pos}", "Conference", "#lineup-conf-pane")
311: #end
312: </div>
313:
314: <div class="tab-content">
315: <div class="tab-pane active" id="lineup-overall-pane" role="tabpanel">
316: #if ($briefsCategoriesLabels.containsKey("Game"))
317: #printSeasonGameMinutesTabs(0)
318: #else
319: #printBriefCategories(0)
320: #end
321: </div>
322: #if ($showConf)
323: <div class="tab-pane" id="lineup-conf-pane" role="tabpanel">
324: #if ($briefsCategoriesLabels.containsKey("Game"))
325: #printSeasonGameMinutesTabs(1)
326: #else
327: #printBriefCategories(1)
328: #end
329: </div>
330: #end
331: </div>
332: #end ## printLineupTabs
333:
334: #macro (printHighlights)
335: #if ($highlights)
336: <div class="d-flex flex-wrap">
337: #foreach ($highlight in $highlights.keySet())
338: #set ($value = "-")
339: #set ($value = $formatter.formatNumber($stats.get($highlight), $formats.get($highlight)))
340: #set ($classAttr = "flex-fill p-2 border border-white bg-primary text-white text-center")
341: <div class="$classAttr">
342: <div class="text-uppercase small">$!highlights.get($highlight).replace("per game", "")</div>
343: <div class="h5 m-0 font-weight-bold">$!value</div>
344: </div>
345: #end
346: </div>
347: #end
348: #end ## macro printHighlights
349:
350: #macro (gamelogData $p)
351:
352: #set ($gamelogStats = $gamelogs.get($p))
353:
354: <table class="table table-hover">
355: <thead class="thead-dark">
356: <tr>
357: #printTableHeader("Date", "w-1 text-start text-left")
358: #printTableHeader("Opponent", "")
359: #printTableHeader("Score", "text-center")
360: #foreach ($gamelog in $gamelogStats)
361: #printTableHeader($gamelog, "text-center")
362: #end
363: </tr>
364: </thead>
365: #foreach ($event in $events)
366: <tr>
367: <td class="text-nowrap text-start text-left">
368: $formatter.formatDate($event.event.date, "MMM d")
369: #if (!$event.event.overall)
370: #set ($atLeastOneNotOverall = true) #
371: #end
372: </td>
373: <td class="text-nowrap">
374: #if ($event.event.neutralSite.length() > 0) vs. #elseif (!$event.event.home) at #end
375: $event.event.opponent.name
376: </td>
377: <td class="text-nowrap text-center">
378: #if ($event.event.statusCode >= 0)
379: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
380: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
381: #else
382: ${event.event.APResult}
383: #end
384: #else
385: #end
386: </td>
387: #foreach ($gamelog in $gamelogStats.keySet())
388: #set ($value = "-")
389: #set ($value = $formatter.formatNumber($event.stats.get($gamelog), $formats.get($gamelog)))
390: <td class="text-center text-nowrap">$value</td>
391: #end
392: </tr>
393: #end
394: </table>
395: #end ## gamelogData
396:
397: #macro (printRecentGames)
398: <table class="table table-hover">
399: <thead class="thead-dark">
400: <tr>
401: #printTableHeader("Date", "w-1 text-start text-left")
402: #printTableHeader("Opponent", "")
403: #printTableHeader("Result", "text-center")
404: </tr>
405: </thead>
406:
407: #set ($eventEnd = -1)
408: #foreach ($event in $events)
409: #if ($event.event.result.resolved)
410: #set ($eventEnd = $velocityCount)
411: #end
412: #end
413:
414: #set ($eventStart = $eventEnd - 5)
415: #if ($eventStart < 0) #set ($eventStart = 0) #end
416:
417: #foreach ($event in $events)
418: #if ($velocityCount >= $eventStart and $velocityCount <= $eventEnd)
419: <tr>
420: <td class="text-nowrap text-start text-left">$formatter.formatDate($event.event.date, "MMM d")</td>
421: <td>
422: #if ($event.event.neutralSite.length() > 0) vs.
423: #elseif (!$event.event.home) at
424: #else ## nothing for a home game
425: #end
426: $event.event.opponent.name
427: </td>
428: <td class="text-center">
429: #if ($event.event.statusCode >= 0)
430: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
431: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
432: #else
433: ${event.event.APResult}
434: #end
435: #end
436: </td>
437: </tr>
438: #end
439: #end
440: </table>
441: #end ## printRecentGames
442:
443: #macro (splitTeamNetwork $statPosBriefs $label $stats)
444: <tr>
445: <th scope="row" class="font-weight-normal text-end text-right">${label}</th>
446: #foreach ($brief in $statPosBriefs.keySet())
447: #set ($value = "-")
448: #set ($value = $!formatter.formatNumber($stats.get($brief), $formats.get($brief)))
449: <td class="text-center text-nowrap">#if ($value.length() > 0) $value #else - #end</td>
450: #end
451: </tr>
452: #end ## split
453:
454: #macro (splitsTeamNetworkData $p)
455: #set ($statPosBriefs = $briefs.get($p))
456: #set ($colspan = $tool.math.add($statPosBriefs.size(), 1))
457:
458: #if ($statPosBriefs.size() > 0)
459: <table class="table table-hover">
460: <thead class="thead-dark">
461: <tr>
462: <th class="text-uppercase" aria-label="Title"> </th>
463: #foreach ($brief in $statPosBriefs)
464: #printTableHeader($brief, "text-center")
465: #end
466: </tr>
467: </thead>
468: #splitTeamNetwork($statPosBriefs, "Total", $splits.overall)
469: #if ($showConf)
470: #splitTeamNetwork($statPosBriefs, "Conference", $splits.conference)
471: #splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
472: #else
473: #splitTeamNetwork($statPosBriefs, "Exhibition", $splits.exhibition)
474: #end ## hide overall/conf
475:
476: <tr class="bg-transparent">
477: <td colspan="$colspan"> </td>
478: </tr>
479:
480: #splitTeamNetwork($statPosBriefs, "Home", $splits.home)
481: #splitTeamNetwork($statPosBriefs, "Away", $splits.away)
482: #splitTeamNetwork($statPosBriefs, "Neutral", $splits.neutral)
483:
484: <tr class="bg-transparent">
485: <td colspan="$colspan"> </td>
486: </tr>
487:
488: #foreach($gameResult in $gamesResults.entrySet())
489: #if ($gameResult.key == "wins")
490: #set ($splitGameResult = $splits.inWins)
491: #elseif ($gameResult.key == "losses")
492: #set ($splitGameResult = $splits.inLosses)
493: #elseif ($gameResult.key == "ties")
494: #set ($splitGameResult = $splits.inTies)
495: #end
496:
497: #splitTeamNetwork($statPosBriefs, $gameResult.value, $splitGameResult)
498: #end
499:
500: <tr class="bg-transparent">
501: <td colspan="$colspan"> </td>
502: </tr>
503:
504: #if ($monthsPlayed and $monthsPlayed.size() > 0)
505: #foreach($month in $monthsPlayed)
506: #if ($month == 'January')
507: #set ($splitMonth = $splits.january)
508: #elseif ($month == 'February')
509: #set ($splitMonth = $splits.february)
510: #elseif ($month == 'March')
511: #set($splitMonth = $splits.march)
512: #elseif ($month == 'April')
513: #set($splitMonth = $splits.april)
514: #elseif ($month == 'May')
515: #set ($splitMonth = $splits.may)
516: #elseif ($month == 'June')
517: #set ($splitMonth = $splits.june)
518: #elseif ($month == 'July')
519: #set($splitMonth = $splits.july)
520: #elseif ($month == 'August')
521: #set ($splitMonth = $splits.august)
522: #elseif ($month == 'September')
523: #set($splitMonth = $splits.september)
524: #elseif ($month == 'October')
525: #set($splitMonth = $splits.october)
526: #elseif ($month == 'November')
527: #set ($splitMonth = $splits.november)
528: #elseif ($month == 'December')
529: #set($splitMonth = $splits.december)
530: #end
531:
532: #splitTeamNetwork($statPosBriefs, $month, $splitMonth)
533: #end ## foreach
534: #end
535: </table>
536: #end
537: #end ## splitsTeamNetworkData
538:
539: #macro (printAttendance)
540: #if ($showAttendance)
541: <table class="table table-hover">
542: <thead class="thead-dark">
543: <tr>
544: #printTableHeader("Date", "w-1 text-start text-left")
545: #printTableHeader("Opponent", "")
546: #printTableHeader("Score", "text-center")
547: #printTableHeader("Attend", "text-center")
548: </tr>
549: </thead>
550: #set ($counter = 0)
551: #foreach ($event in $events)
552: <tr>
553: <td class="text-nowrap text-start text-left">$formatter.formatDate($event.event.date, "MMM d")</td>
554: <td class="text-nowrap">
555: #if ($event.event.neutralSite.length() > 0) vs.
556: #elseif (!$event.event.home) at
557: #else ## nothing for a home game
558: #end
559: $event.event.opponent.name
560: </td>
561: <td class="text-nowrap text-center">
562: #if ($event.event.statusCode >= 0)
563: #if ($event.event.eventId.length() > 0 && $event.stats.size() > 0)
564: <a #printResultAriaLabel($event.event) href="../boxscores/${formatter.formatBoxScoreLink($event.event)}">${event.event.APResult}</a>
565: #else
566: ${event.event.result}
567: #end
568: #else #end
569: </td>
570: <td class="text-nowrap text-center">
571: #set ($value = "-")
572: #set ($value = $!formatter.formatNumber($event.stats.get('at'), $formats.get('at')))
573: #if ($value.length() > 0) $value #else - #end
574: </td>
575: </tr>
576: #end
577: </table>
578: #end ## showAttendance
579: #end
580:
581: #macro (printTab $viewParam $label)
582: #set ($classAttr = "nav-link text-nowrap")
583: #if ($viewParam == $view)
584: #set ($classAttr = "${classAttr} active")
585: #end
586: <li class="nav-item"><a href="${page.url}?view=${viewParam}" class="$classAttr" role="tab" data-toggle="tab" data-target="#${viewParam}" aria-controls="$viewParam">$label</a></li>
587: #end
588:
589: #macro (printSubTab $active $url $label $target)
590: #set ($classAttr = "btn btn-sm btn-outline-secondary rounded-0")
591: #if ($active)
592: #set ($classAttr = "${classAttr} active")
593: #end
594: <button data-url="$url" class="$classAttr" data-toggle="tab" data-target="$target" style="margin-right:-1px">$label</button>
595: #end
596:
597: #macro (printPaneAttrs $viewParam)
598: #set ($classAttr = "tab-pane")
599: #if ($viewParam == $view)
600: #set ($classAttr = "tab-pane active")
601: #else
602: #set ($classAttr = "${classAttr} fade")
603: #end
604:
605: class="$classAttr" role="tabpanel" id="$viewParam"
606: #end
607:
608: #macro (printCoachViewUrl)
609: #set ($coachViewUrl = "${page.url}?tmpl=teaminfo-network-monospace-template")
610: #set ($enumCode = $sport.enumCode)
611:
612: #if ($enumCode == 2)
613: #set ($coachViewUrl = "${coachViewUrl}&sort=ptspg")
614: #elseif ($enumCode == 1 || $enumCode == 11)
615: #set ($coachViewUrl = "${coachViewUrl}&sort=ab&pos=h")
616: #end
617:
618: #if ($enumCode == 7 || $enumCode == 8 || $enumCode > 11) #else
619: <li class="nav-item" data-skip="true"><a href="$coachViewUrl" target="_blank" class="nav-link text-nowrap">Coach's View</a></li>
620: #end
621: #end
622:
623: #macro (printTabs)
624: <div class="tab-nav" style="overflow-x:auto">
625: <ul class="nav nav-tabs flex-nowrap" role="tablist">
626: #printTab("profile", "Team Profile")
627:
628: #if ($showRoster)
629: #printTab("roster", "Roster")
630: #end
631:
632: #printTab("lineup", "Lineup")
633: #printTab("gamelog", "Game Log")
634: #printTab("splits", "Split Stats")
635:
636: #if ($showAttendance)
637: #printTab("attendance", "Attendance")
638: #end
639:
640: #printCoachViewUrl
641: </ul>
642: </div>
643: #end ## printTabs
644:
645: #macro (printSeasonsList)
646: $!request.setAttribute("pageObj", $page)
647:
648: #set ($seasonPages = [])
649: $website.include("get-season-pages")
650: #set ($seasonPages = $request.getAttribute("season_pages"))
651:
652: #if ($seasonPages.size() > 0)
653: ## This is used to define the current season. It is assumed that the list of available seasons will have the most recent first.
654: $!request.setAttribute("current_season", $seasonPages.get(0).season.name)
655:
656: <div class="season-selector flex-fill">
657: <div class="input-group">
658: <div class="input-group-prepend">
659: <label class="input-group-text" for="filter-by-season-select" id="filter-by-season-group-text">Season</label>
660: </div>
661:
662: <select id="season-selector" class="form-control season-filter custom-select" onchange="location=this.value;" aria-describedby="filter-by-season-group-text" id="filter-by-season-select" aria-label="Change the season by selecting an option from the list">
663: #foreach ($entry in $seasonPages)
664: #set ($seasonLabel = $entry.season.name)
665: #if ($entry.season.title.length() > 0)
666: #set ($seasonLabel = $entry.season.title)
667: #end
668:
669: #if ($entry.pageObj.url == $request.requestURI)
670: <option value="$entry.pageObj.url" selected="selected">$seasonLabel</option>
671: #else
672: <option value="$entry.pageObj.url">$seasonLabel</option>
673: #end
674: #end
675: </select>
676: </div>
677: </div>
678: #end
679: #end ## macro printSeasonsList
680: ############ END MACROS #############
681:
682: #set ($pageTitle = $page.title)
683: #if ($pageTitle.trim().length() == 0)
684: #set ($season = "")
685: #if ($page.url.matches(".*/\d{4}-\d{2}/.*"))
686: #set ($truncateStr = $page.url.split("/\d{4}-\d{2}/").get(0))
687: #set ($season = $page.url.replace($truncateStr, "").substring(1, 8))
688: #end
689:
690: #set ($gender = "")
691: #if ($sport.enumCode == 6 or $sport.enumCode == 10)
692: #else
693: #if ($page.url.matches(".*/sports/m.*") || $page.url.matches(".*/sports/m-*"))
694: ##set ($gender = "Men's")
695: #elseif ($page.url.matches(".*/sports/w.*") || $page.url.matches(".*/sports/w-*"))
696: ##set ($gender = "Women's")
697: #end
698: #end
699:
700: #set ($pageTitle = "${season} ${gender} ${sport} Statistics")
701:
702: #end
703:
704: #if ($attributes.get("school_name").length() > 0)
705: #set ($pageTitle = "${pageTitle} - ${attributes.get('school_name')}")
706: #end
707:
708: $!request.setAttribute("pageTitle", "${pageTitle}")
709:
710: <head><title>$pageTitle</title></head>
711:
712:
713: <div class="page-content team-stats" data-module="bs-scripts/brief-category-switcher">
714:
715: <h1>$pageTitle</h1>
716: #printSeasonsList
717:
718: ## TEAM HIGHLIGHT STATS
719: <div class="my-3">#printHighlights</div>
720:
721: ## TABS
722: <div class="tabs-container my-3" data-module="stats/tabs">
723: #printTabs
724:
725: <div class="tab-content p-3 border border-top-0">
726:
727: ## TEAM PROFILE
728: <div #printPaneAttrs("profile")>
729:
730: <div class="row">
731: <div class="col-lg">
732: <div class="mb-3">
733: <h5>Team Summary</h5>
734: <div class="stats-container table-responsive">
735: $website.include("${page.sectionPage.sectionPage.url}/schedule?teamId=${teamId}&tmpl=schedule-data-template")
736: </div>
737: </div>
738: <div class="mb-3">
739: <h5>Recent Results</h5>
740: <div class="stats-container table-responsive">#printRecentGames</div>
741: </div>
742: </div>
743: <div class="col-lg">
744: <div class="mb-3">
745: <h5>Team Stats</h5>
746: <div class="stats-container table-responsive">
747: $website.include("${page.sectionPage.url}/teams?tmpl=stats-teams-rank-template&rank=${teamId}")
748: </div>
749: </div>
750: </div>
751: </div>
752: </div> ## team profile
753:
754: ## ROSTER
755: #if ($showRoster)
756: <div #printPaneAttrs("roster")>
757: $website.includeAgain("../players?teamId=${teamId}&view=roster&tmpl=stats-bios-template")
758: </div>
759: #end
760:
761: ## LINEUP
762: <div #printPaneAttrs("lineup")>
763: ## start of overall/conference
764: #set ($url = $request.requestURI)
765:
766: #printLineupTabs
767:
768: Download roster:
769: <a href="../players?teamId=${attributes.teamId}&view=ext">${rosterExtension} (First Last) </a> |
770: <a href="../players?teamId=${attributes.teamId}&view=ext&type=lf"> ${rosterExtension} (Last, First)</a>
771: #if ($rosterExtraExtension)
772: <a href="../players?teamId=${attributes.teamId}&view=exte">${rosterExtraExtension} (First Last)</a> |
773: <a href="../players?teamId=${attributes.teamId}&view=exte&type=lf">${rosterExtraExtension} (Last, First)</a>
774: #end
775: </div> ## lineup
776:
777: ## GAMELOG
778: <div #printPaneAttrs("gamelog")>
779: <div class="stats-container table-responsive">
780: #if ($gamelogsCategoriesLabels && $gamelogsCategoriesLabels.size() > 1)
781: #printCategories($gamelogsCategoriesLabels, 'gamelog')
782: #else
783: #gamelogData($pos)
784: #end
785: </div>
786: </div>
787:
788: ## SPLITS
789: <div #printPaneAttrs("splits")>
790: <div class="stats-container table-responsive">
791: #if ($briefsTeamCategoriesLabels && $briefsTeamCategoriesLabels.size() > 1)
792: #printCategories($briefsTeamCategoriesLabels, 'splits')
793: #else
794: #splitsTeamNetworkData($pos)
795: #end
796: </div>
797: </div> ## splits
798:
799: ## ATTENDANCE
800: <div #printPaneAttrs("attendance")>
801: <div class="stats-container table-responsive">#printAttendance</div>
802: </div>
803: </div> ## tab-content
804: </div> ## tab-container
805: </div> ## stats-container
806: $wiki.su
|