Organization + calendar fixes/extensions

This commit is contained in:
Dennis Eichhorn 2016-02-14 23:10:58 +01:00
parent 6179700b03
commit 3b82c89840
5 changed files with 61 additions and 8 deletions

View File

@ -2,6 +2,21 @@
{ {
"id": 1000901001, "id": 1000901001,
"pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd",
"type": 1,
"subtype": 1,
"name": "Calendar",
"uri": "/{/lang}/backend/calendar/dashboard",
"target": "self",
"icon": "fa fa-calendar",
"order": 10,
"from": "Calendar",
"permission": null,
"parent": 1000201001,
"children": []
},
{
"id": 1000901002,
"pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd",
"type": 2, "type": 2,
"subtype": 1, "subtype": 1,
"name": "Calendar", "name": "Calendar",

View File

@ -15,9 +15,11 @@
*/ */
namespace Modules\Calendar; namespace Modules\Calendar;
use Modules\Calendar\Models\CalendarMapper;
use Modules\Navigation\Models\Navigation; use Modules\Navigation\Models\Navigation;
use Modules\Navigation\Views\NavigationView; use Modules\Navigation\Views\NavigationView;
use phpOMS\Contract\RenderableInterface; use phpOMS\Contract\RenderableInterface;
use phpOMS\Datatypes\SmartDateTime;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\RequestDestination; use phpOMS\Message\RequestDestination;
use phpOMS\Message\ResponseAbstract; use phpOMS\Message\ResponseAbstract;
@ -117,6 +119,11 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Calendar/Theme/Backend/calendar-dashboard'); $view->setTemplate('/Modules/Calendar/Theme/Backend/calendar-dashboard');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001201001, $request, $response)); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001201001, $request, $response));
$mapper = new CalendarMapper($this->app->dbPool->get());
$calendar = $mapper->get(1);
$calendar->setDate(new SmartDateTime($request->getData('date') ?? 'now'));
$view->addData('calendar', $calendar);
return $view; return $view;
} }

View File

@ -14,6 +14,7 @@
* @link http://orange-management.com * @link http://orange-management.com
*/ */
namespace Modules\Calendar\Models; namespace Modules\Calendar\Models;
use phpOMS\Datatypes\SmartDateTime; use phpOMS\Datatypes\SmartDateTime;
/** /**
@ -284,4 +285,26 @@ class Calendar
{ {
$this->date = $date; $this->date = $date;
} }
/**
* Get event by date
*
* @param \DateTime $date Date of the event
*
* @return Event[]
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function getEventByDate(\DateTime $date) : array
{
$events = [];
foreach ($this->events as $event) {
if ($event->getCreatedAt()->format('Y-m-d') === $date->format('Y-m-d')) {
$events[] = $event;
}
}
return $events;
}
} }

View File

@ -121,7 +121,7 @@ class CalendarMapper extends DataMapperAbstract
$this->db->con->prepare($query->toSql())->execute(); $this->db->con->prepare($query->toSql())->execute();
} catch (\Exception $e) { } catch (\Exception $e) {
var_dump($e); var_dump($e->getMessage());
return false; return false;
} }

View File

@ -1,11 +1,11 @@
<?php <?php
$calendar = new \Modules\Calendar\Models\Calendar(); $calendar = $this->getData('calendar');
?> ?>
<section class="wf-75 floatLeft"> <section class="wf-75 floatLeft">
<section class="box w-100"> <section class="box w-100">
<ul class="btns floatLeft"> <ul class="btns floatLeft">
<li><a href=""><i class="fa fa-arrow-left"></i></a> <li><a href="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/backend/calendar/dashboard?date=' . $calendar->getDate()->createModify(0, -1, 0)->format('Y-m-d')) ?>"><i class="fa fa-arrow-left"></i></a>
<li><a href=""><i class="fa fa-arrow-right"></i></a> <li><a href="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/backend/calendar/dashboard?date=' . $calendar->getDate()->createModify(0, 1, 0)->format('Y-m-d')) ?>"><i class="fa fa-arrow-right"></i></a>
</ul> </ul>
<ul class="btns floatRight"> <ul class="btns floatRight">
<li><a href=""><?= $this->l11n->lang['Calendar']['Day'] ?></a> <li><a href=""><?= $this->l11n->lang['Calendar']['Day'] ?></a>
@ -16,15 +16,23 @@ $calendar = new \Modules\Calendar\Models\Calendar();
</section> </section>
<section class="box w-100"> <section class="box w-100">
<div class="m-calendar-month"> <div class="m-calendar-month">
<?php for($i = 0; $i < 6; $i++) : ?> <?php $current = new \phpOMS\Datatypes\SmartDateTime($calendar->getDate()->format('Y') . '-' . $calendar->getDate()->format('m') . '-' . '01'); for($i = 0; $i < 6; $i++) : ?>
<div class="wf-100"> <div class="wf-100">
<?php for($j = 0; $j < 7; $j++) : ?> <?php for($j = 0; $j < 7; $j++) : ?>
<div contextmenu="calendar-day-menu" style="display: inline-block; box-sizing: border-box; width: 13.0%; height: 100px; border: 1px solid #000; margin: 0; padding: 3px;"> <div contextmenu="calendar-day-menu" style="display: inline-block; box-sizing: border-box; width: 13.0%; height: 100px; border: 1px solid #000; margin: 0; padding: 3px; overflow: hidden">
<?php if($calendar->getFirstDay() <= $i*7+$j+1 && $calendar->getDaysOfMonth() >= $i*7+$j+1) { <?php if($calendar->getDate()->getFirstDayOfMonth() <= $i*7+$j+1 && $calendar->getDate()->getDaysOfMonth() >= $i*7+$j+1) {
echo ($i*7+$j+1) . ' ' . $this->l11n->lang[0][jddayofweek($j, 1)]; echo ($i*7+$j+1) . ' ' . $this->l11n->lang[0][jddayofweek($j, 1)];
} else { } else {
echo (($i*7+$j+1)-$calendar->getDaysOfMonth()); echo (($i*7+$j+1)-$calendar->getDate()->getDaysOfMonth()) . ' ' . $this->l11n->lang[0][jddayofweek($j, 1)];
} ?> } ?>
<ul>
<?php
$events = $calendar->getEventByDate($current);
$current->smartModify(0, 0, 1);
foreach($events as $event) : ?>
<li><span class="tag purple" style="white-space: nowrap;"><?= $event->getName(); ?></span>
<?php endforeach; ?>
</ul>
</div> </div>
<?php endfor; ?> <?php endfor; ?>
</div> </div>