summaryrefslogtreecommitdiff
path: root/app/frontend/controls/CalendarGrid.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/frontend/controls/CalendarGrid.php')
-rw-r--r--app/frontend/controls/CalendarGrid.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/app/frontend/controls/CalendarGrid.php b/app/frontend/controls/CalendarGrid.php
new file mode 100644
index 0000000..4ebfacd
--- /dev/null
+++ b/app/frontend/controls/CalendarGrid.php
@@ -0,0 +1,59 @@
+<?php
+
+Prado::using('Application.web.FacadeTemplateControl');
+Prado::using('Application.facades.EventFacade');
+Prado::using('Application.user.DbUser');
+
+class CalendarGrid extends FacadeTemplateControl {
+
+ public function setMonth($month) {
+ $this->setControlState('Month', $month);
+ }
+
+ public function getMonth() {
+ return $this->getControlState('Month');
+ }
+
+ public function setYear($year) {
+ $this->setControlState('Year', $year);
+ }
+
+ public function getYear() {
+ return $this->getControlState('Year');
+ }
+
+ public function setUserToDisplay(DbUser $user) {
+ $this->setControlState('User', $user);
+ }
+
+ public function getUserToDisplay() {
+ return $this->getControlState('User');
+ }
+
+ private function _getGrid() {
+ return $this->getFacade()->getCalendarListForUser(
+ $this->UserToDisplay,
+ $this->Month,
+ $this->Year
+ );
+ }
+
+ public function onPreRender($param) {
+ parent::onPreRender($param);
+ $this->Weeks->DataSource = $this->_getGrid()->Weeks;
+ $this->Weeks->dataBind();
+ }
+
+ public function weekDataBind($sender, $param) {
+ $param->Item->Days->DataSource = $param->Item->Data;
+ $param->Item->Days->dataBind();
+ }
+
+ public function dayDataBind($sender, $param) {
+ $param->Item->Events->DataSource = $param->Item->Data->Events;
+ $param->Item->Events->dataBind();
+ }
+
+}
+
+?>