Feat: initially add dr stuff

This commit is contained in:
Dorian Zedler 2022-11-25 20:57:31 +01:00
parent 0e69a5546e
commit dc0453fa64
Signed by: dorian
GPG key ID: 989DE36109AFA354
5 changed files with 3755 additions and 0 deletions

3241
dr_api.js Normal file

File diff suppressed because it is too large Load diff

324
dr_list.css Normal file
View file

@ -0,0 +1,324 @@
/**
* digital ROCK CSS for jQuery based Javascript API
*
* @link http://www.digitalrock.de
* @author Ralf Becker <RalfBecker@digitalROCK.de>
* @copyright 2010-13 by RalfBecker@digitalROCK.de
* @version $Id$
*/
table.DrTable {
width: 100%;
}
/**
* Background etc. for header rows
*/
table.DrTable thead, table.DrTable tbody th {
background-color: #c0c0c0;
}
/**
* Background etc. for body rows
*/
table.DrTable tbody {
background-color: #f0f0f0;
}
/**
* Center all columns by default
*/
table.DrTable th, table.DrTable td {
text-align: center;
}
/**
* Left justify text columns like name
*/
table.DrTable th.lastname, table.DrTable td.lastname, table.DrTable td.firstname, table.DrTable td.boulder,
table.DrTable td.team_name, table.DrTable tbody th, .Starters table.DrTable th, .Starters table.DrTable td,
table.DrTable th.federation, table.DrTable td.federation, table.DrTable th.rgz, table.DrTable td.rgz,
table.DrTable th.city, table.DrTable td.city, table.DrTable th.footer {
padding-left: 5px;
text-align: left;
}
table.DrTable td.final_points, table.DrTable td.quali_points {
padding-right: 5px;
text-align: right;
}
table.DrTable td.final_points {
padding-right: 15px;
}
table.DrTable tbody th a {
padding-left: 10px;
font-weight: normal;
}
table.DrTable.boulder2018 tbody td[class^="result"] {
min-width: 6em;
}
table.DrTable.boulder2018 tbody td.result_rank {
min-width: 0;
}
/**
* alignment of multiple values in a column by align_td_nbsp function
*/
table.DrTable td div.tdAlign2 { width: 30%; display: inline-block; }
table.DrTable td div.tdAlign2:first-child { width: 60%; display: inline-block; }
table.DrTable td div.tdAlign3 { width: 20%; display: inline-block; }
table.DrTable td div.tdAlign3:first-child { width: 40%; display: inline-block; }
table.DrTable td div.tdAlign4 { width: 16%; display: inline-block; }
table.DrTable td div.tdAlign4:first-child { width: 50%; display: inline-block; }
/**
* Capitalize names
*/
.lastname {
text-transform: uppercase;
}
.Starters .lastname:after {
content: ", ";
}
/**
* Hide names (this is only for show, no real name below filter)
*/
tr.hideNames .lastname, tr.hideNames .firstname {
-webkit-filter: blur(2px) grayscale(1) opacity(50%);
filter: blur(2px) grayscale(1) opacity(50%);
}
/**
* Format the header
*/
.Results h1, .Startlist h1, .Resultlist h1, .Starters h1, .Profile h1 {
padding: 0;
margin: 0;
font-size: 20pt;
font-weight: bold;
}
.Results h3, .Profile h3, .Profile h2 {
padding: 0;
margin: 0;
font-weight: normal;
}
.Results select.compChooser {
width: 100%;
}
/**
* Quota line
*/
.quota_line > td {
border-top: 2px solid black;
}
/**
* See also links
*/
ul.seeAlso li {
display: block ! important;
}
/**
* Result column
*/
.result {
white-space: nowrap;
}
/**
* Toc row
*/
ul.listToc, ul.listCatToc {
padding: 0;
margin: 0;
float: left;
}
ul.listCatToc {
float: right;
}
ul.listToc li, ul.listCatToc li {
display: inline-block;
margin-right: 15px !important;
text-transform: uppercase;
line-height: 1.2;
}
ul.listCatToc li {
text-transform: none;
}
/**
* New boulder result display
*/
div.boulder, div.boulderNone, div.boulderTop, div.boulderBonus {
width: 24px;
height: 24px;
display: inline-block;
margin-right: 2px;
background-size: 100%;
position: relative;
}
td.boulder > div {
white-space: nowrap;
text-align: center;
}
div.boulderNone {
background-image: url(../../templates/default/images/boulderNone.png);
}
div.boulderTop {
background-image: url(../../templates/default/images/boulderTop.png);
}
div.boulderBonus {
background-image: url(../../templates/default/images/boulderBonus.png);
}
div.bonusTries, div.topTries {
position: absolute;
font-size: 90%;
font-weight: bold;
color: white;
}
div.bonusTries {
right: 3px;
bottom: 1px;
line-height: 1;
}
div.topTries {
left: 3px;
top: 1px;
line-height: 1;
}
/**
* Profile page
*/
div.Profile {
display: inline-block;
}
.profileHeader, .profileData {
width: 100%;
}
.profileHeader .profileNation {
margin: 5px 0 5px 0;
}
.profileLogo {
text-align: right;
}
.profileRank:after, .profileResultRank:after {
content: ".";
}
.profileData td {
font-style: italic;
}
td.profileAge, td.profileBirthdate, td.profileBirthplace, td.profileCity, td.profileStreet, td.profileRank,
td.profilePractice, td.profileOtherSports, td.profileProfessional, td.profileHeight, td.profileWeight {
font-weight: bold;
font-style: normal;
}
.profileResult td, h1, h3, td.profileRanglist {
font-style: normal;
}
td.profileRanglist {
white-space: nowrap;
}
.profileResultHidden {
display: none;
}
tr.profileMarginTop > td {
padding-top: 10px;
}
.profileResultHeader td {
font-weight: bold;
font-style: normal;
font-size: 120%;
}
.profileData td:first-child {
width: 2em;
}
/**
* Aggregated rankings
*/
.Aggregated th.nation, .Aggregated td.nation, .Aggregated td.name, .Aggregated th.name {
text-align: left;
padding-left: 3px;
}
.Aggregated td.name, .Aggregated th.result, .Aggregated td.result {
line-height: 1.3;
white-space: pre-wrap;
}
.Aggregated td.calculationHidden, .Aggregated th.calculationHidden {
display: none;
}
.Aggregated div.resultRows, .Aggregated div.resultRow {
width: 100%;
text-align: left;
}
.Aggregated td.result span
{
padding-right: 1ex;
}
.Aggregated td.result span.rank {
display: inline-block;
width: 1.5em;
}
.Aggregated td.result span.rank:after, .Aggregated td.rank:after {
content: ".";
}
.Aggregated td.result span.points {
float: right;
}
.Aggregated .rankingHeader2 {
white-space: pre;
}
/**
* ResultChooser widget
*/
.ResultChooser > select {
display: block;
width: 100%;
}
/**
* Resultlist
*/
.Resultlist h3.resultDate:empty {
display: none;
}
.error:empty {
display: none;
}
.error {
color: red;
font-style: italic;
}
/**
* Fix some CSS on www.ifsc-climbing.org
*/
section#gkMainbody table.profileHeader thead tr:hover td, section#gkMainbody table.profileData thead tr:hover td {
background-color: black;
}
section#gkMainbody table.DrTable thead, section#gkMainbody table.DrTable tbody{
background-color: inherit;
background-color: rgba(0,0,0,0.75);
}
/* do NOT show start-numbers on ifsc-website */
section#gkMainbody .Resultlist table.DrTable .start_number {
display: none;
}
/* display wide lists over right _WORLDCOMP. menu, not under it */
section#gkMainbody table.DrTable {
position: relative;
z-index: 1;
}
/* hide digitalROCK logo */
section#gkMainbody td.profileLogo {
display: none;
}
/* footer */
div.footer {
display: hidden;
color: gray;
}

