activate modal on events app card, add class for user

This commit is contained in:
marko
2022-07-03 19:39:51 +02:00
parent 5903f65185
commit fd62691c17
4 changed files with 96 additions and 17 deletions

View File

@@ -19,12 +19,12 @@ include_once("events.inc.php");
// specify options here
});
});
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.modal');
var instances = M.Modal.init(elems, {
// specify options here
});
});
// document.addEventListener('DOMContentLoaded', function() {
// var elems = document.querySelectorAll('.modal');
// var instances = M.Modal.init(elems, {
// // specify options here
// });
// });
// Open the given modal
document.addEventListener('DOMContentLoaded', function () {

View File

@@ -102,7 +102,7 @@ echo(
AppCard::fromArray([
'link' => '/pages/desktop/wkParticipo',
'title' => 'Event-Planer',
'description' => 'Organisieren der Teilnahmen (und nicht-Teilnahmen) an Wettkämpfen, Sondertrainingseinheiten, Feiern etc.</p>' . eventPlaner::getHtmlEventTable(eventPlaner::getCommingWkEvents()) . '<p>',
'description' => 'Organisieren der Teilnahmen (und nicht-Teilnahmen) an Wettkämpfen, Sondertrainingseinheiten, Feiern etc.' . eventPlaner::getHtmlEventTable(eventPlaner::getCommingWkEvents()),
'imgUrl' => '/ressourcen/graphiken/icons/terminKalender.svg',
'actions' => [
AppCardAction::fromArray(['caption' => 'Planer', 'link' => '/pages/desktop/wkParticipo']),

View File

@@ -214,11 +214,11 @@ class AppCard{
return
"<div style=\"padding:1%;\" class=\"col s12 m6 ".$extraClass."\">".
"<div style=\"margin:1%;\" class=\"card blue-grey darken-1\">".
(($this->link!=null)?("<a href=\"".$this->link."\">"):(""))."<div class=\"card-content white-text\">".
"<span class=\"card-title\">".$this->title."</span>".
"<div class=\"card-content white-text\">".
(($this->link!=null)?("<a href=\"".$this->link."\">"):(""))."<span class=\"card-title\">".$this->title."</span>".(($this->link!=null)?("</a>"):("")).
(($this->imgUrl!=null)?("<img alt=\"".$this->title."\" style=\"display:block;margin-left:auto;margin-right:auto;max-height:10vh;\" class=\"responsive-img\" src=\"".$this->imgUrl."\" />"):("")).
"<p>".$this->description."</p>".
"</div>".(($this->link!=null)?("</a>"):("")).
"</div>".
"<div class=\"card-action\">".$actionListCode."</div>".
"</div>".
"</div>";
@@ -474,4 +474,70 @@ class dbConnector{
}
/**
* User for the Participo system
*/
class user{
private $id;
private $loginName;
private $name;
private $firstName;
private $dateOfBirth;
private $eMail;
public function __construct($id, $loginName, $name, $firstName, $dateOfBirth, $eMail)
{
$this->id = (int) id;
$this->loginName = $loginName;
$this->name = $name;
$this->firstName = $firstName;
$this->dateOfBirth = $dateOfBirth!=null?DateTime::createFromFormat('Y-m-d', $dateOfBirth):null;
$this->eMail = $eMail;
}
/**
* Create a User from an assoziative array
*
* @param array $member associative array with the UserData from the dbRequest
* @return User initialized user
*/
public static function fromArray($member){
return new User(
$member['id']??null,
$member['loginName']??null,
$member['name']??null,
$member['vorname']??null,
$member['gebDatum']??null,
array_key_exist('eMail', $member)?explode(',', $member['eMail']):null
);
}
/// Setzen aller Attribute
/// @todo Inputvalidation
function set($userData){
$this->id = $userData["id"];
$this->loginName = $userData["loginName"];
$this->name = $userData["name"];
$this->vorname = $userData["vorname"];
$this->gebDatum = $userData["gebDatum"];
$this->eMail = $userData["eMail"];
return;
}
function toAssoc(){
return array(
"id" => $this->id,
"loginName"=> $this->loginName,
"name" => $this->name,
"vorname" => $this->vorname,
"gebDatum" => $this->gebDatum,
"eMail" => $this->eMail);
}
function loadFromDb($dbConn, $id){
$this->set(
loadUserDataFromDb($dbConn, $id)
);
}
}
?>

View File

@@ -84,8 +84,8 @@ class shiai
'<dt>Datum:</dt><dd>' . $this->getHtmlDate() . '</dd>' .
'<dt>Altersklassen</dt><dd>' . $this->getAgeClasses() . '</dd>' .
'<dt>Ort</dt><dd>' . $this->getPlace() . '</dd>' .
'</dl>';
'</dl>' .
'</div>';
return $retHtml;
}
} // end class shiai
@@ -142,10 +142,13 @@ class event
public function htmlModal()
{
return
'<div id="event-modal-' . $this->id . '" class="modal">' .
'<div class="modal-content">' . $this->shiai->getHtml() . '</div>' .
'<div id="event-modal-' . $this->id . '" class="modal black-text">' .
'<div class="modal-content">' .
$this->shiai->getHtml() .
'</div>' . // end modal content
'<div class="modal-footer">' .
'<a href="#!" class="modal-close waves-effect waves-green btn-flat">Agree</a>' .
'<a href="/pages/desktop/wkParticipo/showWkEvent.php?eventId=' . $this->id . '" class="modal-close waves-effect waves-green btn-flat">Zum Event im Planer</a>' .
'<a href="#!" class="modal-close waves-effect waves-green btn-flat">Schließen</a>' .
'</div>' .
'</div>';
}
@@ -220,8 +223,18 @@ class eventPlaner
public static function getHtmlEventTable($eventList)
{
$ret = '<table>';
$ret .= '<!-- And now the table -->';
$ret = '';
// initialize the modals
$ret .= '<script>';
$ret .= "document.addEventListener('DOMContentLoaded', function() {";
$ret .= "var elems = document.querySelectorAll('.modal');";
$ret .= 'var instances = M.Modal.init(elems, {';
$ret .= '});';
$ret .= '});';
$ret .= '</script>';
$ret .= '<table>';
foreach ($eventList as $event) {
$ret .= $event->htmlTableRow();
}