dszymczuk/dsEventCalendar57

View on GitHub
controllers/single_page/dashboard/event_calendar/list_event.php

Summary

Maintainability
B
4 hrs
Test Coverage
<?php
namespace Concrete\Package\Dseventcalendar\Controller\SinglePage\Dashboard\EventCalendar;

use \Concrete\Core\Page\Controller\DashboardPageController;
use dsEventCalendar\dsEventCalendar;
use Loader;

defined('C5_EXECUTE') or die("Access Denied.");


class ListEvent extends DashboardPageController
{
    public function view()
    {
        //redirect if param is not exist
        $this->redirect("dashboard/event_calendar/list_calendar");
    }

    public function show($calendar_id)
    {
        $this->addFooterItem(Loader::helper('html')->css('jquery.datetimepicker.min.css', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->css('fullcalendar.min.css', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->css('dsStyle.css', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->javascript('moment.min.js', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->javascript('jquery.datetimepicker.min.js', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->javascript('fullcalendar.min.js', 'dsEventCalendar'));
        $this->addFooterItem(Loader::helper('html')->javascript('lang-all.js', 'dsEventCalendar'));
        $this->requireAsset('javascript', 'jquery');
        $dsEventCalendar = new dsEventCalendar();

        $json_events = $dsEventCalendar->getEventsFromCalendar($calendar_id);
        $this->set('events', $json_events);
        $this->set('settings', $dsEventCalendar->settingsProvider());
        $this->set('types', $dsEventCalendar->getEventTypes());
        $this->set('calendarID', $calendar_id);
        $this->set('pageTitle', t("Events"));
    }

    public function getEvents()
    {
        $calendar_id = $this->get('calendarid');
        $dsEventCalendar = new dsEventCalendar();
        $json_events = $dsEventCalendar->getEventsFromCalendar($calendar_id);
        die($json_events);
    }

    public function updateEvent()
    {
        if (isset($_POST) && !empty($_POST)) {
            //if calendarID === 0 -> is bad !!
            if ($_POST['calendarID'] == 0)
                die("ERROR");

            $calendarID = $this->post('calendarID');
            $eventID = $this->post('eventID');


            $date = date_create($_POST['eventEndDate']);
            if ($_POST['eventStartDate'] != $_POST['eventEndDate'])
                $date = date_add($date, date_interval_create_from_date_string('1 day'));


            $date_end = date_format($date, "Y-m-d");

            $startDate = trim($this->post('eventStartDate') . " " . $this->post('eventStartTime'));
            $endDate = trim($date_end . " " . $this->post('eventEndTime'));

            $startDate = new \DateTime($startDate);
            $endDate = new \DateTime($endDate);

            $sql = "UPDATE dsEventCalendarEvents SET
                calendarID = ?,
                title = ?,
                date = ?,
                end = ?,
                type = ?,
                description = ?,
                url = ?
                WHERE eventID=" . $eventID . " and calendarID = " . $calendarID;

            $args = array(
                $this->post('calendarID'),
                $this->post('eventTitle'),
                $startDate->format('Y-m-d H:i:s'),
                $endDate->format('Y-m-d H:i:s'),
                $this->post('eventType'),
                $this->post('eventDescription'),
                $this->post('eventURL')
            );

            $db = Loader::db();

            if ($db->Execute($sql, $args))
                die("OK");

            die("ERROR");

        }
        die("ERROR");
    }

    public function removeEvent()
    {
        if (isset($_POST) && !empty($_POST)) {
            $eventID = $this->post('eventID');
            if (is_numeric($eventID)) {
                $db = Loader::db();
                $sql = "DELETE FROM dsEventCalendarEvents WHERE eventID = " . $eventID;
                if ($db->Execute($sql))
                    die("OK");
                else
                    die("ERROR");
            }

            die("ERROR");
        }
    }

    public function updateDateEvent()
    {
        if (isset($_POST) && !empty($_POST)) {
            //if calendarID === 0 -> is bad !!
            if ($_POST['calendarID'] == 0)
                die("ERROR");

            $calendarID = $this->post('calendarID');
            $eventID = $this->post('eventID');
            $eventStart = $this->post('eventDate');
            $eventEnd = $this->post('eventEnd');

            $args = array(
                $eventStart
            );

            $sql = "UPDATE dsEventCalendarEvents SET date = ? ";

            if ($eventEnd != "") {
                $sql .= " , end = ? ";
                array_push($args, $eventEnd);
            }

            $sql .= " WHERE eventID=" . $eventID . " and calendarID = " . $calendarID;

            $db = Loader::db();

            if ($db->Execute($sql, $args))
                die("OK");

            die("ERROR");

        }
    }

    public function updateDateEventRange()
    {
        if (isset($_POST) && !empty($_POST)) {
            //if calendarID === 0 -> is bad !!
            if ($_POST['calendarID'] == 0)
                die("ERROR");

            $calendarID = $this->post('calendarID');
            $eventID = $this->post('eventID');
            $eventEnd = $this->post('eventEnd');

            $args = array(
                $eventEnd
            );

            $sql = "UPDATE dsEventCalendarEvents SET end = ? ";

            $sql .= " WHERE eventID=" . $eventID . " and calendarID = " . $calendarID;

            $db = Loader::db();

            if ($db->Execute($sql, $args))
                die("OK");

            die("ERROR");

        }
    }

    public function clearEvents($calendar_id)
    {
        if (is_numeric($calendar_id)) {
            $dsEventCalendar = new dsEventCalendar();
            $dsEventCalendar->removeEventFromCalendar($calendar_id);
            $this->redirect("dashboard/event_calendar/list_calendar");
        }
    }
}