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