122
dr_translations.js Normal file
View file

@ -0,0 +1,122 @@
var dr_translations = {
after: {
de: "nach",
},
Agegroup: {
de: "Jahrgang",
},
"Athlete #1": {
de: "Athlete #1",
},
"Athlete #2": {
de: "Athlete #2",
},
"Athlete #3": {
de: "Athlete #3",
},
"Athlete asked not to show his name anymore.": {
de: "Der Athlet hat gebeten seinen Namen nicht mehr anzuzeigen.",
},
"As of": {
de: "Stand",
},
Birthyear: {
de: "Jahrgang",
},
Calendar: {
de: "Kalender",
},
City: {
de: "Stadt",
},
Deadline: {
de: "Anmeldeschluss",
},
"Event Website": {
de: "Event Webseite",
},
"Final Points": {
de: "Final Punkte",
},
"For %1 %2 best results per competition and category are counting.": {
de: "Für %1 zählen die %2 besten Ergebnisse pro Wettkampf und Kategorie.",
},
"Info Sheet": {
de: "Infoblatt",
},
Name: {
de: "Name",
},
Nation: {
de: "Nation",
},
"Not counting results are in brackets.": {
de: "Nicht zählende Ergebnise sind in Klammern.",
},
Points: {
de: "Punkte",
},
Qualification: {
de: "Qualifikation",
},
Rank: {
de: "Rang",
},
Regionalzentrum: {
de: "Regionalzentrum",
},
Regulation: {
de: "Regulation",
},
Result: {
de: "Ergebnis",
},
"See also:": {
de: "Siehe auch:",
},
Sektion: {
de: "Sektion",
},
"Select a single category to show ...": {
de: "Einzelne Kategorie zum Anzeigen auswählen ...",
},
"Select another competition ...": {
de: "Anderen Wettkampf auswählen ...",
},
StartNr: {
de: "StartNr",
},
Starters: {
de: "Meldeliste",
},
Startlist: {
de: "Startliste",
},
Sum: {
de: "Summe",
},
Teamname: {
de: "Teamname",
},
"Total of %1 athletes registered in all categories.": {
de: "Total of %1 athletes registered in all categories.",
},
Vorqualifiziert: {
de: "Vorqualifiziert",
},
"calculation of this ranking": {
de: "Berechnung dieser Rangliste",
},
"Complete Results": {
de: "komplettes Ergebnis",
},
"previous heat": {
de: "vorherige Runde",
},
"provisional Result": {
de: "provisorisches Ergebnis",
},
"years, since": {
de: "Jahre, seit",
},
};

