Files
thetool/application/CalendarTemplate/CalendarTemplateController.php
Daniel Spitzer 7c0c585b91 Kalender Updates
* Vorlagen können nun erstellt und editiert werden.
* neue Migration für CalendarTemplates
2025-01-14 18:54:18 +01:00

151 lines
4.4 KiB
PHP

<?php
class CalendarTemplateController extends mfBaseController
{
protected function init()
{
$this->needlogin = true;
$me = new User();
$me->loadMe();
$this->me = $me;
$this->layout()->set("me", $me);
if (!$me->is(["Admin"])) {
$this->redirect("Dashboard");
}
}
protected function apiAction()
{
$r = $this->request;
$do=$r->do;
switch ($do) {
case "getPreview":
$event_type = $r->event_type;
$calendartemplates = CalendarTemplateModel::search(array("event_type"=>$event_type));
$result['status'] = "success";
$result['data'] = $calendartemplates;
break;
default:
$result['status'] = "error";
$result['message'] = "Aktion nicht gefunden";
break;
}
echo json_encode($result);
die();
}
protected function indexAction()
{
$this->layout()->setTemplate("CalendarTemplate/Index");
$calendartemplates = CalendarTemplateModel::getAll();
$calendarTemplateEventTypes=CalendarTemplateModel::$calendarTemplateEventTypes;
$this->layout()->set("calendarTemplateEventTypes", $calendarTemplateEventTypes);
$this->layout()->set("calendartemplates", $calendartemplates);
}
protected function addAction()
{
$this->layout()->setTemplate("CalendarTemplate/Form");
}
protected function editAction()
{
$id = $this->request->id;
if (!is_numeric($id) || !$id) {
$this->layout()->setFlash("Vorlage nicht gefunden", "error");
$this->redirect("CalendarTemplate");
}
$calendartemplates = new CalendarTemplate($id);
if ($calendartemplates->id != $id) {
$this->layout()->setFlash("Vorlage nicht gefunden", "error");
$this->redirect("CalendarTemplate");
}
$calendarTemplateEventTypes=CalendarTemplateModel::$calendarTemplateEventTypes;
$this->layout()->set("calendarTemplateEventTypes", $calendarTemplateEventTypes);
$this->layout()->set("calendartemplates", $calendartemplates);
return $this->addAction();
}
protected function saveAction()
{
$r = $this->request;
$id = $r->id;
//var_dump($r->get());exit;
if (is_numeric($id) && $id > 0) {
$mode = "edit";
$calendartemplates = new CalendarTemplate($id);
if (!$calendartemplates->id) {
$this->layout()->setFlash("Vorlagen nicht gefunden", "error");
$this->redirect("Calendar");
}
} else {
$mode = "add";
}
$data = [];
$data['event_type'] = trim($r->event_type);
$data['name'] = trim($r->name);
$data['is_reminder'] = trim($r->is_reminder);
$data['text'] = trim($r->text);
if (!$data['event_type']) {
$data['event_type']=NULL;
}
if (!$data['name']) {
$data['name']=NULL;
}
if (!$data['is_reminder']) {
$data['is_reminder']=0;
}
if (!$data['text']) {
$data['text']=NULL;
}
// var_dump($_FILES);
// var_dump($upload);
// exit;
if ($mode == "edit") {
$calendartemplates->update($data);
} else {
$calendartemplates = CalendarTemplateModel::create($data);
}
// var_dump($filestore);
// exit;
$id = $calendartemplates->save();
if (!$id) {
$this->layout()->setFlash("Vorlage konnte nicht angelegt werden", "error");
$this->redirect("CalendarTemplate");
}
if ($mode == "edit") {
$this->layout()->setFlash("Vorlage erfolgreich geändert", "success");
} else if ($mode = "add") {
$this->layout()->setFlash("Vorlage erfolgreich angelegt", "success");
}
$this->redirect("Calendar");
}
protected function deleteAction()
{
$id = $this->request->id;
$calendartemplates = new CalendarTemplate($id);
if (!$calendartemplates->id || $calendartemplates->id != $id) {
$this->layout()->setFlash("Vorlage nicht gefunden.", "error");
$this->redirect("CalendarTemplate");
}
$calendartemplates->delete();
$this->redirect("Calendar");
}
}