diff --git a/application/controllers/NeueNachricht.php b/application/controllers/NeueNachricht.php
index 9e9e0a39b..9b61b78ef 100644
--- a/application/controllers/NeueNachricht.php
+++ b/application/controllers/NeueNachricht.php
@@ -23,7 +23,7 @@ class NeueNachricht extends Auth_Controller
//now working
$this->load->view('Nachrichten', [
'permissions' => [
- 'vertragsverwaltung_schreibrechte' => $this->permissionlib->isBerechtigt('vertrag/mitarbeiter', 'suid')
+ 'assistenz_schreibrechte' => $this->permissionlib->isBerechtigt('assistenz','suid'),
]
]);
}
diff --git a/application/controllers/api/frontend/v1/messages/Messages.php b/application/controllers/api/frontend/v1/messages/Messages.php
index 4bc9a13ab..d080cbee3 100644
--- a/application/controllers/api/frontend/v1/messages/Messages.php
+++ b/application/controllers/api/frontend/v1/messages/Messages.php
@@ -18,6 +18,8 @@ class Messages extends FHCAPI_Controller
'deleteMessage' => ['admin:r', 'assistenz:r'],
'getVorlagentext' => ['admin:r', 'assistenz:r'],
'getPreviewText' => ['admin:r', 'assistenz:r'],
+ 'getReplyData' => ['admin:r', 'assistenz:r'],
+ 'getPersonIdFromUid' => ['admin:r', 'assistenz:r'],
]);
//Load Models
@@ -70,8 +72,6 @@ class Messages extends FHCAPI_Controller
$data = $this->getDataOrTerminateWithError($result);
$oe_kurzbz = current($data);
- // $this->terminateWithError("oe: ". $oe_kurzbz->oe_kurzbz, self::ERROR_TYPE_GENERAL);
-
$this->load->model('system/Vorlage_model', 'VorlageModel');
//39 Stück Variante OE
@@ -129,11 +129,8 @@ class Messages extends FHCAPI_Controller
public function getMsgVarsPrestudent($uid)
{
- //$this->terminateWithError($uid, self::ERROR_TYPE_GENERAL);
$prestudent_id = $this-> _getPrestudentIdFromUid($uid);
- // $this->terminateWithError("prestudent_id " . $prestudent_id, self::ERROR_TYPE_GENERAL);
-
$result = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id);
$data = $this->getDataOrTerminateWithError($result);
@@ -290,6 +287,46 @@ class Messages extends FHCAPI_Controller
$this->terminateWithSuccess($bodyParsed);
}
+ public function getReplyData($messageId)
+ {
+ // return $this->terminateWithError("in get ReplyBody" . $messageId, self::ERROR_TYPE_GENERAL);
+ //TODO(Manu) validation of messageId: if number
+
+
+ $this->MessageModel->addSelect('public.tbl_msg_message.*');
+ $this->MessageModel->addSelect('r.*');
+ $this->MessageModel->addSelect('p.nachname');
+ $this->MessageModel->addSelect('p.vorname');
+ $this->MessageModel->addJoin('public.tbl_msg_recipient r', 'ON (r.message_id = public.tbl_msg_message.message_id)');
+ $this->MessageModel->addJoin('public.tbl_person p', 'ON (p.person_id = public.tbl_msg_message.person_id)');
+
+ $result = $this->MessageModel->loadWhere(
+ array('r.message_id' => $messageId)
+ );
+
+ // $this->terminateWithSuccess((getData($result) ?: []));
+ $dataMessage = $this->getDataOrTerminateWithError($result);
+
+ $prefix = "Re: "; // reply subject prefix
+
+/* $body = current($dataMessage->body);
+ $subject = $dataMessage->subject;*/
+
+ $subject = $dataMessage[0]->subject;
+ $body = $dataMessage[0]->body;
+
+
+ $replyBody = $this->_getReplyBody($body, $dataMessage[0]->nachname, $dataMessage[0]->vorname, $dataMessage[0]->insertamum);
+
+ $dataMessage[0]->replyBody = $replyBody;
+ $dataMessage[0]->rest = "Help Manu";
+ $dataMessage[0]->replySubject = $prefix . $subject;
+
+ $this->terminateWithSuccess($dataMessage);
+
+
+ }
+
public function deleteMessage($messageId)
{
// Start DB transaction
@@ -298,7 +335,7 @@ class Messages extends FHCAPI_Controller
$result = $this->MessageModel->deleteMessageRecipient($messageId);
if (isError($result)) {
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
- return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
+
}
$result = $this->MessageModel->deleteMessageStatus($messageId);
@@ -316,6 +353,19 @@ class Messages extends FHCAPI_Controller
$this->terminateWithSuccess($result);
}
+ public function getPersonIdFromUid($uid)
+ {
+ $this->load->model('person/Benutzer_model', 'BenutzerModel');
+ $result = $this->BenutzerModel->loadWhere(
+ ['uid' => $uid]
+ );
+
+ $data = $this->getDataOrTerminateWithError($result);
+ $benutzer = current($data);
+
+ $this->terminateWithSuccess($benutzer->person_id);
+ }
+
private function _getPersonIdFromUid($uid)
{
$this->load->model('person/Benutzer_model', 'BenutzerModel');
@@ -326,7 +376,6 @@ class Messages extends FHCAPI_Controller
$data = $this->getDataOrTerminateWithError($result);
$benutzer = current($data);
- //return $data->person_id;
return $benutzer->person_id;
}
@@ -342,4 +391,23 @@ class Messages extends FHCAPI_Controller
return $student->prestudent_id;
}
+
+ private function _getReplyBody($body, $receiverName, $receiverSurname, $sentDate)
+ {
+ // To quote a reply body message
+ $bodyFormat = "
+
+
+ + On %s %s %s wrote: + ++
+ %s +"; + return sprintf( + $bodyFormat, + date_format(date_create($sentDate), 'd.m.Y H:i'), $receiverName, $receiverSurname, $body + ); + } } \ No newline at end of file diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 0fdb39736..38defa383 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -275,7 +275,7 @@ class Message_model extends DB_Model JOIN public.tbl_msg_message m USING(message_id) WHERE r.person_id = ? GROUP BY m.message_id, m.subject, m.body, m.insertamum, m.relationmessage_id, sender, recipient, sender_id, recipient_id - ORDER BY insertamum + ORDER BY insertamum DESC "; $parametersArray = array($person_id, $person_id); @@ -287,7 +287,7 @@ class Message_model extends DB_Model * Deletes a messages from tableMessages and tbl_msg_recipient * TODO(MANU) CHECK IF NECESSARY * dependency with other tables - * in case of reply... more messages + * in case of reply... more messages?? delete all dependent ones? * maybe anonimize it * @param $message_id * @return boolean success diff --git a/public/js/api/messages/person.js b/public/js/api/messages/person.js index 5cbb49550..7693c5189 100644 --- a/public/js/api/messages/person.js +++ b/public/js/api/messages/person.js @@ -14,6 +14,9 @@ export default { getMsgVarsPrestudent(uid){ return this.$fhcApi.get('api/frontend/v1/messages/messages/getMsgVarsPrestudent/' + uid); }, + getPersonIdFromUid(uid){ + return this.$fhcApi.get('api/frontend/v1/messages/messages/getPersonIdFromUid/' + uid); + }, getVorlagentext(vorlage_kurzbz){ return this.$fhcApi.get('api/frontend/v1/messages/messages/getVorlagentext/' + vorlage_kurzbz); }, @@ -24,6 +27,10 @@ export default { return this.$fhcApi.post('api/frontend/v1/messages/messages/getPreviewText/' + params.id + '/' + params.type_id, data); }, + getReplyData(messageId){ + return this.$fhcApi.get('api/frontend/v1/messages/messages/getReplyData/' + messageId); + + }, sendMessage(form, id, data) { return this.$fhcApi.post(form,'api/frontend/v1/messages/messages/sendMessage/' + id, data); diff --git a/public/js/apps/Nachrichten.js b/public/js/apps/Nachrichten.js index 0f921a9f8..84b9ddee5 100644 --- a/public/js/apps/Nachrichten.js +++ b/public/js/apps/Nachrichten.js @@ -8,6 +8,7 @@ const router = VueRouter.createRouter({ history: VueRouter.createWebHistory(), routes: [ { path: `/${ciPath}/NeueNachricht/:id/:typeId`, component: NewMessage }, + { path: `/${ciPath}/NeueNachricht/:id/:typeId/:messageId`, component: NewMessage }, ] }); diff --git a/public/js/components/Messages/Details/NewMessage/NewDiv.js b/public/js/components/Messages/Details/NewMessage/NewDiv.js index b31cd9932..1eb59aa20 100644 --- a/public/js/components/Messages/Details/NewMessage/NewDiv.js +++ b/public/js/components/Messages/Details/NewMessage/NewDiv.js @@ -36,6 +36,9 @@ export default { }, typeId(){ return this.$route.params.typeId || this.$props.id; + }, + messageId(){ + return this.$route.params.messageId; } }, data(){ @@ -62,7 +65,8 @@ export default { itemsPerson: [], itemsUser: [], previewText: null, - previewBody: "" + previewBody: "", + replyData: null } }, methods: { @@ -179,9 +183,9 @@ export default { console.error("Editor instance is not available."); } }, - replyMessage(message_id){ +/* replyMessage(message_id){ console.log("auf message " + message_id + " antworten"); - }, + },*/ resetForm(){ this.formData = { vorlage_kurzbz: null, @@ -293,6 +297,19 @@ export default { }) .catch(this.$fhcAlert.handleSystemError); + if(this.messageId != null) { + + //get replayBody.. body receivername, receiverSurname, sentDate of message + this.$fhcApi.factory.messages.person.getReplyData(this.messageId) + .then(result => { + this.replyData = result.data; + this.formData.subject = this.replyData[0].replySubject; + this.formData.body = this.replyData[0].replyBody; + }) + .catch(this.$fhcAlert.handleSystemError); + + } + }, async mounted() { this.initTinyMCE(); @@ -309,13 +326,7 @@ export default {