mirror of
https://github.com/YunoHost-Apps/kanboard_ynh.git
synced 2024-09-03 19:36:17 +02:00
65 lines
1.6 KiB
PHP
65 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Kanboard\Model;
|
|
|
|
/**
|
|
* Project Notification
|
|
*
|
|
* @package model
|
|
* @author Frederic Guillot
|
|
*/
|
|
class ProjectNotification extends Base
|
|
{
|
|
/**
|
|
* Send notifications
|
|
*
|
|
* @access public
|
|
* @param integer $project_id
|
|
* @param string $event_name
|
|
* @param array $event_data
|
|
*/
|
|
public function sendNotifications($project_id, $event_name, array $event_data)
|
|
{
|
|
$project = $this->project->getById($project_id);
|
|
|
|
$types = array_merge(
|
|
$this->projectNotificationType->getHiddenTypes(),
|
|
$this->projectNotificationType->getSelectedTypes($project_id)
|
|
);
|
|
|
|
foreach ($types as $type) {
|
|
$this->projectNotificationType->getType($type)->notifyProject($project, $event_name, $event_data);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Save settings for the given project
|
|
*
|
|
* @access public
|
|
* @param integer $project_id
|
|
* @param array $values
|
|
*/
|
|
public function saveSettings($project_id, array $values)
|
|
{
|
|
$this->db->startTransaction();
|
|
|
|
$types = empty($values['notification_types']) ? array() : array_keys($values['notification_types']);
|
|
$this->projectNotificationType->saveSelectedTypes($project_id, $types);
|
|
|
|
$this->db->closeTransaction();
|
|
}
|
|
|
|
/**
|
|
* Read user settings to display the form
|
|
*
|
|
* @access public
|
|
* @param integer $project_id
|
|
* @return array
|
|
*/
|
|
public function readSettings($project_id)
|
|
{
|
|
return array(
|
|
'notification_types' => $this->projectNotificationType->getSelectedTypes($project_id),
|
|
);
|
|
}
|
|
}
|