This commit is contained in:
Paminger
2016-06-21 11:27:36 +02:00
parent 834b119f9c
commit dbe19fafb5
14 changed files with 244 additions and 50 deletions
+18 -9
View File
@@ -1,34 +1,43 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Messages extends FHC_Controller
class Messages extends VileSci_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('messaging');
$this->load->library('MessageLib');
//$this->load->model('person/Person_model');
//$this->load->model('system/Message_model');
}
public function index()
{
//$messages = $this->Message_model->getMessages();
$msg = $this->Message_model->load(1);
$this->load->view('system/messages.php');
}
public function table()
{
$person_id = $this->input->post('person_id', TRUE);
if ($person_id)
$msg = $this->messagelib->getMessagesByPerson($person_id);
else
$msg = $this->messagelib->getMessagesByUID($this->getUID());
if ($msg->error)
show_error($msg->retval);
$data = array
(
'message' => $msg->retval[0]
'messages' => $msg->retval
);
$v = $this->load->view('message.php', $data);
var_dump ($data);
$this->load->view('system/messagesList.php', $data);
}
public function view($msg_id)
{
$msg = $this->messaging->getMessage($msg_id);
$msg = $this->messagelib->getMessage($msg_id);
//var_dump($msg);
if ($msg->error)
show_error($msg->retval);
@@ -57,9 +66,9 @@ class Messages extends FHC_Controller
{
$body = $this->input->post('body', TRUE);
$subject = $this->input->post('subject', TRUE);
if (! $this->messaging->addRecipient(1))
if (! $this->messagelib->addRecipient(1))
show_error('Error: AddRecipient');
$msg = $this->messaging->sendMessage(1,$body ,$subject);
$msg = $this->messagelib->sendMessage(1,$body ,$subject);
if ($msg->error)
show_error($msg->retval);
$msg_id = $msg->retval;
+3 -3
View File
@@ -2,11 +2,11 @@
class DB_Model extends FHC_Model
{
protected $dbTable; // Name of the DB-Table for CI-Insert, -Update, ...
protected $pk; // Name of the PrimaryKey for DB-Update, Load, ...
protected $dbTable; // Name of the DB-Table for CI-Insert, -Update, ...
protected $pk; // Name of the PrimaryKey for DB-Update, Load, ...
protected $hasSequence; // False if this table has a composite primary key that is not using a sequence
// True if this table has a primary key that uses a sequence
protected $acl; // Name of the PrimaryKey for DB-Update, Load, ...
protected $acl; // Name of the PrimaryKey for DB-Update, Load, ...
function __construct($dbTable = null, $pk = null, $hasSequence = true)
{
+12 -9
View File
@@ -3,19 +3,22 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class FHC_Controller extends CI_Controller
{
public $uid;
protected $_uid; // needs to be changed to protected $_uid
function __construct()
public function __construct()
{
parent::__construct();
$this->load->library('session');
//$this->load->helper('language');
$this->load->helper('fhcauth');
// look if User is logged in and set uid
if (isset($_SERVER['PHP_AUTH_USER']))
$this->uid = $_SERVER['PHP_AUTH_USER'];
if (isset($_SESSION['uid']))
$this->uid = $_SESSION['uid'];
$this->session->set_userdata('uid', 'pam');
$this->_uid = getAuthUID();
}
public function getUID()
{
if (empty($this->_uid))
return false;
else
return $this->_uid;
}
}
+11 -1
View File
@@ -40,6 +40,16 @@ class FHC_Model extends CI_Model
{
return $this->fhc_db_acl->setUID($uid);
}
/** ---------------------------------------------------------------
* get UID
*
* @return string or (bool)false
*/
public function getUID()
{
return $this->fhc_db_acl->getUID();
}
/** ---------------------------------------------------------------
* Success
@@ -61,4 +71,4 @@ class FHC_Model extends CI_Model
{
return error($retval, $message);
}
}
}
+16
View File
@@ -48,4 +48,20 @@ if ( ! function_exists('auth'))
return false;
}
}
/**
* Look if User is logged in and return uid
* Otherwise return false
*
* @return string or (bool)false
*/
function getAuthUID()
{
// look if User is logged in and return uid
if (isset($_SERVER['PHP_AUTH_USER']))
return $_SERVER['PHP_AUTH_USER'];
if (isset($_SESSION['uid']))
return $_SESSION['uid'];
return false;
}
}
+10
View File
@@ -68,4 +68,14 @@ class FHC_DB_ACL
{
return $this->_uid = $uid;
}
/** ---------------------------------------------------------------
* get UID
*
* @return string or (bool)false
*/
public function getUID()
{
return $this->_uid;
}
}
+35 -2
View File
@@ -53,6 +53,40 @@ class MessageLib
return $msg;
}
/**
* getMessagesByUID() - will return all messages, including the latest status for specified user. It don´t returns Attachments.
*
* @param string $uid REQUIRED
* @return array
*/
function getMessagesByUID($uid, $all = false)
{
if (empty($uid))
return $this->_error(MSG_ERR_INVALID_MSG_ID);
$msg = $this->ci->MessageModel->getMessagesByUID($uid, $all);
// General Error Occurred
return $msg;
}
/**
* getMessagesByPerson() - will return all messages, including the latest status for specified user. It don´t returns Attachments.
*
* @param bigint $person_id REQUIRED
* @return array
*/
function getMessagesByPerson($person_id, $all = false)
{
if (empty($person_id))
return $this->_error(MSG_ERR_INVALID_MSG_ID);
$msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $all);
// General Error Occurred
return $msg;
}
// ------------------------------------------------------------------------
/**
@@ -66,8 +100,7 @@ class MessageLib
if (!is_numeric($msg_id))
return $this->_invalid_id(MSG_ERR_INVALID_MSG_ID);
$msg = $this->getMessage($msg_id);
return $msg;
return $this->getMessage($msg_id);
}
// ------------------------------------------------------------------------
+82 -1
View File
@@ -16,5 +16,86 @@ class Message_model extends DB_Model
$this->pk = 'message_id';
}
public function getMessagesByUID($uid, $all)
{
// Check wrights
// @ToDo: Define the special wright for reading own messages "basis/message:own"
// if same user
if ($uid === $this->getUID())
{
if (! $this->fhc_db_acl->isBerechtigt('basis/message', 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> system/message', FHC_MODEL_ERROR);
}
// if different user, for reading messages from other users
else
{
if (! $this->fhc_db_acl->isBerechtigt('basis/message', 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> system/message:all', FHC_MODEL_ERROR);
}
// get Data
$sql = 'SELECT uid, person_id, message_id, subject, priority, relationmessage_id, oe_kurzbz, m.insertamum, anrede, titelpost, titelpre, nachname, vorname, vornamen,
status, statusinfo, s.insertamum AS statusamum
FROM public.tbl_msg_message m
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_benutzer USING (person_id)
LEFT JOIN
(
SELECT message_id, person_id, status, statusinfo, tbl_msg_status.insertamum
FROM public.tbl_msg_status
INNER JOIN
(
SELECT message_id, person_id, max(insertamum) AS insertamum
FROM public.tbl_msg_status
GROUP BY message_id, person_id
) status
USING (message_id, person_id)
WHERE tbl_msg_status.insertamum=status.insertamum
) s
USING (message_id, person_id)
WHERE uid = ?';
if (! $all)
$sql .= ' AND status<2';
$result = $this->db->query($sql, array($uid));
if (is_object($result))
return $this->_success($result->result());
else
return $this->_error($this->db->error(), FHC_DB_ERROR);
}
public function getMessagesByPerson($person_id, $all)
{
// Check wrights
if (! $this->fhc_db_acl->isBerechtigt('basis/message', 's'))
return $this->_error(lang('fhc_'.FHC_NORIGHT).' -> system/message', FHC_MODEL_ERROR);
// get Data
$sql = 'SELECT person_id, message_id, subject, priority, relationmessage_id, oe_kurzbz, m.insertamum, anrede, titelpost, titelpre, nachname, vorname, vornamen,
status, statusinfo, s.insertamum AS statusamum
FROM public.tbl_msg_message m
JOIN public.tbl_person USING (person_id)
LEFT JOIN
(
SELECT message_id, person_id, status, statusinfo, tbl_msg_status.insertamum
FROM public.tbl_msg_status
INNER JOIN
(
SELECT message_id, person_id, max(insertamum) AS insertamum
FROM public.tbl_msg_status
GROUP BY message_id, person_id
) status
USING (message_id, person_id)
WHERE tbl_msg_status.insertamum=status.insertamum
) s
USING (message_id, person_id)
WHERE person_id = ?';
if (! $all)
$sql .= ' AND status<2';
$result = $this->db->query($sql, array($person_id));
var_dump($result);
if (is_object($result))
return $this->_success($result->result());
else
return $this->_error($this->db->error(), FHC_DB_ERROR);
}
}
/* end of file Message_model.php */
+19 -21
View File
@@ -1,22 +1,20 @@
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce/tinymce.min.js');?>"></script>
<div class="row">
<div class="span4">
<h2>Nachricht <?php echo $message->message_id,': ',$message->subject; ?></h2>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<html lang="de_AT">
Absender: <?php echo $message->person_id; ?><br/>
Betreff: <?php echo $message->subject; ?><br/>
Text: <?php echo $message->body; ?><br/>
<?php
// This is an example to show that you can load stuff from inside the template file
echo $this->template->widget("organisationseinheit_widget", array('title' => 'Organisationseinheit', 'oe_kurzbz' => $message->oe_kurzbz));
?>
<form method="post" action="system/Message/send">
<?php
// This is an example to show that you can load stuff from inside the template file
echo $this->template->widget("tinymce_widget", array());
?>
<input type="text" name="subject"></input>
<textarea name="body" style="width:100%"></textarea>
<button type="submit">send Message!</button>
</form>
</div>
<head>
<title>VileSci - Messages</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<frameset rows="30%,*">
<frame src="Messages/table" id="MessagesTop" name="MessagesTop" frameborder="0" />
<frame src="Messages/edit" id="MessagesBottom" name="MessagesBottom" frameborder="0" />
<noframes>
<body bgcolor="#FFFFFF">
This application works only with a frames-enabled browser.<br />
<a href="MessagesList">Use without frames</a>
</body>
</noframes>
</frameset>
</html>
+35
View File
@@ -0,0 +1,35 @@
<?php
$this->load->view('templates/header', array('title' => 'MessagesList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}'));
?>
<div class="row">
<div class="span4">
<h2>Vorlagen</h2>
<form method="post" action="">
Person
<input name="person_id"></input>
<button type="submit">Filter</button>
</form>
<table id="t1" class="tablesorter">
<thead>
<tr><th class='table-sortable:default'>Vorlage</th>
<th class='table-sortable:default'>Bezeichnung</th>
<th>Anmerkung</th><th>MimeType</th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach ($vorlage as $v): ?>
<tr><td><a href="edit/<?php echo $v->vorlage_kurzbz; ?>" target="MessagesBottom"><?php echo $v->vorlage_kurzbz; ?></a></td>
<td><?php echo $v->bezeichnung; ?></td>
<td><?php echo $v->anmerkung; ?></td>
<td><?php echo $v->mimetype; ?></td>
<td><a href="view/<?php echo $v->vorlage_kurzbz; ?>">View</a></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
</div>
</body>
</html>
+1 -1
View File
@@ -22,7 +22,7 @@
<script type="text/javascript" >
// get json
function getJSON(form)
function getJSON(form)
{
form.elements["attribute"].value = JSON.stringify(jsoneditor.get(), null, 2);
//alert(form.elements["attribute"].value);
+1 -1
View File
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'TemplateList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}'));
$this->load->view('templates/header', array('title' => 'TemplatesList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}'));
?>
<div class="row">
<div class="span4">
+1 -1
View File
@@ -1,2 +1,2 @@
</body>
</html>
-1
View File
@@ -59,4 +59,3 @@ if ($tablesort)
<?php endif ?>
</head>
<body>