Player Stats
Conference
Season
There was a problem with a Velocity script | |
Page | /teaminfo-network-template |
Error | Invocation of method 'get' in class java.util.TreeMap threw exception java.lang.NullPointerException at cjksntz2wn52hh7y/teaminfo-network-template[line 220, column 29] |
Page source: |
1: ## PICK UP OPTIONS 2: $website.include("options") 3: #set ($options = $request.getAttribute("options")) 4: #set ($locale = "en_us") 5: #set ($locale = $options.get("locale")) 6: #set ($showconf = true) 7: #if ($options.get("stats_hide_conference") and $options.get("stats_hide_conference").equalsIgnoreCase("hide")) 8: #set ($showconf = false) 9: #end 10: 11: #set ($isSharedMeets = true) 12: #if ($sport and $sport.statistics == true) 13: #set ($isSharedMeets = false) 14: #end 15: 16: #set ($showTotalRow = false) 17: #if ($options.get("stats_individual_show_totals_row") and $options.get("stats_individual_show_totals_row").equalsIgnoreCase("show")) 18: #set ($showTotalRow = true) 19: #end 20: 21: #set ($isIncluded = $website.isIncluded()) 22: 23: #set ($isAjax = false) 24: #if ($request.getParameter('ajax').length() > 0) 25: #set ($isAjax = true) 26: #set ($isIncluded = true) 27: #end 28: 29: #set ($idLength = 0) 30: #set ($idLength = $formatter.escapeXml($request.getParameter("id")).length()) 31: #set ($teamCount = $page.getTeamIDs().size()) 32: 33: #set ($teamId = '') 34: #if ($request.getParameter("teamId").length() > 0) 35: #set ($teamId = $request.getParameter("teamId")) 36: #end 37: 38: #set ($isSingleTeam = false) 39: #if ($teamId.length() != 0 or $teamCount == 1) 40: #set ($isSingleTeam = true) 41: #end 42: 43: #if ($teamCount == 1 and (not $isIncluded) and $idLength == 0 and not $isSharedMeets) 44: $website.decorate("") 45: #set ($targetURL = "${page.url}/../teams?view=lineup") 46: $response.sendRedirect($targetURL) 47: #stop 48: #end 49: 50: ## STAT LABELS 51: #if($request.getAttribute("statLabels").size() < 1) 52: $website.includeAgain("stats-labels") 53: #set ($statLabels = $!request.getAttribute("statLabels")) 54: #end 55: 56: 57: #set ($pos = "") 58: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 59: 60: #if ($pos.length() == 0 and $briefsDefaultCategoryPosition and not $isIncluded and not $isSharedMeets) 61: $website.decorate("") 62: #set ($targetURL = "${page.url}?pos=" + $briefsDefaultCategoryPosition) 63: #if($briefsDefaultSorting and $briefsDefaultSorting.containsKey($briefsDefaultCategoryPosition)) 64: #set ($targetURL = $targetURL + "&sort=" + $briefsDefaultSorting.get($briefsDefaultCategoryPosition)) 65: #end 66: 67: $response.sendRedirect($targetURL) 68: #stop 69: #end 70: 71: ## We want to leave this undefined so we can test for that 72: #set ($minEsc = $formatter.escapeXml($request.getParameter("min"))) 73: #if ($minEsc.length() > 0) 74: #set ($min = $minEsc) 75: #end 76: 77: #set ($cansort = $formatter.escapeXml($request.getParameter("cs"))) 78: 79: ## #set ($labels = $labels.get($positions.get($pos))) 80: 81: #set ($url = $request.requestURI) 82: #if($isAjax) 83: #if($request.getParameter("requri").length() > 0) 84: #set ($url = $formatter.escapeXml($!request.getParameter("requri"))) 85: #end 86: #end 87: 88: #set ($view = "") 89: #set ($view = $formatter.escapeXml($!request.getParameter("view"))) 90: 91: #set ($restriction = "0") 92: #set ($restrictionEsc = $formatter.escapeXml($request.getParameter("r"))) 93: #if ($restrictionEsc.length() > 0) 94: #set ($restriction = $restrictionEsc) 95: #end 96: 97: #if($request.getAttribute("teamAbbr").size() < 1) 98: $website.include("standings?tmpl=stats-standings-abbr-template") 99: #set ($teamAbbr = $request.getAttribute("teamAbbr")) 100: #end 101: 102: 103: #* 104: <!-- 105: Debug 106: URL: $url 107: isIncluded: $isIncluded 108: View: ${view} 109: Position: $pos 110: Sort: $sort 111: isAjax: $isAjax 112: isSharedMeets = $isSharedMeets 113: page.getTeamIDs.size() = $page.getTeamIDs().size() 114: teamId = $teamId 115: page.teams.entrySet() = $page.teams.entrySet().size() 116: isSingleTeam = $isSingleTeam 117: --> 118: *# 119: 120: #if ($locale == "en_us") 121: #set ($defLabel = "Defense") 122: #elseif ($locale == "en_gb") 123: #set ($defLabel = "Defence") 124: #end 125: 126: #macro (printTableHeader $label $class) 127: ## Hack for now 128: #set ($pos = "") 129: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 130: #set ($labels = $labels.get($pos)) 131: <th class="text-uppercase text-nowrap $class #if($sort == $key)table-active#end" #if($sort == $key) data-sort="1" #end data-key="$label" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">$label</th> 132: #end 133: 134: #macro(printBriefsCategories $r) 135: #set ($ariaLabel = "Overall Stats") 136: #if ($r == "1") 137: #set ($ariaLabel = "Conference Stats") 138: #end 139: #set ($briefsCategories = []) 140: #if ($teamId.length() == 0 && $briefsCategoriesLabels) 141: <div class="tab-container"> 142: #set ($activeCategory = "") 143: #foreach ($entry in $briefsCategoriesLabels.entrySet()) 144: #if ($foreach.first) 145: #set ($activeCategory = $entry.key) 146: #end 147: #if ($pos.length() > 0 && $entry.value.keySet().contains($pos)) 148: #set ($activeCategory = $entry.key) 149: #end 150: #end 151: 152: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-secondary-tabs" role="tablist"> 153: #foreach ($category in $briefsCategoriesLabels.entrySet()) 154: <li class="tabs-category nav-item text-center"> 155: <a class="nav-link #if ($category.key == $activeCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-${category.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}">$category.key</a> 156: </li> 157: #end 158: </ul> 159: 160: <div class="tab-content py-3"> 161: #foreach($category in $briefsCategoriesLabels.entrySet()) 162: 163: #set ($activeSubCategory = "") 164: #foreach ($subCategory in $category.value.entrySet()) 165: #if ($foreach.first) 166: #set ($activeSubCategory = $subCategory.value) 167: #end 168: #if ($pos == $subCategory.key) 169: #set ($activeSubCategory = $subCategory.value) 170: #end 171: #end 172: <div class="tab-pane #if ($category.key == $activeCategory) active #end" id="stats-bio-${category.key.toLowerCase()}-${r}" data-pos="$pos"> 173: <div class="tab-container"> 174: <div class="d-flex flex-row text-nowrap align-items-center justify-content-center"> 175: <div class="secondary-tab-select-container flex-fill"> 176: <select class="tab-nav-select-helper form-select" id="stats-bios-tertiary-select" aria-label="Choose a stat group"> 177: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 178: <option value="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" #if ($briefsCat.value == $activeSubCategory || $foreach.first) selected #end>$briefsCat.value</option> 179: #end 180: </select> 181: <script> 182: $('.tab-nav-select-helper').on('change', function(e) { 183: var id = $(this).val(); 184: $('a[data-bs-target="' + id + '"]').tab('show'); 185: 186: // Adjust DataTables if present 187: $('.dataTable').DataTable().columns.adjust().responsive.recalc(); 188: }); 189: </script> 190: </div> 191: </div> 192: <ul class="d-none nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-tertiary-tabs" role="tablist"> 193: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 194: <li class="tabs-category nav-item"> 195: <a class="nav-link #if ($briefsCat.value == $activeSubCategory) active #end" href="#" role="tab" data-bs-toggle="tab" data-bs-target="#stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}" aria-label="${ariaLabel}: ${category.key}: ${briefsCat.value}">$briefsCat.value</a> 196: </li> 197: #end 198: </ul> 199: 200: <div class="tab-content py-3"> 201: #foreach($briefsCat in $briefsCategoriesLabels.get("${category.key}").entrySet()) 202: <div class="tab-pane #if ($briefsCat.value == $activeSubCategory) active #end" id="stats-bio-subs-${briefsCat.key.toLowerCase()}-${r}"> 203: #printPlayers($briefsCat.key, $r) 204: </div> 205: #end 206: </div> 207: </div> 208: </div> 209: #end 210: </div> 211: </div> ## tab-container 212: #else 213: #printPlayers($pos, $r) 214: #end 215: #end ## printBriefsCategories 216: 217: #macro(printPlayers $p $r) 218: $request.setAttribute("icl-dataTables-script", true) 219: 220: #set ($briefs = $briefs.get($positions.get($p))) 221: 222: #set ($sortOrder = "asc") 223: #if (($sort == "gs") || ($sort == "gp") || ($sort == "pts") || ($sort == "ptspm")) 224: #set ($sortOrder = "desc") 225: #end 226: 227: ## player stats (conference, naia) 228: #set ($searching = "true") 229: #set ($paging = "true") 230: #set ($info = "true") 231: #set ($fixedColumnStart = 1) 232: #set ($ordering = "false") 233: 234: #if ($isIncluded || ($sort != 'name' && !$isSharedMeets)) 235: #set ($fixedColumnStart = 2) 236: #end 237: 238: #if ($isIncluded) 239: ## lineup pages 240: #set ($searching = "false") 241: #set ($paging = "false") 242: #set ($info = "false") 243: #set ($ordering = "true") 244: #end 245: 246: 247: 248: <div class="stats-container table-responsive-via-datatables"> 249: <table class="table table-hover table-light nowrap w-100" data-col-name="${sort}" data-sort-order="${sortOrder}" data-info="${info}" data-searching="${searching}" data-ordering="${ordering}" data-paging="${paging}" data-filter="false" data-responsive="false" data-fixed-column-start="${fixedColumnStart}" data-scroll-x="true" data-module="https://theme-assets.prestosports.com/theme-assets/generic/assets/js/table-sort-bs.js"> 250: #if ($minimum.length() > 0) 251: <caption class="caption-side-top">$!minimum</caption> 252: #end 253: <thead class="thead-dark"> 254: <tr> 255: #if ($isIncluded) 256: #printTableHeader("#", "text-center w-1") 257: #elseif ($sort != 'name' && !$isSharedMeets) 258: #printTableHeader("Rk", "text-center w-1") 259: #end 260: 261: #if ($cansort == 'n' || $isSharedMeets) 262: #printTableHeader("Name", "text-left") 263: #else 264: <th class="text-left text-uppercase text-nowrap #if($sort.equals("name") && $ordering.equals("false")) table-active #end">Name</th> 265: #end 266: 267: #if ($isIncluded) 268: #printTableHeader("Yr", "text-center") 269: #printTableHeader("Pos", "text-center") 270: #elseif ($isSharedMeets) 271: #printTableHeader("Yr", "text-center") 272: #else 273: #printTableHeader("Team", "text-center") 274: #end 275: 276: ## Hack for now 277: #set ($pos = "") 278: #set ($pos = $formatter.escapeXml($request.getParameter("pos"))) 279: #set ($labels = $labels.get($pos)) 280: 281: #foreach ($key in $briefs.keySet()) 282: #if ($cansort == 'n') 283: #printTableHeader($briefs.get($key), "text-center") 284: #else 285: <th class="text-center text-uppercase text-nowrap #if($sort == $key && $ordering.equals("false"))table-active#end" #if($sort == $key) data-sort="1" #end data-key="$key"> 286: <a class="text-reset" href="${url}?sort=${key}&view=${view}&pos=${p}&r=${r}" aria-label="sort table using ${briefs.get($key)}" data-sort-key="${key}" data-bs-toggle="tooltip" data-bs-placement="top" title="$!{labels.get($key)}">${briefs.get($key)}</a> 287: </th> 288: #end 289: #end 290: </tr> 291: </thead> 292: #set ($showCount = 0) 293: #set ($rankValue = "abb") 294: #set ($counter = 0) 295: 296: <tbody> 297: #foreach ($individual in $individuals) 298: #if ($r == "1") 299: #set ($stats = $individual.statsConference) 300: #else 301: #set ($stats = $individual.stats) 302: #end 303: 304: #set ($individualPosition = "") 305: #set ($individualPosition = $individual.position) 306: #set ($posVec = $individualPosition.split("/")) 307: #set ($individualPosition = $posVec[0]) 308: 309: #set ($show = "") 310: 311: #set ($showAllPlayers = $options.get("stats_show_all_players")) 312: #set ($showPosition = $lineupShowPosition && $lineupShowPosition.containsKey($p)) 313: #set ($showStat = $lineupShowStat && $lineupShowStat.containsKey($p)) 314: #if (!$showAllPlayers.equalsIgnoreCase("yes") and ($showPosition or $showStat or $min)) 315: #if ($showPosition) 316: #set ($indPositionsList = $lineupShowPosition.get($p)) 317: #foreach ($indPos in $indPositionsList) 318: #if ($individualPosition.equalsIgnoreCase($indPos)) 319: #set ($show = "y") 320: #end 321: #end 322: #end 323: 324: #if ($showStat) 325: #set ($statsList = $lineupShowStat.get($p)) 326: #foreach ($statElem in $statsList) 327: #if ($stats.get($statElem) > 0) 328: #set ($show = "y") 329: #end 330: #end 331: #end 332: 333: #if ($min) 334: #set ($test = 0) 335: #set ($test = $stats.get($min)) 336: #if ($test > 0) 337: #set ($show = "y") 338: #end 339: #end 340: #else 341: #set ($show = "y") 342: #end 343: 344: #if ($show.length() > 0) 345: #set ($showCount = $showCount + 1) 346: #if ($showCount <= 125) 347: <tr> 348: #if ($isIncluded) 349: <td class="text-nowrap text-center #if($sort.equals("uniform") && $ordering.equals("false")) table-active #end">${individual.uniform}</td> 350: #elseif ($sort != 'name' && ! $isSharedMeets) 351: <td class="text-nowrap text-center"> 352: ## Need to figure out what value is 353: #set ($value = ${stats.get($sort)}) 354: #if (!($value == $rankValue)) 355: ##This is a new rank value... let's update our ranking 356: #set ($rank = $showCount) 357: #set ($rankValue = $value) 358: #end 359: ${rank} 360: </td> 361: #end 362: 363: <td class="text-nowrap text-left #if($sort.equals("name") && $ordering.equals("false")) table-active #end"> 364: #if ($isSharedMeets) 365: ${individual.firstName} ${individual.lastName} 366: #else 367: <a href="${page.url}/${individual.pageName}"> 368: #if ($isIncluded) 369: ${individual.firstName} 370: #elseif ($individual.firstName.length() > 0) 371: ${individual.firstName.substring(0, 1)} 372: #end 373: ${individual.lastName} 374: </a> 375: #end 376: </td> 377: 378: #if ($isIncluded) 379: <td class="text-nowrap text-center">$!{individual.year}</td> 380: <td class="text-nowrap text-center"> 381: #if ($individual.positionAbbreviation) 382: $!individual.positionAbbreviation 383: #else 384: $!individual.position 385: #end 386: </td> 387: #elseif ($isSharedMeets) 388: <td class="text-nowrap text-center">$!{individual.year}</td> 389: #else 390: #set ($teamname = "") 391: #set ($teamname = $individual.team) 392: 393: ## TRY AND GRAB ALL THE TEAMS PAGES FROM WITHIN THE /CONF SECTION SETUP 394: ## THIS ALLOWS US TEAM NAMES TO LINK TO TEAMS STATS PAGE WITHIN THE /CONF SECTION IF SETUP 395: #* 396: $!request.setAttribute("pageObj", $page) 397: #if($request.getAttribute("conf_pages").size() < 1) 398: $website.includeAgain("get-conf-pages?pageName=teams") 399: #set ($confPages = $!request.getAttribute("conf_pages")) 400: #end 401: 402: #set ($confTeams = {}) 403: 404: ## THIS BUILDS A MAPPING OF CONFERENCE NAMES AND THEIR ASSOCIATED TEAMS FROM THE TEAMS PAGE 405: #foreach ($conf in $confPages) 406: #set ($ignore = $confTeams.put("$conf.name", { "teamsPage": $conf.pageObj, "teams": $conf.pageObj.teams })) 407: #end 408: 409: *# 410: 411: #set ($teamsURL = "teams?id=${individual.teamId}") 412: #* 413: #foreach ($entry in $confTeams.entrySet()) 414: #if ($entry.value.teams.containsValue($teamname)) 415: #set ($teamURL = "${entry.value.teamsPage.url}?id=${individual.teamId}") 416: #end 417: #end 418: 419: *# 420: 421: #if($teamAbbr.size() > 0) 422: ## THIS IS USED ONLY FOR SITES WANTING TO DISPLAY DIVISONS WITHIN THERE STATS 423: #* 424: #set ($teamname = $teamAbbr.get($individual.teamId)) 425: #set ($teamname = $teamAbbr.get($individual.team)) 426: *# 427: #end 428: 429: <td class="text-nowrap text-center #if($sort.equals("team") && $ordering.equals("false")) table-active #end"> 430: #if ($teamname.length() > 0) 431: <a href="$teamsURL">${teamname}</a> 432: #end 433: </td> 434: #end 435: 436: ## Briefs 437: #foreach ($key in $briefs.keySet()) 438: #set ($value = "-") 439: #set ($value = $formatter.formatNumber(${stats.get($key)}, $!formats.get($key))) 440: <td class="text-center text-nowrap #if($sort == $key && $ordering.equals("false")) table-active #end" data-order="$tool.math.toDouble($value)"> 441: #if ($value.length() > 0) 442: $value 443: #else 444: - 445: #end 446: </td> 447: #end 448: </tr> 449: #end ## page limit 450: #end ## showing 451: #end ## foreach individual 452: </tbody> 453: #if ($individuals.size() == 0) 454: <caption> 455: #if ($isSharedMeets) 456: This team's roster is empty 457: #elseif ($hasBiosBeforeFilter) 458: No players meet the minimum 459: #else 460: No stats are available at this time 461: #end 462: </caption> 463: #end 464: </table> 465: </div> 466: #if ($isIncluded && $showTotalRow) 467: <div class="table-totals mb-3 small text-start text-muted p-2"> 468: <div class="d-flex align-items-center justify-content-start totals gap-2 mb-2 flex-column flex-md-row"> 469: <div class="heading text-center text-md-end col-12 col-md-3 fw-bold">Totals</div> 470: #set ($teamStats = $request.getAttribute("teamStats")) 471: <div class="calculated-totals flex-fill w-100 m-0"> 472: <ul class="m-0 list-unstyled d-flex flex-wrap justify-content-center align-items-stretch border-top border-start"> 473: #foreach ($key in $briefs.keySet()) 474: #set ($value = "-") 475: #set ($value = $formatter.formatNumber(${teamStats.get($key)}, $!formats.get($key))) 476: <li class="flex-fill text-center border-bottom border-end p-2 flex-fill"> 477: <div class="d-flex flex-column justify-content-center align-items-center h-100"> 478: <span class="uppercase key initialism">$briefs.get($key)</span> 479: <span class="value fw-bold m-0 lh-1 nowrap">#if ($value.length() > 0)${value}#else-#end</span> 480: </div> 481: </li> 482: #end 483: </ul> 484: </div> 485: </div> 486: <div class="d-flex align-items-center justify-content-start opponent-totals gap-2 mb-2 flex-column flex-md-row"> 487: <div class="heading text-center text-md-end col-12 col-md-3 fw-bold">Opponents</div> 488: <div class="calculated-totals flex-fill w-100 m-0"> 489: <ul class="m-0 list-unstyled d-flex flex-wrap justify-content-center align-items-stretch border-top border-start"> 490: #foreach ($key in $briefs.keySet()) 491: #set ($keyopp = "${key}opp") 492: #set ($value = "-") 493: #set ($value = $formatter.formatNumber(${teamStats.get($keyopp)}, $!formats.get($key))) 494: <li class="flex-fill text-center border-bottom border-end p-2 flex-fill"> 495: <div class="d-flex flex-column justify-content-center align-items-center h-100"> 496: <span class="uppercase key initialism">$briefs.get($key)</span> 497: <span class="value fw-bold m-0 lh-1 nowrap">#if ($value.length() > 0)${value}#else-#end</span> 498: </div> 499: </li> 500: #end 501: </ul> 502: </div> 503: </div> 504: </div> 505: #end 506: #end ## printPlayers 507: 508: #macro (printFilters) 509: <div class="page-filters d-print-none"> 510: <div class="btn-toolbar d-flex justify-content-between gap-3 flex-column flex-sm-row flex-sm-nowrap" role="toolbar" aria-label="Standings tool bar"> 511: ## #printTeamsFilter 512: <div class="flex-fill"> 513: <div class="d-flex flex-wrap align-items-end justify-content-between gap-3 flex-row"> 514: $!request.setAttribute("pageObj", $page) 515: $website.include("conf-season-filter-template") 516: </div> 517: </div> 518: <div class="" role="group" aria-label="Print friendly version"> 519: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary text-nowrap"><span class="fa fa-print"></span> Print</a> 520: </div> 521: </div> 522: </div> 523: #end ## printFilters 524: 525: ### END MACROS ### 526: 527: ## TEAMS LAYOUTS FOR SHARED MEETS 528: #if ($isSharedMeets && !$isSingleTeam) 529: 530: #set ($teams = $tool.sorter.sort($page.teams.entrySet(), "value")) 531: #set ($teamsThreshold = 20) 532: 533: #if ($page.title.length() > 0) 534: <h1>$page.title</h1> 535: #else 536: <h1>Teams</h1> 537: #end 538: 539: #if ($teams.size() > $teamsThreshold) 540: 541: #set ($alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ") 542: 543: <div class="alphabet-filter" data-module="stats/alphabet-filter"> 544: <div class="alphabet-filter-chars"> 545: <span class="alphabet-filter-border"> | </span> 546: #foreach ($alphabet in $alphabets.split("")) 547: #if ($alphabet.length() > 0) 548: <a href="#alphabet-filter-${alphabet}" class="alphabet-filter-char">$alphabet</a> 549: <span class="alphabet-filter-border"> | </span> 550: #end 551: #end 552: </div> ## alphabet-filter-char 553: 554: <div class="alphabet-filter-list"> 555: <div class="alphabet-filter-column"> 556: #set ($lastAlphabet = "") 557: #set ($counter = 0) 558: 559: #foreach ($team in $teams) 560: #set ($teamName = $team.value) 561: 562: #if ($teamName.charAt(0) != $lastAlphabet) 563: #set ($counter = $counter + 1) 564: #if ($counter > 1) 565: </div> ## alphabet-filter-section 566: #end 567: #if ($counter == 8 || $counter == 15) 568: </div> ## alphabet-filter-column 569: <div class="alphabet-filter-column"> 570: #end 571: #set ($lastAlphabet = $teamName.charAt(0)) 572: <div class="alphabet-filter-section" id="alphabet-filter-${lastAlphabet}"> 573: <h4 class="alphabet-filter-char-title">| $lastAlphabet |</h4> 574: #end 575: <a href="${page.url}?teamId=${team.key}" class="alphabet-filter-link">$teamName</a> 576: #end 577: </div> ## alphabet-filter-section 578: </div> ## alphabet-filter-column 579: </div> ## alphabet-filter-list 580: </div> ## alphabet-filter 581: 582: #else ## plain list 583: 584: <div class="stats-container table-responsive"> 585: <table class="table table-hover"> 586: #foreach ($team in $teams) 587: <tr><td class="text"><a href="${page.url}?teamId=${team.key}">$team.value</a></td></tr> 588: #end 589: #if ($teams.size() == 0) 590: <tr><td>There are no teams that match this criteria</td></tr> 591: #end 592: </table> 593: </div> 594: 595: #end ## teams threshold 596: 597: ## TEAMINFO ROSTER LAYOUT 598: #elseif ($isIncluded && $view == 'roster') 599: 600: #set ($baseball = $sport && $sport.XMLCode == "bsgame") 601: <div class="stats-container table-responsive table-responsive-webkit-overflow-scroll-fix"> 602: <table class="table table-hover"> 603: <thead class="thead-dark"> 604: <tr> 605: <th scope="col" class="text-nowrap text-center w-1">#</th> 606: <th scope="col" class="text-nowrap text-left text-start text-uppercase pinned-col">Name</th> 607: <th scope="col" class="text-nowrap text-center text-uppercase ">Position</th> 608: <th scope="col" class="text-nowrap text-center text-uppercase">Year</th> 609: <th scope="col" class="text-nowrap text-center text-uppercase">Status</th> 610: #if ($baseball) 611: <th scope="col" class="text-nowrap text-center text-uppercase">Height</th> 612: <th scope="col" class="text-nowrap text-center text-uppercase">Weight</th> 613: <th scope="col" class="text-nowrap text-center text-uppercase">Bats</th> 614: <th scope="col" class="text-nowrap text-center text-uppercase">Throws</th> 615: <th scope="col" class="text-nowrap text-center text-uppercase">DOB</th> 616: <th scope="col" class="text-nowrap text-left text-uppercase">Hometown</th> 617: #end 618: </tr> 619: </thead> 620: <tbody> 621: #foreach ($individual in $individuals) 622: <tr data-additional-roster-status="$additionalRosterStatus" data-player-status="$individual.playerStatus" data-active="$individual.active" #if($additionalRosterStatus && $individual.playerStatus == "Inactive") class="table-warning #if(!$wiki.valid()) d-none #end" #end> 623: <td scope="row" class="text text-center">${individual.uniform}</td> 624: <td class="text text-left text-start pinned-col"> 625: <a href="${page.url}/${individual.pageName}">${individual.firstName} ${individual.lastName}</a> 626: </td> 627: <td class="text-center"> 628: #if ($individual.positionAbbreviation) 629: $!individual.positionAbbreviation 630: #else 631: $!individual.position 632: #end 633: </td> 634: <td class="text-center">$!{individual.year}</td> 635: <td class="text-center"> 636: #if($additionalRosterStatus) 637: $individual.playerStatus 638: #elseif ($individual.active) 639: Active 640: #else 641: Inactive 642: #end 643: </td> 644: #if ($baseball) 645: <td class="text-center">$!{individual.dataMap["height"]}</td> 646: <td class="text-center">$!{individual.dataMap["weight"]}</td> 647: <td class="text-center">$!{individual.dataMap["bats"]}</td> 648: <td class="text-center">$!{individual.dataMap["throws"]}</td> 649: <td class="text-center">$!{individual.dataMap["born"]}</td> 650: <td class="text-left text-start">$!{individual.dataMap["hometown"]}</td> 651: #end 652: </tr> 653: #end 654: </tbody> 655: </table> 656: </div> 657: 658: ## SHARED MEETS PLAYERS 659: #elseif ($isSharedMeets) 660: 661: #if ($teamId) 662: #set ($playersPageTitle = $page.title) 663: #foreach($team in $page.teams.entrySet()) 664: #if ($teamId == $team.key) 665: #set ($playersPageTitle = $team.value) 666: #end 667: #end 668: <h1>$playersPageTitle</h1> 669: #end 670: 671: #printPlayers($pos, $restriction) 672: 673: ## PLAYERS / LINEUP 674: #else 675: 676: ## do not show these options on the lineup page 677: #if (not $isIncluded) 678: 679: #if ($isAjax) 680: $website.decorate('') 681: #printPlayers($pos $restriction) 682: #stop 683: #end 684: 685: ## ARCHIVES 686: #if ($page.contentType == "stat/bios") 687: <div class="float-end">$website.include("navbar-playerstats-archive?tmpl=schedule-archive-list-template")</div> 688: #end 689: 690: <div class="page-content-header d-flex flex-column align-items-center gap-3 mb-3"> 691: #if ($page.title.length() > 0 && !$isSharedMeets) 692: <h1>$page.title</h1> 693: #else 694: <h1>Player Stats</h1> 695: #end 696: 697: #printFilters 698: 699: </div> 700: 701: ##if ($minimum.length() > 0) 702: <!--<div class="clearfix align-right">$!minimum</div>--> 703: ##end 704: 705: #if ($showconf && !$isSharedMeets) 706: $request.setAttribute("icl-responsive-tabs-script", true) 707: <div class="tab-container"> 708: <div class="tab-nav m-0"> 709: <ul class="nav nav-tabs nav-tabs-responsive d-flex with-arrow lined flex-row text-nowrap justify-content-start gap-3" id="stats-bios-primary-tabs" role="tablist"> 710: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 711: <a class="nav-link text-nowrap text-center #if ($restriction == "0") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=0" role="tab" data-bs-toggle="tab" data-bs-target="#overall" aria-controls="overall" aria-selected="true">Overall</a> 712: </li> 713: <li class="nav-item flex-fill flex-md-grow-0 flex-md-shrink-0"> 714: <a class="nav-link text-nowrap text-center #if ($restriction == "1") active #end" href="${url}?sort=${sort}&view=${view}&pos=${pos}&r=1" role="tab" data-bs-toggle="tab" data-bs-target="#conf" aria-controls="conf">Conference</a> 715: </li> 716: </ul> 717: </div> 718: 719: <div class="tab-content p-3 border"> 720: <div class="tab-pane #if ($restriction.equals("0")) active #end" role="tabpanel" id="overall"> 721: #printBriefsCategories("0") 722: </div> 723: <div class="tab-pane #if ($restriction.equals("1")) active #end" role="tabpanel" id="conf"> 724: #printBriefsCategories("1") 725: </div> 726: </div> 727: </div> ## tab-container overall/conf 728: #else 729: #printBriefsCategories($restriction) 730: #end 731: 732: #else 733: #printBriefsCategories($restriction) 734: #end ## not isIncluded 735: #end ## LAYOUTS 736: 737: $wiki.su |