- changes in layout of the achievementgroup cards

- accomplished/next achievement(s) now in collappsibel
  - record reporting button now hidden in collapsible
  - cards list groups that are unlocked from the group
This commit is contained in:
marko
2020-11-29 18:06:30 +01:00
parent de24498f77
commit ac7d81b136
4 changed files with 237 additions and 83 deletions

View File

@@ -55,9 +55,11 @@ SQL;
// - a value
// - an age class
public static function getGroupsRecords($groupId, $ageClass=null){
$query = "SELECT *, `cwsvjudo`.`machs_records`.`id` as `recordId` FROM `cwsvjudo`.`machs_records` ";
$query = "SELECT *, `cwsvjudo`.`machs_records`.`id` as `recordId`, `cwsvjudo`.`wkParticipo_Users`.`name` as `userName` FROM `cwsvjudo`.`machs_records` ";
$query.= " JOIN `cwsvjudo`.`wkParticipo_Users` ";
$query.= " ON `cwsvjudo`.`machs_records`.`userId` = `cwsvjudo`.`wkParticipo_Users`.`id` ";
$query.= " JOIN `cwsvjudo`.`machs_achievementGroups` ";
$query.= " ON `cwsvjudo`.`machs_achievementGroups`.`id` = `cwsvjudo`.`machs_records`.`achievementGroupId` ";
$query.= " WHERE `cwsvjudo`.`machs_records`.`achievementGroupId` = :groupId ";
$params =[
'groupId'=>[ 'value'=>$groupId, 'data_type'=>PDO::PARAM_INT ]
@@ -80,8 +82,7 @@ SQL;
}
public static function arrayRecord2htmlCardAction($r, $u, $gid){
// $retHtml.= "<div class=\"card-action\">";
$retHtml.= "<a class=\"waves-effect waves-light btn modal-trigger\" href=\"#reportRecord-user-".$u['id']."-group-".$gid."\">Rekord melden</a>";
$retHtml.= "<a style=\"width:100%;\" class=\"waves-effect waves-light btn modal-trigger\" href=\"#reportRecord-user-".$u['id']."-group-".$gid."\">Rekord melden</a>";
$retHtml.= "<div id=\"reportRecord-user-".$u['id']."-group-".$gid."\" class=\"modal\">";
$retHtml.= "<div class=\"modal-content\">";
$retHtml.= "Rekorde stellen in jeder Achievementgruppe und Altersklasse die Bestleistung unter allen Judoka dar. Rekorde können unabhänging vom eigenen, aktuellen Achievementstand aufgestellt werden.";
@@ -106,7 +107,7 @@ SQL;
$retHtml.= "<input id=\"submit\" style=\"width:100%\" name=\"submit\" type=\"submit\" value=\"Rekord eintragen\">";
}
else{
$retHtml.= "<input disabled=\"true\" id=\"submit\" style=\"width:100%\" name=\"submit\" type=\"submit\" value=\"Rekord melden\">";
$retHtml.= "<input id=\"submit\" style=\"width:100%\" name=\"submit\" type=\"submit\" value=\"Rekord melden\">";
}
$retHtml.= "</form>";
$retHtml.= "</div>";
@@ -118,27 +119,63 @@ SQL;
return $retHtml;
}
/// @param $r record joined with it's holder as associative error
/// @param $r record joined with it's holder as associative array
/// @param $u user for whom the record is shown
public static function arrayRecord2htmlCard($r, $u, $gid, $frameTag="div"){
$retHtml = "<".$frameTag." class=\"card\">";
$retHtml.= "<div class=\"card-content\">";
$retHtml.= "<span class=\"card-title\">Zu schlagender Rekord</span>";
public static function arrayRecord2collapsible($r, $u, $gid, $noForm=true){
$currentRecord = "";
if(empty($r)){
$retHtml.= "Noch kein Rekord für die Altersklasse U".record::birthday2ageClass($u['gebDatum']);
$currentRecord.= "Noch kein Rekord für die Altersklasse U".record::birthday2ageClass($u['gebDatum']);
}
else{
$retHtml.= $r['vorname']." ".$r['name']." mit ".$r['value']." in der U".$r['ageClass'];
$currentRecord.= $r['vorname']." ".$r['userName']." mit ".$r['value']." in der U".$r['ageClass'];
}
$retHtml.= "</div>";
$retHtml.= "</".$frameTag.">";
return $retHtml;
$recordRequest = record::arrayRecord2htmlCardAction($r, $u, $gid, $noForm);
return <<<COLLAPSIBLE
<ul class="collapsible">
<li>
<div class="collapsible-header">&#xfe40; $currentRecord</div>
<div class="collapsible-body"><span>$recordRequest</span></div>
</li>
</ul>
COLLAPSIBLE;
}
/// @param $r record joined with it's holder as associative array
/// @param $u user for whom the record is shown
public static function arrayRecord2htmlCard($r, $u, $gid, $noForm=true, $frameTag="div"){
$group = new achievementGroup;
$group->loadAchievementGroupFromDb($gid);
$retHtml.= "";
var_dump($group->canHaveRecords());
if($group->canHaveRecords()){
$retHtml = "<".$frameTag." class=\"card\">";
$retHtml.= "<div class=\"card-content\">";
$retHtml.= "<span class=\"card-title\">Zu schlagender Rekord</span>";
if(empty($r)){
$retHtml.= "Noch kein Rekord für die Altersklasse U".record::birthday2ageClass($u['gebDatum']);
}
else{
// $retHtml.=record::arrayRecord2collapsible($records[0], $userData[0], $this->getId(), $noForm);
$retHtml.=record::arrayRecord2collapsible($r, $u, $gid, $noForm);
//$retHtml.= $r['vorname']." ".$r['name']." mit ".$r['value']." in der U".$r['ageClass'];
}
$retHtml.= "</div>";//end card-content
// if(!$noForm){
// $retHtml.= record::arrayRecord2htmlCardAction($r, $u, $gid, $noForm);
// }
$retHtml.= "</".$frameTag.">";
}
return $retHtml;
}
public static function birthday2ageClass($birthdateString){
$birthDate = DateTime::createFromFormat("Y-m-d", $birthdateString);
$birthYear= (int)$birthDate->format("Y");