summaryrefslogtreecommitdiff
path: root/app/Controller
diff options
context:
space:
mode:
Diffstat (limited to 'app/Controller')
-rw-r--r--app/Controller/App.php16
-rw-r--r--app/Controller/User.php9
-rw-r--r--app/Controller/Webnotification.php39
3 files changed, 64 insertions, 0 deletions
diff --git a/app/Controller/App.php b/app/Controller/App.php
index 80c04801..8a1a6e2b 100644
--- a/app/Controller/App.php
+++ b/app/Controller/App.php
@@ -188,6 +188,22 @@ class App extends Base
}
/**
+ * My notifications
+ *
+ * @access public
+ */
+ public function notifications()
+ {
+ $user = $this->getUser();
+
+ $this->response->html($this->layout('app/notifications', array(
+ 'title' => t('My notifications'),
+ 'notifications' => $this->webNotification->getAll($user['id']),
+ 'user' => $user,
+ )));
+ }
+
+ /**
* Render Markdown text and reply with the HTML Code
*
* @access public
diff --git a/app/Controller/User.php b/app/Controller/User.php
index 04e57417..0b39619d 100644
--- a/app/Controller/User.php
+++ b/app/Controller/User.php
@@ -2,6 +2,8 @@
namespace Controller;
+use Model\NotificationType;
+
/**
* User controller
*
@@ -92,6 +94,11 @@ class User extends Base
if ($user_id !== false) {
$this->projectPermission->addMember($project_id, $user_id);
+
+ if (! empty($values['notifications_enabled'])) {
+ $this->notificationType->saveUserSelectedTypes($user_id, array(NotificationType::TYPE_EMAIL));
+ }
+
$this->session->flash(t('User created successfully.'));
$this->response->redirect($this->helper->url->to('user', 'show', array('user_id' => $user_id)));
}
@@ -202,6 +209,8 @@ class User extends Base
$this->response->html($this->layout('user/notifications', array(
'projects' => $this->projectPermission->getMemberProjects($user['id']),
'notifications' => $this->notification->readSettings($user['id']),
+ 'types' => $this->notificationType->getTypes(),
+ 'filters' => $this->notificationFilter->getFilters(),
'user' => $user,
)));
}
diff --git a/app/Controller/Webnotification.php b/app/Controller/Webnotification.php
new file mode 100644
index 00000000..a481e9b8
--- /dev/null
+++ b/app/Controller/Webnotification.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace Controller;
+
+/**
+ * Web notification controller
+ *
+ * @package controller
+ * @author Frederic Guillot
+ */
+class Webnotification extends Base
+{
+ /**
+ * Mark all notifications as read
+ *
+ * @access public
+ */
+ public function flush()
+ {
+ $user_id = $this->userSession->getId();
+
+ $this->webNotification->markAllAsRead($user_id);
+ $this->response->redirect($this->helper->url->to('app', 'notifications', array('user_id' => $user_id)));
+ }
+
+ /**
+ * Mark a notification as read
+ *
+ * @access public
+ */
+ public function remove()
+ {
+ $user_id = $this->userSession->getId();
+ $notification_id = $this->request->getIntegerParam('notification_id');
+
+ $this->webNotification->markAsRead($user_id, $notification_id);
+ $this->response->redirect($this->helper->url->to('app', 'notifications', array('user_id' => $user_id)));
+ }
+}