64
index.html Normal file
View file

@ -0,0 +1,64 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Author" content="Ralf Becker [http://www.digitalROCK.de]" />
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="dr_api.js"></script>
<script type="text/javascript" src="dr_translations.js"></script>
<link type="text/css" rel="StyleSheet" href="dr_list.css" />
</head>
<body>
<div id="table"></div>
<div id="footer" style="display: none; font-size: 90%"></div>
<script type="text/javascript">
var widget;
$(document).ready(function () {
var padding = location.search.match(/padding=([^&]+)/);
if (padding)
jQuery("body").css(
"padding",
decodeURIComponent(padding[1].replace(/\+/, "%20"))
);
var font_size = location.search.match(/font_size=((\d+)(pt|px|em)?)/);
if (font_size) {
var boulder_size =
Math.round(0.8 * parseInt(font_size[2])) +
(font_size[3] ? font_size[3] : "pt");
font_size = font_size[1] + (font_size[3] ? font_size[3] : "pt");
jQuery('<style type="text/css"/>')
.text(
"td, th, .Resultlist h1, .Startlist h1 {font-size: " +
font_size +
";}" +
"div.boulder, div.boulderNone, div.boulderTop, div.boulderBonus {" +
"width: " +
boulder_size +
"; height: " +
boulder_size +
"; margin-right: 4px;}"
)
.appendTo("head");
}
var json_url = "https://www.digitalrock.de/egroupware/ranking/json.php";
if (location.pathname.match(/sitemgr.*$/)) {
json_url = location.pathname.replace(/sitemgr.*$/, "json.php");
}
widget = new DrWidget(
"table",
json_url + (location.search || location.hash.replace(/^#!?/, "?"))
);
setTimeout(function () {
window.scrollTo(0, 1);
}, 100);
if (!document.location.href.match(/beamer=1/)) {
showFooterByCat("div#footer");
}
});
if (document.location.href.match(/beamer=1/)) load_css("beamer.css");
</script>
</body>
</html>

4
jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long